The code which realizes full functionality ListView Control
in Control Panel has been added.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@435 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/winvnc/ControlPanel.cxx b/winvnc/ControlPanel.cxx
index 134cc21..fb379d6 100644
--- a/winvnc/ControlPanel.cxx
+++ b/winvnc/ControlPanel.cxx
@@ -63,15 +63,24 @@
void ControlPanel::UpdateListView(rfb::ListConnInfo* LCInfo)
{
+ getSelConnInfo();
DeleteAllLVItem(IDC_LIST_CONNECTIONS, handle);
- if(LCInfo->Empty()) return;
+
+ if(LCInfo->Empty())
+ return;
+
+ ListConn.Copy(LCInfo);
char* ItemString[3];
int i = 0;
- for (LCInfo->iBegin(); !LCInfo->iEnd(); LCInfo->iNext()) {
- LCInfo->iGetCharInfo(ItemString);
+ for (ListConn.iBegin(); !ListConn.iEnd(); ListConn.iNext()) {
+ ListConn.iGetCharInfo(ItemString);
InsertLVItem(IDC_LIST_CONNECTIONS, handle, i, ItemString, 3);
+ for (ListSelConn.iBegin(); !ListSelConn.iEnd(); ListSelConn.iNext()) {
+ if (ListSelConn.iGetConn() == ListConn.iGetConn())
+ SelectLVItem(IDC_LIST_CONNECTIONS, handle, i);
+ }
i++;
}
}
@@ -96,9 +105,16 @@
return FALSE;
}
-void ControlPanel::getSelConnInfo(std::list<DWORD>* conn, std::list<int>* status)
+void ControlPanel::getSelConnInfo()
{
-
+ int i = 0;
+ ListSelConn.Clear();
+ if(ListConn.Empty()) return;
+ for (ListConn.iBegin(); !ListConn.iEnd(); ListConn.iNext()) {
+ if (IsSelectedLVItem(IDC_LIST_CONNECTIONS, handle, i))
+ ListSelConn.iAdd(&ListConn);
+ i++;
+ }
}
ControlPanel::~ControlPanel()