From: Dennis Syrovatsky Date: Mon, 7 Nov 2005 08:46:23 +0000 (+0000) Subject: Added initialize method to FTListView class. X-Git-Tag: v0.0.90~384^2~454 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8a19ce4b49be0a6c4ec1eaa296aa5ca296db2aac;p=tigervnc.git Added initialize method to FTListView class. Deleted ListViewControl class as base class for FTListView class. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@381 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- diff --git a/vncviewer/FTListView.cxx b/vncviewer/FTListView.cxx index 162d7c1c..8b43ba5a 100644 --- a/vncviewer/FTListView.cxx +++ b/vncviewer/FTListView.cxx @@ -26,9 +26,10 @@ using namespace rfb; using namespace rfb::win32; -FTListView::FTListView(HWND hLV) +FTListView::FTListView(HWND hListView) { - m_hListView = hLV; + m_bInitialized = false; + m_hListView = hListView; m_fileInfo.free(); } @@ -39,9 +40,24 @@ FTListView::~FTListView() bool -FTListView::initialize() +FTListView::initialize(HINSTANCE hInst) { - return false; + if (m_bInitialized) return false; + + initImageList(hInst); + + RECT Rect; + GetClientRect(m_hListView, &Rect); + Rect.right -= GetSystemMetrics(SM_CXHSCROLL); + int xwidth0 = (int) (0.35 * Rect.right); + int xwidth1 = (int) (0.22 * Rect.right); + int xwidth2 = (int) (0.43 * Rect.right); + + addColumn("Name", 0, xwidth0, LVCFMT_LEFT); + addColumn("Size", 1, xwidth1, LVCFMT_RIGHT); + addColumn("Data", 2, xwidth2, LVCFMT_LEFT); + + return true; } void @@ -175,3 +191,17 @@ FTListView::initImageList(HINSTANCE hInst) ListView_SetImageList(m_hListView, m_hImageList, LVSIL_SMALL); } + +void +FTListView::addColumn(char *iText, int iOrder, int xWidth, int alignFmt) +{ + LVCOLUMN lvc; + lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_ORDER; + lvc.fmt = alignFmt; + lvc.iSubItem = iOrder; + lvc.pszText = iText; + lvc.cchTextMax = 32; + lvc.cx = xWidth; + lvc.iOrder = iOrder; + ListView_InsertColumn(m_hListView, iOrder, &lvc); +} diff --git a/vncviewer/FTListView.h b/vncviewer/FTListView.h index ec140153..5f4fd646 100644 --- a/vncviewer/FTListView.h +++ b/vncviewer/FTListView.h @@ -25,26 +25,25 @@ #define __RFB_WIN32_FTLISTVIEW_H__ #include +#include #include #include -#include #include namespace rfb { namespace win32{ - class FTListView : private ListViewControl + class FTListView { public: - FTListView(HWND hLV); + FTListView(HWND hListView); ~FTListView(); - bool initialize(); + bool initialize(HINSTANCE hInst); void onGetDispInfo(NMLVDISPINFO *di); void addItems(FileInfo *pFI); void deleteAllItems(); - void initImageList(HINSTANCE hInst); char *getActivateItemName(LPNMITEMACTIVATE lpnmia); int getSelectedItems(FileInfo *pFI); @@ -55,6 +54,11 @@ namespace rfb { HWND m_hListView; FileInfo m_fileInfo; HIMAGELIST m_hImageList; + + bool m_bInitialized; + + void addColumn(char *iText, int iOrder, int xWidth, int alignFmt); + void initImageList(HINSTANCE hInst); }; }