Commit before breaking everything
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / DockContainer / src / Files.cpp
diff --git a/research/transmission_spectroscopy/TOF/Win32++/samples/DockContainer/src/Files.cpp b/research/transmission_spectroscopy/TOF/Win32++/samples/DockContainer/src/Files.cpp
new file mode 100644 (file)
index 0000000..8a277d3
--- /dev/null
@@ -0,0 +1,138 @@
+//////////////////////////////////////////////\r
+// Files.cpp - Definitions for CViewFiles, CContainFiles\r
+//             and DockFiles classes\r
+\r
+#include "stdafx.h"\r
+#include "Files.h"\r
+#include "resource.h"\r
+\r
+\r
+///////////////////////////////////////////////\r
+// CViewFiles functions\r
+CViewFiles::CViewFiles() : m_himlSmall(0)\r
+{\r
+}\r
+\r
+CViewFiles::~CViewFiles()\r
+{\r
+       if (IsWindow()) DeleteAllItems();\r
+       ImageList_Destroy(m_himlSmall);\r
+}\r
+\r
+void CViewFiles::OnInitialUpdate()\r
+{\r
+       // Set the image lists\r
+       m_himlSmall = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0);\r
+       HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_FILEVIEW));\r
+       ImageList_AddMasked(m_himlSmall, hbm, RGB(255, 0, 255));\r
+       SetImageList(m_himlSmall, LVSIL_SMALL);\r
+       ::DeleteObject(hbm);\r
+\r
+       // Set the report style\r
+       DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE);\r
+       SetWindowLongPtr(GWL_STYLE, (dwStyle & ~LVS_TYPEMASK) | LVS_REPORT);\r
+\r
+       SetColumns();\r
+       InsertItems();\r
+}\r
+\r
+int CViewFiles::AddItem(LPCTSTR szText, int nImage)\r
+{\r
+       LVITEM lvi = {0};\r
+       lvi.mask = LVIF_TEXT|LVIF_IMAGE;\r
+       lvi.iImage = nImage;\r
+       lvi.pszText = (LPTSTR)szText;\r
+\r
+       return InsertItem(lvi);\r
+}\r
+\r
+void CViewFiles::SetColumns()\r
+{\r
+       //empty the list\r
+       DeleteAllItems();\r
+\r
+       //initialise the columns\r
+       LV_COLUMN lvColumn = {0};\r
+       lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;\r
+       lvColumn.fmt = LVCFMT_LEFT;\r
+       lvColumn.cx = 120;\r
+       TCHAR szString[3][20] = {_T("Name"), TEXT("Size"), _T("Type")};\r
+       for(int i = 0; i < 3; ++i)\r
+       {\r
+               lvColumn.pszText = szString[i];\r
+               InsertColumn(i, lvColumn);\r
+       }\r
+}\r
+\r
+BOOL CViewFiles::SetSubItem(int nItem, int nSubItem, LPCTSTR szText)\r
+{\r
+       LVITEM lvi1 = {0};\r
+       lvi1.mask = LVIF_TEXT;\r
+       lvi1.iItem = nItem;\r
+       lvi1.iSubItem = nSubItem;\r
+       lvi1.pszText = (LPTSTR)szText;\r
+       return (BOOL)SendMessage(LVM_SETITEM, 0L, (LPARAM)&lvi1);\r
+}\r
+\r
+void CViewFiles::InsertItems()\r
+{\r
+       // Add 4th item\r
+       int item = AddItem(_T("ListViewApp.h"), 2);\r
+       SetSubItem(item, 1, _T("1 KB"));\r
+       SetSubItem(item, 2, _T("C Header file"));\r
+\r
+       // add 3rd item\r
+       item = AddItem(_T("ListViewApp.cpp"), 1);\r
+       SetSubItem(item, 1, _T("3 KB"));\r
+       SetSubItem(item, 2, _T("C++ Source file"));\r
+\r
+       // add 2nd item\r
+       item = AddItem(_T("main.cpp"), 1);\r
+       SetSubItem(item, 1, _T("1 KB"));\r
+       SetSubItem(item, 2, _T("C++ Source file"));\r
+\r
+       // add 1st item\r
+       item = AddItem(_T("ListView"), 0);\r
+       SetSubItem(item, 2, _T("Folder"));\r
+}\r
+\r
+LRESULT CViewFiles::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)\r
+{\r
+       switch(uMsg)\r
+       {\r
+       case WM_DESTROY:\r
+               {\r
+                       SetImageList(NULL, LVSIL_SMALL);\r
+                       break;\r
+               }\r
+       }\r
+\r
+       return WndProcDefault(uMsg, wParam, lParam);\r
+}\r
+                       \r
+\r
+\r
+///////////////////////////////////////////////\r
+// CContainFiles functions\r
+CContainFiles::CContainFiles() \r
+{\r
+       SetTabText(_T("FileView"));\r
+       SetTabIcon(IDI_FILEVIEW);\r
+       SetDockCaption (_T("File View - Docking container"));\r
+       SetView(m_ViewFiles);\r
+}\r
+\r
+/////////////////////////////////////////////////\r
+//  Definitions for the CDockFiles class\r
+CDockFiles::CDockFiles() \r
+{ \r
+       SetView(m_Files); \r
+}\r
+\r
+void CDockFiles::OnInitialUpdate()\r
+{\r
+       // Set the width of the splitter bar\r
+       SetBarWidth(8);\r
+}\r
+\r
+\r

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