Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / Explorer / src / Mainfrm.cpp
diff --git a/research/transmission_spectroscopy/TOF/Win32++/samples/Explorer/src/Mainfrm.cpp b/research/transmission_spectroscopy/TOF/Win32++/samples/Explorer/src/Mainfrm.cpp
new file mode 100644 (file)
index 0000000..c7149a6
--- /dev/null
@@ -0,0 +1,207 @@
+////////////////////////////////////////////////////\r
+// Mainfrm.cpp  - definitions for the CMainFrame class\r
+\r
+#include "stdafx.h"\r
+#include "mainfrm.h"\r
+#include "resource.h"\r
+\r
+\r
+CMainFrame::CMainFrame()  : m_bShowHidden(FALSE)\r
+{\r
+       // Set m_MainView as the view window of the frame\r
+       SetView(m_LeftPane);\r
+\r
+       // Set the registry key name, and load the initial window position\r
+       // Use a registry key name like "CompanyName\\Application"\r
+       LoadRegistrySettings(_T("Win32++\\Explorer Sample"));\r
+}\r
+\r
+CMainFrame::~CMainFrame()\r
+{\r
+}\r
+\r
+void CMainFrame::DoPopupMenu()\r
+{\r
+       // Creates the popup menu for the "View Menu" toolbar button\r
+\r
+       // Position the popup menu\r
+       CToolBar& TB = GetToolBar();\r
+       CRect rc = TB.GetItemRect(TB.CommandToIndex(IDM_VIEWMENU));\r
+       TB.MapWindowPoints(NULL, (LPPOINT)&rc, 2);\r
+\r
+       TPMPARAMS tpm;\r
+       tpm.cbSize = sizeof(TPMPARAMS);\r
+       tpm.rcExclude = rc;\r
+\r
+       // Load the popup menu\r
+       CMenu TopMenu(IDM_VIEWMENU);\r
+       CMenu* pPopupMenu = TopMenu.GetSubMenu(0);\r
+\r
+       // Put a radio check in the currently checked item\r
+       MENUITEMINFO mii = {0};\r
+       for (int i = 3 ; i < 7 ; i++)\r
+       {\r
+               ZeroMemory(&mii, GetSizeofMenuItemInfo());\r
+               mii.cbSize = GetSizeofMenuItemInfo();\r
+\r
+               mii.fMask  = MIIM_STATE | MIIM_ID;\r
+               GetMenuItemInfo(GetSubMenu(GetFrameMenu(), 1), i, TRUE,  &mii );\r
+               if (mii.fState & MFS_CHECKED)\r
+                       TopMenu.CheckMenuRadioItem(IDM_VIEW_SMALLICON, IDM_VIEW_REPORT, mii.wID, 0);\r
+       }\r
+\r
+       // Start the popup menu\r
+       pPopupMenu->TrackPopupMenuEx(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_VERTICAL, rc.left, rc.bottom, this, &tpm);\r
+}\r
+\r
+void CMainFrame::OnInitialUpdate()\r
+{\r
+       // Add the right window pane\r
+       int Width = (int) (GetWindowRect().Width() * 0.7);\r
+       DWORD dwDockStyle = DS_DOCKED_RIGHT  | DS_NO_UNDOCK | DS_NO_CAPTION;\r
+       m_RightPane = (CRightPane*)m_LeftPane.AddDockedChild(new CRightPane, dwDockStyle, Width);\r
+\r
+       // All windows are now created, so populate the treeview\r
+       GetTreeView()->GetRootItems();\r
+\r
+       // Uncheck the hidden menu item\r
+       GetFrameMenu().CheckMenuItem(IDM_SHOW_HIDDEN, MF_UNCHECKED);\r
+\r
+       // Place Radio button in view menu\r
+       CMenu* pViewMenu = GetFrameMenu().GetSubMenu(1);\r
+       pViewMenu->CheckMenuRadioItem(IDM_VIEW_SMALLICON, IDM_VIEW_REPORT, IDM_VIEW_REPORT, 0);\r
+\r
+       // Uncomment the following to use a hash bar and disable of auto resizing \r
+       // m_LeftPane.SetDragAutoResize(FALSE);\r
+}\r
+\r
+void CMainFrame::OnClose()\r
+{\r
+       // Destroying the TreeView triggers shutdown of the Treeview thread.\r
+       GetTreeView()->Destroy();\r
+\r
+       CFrame::OnClose();\r
+}\r
+\r
+BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)\r
+{\r
+       UNREFERENCED_PARAMETER(lParam);\r
+\r
+       // Handle the the View submenu\r
+       CMenu* pViewMenu = GetFrameMenu().GetSubMenu(1);\r
+\r
+       switch (LOWORD(wParam))\r
+       {\r
+       case IDM_FILE_EXIT:\r
+               ::PostMessage(m_hWnd, WM_CLOSE, 0, 0);\r
+               return TRUE;\r
+       case IDM_HELP_ABOUT:\r
+               OnHelp();\r
+               return TRUE;\r
+       case IDW_VIEW_STATUSBAR:\r
+               OnViewStatusBar();\r
+               return TRUE;\r
+       case IDW_VIEW_TOOLBAR:\r
+               OnViewToolBar();\r
+               return TRUE;\r
+       case IDM_VIEW_LARGEICON:\r
+               GetListView()->ViewLargeIcons();\r
+               pViewMenu->CheckMenuRadioItem(IDM_VIEW_SMALLICON, IDM_VIEW_REPORT, IDM_VIEW_LARGEICON, 0);\r
+               return TRUE;\r
+       case IDM_VIEW_SMALLICON:\r
+               GetListView()->ViewSmallIcons();\r
+               pViewMenu->CheckMenuRadioItem(IDM_VIEW_SMALLICON, IDM_VIEW_REPORT, IDM_VIEW_SMALLICON, 0);\r
+               return TRUE;\r
+       case IDM_VIEW_LIST:\r
+               GetListView()->ViewList();\r
+               pViewMenu->CheckMenuRadioItem(IDM_VIEW_SMALLICON, IDM_VIEW_REPORT, IDM_VIEW_LIST, 0);\r
+               return TRUE;\r
+       case IDM_VIEW_REPORT:\r
+               GetListView()->ViewReport();\r
+               pViewMenu->CheckMenuRadioItem(IDM_VIEW_SMALLICON, IDM_VIEW_REPORT, IDM_VIEW_REPORT, 0);\r
+               return TRUE;\r
+       case IDM_SHOW_HIDDEN:\r
+               m_bShowHidden = !m_bShowHidden;\r
+               pViewMenu->CheckMenuItem(IDM_SHOW_HIDDEN, (TRUE == m_bShowHidden)? MF_CHECKED : MF_UNCHECKED);\r
+\r
+               // Refresh the Listview display\r
+               GetListView()->DoDisplay();\r
+               return TRUE;\r
+       case IDM_VIEWMENU:\r
+               // This Command is recieved if Comctl32.dll version is below 4.7\r
+               DoPopupMenu();\r
+               return TRUE;\r
+       } // switch cmd\r
+\r
+       return FALSE;\r
+\r
+} // CMainFrame::OnCommand(...)\r
+\r
+void CMainFrame::OnCreate()\r
+{\r
+       // call the base OnCreate function\r
+       CFrame::OnCreate();\r
+}\r
+\r
+LRESULT CMainFrame::OnNotify(WPARAM wParam, LPARAM lParam)\r
+{\r
+       // Notification from our dropdown button is recieved if Comctl32.dll version\r
+       // is 4.70 or later (IE v3 required).\r
+    switch(((LPNMHDR)lParam)->code)\r
+       {\r
+               //Menu for dropdown toolbar button\r
+               case TBN_DROPDOWN:\r
+               {\r
+                       if (((LPNMHDR)lParam)->hwndFrom == GetToolBar().GetHwnd())\r
+                               DoPopupMenu();\r
+               }\r
+\r
+       } //switch LPNMHDR\r
+\r
+       return CFrame::OnNotify(wParam, lParam);\r
+}\r
+\r
+void CMainFrame::SetupToolBar()\r
+{\r
+       // Define our toolbar data\r
+       AddToolBarButton( IDM_FILE_NEW  , FALSE, _T("New") );\r
+       AddToolBarButton( IDM_FILE_OPEN , FALSE, _T("Open") );\r
+       AddToolBarButton( IDM_FILE_SAVE , FALSE, _T("Save") );\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_EDIT_CUT  , FALSE, _T("Cut") );\r
+       AddToolBarButton( IDM_EDIT_COPY , FALSE, _T("Copy") );\r
+       AddToolBarButton( IDM_EDIT_PASTE, FALSE, _T("Paste") );\r
+       AddToolBarButton( IDM_FILE_PRINT, FALSE, _T("Print") );\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_VIEWMENU,   TRUE,  _T("View Menu"));\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_HELP_ABOUT, TRUE,  _T("About") );\r
+\r
+       // Use larger buttons\r
+       SetToolBarImages(RGB(192,192,192), IDB_TOOLBAR_NORM, IDB_TOOLBAR_HOT, IDB_TOOLBAR_DIS);\r
+\r
+       // Configure the ViewMenu button to bring up a menu\r
+       // Setting this style requires comctl32.dll version 4.72 or later\r
+       if (GetComCtlVersion() >= 472)\r
+       {\r
+               CToolBar& TB = GetToolBar();\r
+               TB.SetButtonStyle(IDM_VIEWMENU, BTNS_WHOLEDROPDOWN);\r
+       }\r
+}\r
+\r
+LRESULT CMainFrame::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch (uMsg)\r
+       {\r
+       case WM_CLOSE:\r
+               OnClose();\r
+               break;\r
+       }\r
+\r
+       // pass any unhandled messages on for default processing\r
+       return WndProcDefault(uMsg, wParam, lParam);\r
+}\r
+\r

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