blob: 12e04003aa770f83ca107f32b91c8585849ab3fd [file] [log] [blame]
Oleg Sheikinf5049ad2005-07-01 12:41:15 +00001// ListViewControl.cxx: implementation of the ListViewControl class.
2//
3//////////////////////////////////////////////////////////////////////
4#include <tchar.h>
5#include "ListViewControl.h"
6#include "commctrl.h"
7//////////////////////////////////////////////////////////////////////
8// Construction/Destruction
9//////////////////////////////////////////////////////////////////////
10using namespace rfb;
11using namespace rfb::win32;
12
13ListViewControl::ListViewControl()
14{
15}
16
Oleg Sheikinff43bfd2005-12-07 08:02:52 +000017bool ListViewControl::IsSelectedLVItem(DWORD idListView,
Oleg Sheikin14757372005-07-01 13:31:14 +000018 HWND hDlg, int numberItem)
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000019{
Oleg Sheikin14757372005-07-01 13:31:14 +000020 return (ListView_GetItemState(GetDlgItem(hDlg, idListView),
21 numberItem, LVIS_SELECTED) == LVIS_SELECTED);
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000022}
23
Oleg Sheikinff43bfd2005-12-07 08:02:52 +000024void ListViewControl::SelectLVItem(DWORD idListView, HWND hDlg, int numberItem)
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000025{
Oleg Sheikin14757372005-07-01 13:31:14 +000026 ListView_SetItemState(GetDlgItem(hDlg, idListView),
27 numberItem, LVIS_SELECTED, LVIS_SELECTED);
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000028}
29
30BOOL ListViewControl::InitLVColumns(DWORD idListView, HWND hDlg, int width, int columns,
Oleg Sheikin14757372005-07-01 13:31:14 +000031 TCHAR *title[], DWORD mask, DWORD LVStyle, DWORD format)
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000032{
Oleg Sheikin14757372005-07-01 13:31:14 +000033 ListView_SetExtendedListViewStyle(GetDlgItem(hDlg, idListView), LVStyle);
34 TCHAR szText[256];
35 LVCOLUMN lvc;
36 int iCol;
37
38 lvc.mask = mask;
39
40 for (iCol = 0; iCol < columns; iCol++) {
41 lvc.iSubItem = iCol;
42 lvc.pszText = szText;
43 lvc.cx = width;
44 lvc.fmt = format;
45
46 _tcscpy(szText, title[iCol]);
47 if (ListView_InsertColumn(GetDlgItem(hDlg, idListView), iCol, &lvc) == -1)
48 return FALSE;
49 }
50 return TRUE;
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000051}
52
53BOOL ListViewControl::InsertLVItem(DWORD idListView, HWND hDlg, int number, TCHAR * texts[],
Oleg Sheikin14757372005-07-01 13:31:14 +000054 int columns)
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000055{
Oleg Sheikin14757372005-07-01 13:31:14 +000056 int i;
57 LVITEM lvI;
58 lvI.mask = LVIF_TEXT| LVIF_STATE;
59 lvI.state = 0;
60 lvI.stateMask = 0;
61 lvI.iItem = number;
62 lvI.iSubItem = 0;
63 lvI.pszText = texts[0];
64
65 if(ListView_InsertItem(GetDlgItem(hDlg, idListView), &lvI) == -1)
66 return NULL;
67
68 for (i =1; i < columns; i++) {
69 SetLVItemText(
70 idListView, hDlg,
71 number, i, texts[i]);
72 }
73 return TRUE;
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000074}
75
76void ListViewControl::SetLVItemText(DWORD idListView, HWND hDlg, int numberItem,
Oleg Sheikin14757372005-07-01 13:31:14 +000077 int namberColumn, TCHAR * text)
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000078{
Oleg Sheikin14757372005-07-01 13:31:14 +000079 ListView_SetItemText(
80 GetDlgItem(hDlg, idListView),
81 numberItem, namberColumn, text);
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000082}
83
84void ListViewControl::GetLVItemText(DWORD idListView, HWND hDlg, int numberItem,
Oleg Sheikin14757372005-07-01 13:31:14 +000085 int namberColumn, TCHAR * text)
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000086{
87 ListView_GetItemText(GetDlgItem(hDlg, idListView), numberItem,
88 namberColumn, text, 256);
89}
90
91void ListViewControl::DeleteLVItem(DWORD idListView, HWND hDlg, int number)
92{
Oleg Sheikin14757372005-07-01 13:31:14 +000093 ListView_DeleteItem(GetDlgItem(hDlg, idListView), number);
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000094}
95
96void ListViewControl::DeleteAllLVItem(DWORD idListView, HWND hDlg)
97{
Oleg Sheikin14757372005-07-01 13:31:14 +000098 ListView_DeleteAllItems(GetDlgItem(hDlg, idListView));
Oleg Sheikinf5049ad2005-07-01 12:41:15 +000099}
Oleg Sheikin14757372005-07-01 13:31:14 +0000100
Oleg Sheikinf5049ad2005-07-01 12:41:15 +0000101ListViewControl::~ListViewControl()
102{
103}