]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - tools/src/tools/configtool/standalone/win32/MainFrm.h
Initial revision
[karo-tx-redboot.git] / tools / src / tools / configtool / standalone / win32 / MainFrm.h
1 //####COPYRIGHTBEGIN####
2 //                                                                          
3 // ----------------------------------------------------------------------------
4 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
5 //
6 // This program is part of the eCos host tools.
7 //
8 // This program is free software; you can redistribute it and/or modify it 
9 // under the terms of the GNU General Public License as published by the Free 
10 // Software Foundation; either version 2 of the License, or (at your option) 
11 // any later version.
12 // 
13 // This program is distributed in the hope that it will be useful, but WITHOUT 
14 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
15 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
16 // more details.
17 // 
18 // You should have received a copy of the GNU General Public License along with
19 // this program; if not, write to the Free Software Foundation, Inc., 
20 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21 //
22 // ----------------------------------------------------------------------------
23 //                                                                          
24 //####COPYRIGHTEND####
25 // MainFrm.h : interface of the CMainFrame class
26 //
27 /////////////////////////////////////////////////////////////////////////////
28 //===========================================================================
29 //#####DESCRIPTIONBEGIN####
30 //
31 // Author(s):   sdf
32 // Contact(s):  sdf
33 // Date:                1998/08/11
34 // Version:             0.01
35 // Purpose:     
36 // Description: Interface of the main frame class
37 // Requires:    
38 // Provides:    
39 // See also:    
40 // Known bugs:  
41 // Usage:       
42 //
43 //####DESCRIPTIONEND####
44 //
45 //===========================================================================
46 #if !defined(AFX_MAINFRM_H__A4845244_05EE_11D2_80BE_00A0C949ADAC__INCLUDED_)
47 #define AFX_MAINFRM_H__A4845244_05EE_11D2_80BE_00A0C949ADAC__INCLUDED_
48
49 #if _MSC_VER >= 1000
50 #pragma once
51 #endif // _MSC_VER >= 1000
52 class CControlView;
53 class CPropertiesView;
54 class COutputView;
55 class CFindDialog;
56 class CMessageBox;
57 class CCellView;
58 class CDescView;
59 class CConfigToolApp;
60 class CSplitterWndEx;
61 #include "BCMenu.h"
62 #include "Subprocess.h"
63
64 class CMainFrame : public CFrameWnd
65 {
66 protected: // create from serialization only
67         CMainFrame();
68         DECLARE_DYNCREATE(CMainFrame)
69 // Attributes
70 public:
71         //CMFWnd m_wndHelp;
72
73 // Operations
74 public:
75
76 // Overrides
77         // ClassWizard generated virtual function overrides
78         //{{AFX_VIRTUAL(CMainFrame)
79         public:
80         virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
81         virtual void ActivateFrame(int nCmdShow = -1);
82         virtual BOOL PreTranslateMessage(MSG* pMsg);
83         protected:
84         virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
85         //}}AFX_VIRTUAL
86
87 // Implementation
88
89   enum {Horz=-3, Vert=-2, Thin=-1};
90   struct Split {
91     int type;
92     double fFrac;
93     CSplitterWndEx *pSplit;
94     int nLevel;
95     Split(int _type,int _nLevel,double _fFrac=0.5) : type(_type), nLevel(_nLevel), fFrac(_fFrac), pSplit(0) {}
96     ~Split(){};
97   };
98   static Split arSplit[];
99   
100 public:
101   BCMenu m_menu;
102         HMENU NewMenu();
103         void OnUpdateFrameTitle(BOOL bAddToTitle);
104         void SetFailRulePane(int nCount);
105         bool m_bFindInProgress;
106         void SetThermometerMax (int nMax);
107   enum PaneType { Cell, Control, ShortDesc, Output, Properties, Rules, MLT, PaneTypeMax};
108   LPCTSTR GetPaneName(PaneType p) { return arView[p].pszName; }
109         CFont &GetPaneFont(PaneType pane);
110         bool SetPaneFont (PaneType pane, const LOGFONT &lf);
111
112         void SetIdleMessage (LPCTSTR pszIdleMessage=NULL);
113         void UpdateThermometer (int nLines);
114         bool m_bExiting;
115         CConfigToolApp * GetApp();
116         virtual ~CMainFrame();
117 #ifdef _DEBUG
118         virtual void AssertValid() const;
119         virtual void Dump(CDumpContext& dc) const;
120 #endif
121
122         CProgressCtrl m_Progress;
123         enum {StatusPane, ThermometerPane, PercentagePane, FailRulePane};
124         int m_nFailRulePaneSize;
125         int m_nThermometerPaneSize;
126         int m_nPercentagePaneSize;
127
128         CStatusBar  m_wndStatusBar;
129         afx_msg void OnHelp();
130         bool PrepareEnvironment(bool bWithBuildTools = true);
131         
132   // public so available as a utility function for windows creating popups
133         LRESULT OnMenuChar(UINT nChar, UINT nFlags, CMenu* pMenu);
134
135 protected:
136         static bool m_arMounted[26];
137         static void CygMount(TCHAR c);
138         int m_nLogicalLines;
139         DWORD m_dwThreadId;
140
141   struct ViewStruct {
142     LPCTSTR pszName;
143     CSplitterWndEx *pParent;
144     bool bVisible;
145         CFont font;
146     CRuntimeClass *pClass;
147     CView *pView;
148     ViewStruct(LPCTSTR _pszName,bool _bVisible,CRuntimeClass *_pClass) : pszName(_pszName), pParent(0), bVisible(_bVisible), pClass(_pClass), pView(0) {}
149     ViewStruct(const ViewStruct &o) : pszName(o.pszName), pParent(0), bVisible(o.bVisible), pClass(o.pClass), pView(0) {}
150   };
151   static ViewStruct arView[PaneTypeMax];
152
153         static DWORD WINAPI ThreadFunc( LPVOID ); 
154
155         static UINT indicators[];
156         CToolBar    m_wndToolBar;
157   CToolBar    m_wndMLTToolBar;
158   bool m_bMLTToolbarVisible;
159         CFindDialog * m_pFindReplaceDialog;
160
161         bool m_bStatusBarCreated;
162
163         CString m_strIdleMessage;
164         int m_nThermometerMax;
165         CString m_strBuildTarget;
166         void BumpWindow (int nInc);
167
168         CSubprocess m_sp;
169         
170         void Build(const CString &strWhat=_T(""));
171         
172         //{{AFX_MSG(CMainFrame)
173         afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
174         afx_msg void OnViewProperties();
175         afx_msg void OnUpdateViewProperties(CCmdUI* pCmdUI);
176         afx_msg void OnViewMLT();
177         afx_msg void OnViewShortdesc();
178         afx_msg void OnUpdateViewShortdesc(CCmdUI* pCmdUI);
179         afx_msg void OnViewOutput();
180         afx_msg void OnUpdateViewOutput(CCmdUI* pCmdUI);
181         afx_msg void OnUpdateBuildConfigure(CCmdUI* pCmdUI);
182         afx_msg void OnBuildStop();
183         afx_msg void OnUpdateBuildStop(CCmdUI* pCmdUI);
184         afx_msg void OnConfigurationBuild();
185         afx_msg void OnDestroy();
186         afx_msg void OnBuildTests();
187         afx_msg void OnUpdateBuildTests(CCmdUI* pCmdUI);
188         afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI);
189         afx_msg void OnUpdateFileSaveAs(CCmdUI* pCmdUI);
190         afx_msg void OnUpdateFileOpen(CCmdUI* pCmdUI);
191         afx_msg void OnUpdateFileNew(CCmdUI* pCmdUI);
192         afx_msg void OnUpdateAppExit(CCmdUI* pCmdUI);
193         afx_msg void OnUpdateViewMLT(CCmdUI* pCmdUI);
194         afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
195         afx_msg void OnUpdateConfigurationRefresh(CCmdUI* pCmdUI);
196         afx_msg void OnConfigurationRefresh();
197         afx_msg void OnViewSettings();
198         afx_msg void OnToolsPaths();
199         afx_msg void OnSize(UINT nType, int cx, int cy);
200         afx_msg void OnUpdateConfigurationRepository(CCmdUI* pCmdUI);
201         afx_msg void OnWindowNext();
202         afx_msg void OnWindowPrev();
203         afx_msg void OnHelpSubmitPr();
204         afx_msg void OnHelpEcos();
205         afx_msg void OnHelpRedHatHome();
206         afx_msg void OnHelpUitron();
207         afx_msg void OnHelpEcoshome();
208         afx_msg void OnRunSim();
209         afx_msg void OnBuildClean();
210         afx_msg void OnUpdateBuildClean(CCmdUI* pCmdUI);
211         afx_msg void OnToolsShell();
212         afx_msg void OnClose();
213         afx_msg void OnBuildOptions();
214         afx_msg void OnToolsOptions();
215         afx_msg void OnUsertoolsPaths();
216         afx_msg LRESULT OnSetMessageString(WPARAM wParam, LPARAM lParam);
217         afx_msg void OnUpdateRunSim(CCmdUI* pCmdUI);
218         afx_msg void OnViewConflicts();
219         afx_msg void OnUpdateViewConflicts(CCmdUI* pCmdUI);
220         afx_msg void OnViewMltbar();
221         afx_msg void OnUpdateViewMltbar(CCmdUI* pCmdUI);
222         afx_msg void OnResolveConflicts();
223         afx_msg void OnUpdateResolveConflicts(CCmdUI* pCmdUI);
224         afx_msg void OnGoHome();
225         afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
226         afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
227         afx_msg void OnUpdateBuildOptions(CCmdUI* pCmdUI);
228         afx_msg LRESULT OnSubprocess(WPARAM wParam, LPARAM lParam);
229         afx_msg void OnUpdateToolsAdministration(CCmdUI* pCmdUI);
230         afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
231         afx_msg void OnEditPlatforms();
232   afx_msg void OnTimer(UINT nIDEvent);
233         //}}AFX_MSG
234   void OnNavComplete(NMHDR*, LRESULT*);
235         DECLARE_MESSAGE_MAP()
236   static void CALLBACK SubprocessOutputFunc(void *pParam,LPCTSTR psz);
237 };
238
239 /////////////////////////////////////////////////////////////////////////////
240
241 //{{AFX_INSERT_LOCATION}}
242 // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
243
244 #endif // !defined(AFX_MAINFRM_H__A4845244_05EE_11D2_80BE_00A0C949ADAC__INCLUDED_)