Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / Splitter / src / Views.cpp
1 //////////////////////////////////////////////////////////////\r
2 // Views.cpp -  Definitions for the CViewSimple, CViewList,\r
3 //              CViewTree and CViewText classes\r
4 \r
5 #include "stdafx.h"\r
6 #include "SplitterApp.h"\r
7 #include "Views.h"\r
8 #include "resource.h"\r
9 \r
10 \r
11 ///////////////////////////////////////////////\r
12 // CViewSimple functions\r
13 void CViewSimple::OnDraw(CDC* pDC)\r
14 {\r
15         //Centre some text in the window\r
16         CRect rc = GetClientRect();\r
17         pDC->DrawText(_T("Simple View"), -1, rc, DT_CENTER|DT_VCENTER|DT_SINGLELINE);\r
18 }\r
19 \r
20 LRESULT CViewSimple::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
21 {\r
22         switch(uMsg)\r
23         {\r
24         case WM_SIZE:\r
25                 Invalidate();\r
26                 break;\r
27         }\r
28 \r
29         return WndProcDefault(uMsg, wParam, lParam);\r
30 }\r
31 \r
32 \r
33 ///////////////////////////////////////////////\r
34 // CViewList functions\r
35 CViewList::CViewList() : m_himlSmall(0)\r
36 {\r
37 }\r
38 \r
39 CViewList::~CViewList()\r
40 {\r
41         if (IsWindow()) DeleteAllItems();\r
42 }\r
43 \r
44 void CViewList::OnInitialUpdate()\r
45 {\r
46         // Set the image lists\r
47         m_himlSmall = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);\r
48         HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_FILEVIEW));\r
49         ImageList_AddMasked(m_himlSmall, hbm, RGB(255, 0, 255));\r
50         SetImageList(m_himlSmall, LVSIL_SMALL);\r
51 \r
52         // Set the report style\r
53         DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);\r
54         SetWindowLongPtr(GWL_STYLE, (dwStyle & ~LVS_TYPEMASK) | LVS_REPORT);\r
55 \r
56         SetColumns();\r
57         InsertItems();\r
58 }\r
59 \r
60 int CViewList::AddItem(LPCTSTR szText, int nImage)\r
61 {\r
62         LVITEM lvi = {0};\r
63         lvi.mask = LVIF_TEXT|LVIF_IMAGE;\r
64         lvi.iImage = nImage;\r
65         lvi.pszText = (LPTSTR)szText;\r
66 \r
67         return InsertItem(lvi);\r
68 }\r
69 \r
70 void CViewList::SetColumns()\r
71 {\r
72         //empty the list\r
73         DeleteAllItems();\r
74 \r
75         //initialise the columns\r
76         LV_COLUMN lvColumn = {0};\r
77         lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;\r
78         lvColumn.fmt = LVCFMT_LEFT;\r
79         lvColumn.cx = 120;\r
80         TCHAR szString[3][20] = {TEXT("Name"), TEXT("Size"), TEXT("Type")};\r
81         for(int i = 0; i < 3; ++i)\r
82         {\r
83                 lvColumn.pszText = szString[i];\r
84                 InsertColumn(i, lvColumn);\r
85         }\r
86 }\r
87 \r
88 BOOL CViewList::SetSubItem(int nItem, int nSubItem, LPCTSTR szText)\r
89 {\r
90         LVITEM lvi1 = {0};\r
91         lvi1.mask = LVIF_TEXT;\r
92         lvi1.iItem = nItem;\r
93         lvi1.iSubItem = nSubItem;\r
94         lvi1.pszText = (LPTSTR)szText;\r
95         return (BOOL)SendMessage(LVM_SETITEM, 0, (LPARAM)&lvi1);\r
96 }\r
97 \r
98 void CViewList::InsertItems()\r
99 {\r
100         // Add 4th item\r
101         int item = AddItem(_T("ListViewApp.h"), 2);\r
102         SetSubItem(item, 1, _T("1 KB"));\r
103         SetSubItem(item, 2, _T("C Header file"));\r
104 \r
105         // add 3rd item\r
106         item = AddItem(_T("ListViewApp.cpp"), 1);\r
107         SetSubItem(item, 1, _T("3 KB"));\r
108         SetSubItem(item, 2, _T("C++ Source file"));\r
109 \r
110         // add 2nd item\r
111         item = AddItem(_T("main.cpp"), 1);\r
112         SetSubItem(item, 1, _T("1 KB"));\r
113         SetSubItem(item, 2, _T("C++ Source file"));\r
114 \r
115         // add 1st item\r
116         item = AddItem(_T("ListView"), 0);\r
117         SetSubItem(item, 2, _T("Folder"));\r
118 }\r
119 \r
120 \r
121 ///////////////////////////////////////////////\r
122 // CViewTree functions\r
123 CViewTree::CViewTree() : m_himlNormal(0)\r
124 {\r
125 }\r
126 \r
127 CViewTree::~CViewTree()\r
128 {\r
129         if (IsWindow()) DeleteAllItems();\r
130 }\r
131 \r
132 void CViewTree::OnInitialUpdate()\r
133 {\r
134         //set the image lists\r
135         m_himlNormal = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);\r
136         HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_CLASSVIEW));\r
137         ImageList_AddMasked(m_himlNormal, hbm, RGB(255, 0, 0));\r
138         SetImageList(m_himlNormal, LVSIL_NORMAL);\r
139 \r
140         // Adjust style to show lines and [+] button\r
141         DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);\r
142         dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;\r
143         SetWindowLongPtr(GWL_STYLE, dwStyle);\r
144 \r
145         DeleteAllItems();\r
146 \r
147         // Add some tree-view items\r
148         HTREEITEM htiRoot = AddItem(NULL, _T("TreeView"), 0);\r
149         HTREEITEM htiCTreeViewApp = AddItem(htiRoot, _T("CTreeViewApp"), 1);\r
150         AddItem(htiCTreeViewApp, _T("CTreeViewApp()"), 3);\r
151         AddItem(htiCTreeViewApp, _T("GetMainFrame()"), 3);\r
152         AddItem(htiCTreeViewApp, _T("InitInstance()"), 3);\r
153         HTREEITEM htiMainFrame = AddItem(htiRoot, _T("CMainFrame"), 1);\r
154         AddItem(htiMainFrame, _T("CMainFrame()"), 3);\r
155         AddItem(htiMainFrame, _T("OnCommand()"), 4);\r
156         AddItem(htiMainFrame, _T("OnInitialUpdate()"), 4);\r
157         AddItem(htiMainFrame, _T("WndProc()"), 4);\r
158         HTREEITEM htiView = AddItem(htiRoot, _T("CView"), 1);\r
159         AddItem(htiView, _T("CView()"), 3);\r
160         AddItem(htiView, _T("OnInitialUpdate()"), 4);\r
161         AddItem(htiView, _T("WndProc()"), 4);\r
162 \r
163         // Expand some tree-view items\r
164         Expand(htiRoot, TVE_EXPAND);\r
165         Expand(htiCTreeViewApp, TVE_EXPAND);\r
166 }\r
167 \r
168 HTREEITEM CViewTree::AddItem(HTREEITEM hParent, LPCTSTR szText, int iImage)\r
169 {\r
170         TVITEM tvi = {0};\r
171         tvi.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
172         tvi.iImage = iImage;\r
173         tvi.iSelectedImage = iImage;\r
174         tvi.pszText = (LPTSTR)szText;\r
175 \r
176         TVINSERTSTRUCT tvis = {0};\r
177         tvis.hParent = hParent;\r
178         tvis.item = tvi;\r
179 \r
180         return InsertItem(tvis);\r
181 }\r
182 \r
183 \r
184 ///////////////////////////////////////////////\r
185 // CViewText functions\r
186 void CViewText::OnInitialUpdate()\r
187 {\r
188         SetWindowText(_T("Text Edit Window\r\n\r\n\r\n\r\n You can type some text here ..."));\r
189 }\r
190 \r
191 void CViewText::PreCreate(CREATESTRUCT &cs)\r
192 {\r
193         cs.lpszClass = _T("EDIT");\r
194         cs.style = ES_MULTILINE|WS_CHILD;\r
195 }\r
196 \r

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