ARGH
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / MDIFrameDemo / src / MDIChildListView.cpp
1 //////////////////////////////////////////////\r
2 // MDIChildListView.cpp\r
3 //  Definitions for the CViewList and CMDIChildListView classes\r
4 \r
5 #include "stdafx.h"\r
6 #include "MDIChildListView.h"\r
7 #include "resource.h"\r
8 \r
9 \r
10 ///////////////////////////////////////////////\r
11 // CViewList functions\r
12 CViewList::CViewList() : m_himlSmall(0)\r
13 {\r
14 }\r
15 \r
16 CViewList::~CViewList()\r
17 {\r
18         if (IsWindow()) DeleteAllItems();\r
19         ImageList_Destroy(m_himlSmall);\r
20 }\r
21 \r
22 void CViewList::OnInitialUpdate()\r
23 {\r
24         // Set the image lists\r
25         m_himlSmall = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);\r
26         CBitmap hbm = LoadBitmap(MAKEINTRESOURCE(IDB_FILEVIEW));\r
27         ImageList_AddMasked(m_himlSmall, hbm, RGB(255, 0, 255));\r
28         SetImageList(m_himlSmall, LVSIL_SMALL);\r
29 \r
30         // Set the report style\r
31         DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);\r
32         SetWindowLongPtr(GWL_STYLE, (dwStyle & ~LVS_TYPEMASK) | LVS_REPORT);\r
33 \r
34         SetColumns();\r
35         InsertItems();\r
36 }\r
37 \r
38 int CViewList::AddItem(LPCTSTR szText, int nImage)\r
39 {\r
40         LVITEM lvi = {0};\r
41         lvi.mask = LVIF_TEXT|LVIF_IMAGE;\r
42         lvi.iImage = nImage;\r
43         lvi.pszText = (LPTSTR)szText;\r
44 \r
45         return InsertItem(lvi);\r
46 }\r
47 \r
48 void CViewList::SetColumns()\r
49 {\r
50         //empty the list\r
51         DeleteAllItems();\r
52 \r
53         //initialise the columns\r
54         LV_COLUMN lvColumn = {0};\r
55         lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;\r
56         lvColumn.fmt = LVCFMT_LEFT;\r
57         lvColumn.cx = 120;\r
58         TCHAR szString[3][20] = {TEXT("Name"), TEXT("Size"), TEXT("Type")};\r
59         for(int i = 0; i < 3; ++i)\r
60         {\r
61                 lvColumn.pszText = szString[i];\r
62                 InsertColumn(i, lvColumn);\r
63         }\r
64 }\r
65 \r
66 BOOL CViewList::SetSubItem(int nItem, int nSubItem, LPCTSTR szText)\r
67 {\r
68         LVITEM lvi1 = {0};\r
69         lvi1.mask = LVIF_TEXT;\r
70         lvi1.iItem = nItem;\r
71         lvi1.iSubItem = nSubItem;\r
72         lvi1.pszText = (LPTSTR)szText;\r
73         return (BOOL)SendMessage(LVM_SETITEM, 0L, (LPARAM)&lvi1);\r
74 }\r
75 \r
76 void CViewList::InsertItems()\r
77 {\r
78         // Add 4th item\r
79         int item = AddItem(_T("ListViewApp.h"), 2);\r
80         SetSubItem(item, 1, _T("1 KB"));\r
81         SetSubItem(item, 2, _T("C Header file"));\r
82 \r
83         // add 3rd item\r
84         item = AddItem(_T("ListViewApp.cpp"), 1);\r
85         SetSubItem(item, 1, _T("3 KB"));\r
86         SetSubItem(item, 2, _T("C++ Source file"));\r
87 \r
88         // add 2nd item\r
89         item = AddItem(_T("main.cpp"), 1);\r
90         SetSubItem(item, 1, _T("1 KB"));\r
91         SetSubItem(item, 2, _T("C++ Source file"));\r
92 \r
93         // add 1st item\r
94         item = AddItem(_T("ListView"), 0);\r
95         SetSubItem(item, 2, _T("Folder"));\r
96 }\r
97 \r
98 LRESULT CViewList::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
99 {\r
100         switch(uMsg)\r
101         {\r
102         case WM_DESTROY:\r
103                 {\r
104                         SetImageList(NULL, LVSIL_SMALL);\r
105                         break;\r
106                 }\r
107         }\r
108 \r
109         return WndProcDefault(uMsg, wParam, lParam);\r
110 }\r
111 \r
112 ///////////////////////////////////////////////\r
113 // CMDIChildListView functions\r
114 CMDIChildListView::CMDIChildListView()\r
115 {\r
116         HINSTANCE hResource = GetApp()->GetResourceHandle();\r
117         HMENU hChildMenu = LoadMenu(hResource, _T("MdiMenuList"));\r
118         SetHandles(hChildMenu, NULL);\r
119         SetView(m_ListView);\r
120 }\r
121 \r
122 CMDIChildListView::~CMDIChildListView()\r
123 {\r
124 }\r
125 \r
126 void CMDIChildListView::OnCreate()\r
127 {\r
128         m_ListView.Create(this);\r
129 }\r
130 \r
131 void CMDIChildListView::OnInitialUpdate()\r
132 {\r
133         SetWindowText(_T("List-View Window"));\r
134         SetIconLarge(IDI_FILES);\r
135         SetIconSmall(IDI_FILES);\r
136 }\r
137 \r

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