X-Git-Url: https://git.ucc.asn.au/?p=matches%2Fhonours.git;a=blobdiff_plain;f=research%2Ftransmission_spectroscopy%2FTOF%2FWin32%2B%2B%2Fsamples%2FDockContainer%2Fsrc%2FFiles.cpp;fp=research%2Ftransmission_spectroscopy%2FTOF%2FWin32%2B%2B%2Fsamples%2FDockContainer%2Fsrc%2FFiles.cpp;h=8a277d325e59d81af8f6bf91b7aa3c9f689edaec;hp=0000000000000000000000000000000000000000;hb=70a96cca12cb006506461d26cd112bab179fe74c;hpb=8caf60af39689a3546074f0c68d14c3a2e28191e 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 index 00000000..8a277d32 --- /dev/null +++ b/research/transmission_spectroscopy/TOF/Win32++/samples/DockContainer/src/Files.cpp @@ -0,0 +1,138 @@ +////////////////////////////////////////////// +// Files.cpp - Definitions for CViewFiles, CContainFiles +// and DockFiles classes + +#include "stdafx.h" +#include "Files.h" +#include "resource.h" + + +/////////////////////////////////////////////// +// CViewFiles functions +CViewFiles::CViewFiles() : m_himlSmall(0) +{ +} + +CViewFiles::~CViewFiles() +{ + if (IsWindow()) DeleteAllItems(); + ImageList_Destroy(m_himlSmall); +} + +void CViewFiles::OnInitialUpdate() +{ + // Set the image lists + m_himlSmall = ImageList_Create(16, 15, ILC_COLOR32 | ILC_MASK, 1, 0); + HBITMAP hbm = LoadBitmap(MAKEINTRESOURCE(IDB_FILEVIEW)); + ImageList_AddMasked(m_himlSmall, hbm, RGB(255, 0, 255)); + SetImageList(m_himlSmall, LVSIL_SMALL); + ::DeleteObject(hbm); + + // Set the report style + DWORD dwStyle = (DWORD)GetWindowLongPtr(GWL_STYLE); + SetWindowLongPtr(GWL_STYLE, (dwStyle & ~LVS_TYPEMASK) | LVS_REPORT); + + SetColumns(); + InsertItems(); +} + +int CViewFiles::AddItem(LPCTSTR szText, int nImage) +{ + LVITEM lvi = {0}; + lvi.mask = LVIF_TEXT|LVIF_IMAGE; + lvi.iImage = nImage; + lvi.pszText = (LPTSTR)szText; + + return InsertItem(lvi); +} + +void CViewFiles::SetColumns() +{ + //empty the list + DeleteAllItems(); + + //initialise the columns + LV_COLUMN lvColumn = {0}; + lvColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; + lvColumn.fmt = LVCFMT_LEFT; + lvColumn.cx = 120; + TCHAR szString[3][20] = {_T("Name"), TEXT("Size"), _T("Type")}; + for(int i = 0; i < 3; ++i) + { + lvColumn.pszText = szString[i]; + InsertColumn(i, lvColumn); + } +} + +BOOL CViewFiles::SetSubItem(int nItem, int nSubItem, LPCTSTR szText) +{ + LVITEM lvi1 = {0}; + lvi1.mask = LVIF_TEXT; + lvi1.iItem = nItem; + lvi1.iSubItem = nSubItem; + lvi1.pszText = (LPTSTR)szText; + return (BOOL)SendMessage(LVM_SETITEM, 0L, (LPARAM)&lvi1); +} + +void CViewFiles::InsertItems() +{ + // Add 4th item + int item = AddItem(_T("ListViewApp.h"), 2); + SetSubItem(item, 1, _T("1 KB")); + SetSubItem(item, 2, _T("C Header file")); + + // add 3rd item + item = AddItem(_T("ListViewApp.cpp"), 1); + SetSubItem(item, 1, _T("3 KB")); + SetSubItem(item, 2, _T("C++ Source file")); + + // add 2nd item + item = AddItem(_T("main.cpp"), 1); + SetSubItem(item, 1, _T("1 KB")); + SetSubItem(item, 2, _T("C++ Source file")); + + // add 1st item + item = AddItem(_T("ListView"), 0); + SetSubItem(item, 2, _T("Folder")); +} + +LRESULT CViewFiles::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + switch(uMsg) + { + case WM_DESTROY: + { + SetImageList(NULL, LVSIL_SMALL); + break; + } + } + + return WndProcDefault(uMsg, wParam, lParam); +} + + + +/////////////////////////////////////////////// +// CContainFiles functions +CContainFiles::CContainFiles() +{ + SetTabText(_T("FileView")); + SetTabIcon(IDI_FILEVIEW); + SetDockCaption (_T("File View - Docking container")); + SetView(m_ViewFiles); +} + +///////////////////////////////////////////////// +// Definitions for the CDockFiles class +CDockFiles::CDockFiles() +{ + SetView(m_Files); +} + +void CDockFiles::OnInitialUpdate() +{ + // Set the width of the splitter bar + SetBarWidth(8); +} + +