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();
}
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
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);
+}
#define __RFB_WIN32_FTLISTVIEW_H__
#include <windows.h>
+#include <commctrl.h>
#include <rfb/FileInfo.h>
#include <rfb_win32/FolderManager.h>
-#include <rfb_win32/ListViewControl.h>
#include <vncviewer/resource.h>
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);
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);
};
}