Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / FormDemo / src / Mainfrm.cpp
1 ////////////////////////////////////////////////////\r
2 // Mainfrm.cpp\r
3 \r
4 #include "stdafx.h"\r
5 #include "resource.h"\r
6 #include "FormApp.h"\r
7 #include "mainfrm.h"\r
8 \r
9 \r
10 // A global function to provide access to the CFormDoc class\r
11 CFormDoc& GetDoc()\r
12 {\r
13         return GetSdiApp().GetMainFrame().GetDoc();\r
14 }\r
15 \r
16 \r
17 // Definitions for the CMainFrame class\r
18 CMainFrame::CMainFrame() : m_SdiView(IDD_DIALOG1)\r
19 {\r
20         // Constructor for CMainFrame. Its called after CFrame's constructor\r
21 \r
22         //Set m_SdiView as the view window of the frame\r
23         SetView(m_SdiView);\r
24 \r
25         // Set the registry key name, and load the initial window position\r
26         // Use a registry key name like "CompanyName\\Application"\r
27         LoadRegistrySettings(_T("Win32++\\SdiDocViewForm"));\r
28 }\r
29 \r
30 CMainFrame::~CMainFrame()\r
31 {\r
32         // Destructor for CMainFrame.\r
33 }\r
34 \r
35 BOOL CMainFrame::LoadRegistrySettings(LPCTSTR szKeyName)\r
36 {\r
37         CFrame::LoadRegistrySettings(szKeyName);\r
38         GetDoc().LoadDocRegistry(GetRegistryKeyName().c_str());\r
39 \r
40         return TRUE;\r
41 }\r
42 \r
43 void CMainFrame::OnMenuUpdate(UINT nID)\r
44 {\r
45         // Update the check state of the various menu items\r
46         switch (nID) \r
47         {\r
48         case ID_CHECK_A:\r
49                 OnUpdateCheckA(nID);\r
50                 break;\r
51         case ID_CHECK_B:\r
52                 OnUpdateCheckB(nID);\r
53                 break;\r
54         case ID_CHECK_C:\r
55                 OnUpdateCheckC(nID);\r
56                 break;\r
57         }\r
58 \r
59         if ((nID >= ID_RADIO_A) && (nID <= ID_RADIO_C)) \r
60                 OnUpdateRangeOfIds_Radio(nID);\r
61 }\r
62 \r
63 BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)\r
64 {\r
65         UNREFERENCED_PARAMETER(lParam);\r
66         WORD wpLo = LOWORD(wParam);\r
67     \r
68         switch(LOWORD(wParam))\r
69         {\r
70         case ID_CHECK_A:\r
71                 m_SdiView.OnCheckA();\r
72                 return TRUE;\r
73         case ID_CHECK_B:\r
74                 m_SdiView.OnCheckB();\r
75                 return TRUE;\r
76         case ID_CHECK_C:\r
77                 m_SdiView.OnCheckC();\r
78                 return TRUE;\r
79 \r
80         case ID_RADIO_A:\r
81         case ID_RADIO_B:\r
82         case ID_RADIO_C:\r
83                 m_SdiView.OnRangeOfIds_Radio(wpLo - ID_RADIO_A);\r
84                 return TRUE;\r
85 \r
86         case IDW_VIEW_STATUSBAR:\r
87                 OnViewStatusBar();\r
88                 return TRUE;\r
89         case IDW_VIEW_TOOLBAR:\r
90                 OnViewToolBar();\r
91                 return TRUE;\r
92         case IDM_FILE_EXIT:\r
93                 // End the application\r
94                 ::PostMessage(m_hWnd, WM_CLOSE, 0, 0);\r
95                 return TRUE;\r
96 \r
97     case IDM_HELP_ABOUT:\r
98       // Display the help dialog\r
99       OnHelp();\r
100       return TRUE;\r
101     }\r
102 \r
103   return FALSE;\r
104\r
105 \r
106 void CMainFrame::OnCreate()\r
107 {\r
108         // OnCreate controls the way the frame is created.\r
109         // Overriding CFrame::Oncreate is optional.\r
110         // The default for the following variables is TRUE\r
111 \r
112         // m_bShowIndicatorStatus = FALSE;      // Don't show statusbar indicators\r
113         // m_bShowMenuStatus = FALSE;           // Don't show toolbar or menu status\r
114         // m_bUseReBar = FALSE;                         // Don't use rebars\r
115         // m_bUseThemes = FALSE;            // Don't use themes\r
116         // m_bUseToolBar = FALSE;                       // Don't use a toolbar\r
117         // m_bUseCustomDraw = FALSE;            // Don't use custom draw for menu items\r
118 \r
119         // call the base class function\r
120         CFrame::OnCreate();\r
121 }\r
122 \r
123 void CMainFrame::OnInitialUpdate()\r
124 {\r
125         // The frame is now created.\r
126         // Place any additional startup code here.\r
127         \r
128 }\r
129 \r
130 void CMainFrame::PreCreate(CREATESTRUCT& cs)\r
131 {\r
132         CFrame::PreCreate(cs);\r
133 //      cs.cx = 500;\r
134 //      cs.cy = 420;\r
135 }\r
136 \r
137 BOOL CMainFrame::SaveRegistrySettings()\r
138 {\r
139         CFrame::SaveRegistrySettings();\r
140         GetDoc().SaveDocRegistry(GetRegistryKeyName().c_str());\r
141 \r
142         return TRUE;\r
143 }\r
144 \r
145 void CMainFrame::SetupToolBar()\r
146 {\r
147         // Set the Resource IDs for the toolbar buttons\r
148         AddToolBarButton( IDM_FILE_NEW   );\r
149         AddToolBarButton( IDM_FILE_OPEN  );\r
150         AddToolBarButton( IDM_FILE_SAVE  );\r
151         AddToolBarButton( 0 );        // Separator\r
152         AddToolBarButton( IDM_EDIT_CUT   );\r
153         AddToolBarButton( IDM_EDIT_COPY  );\r
154         AddToolBarButton( IDM_EDIT_PASTE );\r
155         AddToolBarButton( 0 );        // Separator\r
156         AddToolBarButton( IDM_FILE_PRINT );\r
157         AddToolBarButton( 0 );        // Separator\r
158         AddToolBarButton( IDM_HELP_ABOUT );\r
159 }\r
160 \r
161 LRESULT CMainFrame::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
162 {\r
163 //      switch (uMsg)\r
164 //      {\r
165 //      // Suppress resizing\r
166 //      case WM_SIZING:\r
167 //              {\r
168 //                      LPRECT pRect = (LPRECT)lParam;\r
169 //                      pRect->right = pRect->left + 500;\r
170 //                      pRect->bottom = pRect->top + 420;\r
171 //              }\r
172 //              return TRUE; \r
173 //      } \r
174 \r
175         // pass unhandled messages on for default processing\r
176         return WndProcDefault(uMsg, wParam, lParam);\r
177 }\r
178 \r
179 void CMainFrame::OnUpdateCheckA(UINT nID)\r
180 {\r
181         BOOL bCheck = GetDoc().GetCheckA();\r
182         GetFrameMenu().CheckMenuItem(nID, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));\r
183 }\r
184 \r
185 void CMainFrame::OnUpdateCheckB(UINT nID)\r
186 {\r
187         BOOL bCheck = GetDoc().GetCheckB();\r
188         GetFrameMenu().CheckMenuItem(nID, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));\r
189 }\r
190 \r
191 void CMainFrame::OnUpdateCheckC(UINT nID)\r
192 {\r
193         BOOL bCheck = GetDoc().GetCheckC();\r
194         GetFrameMenu().CheckMenuItem(nID, MF_BYCOMMAND | (bCheck ? MF_CHECKED : MF_UNCHECKED));\r
195 }\r
196 \r
197 void CMainFrame::OnUpdateRangeOfIds_Radio(UINT nID)\r
198 {\r
199         UINT adjId = nID - ID_RADIO_A;\r
200         UINT curRadio = GetDoc().GetRadio();\r
201         BOOL bCheck = (curRadio == adjId);\r
202         int nFileItem = GetMenuItemPos(GetFrameMenu(), _T("Select"));\r
203         CMenu* pRadioMenu = GetFrameMenu().GetSubMenu(nFileItem);\r
204         if (bCheck)  \r
205                 pRadioMenu->CheckMenuRadioItem(ID_RADIO_A, ID_RADIO_C, nID, 0);\r
206 }\r

UCC git Repository :: git.ucc.asn.au