Class ListViewControlCon is added in library rfb_win32.
Class ControlPanel is added in the project winvnc.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@298 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfb_win32/ListViewControl.cxx b/rfb_win32/ListViewControl.cxx
new file mode 100644
index 0000000..3240d8b
--- /dev/null
+++ b/rfb_win32/ListViewControl.cxx
@@ -0,0 +1,102 @@
+// ListViewControl.cxx: implementation of the ListViewControl class.
+//
+//////////////////////////////////////////////////////////////////////
+#include <tchar.h>
+#include "ListViewControl.h"
+#include "commctrl.h"
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+using namespace rfb;
+using namespace rfb::win32;
+
+ListViewControl::ListViewControl()
+{
+}
+
+int ListViewControl::IsSelectedLVItem(DWORD idListView,
+																			HWND hDlg, int numberItem)
+{	
+	return (ListView_GetItemState(GetDlgItem(hDlg, idListView),
+																numberItem, LVIS_SELECTED) == LVIS_SELECTED);
+}
+
+void SelectLVItem(DWORD idListView, HWND hDlg, int numberItem)
+{
+	ListView_SetItemState(GetDlgItem(hDlg, idListView),
+		                      numberItem, LVIS_SELECTED, LVIS_SELECTED);
+}
+
+BOOL ListViewControl::InitLVColumns(DWORD idListView, HWND hDlg, int width, int columns,
+							TCHAR *title[], DWORD mask, DWORD LVStyle, DWORD format)
+{
+	ListView_SetExtendedListViewStyle(GetDlgItem(hDlg, idListView), LVStyle);
+	TCHAR szText[256];      
+	LVCOLUMN lvc; 
+	int iCol;
+	
+	lvc.mask = mask; 
+	
+	for (iCol = 0; iCol < columns; iCol++) { 
+		lvc.iSubItem = iCol;
+		lvc.pszText = szText;	
+		lvc.cx = width;           
+		lvc.fmt = format;
+		
+		_tcscpy(szText, title[iCol]); 
+		if (ListView_InsertColumn(GetDlgItem(hDlg, idListView), iCol, &lvc) == -1) 
+			return FALSE; 
+	} 
+	return TRUE; 
+}
+
+BOOL ListViewControl::InsertLVItem(DWORD idListView, HWND hDlg, int number,  TCHAR * texts[],
+							int columns)
+{
+	int i;
+	LVITEM lvI;
+	lvI.mask = LVIF_TEXT| LVIF_STATE; 
+	lvI.state = 0; 
+	lvI.stateMask = 0; 
+	lvI.iItem = number; 
+	lvI.iSubItem = 0; 
+	lvI.pszText = texts[0]; 									  
+	
+	if(ListView_InsertItem(GetDlgItem(hDlg, idListView), &lvI) == -1)
+		return NULL;
+	
+	for (i =1; i < columns; i++) {	
+		SetLVItemText(
+			idListView, hDlg, 
+			number, i, texts[i]);
+	}
+	return TRUE;
+}
+
+void ListViewControl::SetLVItemText(DWORD idListView, HWND hDlg, int numberItem,
+							int namberColumn, TCHAR * text)
+{
+	ListView_SetItemText(
+			GetDlgItem(hDlg, idListView), 
+			numberItem, namberColumn, text);
+}
+
+void ListViewControl::GetLVItemText(DWORD idListView, HWND hDlg, int numberItem,
+							int namberColumn, TCHAR * text)
+{
+	 ListView_GetItemText(GetDlgItem(hDlg, idListView), numberItem,
+							namberColumn, text, 256);
+}
+
+void ListViewControl::DeleteLVItem(DWORD idListView, HWND hDlg, int number)
+{
+	ListView_DeleteItem(GetDlgItem(hDlg, idListView), number);
+}
+
+void ListViewControl::DeleteAllLVItem(DWORD idListView, HWND hDlg)
+{
+	ListView_DeleteAllItems(GetDlgItem(hDlg, idListView));
+}
+ListViewControl::~ListViewControl()
+{
+}
diff --git a/rfb_win32/ListViewControl.h b/rfb_win32/ListViewControl.h
new file mode 100644
index 0000000..fa17199
--- /dev/null
+++ b/rfb_win32/ListViewControl.h
@@ -0,0 +1,35 @@
+// ListViewControl.h: interface for the ListViewControl class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#ifndef AFX_LISTVIEWCONTROL_H__
+#define AFX_LISTVIEWCONTROL_H__
+
+#include <windows.h>
+#include "commctrl.h"
+
+namespace rfb {
+
+  namespace win32 {
+		class ListViewControl  
+		{
+		public:
+			ListViewControl();
+			int IsSelectedLVItem(DWORD idListView, HWND hDlg, int numberItem);
+			void SelectLVItem(DWORD idListView, HWND hDlg, int numberItem);
+			BOOL InitLVColumns(DWORD idListView, HWND hDlg, int width, int columns,
+							TCHAR * title[], DWORD mask, DWORD style, DWORD format);
+			BOOL InsertLVItem(DWORD idListView, HWND hDlg, int number,  TCHAR * texts[],
+							int columns);
+			void SetLVItemText(DWORD idListView, HWND hDlg, int numberItem,
+							int namberColumn, TCHAR * text);
+			void GetLVItemText(DWORD idListView, HWND hDlg, int numberItem,
+							int namberColumn, TCHAR * text);
+			void DeleteLVItem(DWORD idListView, HWND hDlg, int number);
+			void DeleteAllLVItem(DWORD idListView, HWND hDlg);
+			virtual ~ListViewControl();	
+		};
+  };
+};
+
+#endif;
\ No newline at end of file
diff --git a/rfb_win32/rfb_win32.dsp b/rfb_win32/rfb_win32.dsp
index 8217b59..9d8ceea 100644
--- a/rfb_win32/rfb_win32.dsp
+++ b/rfb_win32/rfb_win32.dsp
@@ -150,6 +150,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=.\ListViewControl.cxx

+# End Source File

+# Begin Source File

+

 SOURCE=.\MsgWindow.cxx

 # End Source File

 # Begin Source File

@@ -266,6 +270,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=.\ListViewControl.h

+# End Source File

+# Begin Source File

+

 SOURCE=.\MsgWindow.h

 # End Source File

 # Begin Source File

diff --git a/winvnc/ControlPanel.cxx b/winvnc/ControlPanel.cxx
new file mode 100644
index 0000000..8162068
--- /dev/null
+++ b/winvnc/ControlPanel.cxx
@@ -0,0 +1,93 @@
+// ControlPanel.cxx: implementation of the ControlPanel class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "ControlPanel.h"
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+//using namespace rfb_win32;
+using namespace winvnc;
+
+bool ControlPanel::showDialog()
+{
+	return Dialog::showDialog(MAKEINTRESOURCE(IDD_CONTROL_PANEL), NULL);
+}
+
+void ControlPanel::initDialog()
+{
+	TCHAR *ColumnsStrings[] = {
+    "IP address",
+    "Time connected",
+    "Status"
+  };
+	InitLVColumns(IDC_LIST_CONNECTIONS, handle, 120, 3, ColumnsStrings,
+								LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM,
+								LVS_EX_FULLROWSELECT, LVCFMT_LEFT);
+}
+
+bool ControlPanel::onCommand(int cmd)
+{
+	 switch (cmd) {
+  case IDC_PROPERTIES:
+    SendMessage(m_hSTIcon, WM_COMMAND, ID_OPTIONS, 0);
+    return false;
+  case IDC_ADD_CLIENT:
+    SendMessage(m_hSTIcon, WM_COMMAND, ID_CONNECT, 0);
+    return false;
+  case IDC_KILL_SEL_CLIENT:
+    {
+      
+      return false;
+    }
+  case IDC_KILL_ALL:
+    {
+      m_server->disconnectClients();
+      return false;
+    }
+  case IDC_DISABLE_CLIENTS:
+    {     
+      
+      return false;
+    }
+  }
+  return false;
+
+}
+
+void ControlPanel::UpdateListView()
+{
+
+}
+
+BOOL ControlPanel::dialogProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	switch (msg) {
+  case WM_INITDIALOG:
+    handle = hwnd;
+    initDialog();
+    return TRUE;
+  case WM_COMMAND:
+    switch (LOWORD(wParam)) {
+    case IDCANCEL:
+      handle = NULL;
+      EndDialog(hwnd, 0);
+      return TRUE;
+    default:
+      return onCommand(LOWORD(wParam));
+    }
+  }
+  return FALSE;
+}
+
+void ControlPanel::getSelectedConn(std::list<network::Socket*>* selsockets)
+{
+
+}
+
+ControlPanel::~ControlPanel()
+{
+
+}
diff --git a/winvnc/ControlPanel.h b/winvnc/ControlPanel.h
new file mode 100644
index 0000000..ed761ea
--- /dev/null
+++ b/winvnc/ControlPanel.h
@@ -0,0 +1,43 @@
+// ControlPanel.h: interface for the ControlPanel class.
+//
+//////////////////////////////////////////////////////////////////////
+
+#ifndef AFX_CONTROLPANEL_H__
+#define AFX_CONTROLPANEL_H__
+
+
+#pragma once
+
+
+#include <list>
+
+#include <winvnc/VNCServerWin32.h>
+#include <winvnc/resource.h>
+#include <rfb_win32/Dialog.h>
+#include <rfb_win32/ListViewControl.h>
+#include <rfb_win32/Win32Util.h>
+
+namespace winvnc {
+
+  class ControlPanel : rfb::win32::Dialog, rfb::win32::ListViewControl {
+  public:
+	ControlPanel(VNCServerWin32 * server, HWND hSTIcon) : Dialog(GetModuleHandle(0)), ListViewControl(){
+		m_server = server;
+		m_hSTIcon = hSTIcon;
+	};
+    virtual bool showDialog();
+    virtual void initDialog();
+    virtual bool onCommand(int cmd);
+    void UpdateListView();
+    HWND GetHandle() {return handle;};
+    ~ControlPanel();
+  protected: 
+    virtual BOOL dialogProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+    void getSelectedConn(std::list<network::Socket*>* selsockets);
+		VNCServerWin32 * m_server;
+		std::list<network::Socket*> sockets;
+		HWND m_hSTIcon;
+  };
+};
+
+#endif  
\ No newline at end of file
diff --git a/winvnc/STrayIcon.cxx b/winvnc/STrayIcon.cxx
index 7cfea3c..448f08f 100644
--- a/winvnc/STrayIcon.cxx
+++ b/winvnc/STrayIcon.cxx
@@ -29,6 +29,7 @@
 #include <rfb_win32/Win32Util.h>
 #include <rfb_win32/Service.h>
 #include <rfb_win32/CurrentUser.h>
+#include <winvnc/ControlPanel.h>
 
 using namespace rfb;
 using namespace win32;
@@ -70,6 +71,7 @@
     SetTimer(getHandle(), 1, 3000, 0);
     PostMessage(getHandle(), WM_TIMER, 1, 0);
     PostMessage(getHandle(), WM_SET_TOOLTIP, 0, 0);
+    CPanel = new ControlPanel(&thread.server, getHandle());
   }
 
   virtual LRESULT processMessage(UINT msg, WPARAM wParam, LPARAM lParam) {
@@ -82,7 +84,7 @@
 
         switch (lParam) {
         case WM_LBUTTONDBLCLK:
-          SendMessage(getHandle(), WM_COMMAND, allowOptions ? ID_OPTIONS : ID_ABOUT, 0);
+          SendMessage(getHandle(), WM_COMMAND, ID_CONTR0L_PANEL, 0);
           break;
         case WM_RBUTTONUP:
           HMENU menu = LoadMenu(GetModuleHandle(0), MAKEINTRESOURCE(thread.menu));
@@ -90,7 +92,7 @@
 
 
           // Default item is Options, if available, or About if not
-          SetMenuDefaultItem(trayMenu, allowOptions ? ID_OPTIONS : ID_ABOUT, FALSE);
+          SetMenuDefaultItem(trayMenu, ID_CONTR0L_PANEL, FALSE);
           
           // Enable/disable options as required
           EnableMenuItem(trayMenu, ID_OPTIONS, (!allowOptions ? MF_GRAYED : MF_ENABLED) | MF_BYCOMMAND);
@@ -114,6 +116,11 @@
       // Handle tray icon menu commands
     case WM_COMMAND:
       switch (LOWORD(wParam)) {
+			case ID_CONTR0L_PANEL:
+				{
+					CPanel->showDialog();
+				}
+		  break;
       case ID_OPTIONS:
         {
           CurrentUserToken token;
@@ -194,6 +201,7 @@
   LaunchProcess vncConfig;
   LaunchProcess vncConnect;
   STrayIconThread& thread;
+  ControlPanel * CPanel;
 };
 
 
diff --git a/winvnc/resource.h b/winvnc/resource.h
index 81c89e2..b9c0e04 100644
--- a/winvnc/resource.h
+++ b/winvnc/resource.h
@@ -9,6 +9,7 @@
 #define IDD_ABOUT                       104
 #define IDI_CONNECTED                   105
 #define IDR_VNCVIEWER_JAR               106
+#define IDD_CONTROL_PANEL               106
 #define IDD_QUERY_CONNECT               107
 #define IDD_ADD_NEW_CLIENT              108
 #define IDC_DESCRIPTION                 1000
@@ -19,19 +20,31 @@
 #define IDC_QUERY_USER                  1009
 #define IDC_QUERY_HOST                  1010
 #define IDC_HOST                        1011
-#define ID_OPTIONS                      40001
+#define IDC_LIST_CONNECTIONS            1012
+#define IDC_STATIC_KLIENTS_LIST         1013
+#define IDC_STATIC_SELECTED_KLIENTS     1014
+#define IDC_VIEW_ONLY                   1015
+#define IDC_FULL_CONTROL                1016
+#define IDC_STOP_UPDATE                 1017
+#define IDC_KILL_SEL_CLIENT             1018
+#define IDC_PROPERTIES                  1019
+#define IDC_ADD_CLIENT                  1020
+#define IDC_KILL_ALL                    1021
+#define IDC_DISABLE_CLIENTS             1022
+#define ID_CONTR0L_PANEL                40001
 #define ID_CLOSE                        40002
 #define ID_ABOUT                        40003
 #define ID_DISCONNECT                   40004
 #define ID_CONNECT                      40005
+#define ID_OPTIONS                      40006
 
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        109
-#define _APS_NEXT_COMMAND_VALUE         40006
-#define _APS_NEXT_CONTROL_VALUE         1012
+#define _APS_NEXT_COMMAND_VALUE         40007
+#define _APS_NEXT_CONTROL_VALUE         1024
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif
diff --git a/winvnc/winvnc.dsp b/winvnc/winvnc.dsp
index 69ac296..9111851 100644
--- a/winvnc/winvnc.dsp
+++ b/winvnc/winvnc.dsp
@@ -137,6 +137,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=.\ControlPanel.cxx

+# End Source File

+# Begin Source File

+

 SOURCE=.\JavaViewer.cxx

 # End Source File

 # Begin Source File

@@ -173,6 +177,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=.\ControlPanel.h

+# End Source File

+# Begin Source File

+

 SOURCE=.\JavaViewer.h

 # End Source File

 # Begin Source File

diff --git a/winvnc/winvnc.rc b/winvnc/winvnc.rc
index 3470205..61cf8a6 100644
--- a/winvnc/winvnc.rc
+++ b/winvnc/winvnc.rc
@@ -13,6 +13,80 @@
 #undef APSTUDIO_READONLY_SYMBOLS
 
 /////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_CONTROL_PANEL DIALOG DISCARDABLE  0, 0, 267, 238
+STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_VISIBLE | WS_CAPTION | 
+    WS_SYSMENU
+CAPTION "Control Panel"
+FONT 8, "MS Sans Serif"
+BEGIN
+    CONTROL         "List1",IDC_LIST_CONNECTIONS,"SysListView32",LVS_REPORT | 
+                    LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | 
+                    WS_BORDER | WS_TABSTOP,7,25,253,76
+    LTEXT           "Authorised clients list",IDC_STATIC_KLIENTS_LIST,87,7,
+                    74,11,SS_CENTERIMAGE
+    GROUPBOX        "Control of selected clients",
+                    IDC_STATIC_SELECTED_KLIENTS,7,108,124,103
+    PUSHBUTTON      "View-only",IDC_VIEW_ONLY,13,121,111,14
+    PUSHBUTTON      "Full control ",IDC_FULL_CONTROL,13,145,112,14
+    PUSHBUTTON      "Stop updating",IDC_STOP_UPDATE,13,167,111,14
+    PUSHBUTTON      "Kill Clients",IDC_KILL_SEL_CLIENT,13,190,111,14
+    PUSHBUTTON      "Properties",IDC_PROPERTIES,144,121,111,14
+    PUSHBUTTON      "Add New Client",IDC_ADD_CLIENT,144,145,111,14
+    PUSHBUTTON      "Kill All Clients",IDC_KILL_ALL,144,167,111,14
+    CONTROL         "Disable New Clients",IDC_DISABLE_CLIENTS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,144,191,111,13
+    PUSHBUTTON      "Close",IDCANCEL,144,217,111,14
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE 
+BEGIN
+    IDD_CONTROL_PANEL, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 260
+        VERTGUIDE, 13
+        VERTGUIDE, 124
+        VERTGUIDE, 144
+        VERTGUIDE, 255
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 231
+        HORZGUIDE, 121
+        HORZGUIDE, 135
+        HORZGUIDE, 145
+        HORZGUIDE, 159
+        HORZGUIDE, 181
+        HORZGUIDE, 191
+        HORZGUIDE, 204
+        HORZGUIDE, 217
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
 // English (U.K.) resources
 
 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
@@ -21,6 +95,105 @@
 #pragma code_page(1252)
 #endif //_WIN32
 
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUT DIALOG DISCARDABLE  0, 0, 249, 92
+STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_CAPTION | 
+    WS_SYSMENU
+CAPTION "About VNC Server for Windows"
+FONT 8, "MS Sans Serif"
+BEGIN
+    DEFPUSHBUTTON   "OK",IDOK,195,70,47,15
+    ICON            IDI_ICON,IDC_STATIC,7,7,20,20
+    LTEXT           ">appname<",IDC_DESCRIPTION,40,7,125,18
+    LTEXT           ">version<",IDC_VERSION,165,7,77,18
+    LTEXT           ">buildtime<",IDC_BUILDTIME,40,25,202,15
+    LTEXT           ">copyright<",IDC_COPYRIGHT,40,40,202,15
+    LTEXT           "See http://www.tightvnc.com for more information on TightVNC.",
+                    IDC_STATIC,40,55,202,15
+END
+
+IDD_QUERY_CONNECT DIALOG DISCARDABLE  0, 0, 164, 93
+STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_CAPTION | 
+    WS_SYSMENU
+CAPTION "VNC Server : Accept Connection?"
+FONT 8, "MS Sans Serif"
+BEGIN
+    DEFPUSHBUTTON   "&Reject",IDCANCEL,105,72,52,14
+    PUSHBUTTON      "&Accept",IDOK,7,72,53,14
+    RTEXT           "User:",IDC_STATIC,7,10,28,15,SS_CENTERIMAGE
+    RTEXT           "Host:",IDC_STATIC,7,30,28,15,SS_CENTERIMAGE
+    CTEXT           "Seconds until automatic reject:",IDC_STATIC,7,50,113,15,
+                    SS_CENTERIMAGE
+    LTEXT           "-",IDC_QUERY_COUNTDOWN,125,50,32,15,SS_CENTERIMAGE
+    LTEXT           "-",IDC_QUERY_USER,40,10,117,15,SS_CENTERIMAGE
+    LTEXT           "-",IDC_QUERY_HOST,40,30,117,15,SS_CENTERIMAGE
+END
+
+IDD_ADD_NEW_CLIENT DIALOG DISCARDABLE  0, 0, 183, 53
+STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_VISIBLE | 
+    WS_CAPTION | WS_SYSMENU
+CAPTION "VNC Server : Add New Client"
+FONT 8, "MS Sans Serif"
+BEGIN
+    EDITTEXT        IDC_HOST,70,10,105,15,ES_AUTOHSCROLL
+    DEFPUSHBUTTON   "OK",IDOK,70,32,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,125,32,50,14
+    ICON            IDI_ICON,IDC_STATIC,7,10,21,20,SS_REALSIZEIMAGE
+    CONTROL         "Viewer:",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | 
+                    SS_CENTERIMAGE | WS_GROUP,35,10,30,15
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE 
+BEGIN
+    IDD_QUERY_CONNECT, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 157
+        VERTGUIDE, 35
+        VERTGUIDE, 40
+        VERTGUIDE, 60
+        VERTGUIDE, 120
+        VERTGUIDE, 125
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 86
+        HORZGUIDE, 10
+        HORZGUIDE, 25
+        HORZGUIDE, 30
+        HORZGUIDE, 45
+        HORZGUIDE, 50
+        HORZGUIDE, 65
+    END
+
+    IDD_ADD_NEW_CLIENT, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 176
+        VERTGUIDE, 35
+        VERTGUIDE, 65
+        VERTGUIDE, 70
+        VERTGUIDE, 120
+        VERTGUIDE, 125
+        VERTGUIDE, 175
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 46
+        HORZGUIDE, 10
+        HORZGUIDE, 25
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+
 #ifdef APSTUDIO_INVOKED
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -112,8 +285,9 @@
 BEGIN
     POPUP "Tray Menu"
     BEGIN
-        MENUITEM "&Options...",                 ID_OPTIONS
+        MENUITEM "&Control Panel",              ID_CONTR0L_PANEL
         MENUITEM SEPARATOR
+        MENUITEM "&Options...",                 ID_OPTIONS
         MENUITEM "Add &New Client",             ID_CONNECT
         MENUITEM "&Disconnect Clients",         ID_DISCONNECT
         MENUITEM SEPARATOR
@@ -125,59 +299,6 @@
 
 /////////////////////////////////////////////////////////////////////////////
 //
-// Dialog
-//
-
-IDD_ABOUT DIALOG DISCARDABLE  0, 0, 249, 92
-STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_CAPTION | 
-    WS_SYSMENU
-CAPTION "About VNC Server for Windows"
-FONT 8, "MS Sans Serif"
-BEGIN
-    DEFPUSHBUTTON   "OK",IDOK,195,70,47,15
-    ICON            IDI_ICON,IDC_STATIC,7,7,20,20
-    LTEXT           ">appname<",IDC_DESCRIPTION,40,7,125,18
-    LTEXT           ">version<",IDC_VERSION,165,7,77,18
-    LTEXT           ">buildtime<",IDC_BUILDTIME,40,25,202,15
-    LTEXT           ">copyright<",IDC_COPYRIGHT,40,40,202,15
-    LTEXT           "See http://www.tightvnc.com for more information on TightVNC.",
-                    IDC_STATIC,40,55,202,15
-END
-
-IDD_QUERY_CONNECT DIALOG DISCARDABLE  0, 0, 164, 93
-STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_CAPTION | 
-    WS_SYSMENU
-CAPTION "VNC Server : Accept Connection?"
-FONT 8, "MS Sans Serif"
-BEGIN
-    DEFPUSHBUTTON   "&Reject",IDCANCEL,105,72,52,14
-    PUSHBUTTON      "&Accept",IDOK,7,72,53,14
-    RTEXT           "User:",IDC_STATIC,7,10,28,15,SS_CENTERIMAGE
-    RTEXT           "Host:",IDC_STATIC,7,30,28,15,SS_CENTERIMAGE
-    CTEXT           "Seconds until automatic reject:",IDC_STATIC,7,50,113,15,
-                    SS_CENTERIMAGE
-    LTEXT           "-",IDC_QUERY_COUNTDOWN,125,50,32,15,SS_CENTERIMAGE
-    LTEXT           "-",IDC_QUERY_USER,40,10,117,15,SS_CENTERIMAGE
-    LTEXT           "-",IDC_QUERY_HOST,40,30,117,15,SS_CENTERIMAGE
-END
-
-IDD_ADD_NEW_CLIENT DIALOG DISCARDABLE  0, 0, 183, 53
-STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_VISIBLE | 
-    WS_CAPTION | WS_SYSMENU
-CAPTION "VNC Server : Add New Client"
-FONT 8, "MS Sans Serif"
-BEGIN
-    EDITTEXT        IDC_HOST,70,10,105,15,ES_AUTOHSCROLL
-    DEFPUSHBUTTON   "OK",IDOK,70,32,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,125,32,50,14
-    ICON            IDI_ICON,IDC_STATIC,7,10,21,20,SS_REALSIZEIMAGE
-    CONTROL         "Viewer:",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | 
-                    SS_CENTERIMAGE | WS_GROUP,35,10,30,15
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
 // HTTPFILE
 //
 
@@ -191,52 +312,6 @@
 //
 
 IDR_MANIFEST            24      DISCARDABLE     "winvnc4.exe.manifest"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO DISCARDABLE 
-BEGIN
-    IDD_QUERY_CONNECT, DIALOG
-    BEGIN
-        LEFTMARGIN, 7
-        RIGHTMARGIN, 157
-        VERTGUIDE, 35
-        VERTGUIDE, 40
-        VERTGUIDE, 60
-        VERTGUIDE, 120
-        VERTGUIDE, 125
-        TOPMARGIN, 7
-        BOTTOMMARGIN, 86
-        HORZGUIDE, 10
-        HORZGUIDE, 25
-        HORZGUIDE, 30
-        HORZGUIDE, 45
-        HORZGUIDE, 50
-        HORZGUIDE, 65
-    END
-
-    IDD_ADD_NEW_CLIENT, DIALOG
-    BEGIN
-        LEFTMARGIN, 7
-        RIGHTMARGIN, 176
-        VERTGUIDE, 35
-        VERTGUIDE, 65
-        VERTGUIDE, 70
-        VERTGUIDE, 120
-        VERTGUIDE, 125
-        VERTGUIDE, 175
-        TOPMARGIN, 7
-        BOTTOMMARGIN, 46
-        HORZGUIDE, 10
-        HORZGUIDE, 25
-    END
-END
-#endif    // APSTUDIO_INVOKED
-
 #endif    // English (U.K.) resources
 /////////////////////////////////////////////////////////////////////////////