Merge branch 'master' of git.ucc.asn.au:/matches/honours
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / DockTabbedMDI / src / Classes.cpp
1 ///////////////////////////////////////////////////\r
2 // Classes.cpp - Definitions for the CViewClasses, CContainClasses\r
3 //               and CDockClasses classes\r
4 \r
5 #include "stdafx.h"\r
6 #include "Classes.h"\r
7 #include "resource.h"\r
8 #include "TabbedMDIApp.h"\r
9 \r
10 \r
11 ///////////////////////////////////////////////\r
12 // CViewClasses functions\r
13 CViewClasses::CViewClasses() : m_himlNormal(0)\r
14 {\r
15 }\r
16 \r
17 CViewClasses::~CViewClasses()\r
18 {\r
19         if (IsWindow()) DeleteAllItems();\r
20         ImageList_Destroy(m_himlNormal);\r
21 }\r
22 \r
23 HTREEITEM CViewClasses::AddItem(HTREEITEM hParent, LPCTSTR szText, int iImage)\r
24 {\r
25         TVITEM tvi = {0};\r
26         tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
27         tvi.iImage = iImage;\r
28         tvi.iSelectedImage = iImage;\r
29         tvi.pszText = (LPTSTR)szText;\r
30 \r
31         TVINSERTSTRUCT tvis = {0};\r
32         tvis.hParent = hParent;\r
33         tvis.item = tvi;\r
34 \r
35         return InsertItem(tvis);\r
36 }\r
37 \r
38 void CViewClasses::OnInitialUpdate()\r
39 {\r
40         //set the image lists\r
41         m_himlNormal = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);\r
42         HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_CLASSVIEW));\r
43         ImageList_AddMasked(m_himlNormal, hbm, RGB(255, 0, 0));\r
44         SetImageList(m_himlNormal, LVSIL_NORMAL);\r
45         ::DeleteObject(hbm);\r
46 \r
47         // Adjust style to show lines and [+] button\r
48         DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);\r
49         dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;\r
50         SetWindowLongPtr(GWL_STYLE, dwStyle);\r
51 \r
52         DeleteAllItems();\r
53 \r
54         // Add some tree-view items\r
55         HTREEITEM htiRoot = AddItem(NULL, _T("TreeView"), 0);\r
56         HTREEITEM htiCTreeViewApp = AddItem(htiRoot, _T("CTreeViewApp"), 1);\r
57         AddItem(htiCTreeViewApp, _T("CTreeViewApp()"), 3);\r
58         AddItem(htiCTreeViewApp, _T("GetMainFrame()"), 3);\r
59         AddItem(htiCTreeViewApp, _T("InitInstance()"), 3);\r
60         HTREEITEM htiMainFrame = AddItem(htiRoot, _T("CMainFrame"), 1);\r
61         AddItem(htiMainFrame, _T("CMainFrame()"), 3);\r
62         AddItem(htiMainFrame, _T("OnCommand()"), 4);\r
63         AddItem(htiMainFrame, _T("OnInitialUpdate()"), 4);\r
64         AddItem(htiMainFrame, _T("WndProc()"), 4);\r
65         HTREEITEM htiView = AddItem(htiRoot, _T("CView"), 1);\r
66         AddItem(htiView, _T("CView()"), 3);\r
67         AddItem(htiView, _T("OnInitialUpdate()"), 4);\r
68         AddItem(htiView, _T("WndProc()"), 4);\r
69 \r
70         // Expand some tree-view items\r
71         Expand(htiRoot, TVE_EXPAND);\r
72         Expand(htiCTreeViewApp, TVE_EXPAND);\r
73 }\r
74 \r
75 void CViewClasses::PreCreate(CREATESTRUCT &cs)\r
76 {\r
77         cs.style = TVS_NOTOOLTIPS|WS_CHILD;\r
78         cs.lpszClass = WC_TREEVIEW;\r
79 }\r
80 \r
81 LRESULT CViewClasses::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
82 {\r
83         switch(uMsg)\r
84         {\r
85         case WM_DESTROY:\r
86                 {\r
87                         SetImageList(NULL, LVSIL_SMALL);\r
88                         break;\r
89                 }\r
90         }\r
91 \r
92         return WndProcDefault(uMsg, wParam, lParam);\r
93 }\r
94 \r
95 \r
96 ///////////////////////////////////////////////\r
97 // CContainClasses functions\r
98 CContainClasses::CContainClasses() \r
99 {\r
100         SetTabText(_T("ClassView"));\r
101         SetTabIcon(IDI_CLASSVIEW);\r
102         SetDockCaption (_T("Class View - Docking container"));\r
103         SetView(m_ViewClasses);\r
104 }\r
105 \r
106 void CContainClasses::AddCombo()\r
107 {\r
108         int nComboWidth = 120; \r
109         CToolBar& TB = GetToolBar();\r
110         if (TB.CommandToIndex(IDM_FILE_SAVE) < 0) return;\r
111          \r
112         // Adjust button width and convert to separator   \r
113         TB.SetButtonStyle(IDM_FILE_SAVE, TBSTYLE_SEP);\r
114         TB.SetButtonWidth(IDM_FILE_SAVE, nComboWidth);\r
115          \r
116         // Determine the size and position of the ComboBox \r
117         int nIndex = TB.CommandToIndex(IDM_FILE_SAVE); \r
118         CRect rect = TB.GetItemRect(nIndex); \r
119          \r
120         // Create the ComboboxEx window \r
121         m_ComboBoxEx.Create(&TB);\r
122         m_ComboBoxEx.SetWindowPos(NULL, rect, SWP_NOACTIVATE);\r
123 \r
124         // Adjust the toolbar height to accomodate the ComboBoxEx control\r
125         CRect rc = m_ComboBoxEx.GetWindowRect();\r
126         GetToolBar().SendMessage(TB_SETBUTTONSIZE, 0, (LPARAM) MAKELONG (rc.Height(), rc.Height()));\r
127         \r
128         // Add the ComboBox's items\r
129         m_ComboBoxEx.AddItems();\r
130 }\r
131 \r
132 BOOL CContainClasses::OnCommand(WPARAM wParam, LPARAM lParam)\r
133 {\r
134         UNREFERENCED_PARAMETER(lParam);\r
135 \r
136         // OnCommand responds to menu and and toolbar input\r
137 \r
138         switch(LOWORD(wParam))\r
139         {\r
140         case IDM_FILE_NEW:\r
141                 TRACE(_T("File New\n"));\r
142                 break;\r
143         case IDM_FILE_OPEN:\r
144                 TRACE(_T("File Open\n"));\r
145                 break;\r
146         case IDM_FILE_SAVE:\r
147                 TRACE(_T("FILE Save\n"));\r
148                 break;\r
149         }\r
150 \r
151         return FALSE;\r
152 }\r
153 \r
154 void CContainClasses::SetupToolBar()\r
155 {\r
156         // Set the Bitmap resource for the toolbar\r
157         GetToolBar().SetImages(RGB(192,192,192), IDW_MAIN, 0, 0);\r
158 \r
159         // Set the Resource IDs for the toolbar buttons\r
160         AddToolBarButton( IDM_FILE_NEW         );\r
161         AddToolBarButton( IDM_FILE_OPEN, FALSE );\r
162         \r
163         AddToolBarButton( 0 );  // Separator\r
164         AddToolBarButton( IDM_FILE_SAVE, FALSE );\r
165         \r
166         AddToolBarButton( 0 );  // Separator\r
167         AddToolBarButton( IDM_EDIT_CUT         );\r
168         AddToolBarButton( IDM_EDIT_COPY        );\r
169         AddToolBarButton( IDM_EDIT_PASTE       );\r
170         \r
171         AddToolBarButton( 0 );  // Separator\r
172         AddToolBarButton( IDM_FILE_PRINT, FALSE );\r
173         \r
174         AddToolBarButton( 0 );  // Separator\r
175         AddToolBarButton( IDM_HELP_ABOUT       );\r
176 \r
177         // Add the ComboBarEx control to the toolbar\r
178         AddCombo();\r
179 \r
180         // Match the Container's ToolBar theme to the MainFrame's toolbar theme\r
181         ToolBarTheme tt = GetTabbedMDIApp().GetMainFrame().GetToolBar().GetToolBarTheme();\r
182         GetToolBar().SetToolBarTheme(tt);\r
183 }\r
184 \r
185 \r
186 /////////////////////////////////////////////////\r
187 //  Definitions for the CDockClasses class\r
188 CDockClasses::CDockClasses() \r
189\r
190         SetView(m_Classes); \r
191 }\r
192 \r
193 void CDockClasses::OnInitialUpdate()\r
194 {\r
195         // Set the width of the splitter bar\r
196         SetBarWidth(8);\r
197 }\r
198 \r
199 \r
200 \r

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