Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / MDIFrameSplitter / src / Files.cpp
1 //////////////////////////////////////////////\r
2 // Files.cpp - Definitions for CViewFiles, CContainFiles\r
3 //             and DockFiles classes\r
4 \r
5 #include "stdafx.h"\r
6 #include "Files.h"\r
7 #include "resource.h"\r
8 \r
9 \r
10 ///////////////////////////////////////////////\r
11 // CViewFiles functions\r
12 CViewFiles::CViewFiles() : m_himlSmall(0)\r
13 {\r
14 }\r
15 \r
16 CViewFiles::~CViewFiles()\r
17 {\r
18         if (IsWindow()) DeleteAllItems();\r
19         ImageList_Destroy(m_himlSmall);\r
20 }\r
21 \r
22 void CViewFiles::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         HBITMAP 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         ::DeleteObject(hbm);\r
30 \r
31         // Set the report style\r
32         DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);\r
33         SetWindowLongPtr(GWL_STYLE, (dwStyle & ~LVS_TYPEMASK) | LVS_REPORT);\r
34 \r
35         SetColumns();\r
36         InsertItems();\r
37 }\r
38 \r
39 int CViewFiles::AddItem(LPCTSTR szText, int nImage)\r
40 {\r
41         LVITEM lvi = {0};\r
42         lvi.mask = LVIF_TEXT|LVIF_IMAGE;\r
43         lvi.iImage = nImage;\r
44         lvi.pszText = (LPTSTR)szText;\r
45 \r
46         return InsertItem(lvi);\r
47 }\r
48 \r
49 void CViewFiles::SetColumns()\r
50 {\r
51         //empty the list\r
52         DeleteAllItems();\r
53 \r
54         //initialise the columns\r
55         LV_COLUMN lvColumn = {0};\r
56         lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;\r
57         lvColumn.fmt = LVCFMT_LEFT;\r
58         lvColumn.cx = 120;\r
59         TCHAR szString[3][20] = {_T("Name"), TEXT("Size"), _T("Type")};\r
60         for(int i = 0; i < 3; ++i)\r
61         {\r
62                 lvColumn.pszText = szString[i];\r
63                 InsertColumn(i, lvColumn);\r
64         }\r
65 }\r
66 \r
67 BOOL CViewFiles::SetSubItem(int nItem, int nSubItem, LPCTSTR szText)\r
68 {\r
69         LVITEM lvi1 = {0};\r
70         lvi1.mask = LVIF_TEXT;\r
71         lvi1.iItem = nItem;\r
72         lvi1.iSubItem = nSubItem;\r
73         lvi1.pszText = (LPTSTR)szText;\r
74         return (BOOL)SendMessage(LVM_SETITEM, 0L, (LPARAM)&lvi1);\r
75 }\r
76 \r
77 void CViewFiles::InsertItems()\r
78 {\r
79         // Add 4th item\r
80         int item = AddItem(_T("ListViewApp.h"), 2);\r
81         SetSubItem(item, 1, _T("1 KB"));\r
82         SetSubItem(item, 2, _T("C Header file"));\r
83 \r
84         // add 3rd item\r
85         item = AddItem(_T("ListViewApp.cpp"), 1);\r
86         SetSubItem(item, 1, _T("3 KB"));\r
87         SetSubItem(item, 2, _T("C++ Source file"));\r
88 \r
89         // add 2nd item\r
90         item = AddItem(_T("main.cpp"), 1);\r
91         SetSubItem(item, 1, _T("1 KB"));\r
92         SetSubItem(item, 2, _T("C++ Source file"));\r
93 \r
94         // add 1st item\r
95         item = AddItem(_T("ListView"), 0);\r
96         SetSubItem(item, 2, _T("Folder"));\r
97 }\r
98 \r
99 LRESULT CViewFiles::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
100 {\r
101         switch(uMsg)\r
102         {\r
103         case WM_DESTROY:\r
104                 {\r
105                         SetImageList(NULL, LVSIL_SMALL);\r
106                         break;\r
107                 }\r
108         }\r
109 \r
110         return WndProcDefault(uMsg, wParam, lParam);\r
111 }\r
112                         \r
113 \r
114 \r
115 ///////////////////////////////////////////////\r
116 // CContainFiles functions\r
117 CContainFiles::CContainFiles() \r
118 {\r
119         SetTabText(_T("FileView"));\r
120         SetTabIcon(IDI_FILEVIEW);\r
121         SetDockCaption (_T("File View - Docking container"));\r
122         SetView(m_ViewFiles);\r
123 }\r
124 \r
125 /////////////////////////////////////////////////\r
126 //  Definitions for the CDockFiles class\r
127 CDockFiles::CDockFiles() \r
128\r
129         SetView(m_Files); \r
130 }\r
131 \r
132 void CDockFiles::OnInitialUpdate()\r
133 {\r
134         // Set the width of the splitter bar\r
135         SetBarWidth(8);\r
136 }\r
137 \r
138 \r

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