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

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