Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / DockContainer / src / Classes.cpp
diff --git a/research/transmission_spectroscopy/TOF/Win32++/samples/DockContainer/src/Classes.cpp b/research/transmission_spectroscopy/TOF/Win32++/samples/DockContainer/src/Classes.cpp
new file mode 100644 (file)
index 0000000..ae84704
--- /dev/null
@@ -0,0 +1,201 @@
+///////////////////////////////////////////////////\r
+// Classes.cpp - Definitions for the CViewClasses, CContainClasses\r
+//               and CDockClasses classes\r
+\r
+\r
+#include "stdafx.h"\r
+#include "Classes.h"\r
+#include "resource.h"\r
+#include "ContainerApp.h"\r
+\r
+\r
+///////////////////////////////////////////////\r
+// CViewClasses functions\r
+CViewClasses::CViewClasses() : m_himlNormal(0)\r
+{\r
+}\r
+\r
+CViewClasses::~CViewClasses()\r
+{\r
+       if (IsWindow()) DeleteAllItems();\r
+       ImageList_Destroy(m_himlNormal);\r
+}\r
+\r
+HTREEITEM CViewClasses::AddItem(HTREEITEM hParent, LPCTSTR szText, int iImage)\r
+{\r
+       TVITEM tvi = {0};\r
+       tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
+       tvi.iImage = iImage;\r
+       tvi.iSelectedImage = iImage;\r
+       tvi.pszText = (LPTSTR)szText;\r
+\r
+       TVINSERTSTRUCT tvis = {0};\r
+       tvis.hParent = hParent;\r
+       tvis.item = tvi;\r
+\r
+       return InsertItem(tvis);\r
+}\r
+\r
+void CViewClasses::OnInitialUpdate()\r
+{\r
+       //set the image lists\r
+       m_himlNormal = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);\r
+       HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_CLASSVIEW));\r
+       ImageList_AddMasked(m_himlNormal, hbm, RGB(255, 0, 0));\r
+       SetImageList(m_himlNormal, LVSIL_NORMAL);\r
+       ::DeleteObject(hbm);\r
+\r
+       // Adjust style to show lines and [+] button\r
+       DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);\r
+       dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;\r
+       SetWindowLongPtr(GWL_STYLE, dwStyle);\r
+\r
+       DeleteAllItems();\r
+\r
+       // Add some tree-view items\r
+       HTREEITEM htiRoot = AddItem(NULL, _T("TreeView"), 0);\r
+       HTREEITEM htiCTreeViewApp = AddItem(htiRoot, _T("CTreeViewApp"), 1);\r
+       AddItem(htiCTreeViewApp, _T("CTreeViewApp()"), 3);\r
+       AddItem(htiCTreeViewApp, _T("GetMainFrame()"), 3);\r
+       AddItem(htiCTreeViewApp, _T("InitInstance()"), 3);\r
+       HTREEITEM htiMainFrame = AddItem(htiRoot, _T("CMainFrame"), 1);\r
+       AddItem(htiMainFrame, _T("CMainFrame()"), 3);\r
+       AddItem(htiMainFrame, _T("OnCommand()"), 4);\r
+       AddItem(htiMainFrame, _T("OnInitialUpdate()"), 4);\r
+       AddItem(htiMainFrame, _T("WndProc()"), 4);\r
+       HTREEITEM htiView = AddItem(htiRoot, _T("CView"), 1);\r
+       AddItem(htiView, _T("CView()"), 3);\r
+       AddItem(htiView, _T("OnInitialUpdate()"), 4);\r
+       AddItem(htiView, _T("WndProc()"), 4);\r
+\r
+       // Expand some tree-view items\r
+       Expand(htiRoot, TVE_EXPAND);\r
+       Expand(htiCTreeViewApp, TVE_EXPAND);\r
+}\r
+\r
+void CViewClasses::PreCreate(CREATESTRUCT &cs)\r
+{\r
+       cs.style = TVS_NOTOOLTIPS|WS_CHILD;\r
+       cs.lpszClass = WC_TREEVIEW;\r
+}\r
+\r
+LRESULT CViewClasses::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(uMsg)\r
+       {\r
+       case WM_DESTROY:\r
+               {\r
+                       SetImageList(NULL, LVSIL_SMALL);\r
+                       break;\r
+               }\r
+       }\r
+\r
+       return WndProcDefault(uMsg, wParam, lParam);\r
+}\r
+\r
+\r
+///////////////////////////////////////////////\r
+// CContainClasses functions\r
+CContainClasses::CContainClasses() \r
+{\r
+       SetTabText(_T("ClassView"));\r
+       SetTabIcon(IDI_CLASSVIEW);\r
+       SetDockCaption (_T("Class View - Docking container"));\r
+       SetView(m_ViewClasses);\r
+}\r
+\r
+void CContainClasses::AddCombo()\r
+{\r
+       int nComboWidth = 120; \r
+       CToolBar& TB = GetToolBar();\r
+       if (TB.CommandToIndex(IDM_FILE_SAVE) < 0) return;\r
+        \r
+       // Adjust button width and convert to separator   \r
+       TB.SetButtonStyle(IDM_FILE_SAVE, TBSTYLE_SEP);\r
+       TB.SetButtonWidth(IDM_FILE_SAVE, nComboWidth);\r
+        \r
+       // Determine the size and position of the ComboBox \r
+       int nIndex = TB.CommandToIndex(IDM_FILE_SAVE); \r
+       CRect rect = TB.GetItemRect(nIndex); \r
+        \r
+       // Create the ComboboxEx window \r
+       m_ComboBoxEx.Create(&TB);\r
+       m_ComboBoxEx.SetWindowPos(NULL, rect, SWP_NOACTIVATE);\r
+\r
+       // Adjust the toolbar height to accomodate the ComboBoxEx control\r
+       CRect rc = m_ComboBoxEx.GetWindowRect();\r
+       GetToolBar().SendMessage(TB_SETBUTTONSIZE, 0, (LPARAM) MAKELONG (rc.Height(), rc.Height()));\r
+       \r
+       // Add the ComboBox's items\r
+       m_ComboBoxEx.AddItems();\r
+}\r
+\r
+BOOL CContainClasses::OnCommand(WPARAM wParam, LPARAM lParam)\r
+{\r
+       UNREFERENCED_PARAMETER(lParam);\r
+\r
+       // OnCommand responds to menu and and toolbar input\r
+\r
+       switch(LOWORD(wParam))\r
+       {\r
+       case IDM_FILE_NEW:\r
+               TRACE(_T("File New\n"));\r
+               break;\r
+       case IDM_FILE_OPEN:\r
+               TRACE(_T("File Open\n"));\r
+               break;\r
+       case IDM_FILE_SAVE:\r
+               TRACE(_T("FILE Save\n"));\r
+               break;\r
+       }\r
+\r
+       return FALSE;\r
+}\r
+\r
+void CContainClasses::SetupToolBar()\r
+{\r
+       // Set the Bitmap resource for the toolbar\r
+       GetToolBar().SetImages(RGB(192,192,192), IDW_MAIN, 0, 0);\r
+       \r
+       // Set the Resource IDs for the toolbar buttons\r
+       AddToolBarButton( IDM_FILE_NEW         );\r
+       AddToolBarButton( IDM_FILE_OPEN, FALSE );\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_FILE_SAVE, FALSE );\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_EDIT_CUT         );\r
+       AddToolBarButton( IDM_EDIT_COPY        );\r
+       AddToolBarButton( IDM_EDIT_PASTE       );\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_FILE_PRINT, FALSE );\r
+       \r
+       AddToolBarButton( 0 );  // Separator\r
+       AddToolBarButton( IDM_HELP_ABOUT       );\r
+\r
+       // Add the ComboBarEx control to the toolbar\r
+       AddCombo();\r
+\r
+       // Match the Container's ToolBar theme to the MainFrame's toolbar theme\r
+       ToolBarTheme tt = GetContainerApp().GetMainFrame().GetToolBar().GetToolBarTheme();\r
+       GetToolBar().SetToolBarTheme(tt);\r
+}\r
+\r
+\r
+/////////////////////////////////////////////////\r
+//  Definitions for the CDockClasses class\r
+CDockClasses::CDockClasses() \r
+{ \r
+       SetView(m_Classes); \r
+}\r
+\r
+void CDockClasses::OnInitialUpdate()\r
+{\r
+       // Set the width of the splitter bar\r
+       SetBarWidth(8);\r
+}\r
+\r
+\r
+\r

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