diff --git a/checkin_notes b/checkin_notes
index cb87aa204b..59b7ebf05c 100755
--- a/checkin_notes
+++ b/checkin_notes
@@ -11509,3 +11509,13 @@ David April 9 2004
db_base.C,h
html/user/
stats.php
+
+Rom April 10 2004
+ - Initial Snapshot of the new BOINC Universal GUI, this GUI will provide the
+ native interface for all supported platforms.
+ NOTE: This is just a bare bones skeleton. Header file stuff still needs
+ to be moved around to support all the platforms. stdwx.h should include
+ config.h or win_config.h depending on platform, etc.
+
+ clientgui/
+ * (new)
diff --git a/clientgui/.cvsignore b/clientgui/.cvsignore
new file mode 100644
index 0000000000..acc0db9066
--- /dev/null
+++ b/clientgui/.cvsignore
@@ -0,0 +1,3 @@
+Release
+Debug
+BOINCGUI.suo
\ No newline at end of file
diff --git a/clientgui/BOINCGUI.pjd b/clientgui/BOINCGUI.pjd
new file mode 100644
index 0000000000..7093665d44
--- /dev/null
+++ b/clientgui/BOINCGUI.pjd
@@ -0,0 +1,3257 @@
+
+
+
+ 1.0
+ dialogblocks
+
+ Project File
+
+
+ 2
+
+
+
+
+ 80
+
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ TRUE
+ FALSE
+
+
+
+ TRUE
+
+ Projects
+ 12336808
+ root-document
+
+ project
+ 1
+ 1
+ 0
+ 0
+
+ Windows
+ 12365720
+ html-document
+
+ dialogsfolder
+ 1
+ 1
+ 12336808
+ 1
+
+ Options
+ 12443472
+ dialog-document
+
+ dialog
+ 0
+ 1
+ 12365720
+ 0
+ 8/3/2004
+ wbDialogProxy
+ 10000
+ ID_TOOLSOPTIONSDIALOG
+ 10000
+ CDlgToolsOptions
+ wxDialog
+ wxDialog
+ DlgOptions.cpp
+ DlgOptions.h
+
+ Options
+ TRUE
+ FALSE
+
+
+
+
+
+ FALSE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ -1
+ -1
+ -1
+ -1
+
+ wxBoxSizer V
+ 12509752
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12443472
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+ FALSE
+ FALSE
+
+ wxNotebook: ID_NOTEBOOK
+ 12424256
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12509752
+ 0
+ wbNotebookProxy
+ wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED|OnNotebookPageChanged
+ wxEVT_UPDATE_UI|OnNotebookUpdate
+ ID_NOTEBOOK
+ 10001
+ wxNotebook
+
+ FALSE
+
+
+
+
+
+ FALSE
+
+
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 300
+ 265
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxPanel: ID_GENERAL
+ 12494464
+ dialog-control-document
+
+ panel
+ 0
+ 1
+ 12424256
+ 0
+ wbPanelProxy
+ ID_GENERAL
+ 10002
+ wxPanel
+ General
+ wxPanel
+
+ FALSE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ -1
+ -1
+ 99
+ 80
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxPanel: ID_HTTPPROXY
+ 12620640
+ dialog-control-document
+
+ panel
+ 0
+ 1
+ 12424256
+ 0
+ wbPanelProxy
+ ID_HTTPPROXY
+ 10003
+ wxPanel
+ HTTP Proxy
+ wxPanel
+
+ FALSE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ -1
+ -1
+ 99
+ 150
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxBoxSizer V
+ 12596272
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12620640
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxCheckBox: ID_ENABLEHTTPPROXYCTRL
+ 12375856
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12596272
+ 0
+ wbCheckBoxProxy
+ wxEVT_COMMAND_CHECKBOX_CLICKED|OnEnablehttpproxyctrlClick
+ wxEVT_UPDATE_UI|OnEnablehttpproxyctrlUpdate
+ ID_ENABLEHTTPPROXYCTRL
+ 10007
+ wxCheckBox
+ m_EnableHTTPProxyCtrl
+ Connect via HTTP proxy server
+ FALSE
+
+
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxStaticBoxSizer V
+ 12383552
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12596272
+ 0
+ wbStaticBoxSizerProxy
+ wxID_ANY
+ -1
+ HTTP Proxy Server Configuration
+ Vertical
+
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxGridSizer
+ 12529792
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12383552
+ 0
+ wbGridSizerProxy
+ 1
+ 2
+ 0
+ 0
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxFlexGridSizer
+ 12625656
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12529792
+ 0
+ wbFlexGridSizerProxy
+
+
+ 2
+ 2
+ 0
+ 0
+
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxStaticText: wxID_STATIC
+ 12463888
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12625656
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Address:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_HTTPADDRESSCTRL
+ 12561912
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12625656
+ 0
+ wbTextCtrlProxy
+ ID_HTTPADDRESSCTRL
+ 10010
+ wxTextCtrl
+ m_HTTPAddressCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 150
+ -1
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxStaticText: wxID_STATIC
+ 12379256
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12625656
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Port:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_HTTPPORTCTRL
+ 12506696
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12625656
+ 0
+ wbTextCtrlProxy
+ ID_HTTPPORTCTRL
+ 10011
+ wxTextCtrl
+ m_HTTPPortCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 50
+ -1
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+
+ wxStaticBoxSizer V
+ 12521704
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12383552
+ 0
+ wbStaticBoxSizerProxy
+ wxID_ANY
+ -1
+ Leave these blank if not needed
+ Vertical
+
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxFlexGridSizer
+ 12414992
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12521704
+ 0
+ wbFlexGridSizerProxy
+
+
+ 2
+ 2
+ 0
+ 0
+
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxStaticText: wxID_STATIC
+ 12421920
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12414992
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ User Name:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_HTTPUSERNAMECTRL
+ 12446576
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12414992
+ 0
+ wbTextCtrlProxy
+ ID_HTTPUSERNAMECTRL
+ 10008
+ wxTextCtrl
+ m_HTTPUsernameCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 175
+ -1
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxStaticText: wxID_STATIC
+ 12528712
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12414992
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Password:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_HTTPPASSWORDCTRL
+ 12544416
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12414992
+ 0
+ wbTextCtrlProxy
+ ID_HTTPPASSWORDCTRL
+ 10009
+ wxTextCtrl
+ m_HTTPPasswordCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+
+
+
+
+ wxPanel: ID_SOCKSPROXY
+ 12620400
+ dialog-control-document
+
+ panel
+ 0
+ 1
+ 12424256
+ 0
+ wbPanelProxy
+ ID_SOCKSPROXY
+ 10006
+ wxPanel
+ SOCKS Proxy
+ wxPanel
+
+ FALSE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ -1
+ -1
+ 99
+ 80
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxBoxSizer V
+ 20123616
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12620400
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxCheckBox: ID_ENABLESOCKSPROXYCTRL
+ 20130640
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20123616
+ 0
+ wbCheckBoxProxy
+ wxEVT_COMMAND_CHECKBOX_CLICKED|OnEnablesocksproxyctrlClick
+ wxEVT_UPDATE_UI|OnEnablesocksproxyctrlUpdate
+ ID_ENABLESOCKSPROXYCTRL
+ 10012
+ wxCheckBox
+ m_EnableSOCKSProxyCtrl
+ Connect via SOCKS proxy server
+ FALSE
+
+
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxStaticBoxSizer V
+ 20140568
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 20123616
+ 0
+ wbStaticBoxSizerProxy
+ wxID_ANY
+ -1
+ SOCKS Proxy Server Configuration
+ Vertical
+
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxGridSizer
+ 20146848
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 20140568
+ 0
+ wbGridSizerProxy
+ 1
+ 2
+ 0
+ 0
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxFlexGridSizer
+ 20153760
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 20146848
+ 0
+ wbFlexGridSizerProxy
+
+
+ 2
+ 2
+ 0
+ 0
+
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxStaticText: wxID_STATIC
+ 20162112
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20153760
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Address:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_SOCKSADDRESSCTRL
+ 20174464
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20153760
+ 0
+ wbTextCtrlProxy
+ ID_SOCKSADDRESSCTRL
+ 10013
+ wxTextCtrl
+ m_SOCKSAddressCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 150
+ -1
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxStaticText: wxID_STATIC
+ 20191120
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20153760
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Port:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_SOCKSPORTCTRL
+ 20203200
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20153760
+ 0
+ wbTextCtrlProxy
+ ID_SOCKSPORTCTRL
+ 10014
+ wxTextCtrl
+ m_SOCKSPortCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 50
+ -1
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+
+ wxStaticBoxSizer V
+ 20128576
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 20140568
+ 0
+ wbStaticBoxSizerProxy
+ wxID_ANY
+ -1
+ Leave these blank if not needed
+ Vertical
+
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxFlexGridSizer
+ 20224528
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 20128576
+ 0
+ wbFlexGridSizerProxy
+
+
+ 2
+ 2
+ 0
+ 0
+
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxStaticText: wxID_STATIC
+ 20231336
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20224528
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ User Name:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_SOCKSUSERNAMECTRL
+ 20244184
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20224528
+ 0
+ wbTextCtrlProxy
+ ID_SOCKSUSERNAMECTRL
+ 10015
+ wxTextCtrl
+ m_SOCKSUsernameCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 175
+ -1
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxStaticText: wxID_STATIC
+ 20261640
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20224528
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Password:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_SOCKSPASSWORDCTRL
+ 20273720
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20224528
+ 0
+ wbTextCtrlProxy
+ ID_SOCKSPASSWORDCTRL
+ 10016
+ wxTextCtrl
+ m_SOCKPasswordCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+
+
+
+
+
+ wxBoxSizer H
+ 12561672
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12509752
+ 0
+ wbBoxSizerProxy
+ Horizontal
+
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxButton: wxID_OK
+ 12544200
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12561672
+ 0
+ wbButtonProxy
+ wxID_OK
+ 5100
+ wxButton
+
+ &OK
+ TRUE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxButton: wxID_CANCEL
+ 20297696
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12561672
+ 0
+ wbButtonProxy
+ wxID_CANCEL
+ 5101
+ wxButton
+
+ &Cancel
+ FALSE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+
+
+ About BOINC
+ 12363680
+ dialog-document
+
+ dialog
+ 0
+ 1
+ 12365720
+ 0
+ 9/3/2004
+ wbDialogProxy
+ 10000
+ ID_DIALOG
+ 10000
+ CDlgHelpAbout
+ wxDialog
+ wxDialog
+ DlgAbout.cpp
+ DlgAbout.h
+
+ About BOINC
+ TRUE
+ FALSE
+
+
+
+
+
+ FALSE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ -1
+ -1
+ 400
+ 300
+
+ wxBoxSizer V
+ 20318960
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12363680
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+ FALSE
+ FALSE
+
+ wxStaticText: wxID_STATIC
+ 20326360
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20318960
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ BOINC Core Client
+
+
+ 24, wxDEFAULT, wxNORMAL, wxBOLD
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxBoxSizer H
+ 20338200
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 20318960
+ 0
+ wbBoxSizerProxy
+ Horizontal
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxBoxSizer V
+ 20342952
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 20338200
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxStaticBitmap: wxID_STATIC
+ 20350048
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20342952
+ 0
+ wbStaticBitmapProxy
+ wxID_STATIC
+ 5105
+ wxStaticBitmap
+
+ boincsm.xpm
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 50
+ 50
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+ wxFlexGridSizer
+ 20360488
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 20338200
+ 0
+ wbFlexGridSizerProxy
+
+
+ 2
+ 0
+ 0
+ 0
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxStaticText: wxID_STATIC
+ 20366896
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20360488
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Version:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+
+
+ wxStaticText: wxID_STATIC
+ 20378928
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20360488
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ 2.28
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+
+
+ wxStaticText: wxID_STATIC
+ 20390984
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20360488
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Licence type:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+
+
+ wxStaticText: wxID_STATIC
+ 20403120
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20360488
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ BOINC Public License
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+
+
+ wxStaticText: wxID_STATIC
+ 20415160
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20360488
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Copyright:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Top
+ 0
+ 5
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+
+
+ wxStaticText: wxID_STATIC
+ 20427208
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20360488
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ (C) 2004 University of California at Berkeley.
+All Rights Reserved.
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+
+
+
+
+ wxStaticText: wxID_STATIC
+ 20325440
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20318960
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Berkeley Open Infrastructure for Network Computing
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxStaticText: wxID_STATIC
+ 20449952
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20318960
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ A software platform for distributed computing using volunteered computer resources
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxStaticText: wxID_STATIC
+ 20461208
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20318960
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ http://boinc.berkeley.edu/
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxStaticLine: wxID_STATIC
+ 20472936
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20318960
+ 0
+ wbStaticLineProxy
+ wxID_STATIC
+ 5105
+ wxStaticLine
+
+
+
+
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Expand
+ Expand
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxButton: wxID_OK
+ 20483704
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 20318960
+ 0
+ wbButtonProxy
+ wxID_OK
+ 5100
+ wxButton
+
+ &OK
+ TRUE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+
+ Connection
+ 12967824
+ dialog-document
+
+ dialog
+ 0
+ 1
+ 12365720
+ 0
+ 9/3/2004
+ wbDialogProxy
+ 10000
+ ID_DIALOG
+ 10000
+ CDlgConnection
+ wxDialog
+ wxDialog
+ DlgConnection.cpp
+ DlgConnection.h
+
+ Connection
+ TRUE
+ FALSE
+
+
+
+
+
+ FALSE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ -1
+ -1
+ 400
+ 300
+
+ wxBoxSizer V
+ 12912344
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12967824
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+
+ wxBoxSizer H
+ 13041712
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 12912344
+ 0
+ wbBoxSizerProxy
+ Horizontal
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxBoxSizer V
+ 13028248
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 13041712
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+ Centre
+ Top
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxStaticText: wxID_STATIC
+ 13071040
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 13028248
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ BOINC needs to connect to the network.
+May it do so now?
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Left
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+
+ wxBoxSizer V
+ 12972832
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 13041712
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+ Centre
+ Top
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxButton: wxID_OK
+ 12953192
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12972832
+ 0
+ wbButtonProxy
+ wxID_OK
+ 5100
+ wxButton
+
+ &OK
+ TRUE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxButton: wxID_CANCEL
+ 13052624
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 12972832
+ 0
+ wbButtonProxy
+ wxID_CANCEL
+ 5101
+ wxButton
+
+ &Cancel
+ FALSE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+
+
+
+ Attach to Project
+ 13158176
+ dialog-document
+
+ dialog
+ 0
+ 1
+ 12365720
+ 0
+ 9/3/2004
+ wbDialogProxy
+ 10000
+ ID_DIALOG
+ 10000
+ CDlgAttachProject
+ wxDialog
+ wxDialog
+ DlgAttachProject.cpp
+ DlgAttachProject.h
+
+ Attach to Project
+ TRUE
+ FALSE
+
+
+
+
+
+ FALSE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ TRUE
+ FALSE
+ FALSE
+ TRUE
+ -1
+ -1
+ 400
+ 300
+
+ wxBoxSizer V
+ 13129128
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 13158176
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+
+ wxBoxSizer H
+ 19915128
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 13129128
+ 0
+ wbBoxSizerProxy
+ Horizontal
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxFlexGridSizer
+ 13053600
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 19915128
+ 0
+ wbFlexGridSizerProxy
+
+
+ 2
+ 2
+ 0
+ 0
+
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxStaticText: wxID_STATIC
+ 19421400
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 13053600
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ URL:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_PROJECTADDRESS
+ 19477576
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 13053600
+ 0
+ wbTextCtrlProxy
+ ID_PROJECTADDRESS
+ 10001
+ wxTextCtrl
+ m_ProjectAddressCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 200
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxStaticText: wxID_STATIC
+ 19811656
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 13053600
+ 0
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Account Key:
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Right
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ TRUE
+
+
+ wxTextCtrl: ID_PROJECTACCOUNTKEY
+ 19901728
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 13053600
+ 0
+ wbTextCtrlProxy
+ ID_PROJECTACCOUNTKEY
+ 10002
+ wxTextCtrl
+ m_ProjectAccountKeyCtrl
+
+
+
+
+
+
+ FALSE
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ 200
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+ wxBoxSizer V
+ 13155968
+ dialog-control-document
+
+ sizer
+ 0
+ 1
+ 19915128
+ 0
+ wbBoxSizerProxy
+ Vertical
+
+ Centre
+ Top
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+ wxButton: wxID_OK
+ 13118224
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 13155968
+ 0
+ wbButtonProxy
+ wxID_OK
+ 5100
+ wxButton
+
+ &OK
+ TRUE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+ wxButton: wxID_CANCEL
+ 13188848
+ dialog-control-document
+
+ dialogcontrol
+ 0
+ 1
+ 13155968
+ 0
+ wbButtonProxy
+ wxID_CANCEL
+ 5101
+ wxButton
+
+ &Cancel
+ FALSE
+
+
+
+
+
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ FALSE
+ -1
+ -1
+ -1
+ -1
+ Centre
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+
+
+
+
+
+
+
+ Images
+ 12362280
+ html-document
+
+ bitmapsfolder
+ 1
+ 1
+ 12336808
+ 1
+
+ Untitled
+ 12363400
+ image-document
+ boincsm.xpm
+ image
+ 0
+ 1
+ 12362280
+ 0
+ 9/3/2004
+ 100
+
+
+
+
diff --git a/clientgui/BOINCGUI.sln b/clientgui/BOINCGUI.sln
new file mode 100644
index 0000000000..587384f9f1
--- /dev/null
+++ b/clientgui/BOINCGUI.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boincgui", "boincgui.vcproj", "{2221DD49-9379-447D-AC5E-E3EB7CE7A42D}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {2221DD49-9379-447D-AC5E-E3EB7CE7A42D}.Debug.ActiveCfg = Debug|Win32
+ {2221DD49-9379-447D-AC5E-E3EB7CE7A42D}.Debug.Build.0 = Debug|Win32
+ {2221DD49-9379-447D-AC5E-E3EB7CE7A42D}.Release.ActiveCfg = Release|Win32
+ {2221DD49-9379-447D-AC5E-E3EB7CE7A42D}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/clientgui/BOINCGUI.vcproj b/clientgui/BOINCGUI.vcproj
new file mode 100644
index 0000000000..3e90c91c08
--- /dev/null
+++ b/clientgui/BOINCGUI.vcproj
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clientgui/BOINCGUIApp.cpp b/clientgui/BOINCGUIApp.cpp
new file mode 100644
index 0000000000..d10485d632
--- /dev/null
+++ b/clientgui/BOINCGUIApp.cpp
@@ -0,0 +1,95 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#include "stdwx.h"
+
+#include "boincguiapp.h"
+#include "mainframe.h"
+#include "maindocument.h"
+
+
+IMPLEMENT_APP(CBOINCGUIApp)
+IMPLEMENT_DYNAMIC_CLASS(CBOINCGUIApp, wxApp)
+
+
+bool CBOINCGUIApp::OnInit()
+{
+ SetVendorName("Space Sciences Laboratory, U.C. Berkeley");
+ SetAppName("BOINC Manager");
+
+ // Commandline parsing is done in wxApp::OnInit()
+ if (!Inherited::OnInit())
+ return false;
+
+ // Initialize the internationalization module
+ m_pLocale = new wxLocale();
+ m_pLocale->Init();
+ m_pLocale->AddCatalog(GetAppName());
+
+ // Initialize the main document
+ m_pDocument = new CMainDocument();
+
+ // Initialize the main gui window
+ m_pFrame = new CMainFrame(GetAppName());
+ SetTopWindow(m_pFrame);
+ m_pFrame->Show();
+
+ return true;
+}
+
+
+int CBOINCGUIApp::OnExit()
+{
+ if (m_pDocument)
+ delete m_pDocument;
+
+ if (m_pLocale)
+ delete m_pLocale;
+
+ return Inherited::OnExit();
+}
+
+
+void CBOINCGUIApp::OnInitCmdLine(wxCmdLineParser &parser)
+{
+ Inherited::OnInitCmdLine(parser);
+ static const wxCmdLineEntryDesc cmdLineDesc[] = {
+ { wxCMD_LINE_SWITCH, "e", "example", "example command line option"},
+ { wxCMD_LINE_NONE} //DON'T forget this line!!
+ };
+ parser.SetDesc(cmdLineDesc);
+}
+
+
+bool CBOINCGUIApp::OnCmdLineParsed(wxCmdLineParser &parser)
+{
+ // Give default processing (-?, --help and --verbose) the chance to do something.
+ Inherited::OnCmdLineParsed(parser);
+ if (parser.Found("example")) {
+ // Strings that have to be localized are enclosed in _(). See Internationalization.
+ wxMessageBox(_("You have specified -e on the commmand line. The application will exit now."), _("Example command line option"), MB_OK);
+ // tell wxWindows to exit right now.
+ return false;
+ } else {
+ // Log a message, but only if --verbose has been set on the command line.
+ wxLogVerbose("Commandline has been parsed. -e was not found.");
+ }
+ return true;
+}
+
diff --git a/clientgui/BOINCGUIApp.h b/clientgui/BOINCGUIApp.h
new file mode 100644
index 0000000000..0612a75f70
--- /dev/null
+++ b/clientgui/BOINCGUIApp.h
@@ -0,0 +1,53 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+
+#include "mainframe.h"
+#include "maindocument.h"
+
+
+class CBOINCGUIApp : public wxApp
+{
+ DECLARE_DYNAMIC_CLASS(CBOINCGUIApp)
+
+ typedef wxApp Inherited;
+
+protected:
+ int OnExit();
+
+ /// Called by wxWindows to initialize command line handling.
+ void OnInitCmdLine(wxCmdLineParser &parser);
+ /// Called by wxWindows to allow CboincguiApp to handle the command line.
+ bool OnCmdLineParsed(wxCmdLineParser &parser);
+
+ CMainFrame* m_pFrame;
+ CMainDocument* m_pDocument;
+ wxLocale* m_pLocale;
+
+public:
+
+ bool OnInit();
+
+ CMainFrame* GetCurrentFrame() { return m_pFrame; };
+ CMainDocument* GetCurrentDocument() { return m_pDocument; };
+};
+
+
+DECLARE_APP(CBOINCGUIApp)
diff --git a/clientgui/BOINCGUIApp.rc b/clientgui/BOINCGUIApp.rc
new file mode 100644
index 0000000000..288b92494c
--- /dev/null
+++ b/clientgui/BOINCGUIApp.rc
@@ -0,0 +1,109 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Neutral resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
+#ifdef _WIN32
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+APP_ICON ICON "res\\boincguiApp.ico"
+#endif // Neutral resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// 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
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include \0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "Comments", "Skeleton files created by wxVisualSetup... http://www.litwindow.com"
+ VALUE "FileDescription", "boincguiApp Application"
+ VALUE "FileVersion", "1, 0, 0, 1"
+ VALUE "InternalName", "boincguiApp"
+ VALUE "LegalCopyright", "Copyright (C) 2003"
+ VALUE "OriginalFilename", "boincguiApp.exe"
+ VALUE "ProductName", " boincguiApp Application"
+ VALUE "ProductVersion", "1, 0, 0, 1"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
diff --git a/clientgui/BaseListCtrlView.cpp b/clientgui/BaseListCtrlView.cpp
new file mode 100644
index 0000000000..889c46cdd2
--- /dev/null
+++ b/clientgui/BaseListCtrlView.cpp
@@ -0,0 +1,54 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#include "stdwx.h"
+#include ".\baselistctrlview.h"
+
+
+IMPLEMENT_DYNAMIC_CLASS(CBaseListCtrlView, wxListCtrl)
+
+
+CBaseListCtrlView::CBaseListCtrlView(void)
+{
+}
+
+
+CBaseListCtrlView::CBaseListCtrlView(wxNotebook* pNotebook) :
+ wxListCtrl(pNotebook, -1, wxDefaultPosition, wxDefaultSize, wxLC_REPORT, wxDefaultValidator, _T("wxListCtrl"))
+{
+}
+
+
+CBaseListCtrlView::~CBaseListCtrlView(void)
+{
+}
+
+
+// The user friendly name of the view.
+// If it has not been defined by the view "Undefined" is returned.
+//
+wxString CBaseListCtrlView::GetViewName(void)
+{
+ return wxString(_T("Undefined"));
+}
diff --git a/clientgui/BaseListCtrlView.h b/clientgui/BaseListCtrlView.h
new file mode 100644
index 0000000000..98ba12885f
--- /dev/null
+++ b/clientgui/BaseListCtrlView.h
@@ -0,0 +1,33 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+
+class CBaseListCtrlView : public wxListCtrl
+{
+ DECLARE_DYNAMIC_CLASS(CBaseListCtrlView)
+
+public:
+ CBaseListCtrlView(void);
+ CBaseListCtrlView(wxNotebook* pNotebook);
+
+ ~CBaseListCtrlView(void);
+
+ virtual wxString GetViewName(void);
+};
diff --git a/clientgui/BaseWindowView.cpp b/clientgui/BaseWindowView.cpp
new file mode 100644
index 0000000000..a00b36a450
--- /dev/null
+++ b/clientgui/BaseWindowView.cpp
@@ -0,0 +1,54 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#include "stdwx.h"
+#include ".\basewindowview.h"
+
+
+IMPLEMENT_DYNAMIC_CLASS(CBaseWindowView, wxPanel)
+
+
+CBaseWindowView::CBaseWindowView(void)
+{
+}
+
+
+CBaseWindowView::CBaseWindowView(wxNotebook* pNotebook) :
+ wxPanel(pNotebook, -1, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER | wxTAB_TRAVERSAL, _T("wxBlankPanel"))
+{
+}
+
+
+CBaseWindowView::~CBaseWindowView(void)
+{
+}
+
+
+// The user friendly name of the view.
+// If it has not been defined by the view "Undefined" is returned.
+//
+wxString CBaseWindowView::GetViewName(void)
+{
+ return wxString(_T("Undefined"));
+}
diff --git a/clientgui/BaseWindowView.h b/clientgui/BaseWindowView.h
new file mode 100644
index 0000000000..73fd92f9f7
--- /dev/null
+++ b/clientgui/BaseWindowView.h
@@ -0,0 +1,33 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+
+class CBaseWindowView : public wxPanel
+{
+ DECLARE_DYNAMIC_CLASS(CBaseWindowView)
+
+public:
+ CBaseWindowView(void);
+ CBaseWindowView(wxNotebook* pNotebook);
+
+ ~CBaseWindowView(void);
+
+ virtual wxString GetViewName(void);
+};
diff --git a/clientgui/DlgAbout.cpp b/clientgui/DlgAbout.cpp
new file mode 100644
index 0000000000..360defd696
--- /dev/null
+++ b/clientgui/DlgAbout.cpp
@@ -0,0 +1,183 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma implementation "DlgAbout.h"
+#endif
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+////@begin includes
+////@end includes
+
+#include "DlgAbout.h"
+
+////@begin XPM images
+#include "boincsm.xpm"
+////@end XPM images
+
+/*!
+ * CDlgHelpAbout type definition
+ */
+
+IMPLEMENT_CLASS( CDlgHelpAbout, wxDialog )
+
+/*!
+ * CDlgHelpAbout event table definition
+ */
+
+BEGIN_EVENT_TABLE( CDlgHelpAbout, wxDialog )
+
+////@begin CDlgHelpAbout event table entries
+////@end CDlgHelpAbout event table entries
+
+END_EVENT_TABLE()
+
+/*!
+ * CDlgHelpAbout constructors
+ */
+
+CDlgHelpAbout::CDlgHelpAbout( )
+{
+}
+
+CDlgHelpAbout::CDlgHelpAbout( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
+{
+ Create(parent, id, caption, pos, size, style);
+}
+
+/*!
+ * CDlgHelpAbout creator
+ */
+
+bool CDlgHelpAbout::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
+{
+////@begin CDlgHelpAbout member initialisation
+////@end CDlgHelpAbout member initialisation
+
+////@begin CDlgHelpAbout creation
+ SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
+ wxDialog::Create( parent, id, caption, pos, size, style );
+
+ CreateControls();
+ GetSizer()->Fit(this);
+ GetSizer()->SetSizeHints(this);
+ Centre();
+////@end CDlgHelpAbout creation
+ return TRUE;
+}
+
+/*!
+ * Control creation for CDlgHelpAbout
+ */
+
+void CDlgHelpAbout::CreateControls()
+{
+////@begin CDlgHelpAbout content construction
+
+ CDlgHelpAbout* item1 = this;
+
+ wxBoxSizer* item2 = new wxBoxSizer(wxVERTICAL);
+ item1->SetSizer(item2);
+ item1->SetAutoLayout(TRUE);
+
+ wxStaticText* item3 = new wxStaticText;
+ item3->Create( item1, wxID_STATIC, _("BOINC Core Client"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
+ item3->SetFont(wxFont(24, wxDEFAULT, wxNORMAL, wxBOLD, FALSE, _T("")));
+ item2->Add(item3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxADJUST_MINSIZE, 5);
+
+ wxBoxSizer* item4 = new wxBoxSizer(wxHORIZONTAL);
+ item2->Add(item4, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+ wxBoxSizer* item5 = new wxBoxSizer(wxVERTICAL);
+ item4->Add(item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
+ wxBitmap item6Bitmap(boincsm_xpm);
+ wxStaticBitmap* item6 = new wxStaticBitmap;
+ item6->Create( item1, wxID_STATIC, item6Bitmap, wxDefaultPosition, wxSize(50, 50), 0 );
+ item5->Add(item6, 0, wxALIGN_LEFT|wxALL, 5);
+
+ wxFlexGridSizer* item7 = new wxFlexGridSizer(0, 2, 0, 0);
+ item4->Add(item7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
+ wxStaticText* item8 = new wxStaticText;
+ item8->Create( item1, wxID_STATIC, _("Version:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item7->Add(item8, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
+
+ wxStaticText* item9 = new wxStaticText;
+ item9->Create( item1, wxID_STATIC, _("2.28"), wxDefaultPosition, wxDefaultSize, 0 );
+ item7->Add(item9, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
+
+ wxStaticText* item10 = new wxStaticText;
+ item10->Create( item1, wxID_STATIC, _("Licence type:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item7->Add(item10, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
+
+ wxStaticText* item11 = new wxStaticText;
+ item11->Create( item1, wxID_STATIC, _("BOINC Public License"), wxDefaultPosition, wxDefaultSize, 0 );
+ item7->Add(item11, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
+
+ wxStaticText* item12 = new wxStaticText;
+ item12->Create( item1, wxID_STATIC, _("Copyright:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item7->Add(item12, 0, wxALIGN_RIGHT|wxALIGN_TOP|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
+
+ wxStaticText* item13 = new wxStaticText;
+ item13->Create( item1, wxID_STATIC, _("(C) 2004 University of California at Berkeley.\nAll Rights Reserved."), wxDefaultPosition, wxDefaultSize, 0 );
+ item7->Add(item13, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
+
+ wxStaticText* item14 = new wxStaticText;
+ item14->Create( item1, wxID_STATIC, _("Berkeley Open Infrastructure for Network Computing"), wxDefaultPosition, wxDefaultSize, 0 );
+ item2->Add(item14, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxADJUST_MINSIZE, 5);
+
+ wxStaticText* item15 = new wxStaticText;
+ item15->Create( item1, wxID_STATIC, _("A software platform for distributed computing using volunteered computer resources"), wxDefaultPosition, wxDefaultSize, 0 );
+ item2->Add(item15, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxADJUST_MINSIZE, 5);
+
+ wxStaticText* item16 = new wxStaticText;
+ item16->Create( item1, wxID_STATIC, _("http://boinc.berkeley.edu/"), wxDefaultPosition, wxDefaultSize, 0 );
+ item2->Add(item16, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxADJUST_MINSIZE, 5);
+
+ wxStaticLine* item17 = new wxStaticLine;
+ item17->Create( item1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ item2->Add(item17, 0, wxGROW|wxALL, 5);
+
+ wxButton* item18 = new wxButton;
+ item18->Create( item1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
+ item18->SetDefault();
+ item2->Add(item18, 0, wxALIGN_RIGHT|wxALL, 5);
+
+////@end CDlgHelpAbout content construction
+}
+
+/*!
+ * Should we show tooltips?
+ */
+
+bool CDlgHelpAbout::ShowToolTips()
+{
+ return TRUE;
+}
diff --git a/clientgui/DlgAbout.h b/clientgui/DlgAbout.h
new file mode 100644
index 0000000000..e292c6ac92
--- /dev/null
+++ b/clientgui/DlgAbout.h
@@ -0,0 +1,99 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#ifndef _DLGABOUT_H_
+#define _DLGABOUT_H_
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface "DlgAbout.cpp"
+#endif
+
+/*!
+ * Includes
+ */
+
+////@begin includes
+#include "wx/statline.h"
+////@end includes
+
+/*!
+ * Forward declarations
+ */
+
+////@begin forward declarations
+////@end forward declarations
+
+/*!
+ * Control identifiers
+ */
+
+////@begin control identifiers
+#define ID_DIALOG 10000
+#define SYMBOL_CDLGHELPABOUT_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
+#define SYMBOL_CDLGHELPABOUT_TITLE _("About BOINC")
+#define SYMBOL_CDLGHELPABOUT_IDNAME ID_DIALOG
+#define SYMBOL_CDLGHELPABOUT_SIZE wxSize(400, 300)
+#define SYMBOL_CDLGHELPABOUT_POSITION wxDefaultPosition
+////@end control identifiers
+
+/*!
+ * Compatibility
+ */
+
+#ifndef wxCLOSE_BOX
+#define wxCLOSE_BOX 0x1000
+#endif
+
+/*!
+ * CDlgHelpAbout class declaration
+ */
+
+class CDlgHelpAbout: public wxDialog
+{
+ DECLARE_CLASS( CDlgHelpAbout )
+ DECLARE_EVENT_TABLE()
+
+public:
+ /// Constructors
+ CDlgHelpAbout( );
+ CDlgHelpAbout( wxWindow* parent, wxWindowID id = SYMBOL_CDLGHELPABOUT_IDNAME, const wxString& caption = SYMBOL_CDLGHELPABOUT_TITLE, const wxPoint& pos = SYMBOL_CDLGHELPABOUT_POSITION, const wxSize& size = SYMBOL_CDLGHELPABOUT_SIZE, long style = SYMBOL_CDLGHELPABOUT_STYLE );
+
+ /// Creation
+ bool Create( wxWindow* parent, wxWindowID id = SYMBOL_CDLGHELPABOUT_IDNAME, const wxString& caption = SYMBOL_CDLGHELPABOUT_TITLE, const wxPoint& pos = SYMBOL_CDLGHELPABOUT_POSITION, const wxSize& size = SYMBOL_CDLGHELPABOUT_SIZE, long style = SYMBOL_CDLGHELPABOUT_STYLE );
+
+ /// Creates the controls and sizers
+ void CreateControls();
+
+////@begin CDlgHelpAbout event handler declarations
+
+////@end CDlgHelpAbout event handler declarations
+
+////@begin CDlgHelpAbout member function declarations
+
+////@end CDlgHelpAbout member function declarations
+
+ /// Should we show tooltips?
+ static bool ShowToolTips();
+
+////@begin CDlgHelpAbout member variables
+////@end CDlgHelpAbout member variables
+};
+
+#endif
+ // _DLGABOUT_H_
diff --git a/clientgui/DlgAttachProject.cpp b/clientgui/DlgAttachProject.cpp
new file mode 100644
index 0000000000..efc7ca94f1
--- /dev/null
+++ b/clientgui/DlgAttachProject.cpp
@@ -0,0 +1,156 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma implementation "DlgAttachProject.h"
+#endif
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+////@begin includes
+////@end includes
+
+#include "DlgAttachProject.h"
+
+////@begin XPM images
+////@end XPM images
+
+/*!
+ * CDlgAttachProject type definition
+ */
+
+IMPLEMENT_CLASS( CDlgAttachProject, wxDialog )
+
+/*!
+ * CDlgAttachProject event table definition
+ */
+
+BEGIN_EVENT_TABLE( CDlgAttachProject, wxDialog )
+
+////@begin CDlgAttachProject event table entries
+////@end CDlgAttachProject event table entries
+
+END_EVENT_TABLE()
+
+/*!
+ * CDlgAttachProject constructors
+ */
+
+CDlgAttachProject::CDlgAttachProject( )
+{
+}
+
+CDlgAttachProject::CDlgAttachProject( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
+{
+ Create(parent, id, caption, pos, size, style);
+}
+
+/*!
+ * CDlgAttachProject creator
+ */
+
+bool CDlgAttachProject::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
+{
+////@begin CDlgAttachProject member initialisation
+ m_ProjectAddressCtrl = NULL;
+ m_ProjectAccountKeyCtrl = NULL;
+////@end CDlgAttachProject member initialisation
+
+////@begin CDlgAttachProject creation
+ SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
+ wxDialog::Create( parent, id, caption, pos, size, style );
+
+ CreateControls();
+ GetSizer()->Fit(this);
+ GetSizer()->SetSizeHints(this);
+ Centre();
+////@end CDlgAttachProject creation
+ return TRUE;
+}
+
+/*!
+ * Control creation for CDlgAttachProject
+ */
+
+void CDlgAttachProject::CreateControls()
+{
+////@begin CDlgAttachProject content construction
+
+ CDlgAttachProject* item1 = this;
+
+ wxBoxSizer* item2 = new wxBoxSizer(wxVERTICAL);
+ item1->SetSizer(item2);
+ item1->SetAutoLayout(TRUE);
+
+ wxBoxSizer* item3 = new wxBoxSizer(wxHORIZONTAL);
+ item2->Add(item3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+ wxFlexGridSizer* item4 = new wxFlexGridSizer(2, 2, 0, 0);
+ item3->Add(item4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
+ wxStaticText* item5 = new wxStaticText;
+ item5->Create( item1, wxID_STATIC, _("URL:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item4->Add(item5, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+
+ wxTextCtrl* item6 = new wxTextCtrl;
+ item6->Create( item1, ID_PROJECTADDRESS, _T(""), wxDefaultPosition, wxSize(200, -1), 0 );
+ m_ProjectAddressCtrl = item6;
+ item4->Add(item6, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
+ wxStaticText* item7 = new wxStaticText;
+ item7->Create( item1, wxID_STATIC, _("Account Key:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item4->Add(item7, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+
+ wxTextCtrl* item8 = new wxTextCtrl;
+ item8->Create( item1, ID_PROJECTACCOUNTKEY, _T(""), wxDefaultPosition, wxSize(200, -1), 0 );
+ m_ProjectAccountKeyCtrl = item8;
+ item4->Add(item8, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
+ wxBoxSizer* item9 = new wxBoxSizer(wxVERTICAL);
+ item3->Add(item9, 0, wxALIGN_TOP|wxALL, 5);
+
+ wxButton* item10 = new wxButton;
+ item10->Create( item1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
+ item10->SetDefault();
+ item9->Add(item10, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+ wxButton* item11 = new wxButton;
+ item11->Create( item1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
+ item9->Add(item11, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+////@end CDlgAttachProject content construction
+}
+
+/*!
+ * Should we show tooltips?
+ */
+
+bool CDlgAttachProject::ShowToolTips()
+{
+ return TRUE;
+}
diff --git a/clientgui/DlgAttachProject.h b/clientgui/DlgAttachProject.h
new file mode 100644
index 0000000000..60f8cc9b16
--- /dev/null
+++ b/clientgui/DlgAttachProject.h
@@ -0,0 +1,102 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#ifndef _DLGATTACHPROJECT_H_
+#define _DLGATTACHPROJECT_H_
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface "DlgAttachProject.cpp"
+#endif
+
+/*!
+ * Includes
+ */
+
+////@begin includes
+////@end includes
+
+/*!
+ * Forward declarations
+ */
+
+////@begin forward declarations
+////@end forward declarations
+
+/*!
+ * Control identifiers
+ */
+
+////@begin control identifiers
+#define ID_DIALOG 10000
+#define SYMBOL_CDLGATTACHPROJECT_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
+#define SYMBOL_CDLGATTACHPROJECT_TITLE _("Attach to Project")
+#define SYMBOL_CDLGATTACHPROJECT_IDNAME ID_DIALOG
+#define SYMBOL_CDLGATTACHPROJECT_SIZE wxSize(400, 300)
+#define SYMBOL_CDLGATTACHPROJECT_POSITION wxDefaultPosition
+#define ID_PROJECTADDRESS 10001
+#define ID_PROJECTACCOUNTKEY 10002
+////@end control identifiers
+
+/*!
+ * Compatibility
+ */
+
+#ifndef wxCLOSE_BOX
+#define wxCLOSE_BOX 0x1000
+#endif
+
+/*!
+ * CDlgAttachProject class declaration
+ */
+
+class CDlgAttachProject: public wxDialog
+{
+ DECLARE_CLASS( CDlgAttachProject )
+ DECLARE_EVENT_TABLE()
+
+public:
+ /// Constructors
+ CDlgAttachProject( );
+ CDlgAttachProject( wxWindow* parent, wxWindowID id = SYMBOL_CDLGATTACHPROJECT_IDNAME, const wxString& caption = SYMBOL_CDLGATTACHPROJECT_TITLE, const wxPoint& pos = SYMBOL_CDLGATTACHPROJECT_POSITION, const wxSize& size = SYMBOL_CDLGATTACHPROJECT_SIZE, long style = SYMBOL_CDLGATTACHPROJECT_STYLE );
+
+ /// Creation
+ bool Create( wxWindow* parent, wxWindowID id = SYMBOL_CDLGATTACHPROJECT_IDNAME, const wxString& caption = SYMBOL_CDLGATTACHPROJECT_TITLE, const wxPoint& pos = SYMBOL_CDLGATTACHPROJECT_POSITION, const wxSize& size = SYMBOL_CDLGATTACHPROJECT_SIZE, long style = SYMBOL_CDLGATTACHPROJECT_STYLE );
+
+ /// Creates the controls and sizers
+ void CreateControls();
+
+////@begin CDlgAttachProject event handler declarations
+
+////@end CDlgAttachProject event handler declarations
+
+////@begin CDlgAttachProject member function declarations
+
+////@end CDlgAttachProject member function declarations
+
+ /// Should we show tooltips?
+ static bool ShowToolTips();
+
+////@begin CDlgAttachProject member variables
+ wxTextCtrl* m_ProjectAddressCtrl;
+ wxTextCtrl* m_ProjectAccountKeyCtrl;
+////@end CDlgAttachProject member variables
+};
+
+#endif
+ // _DLGATTACHPROJECT_H_
diff --git a/clientgui/DlgConnection.cpp b/clientgui/DlgConnection.cpp
new file mode 100644
index 0000000000..f2be8ea531
--- /dev/null
+++ b/clientgui/DlgConnection.cpp
@@ -0,0 +1,140 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma implementation "DlgConnection.h"
+#endif
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+////@begin includes
+////@end includes
+
+#include "DlgConnection.h"
+
+////@begin XPM images
+////@end XPM images
+
+/*!
+ * CDlgConnection type definition
+ */
+
+IMPLEMENT_CLASS( CDlgConnection, wxDialog )
+
+/*!
+ * CDlgConnection event table definition
+ */
+
+BEGIN_EVENT_TABLE( CDlgConnection, wxDialog )
+
+////@begin CDlgConnection event table entries
+////@end CDlgConnection event table entries
+
+END_EVENT_TABLE()
+
+/*!
+ * CDlgConnection constructors
+ */
+
+CDlgConnection::CDlgConnection( )
+{
+}
+
+CDlgConnection::CDlgConnection( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
+{
+ Create(parent, id, caption, pos, size, style);
+}
+
+/*!
+ * CDlgConnection creator
+ */
+
+bool CDlgConnection::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
+{
+////@begin CDlgConnection member initialisation
+////@end CDlgConnection member initialisation
+
+////@begin CDlgConnection creation
+ SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
+ wxDialog::Create( parent, id, caption, pos, size, style );
+
+ CreateControls();
+ GetSizer()->Fit(this);
+ GetSizer()->SetSizeHints(this);
+ Centre();
+////@end CDlgConnection creation
+ return TRUE;
+}
+
+/*!
+ * Control creation for CDlgConnection
+ */
+
+void CDlgConnection::CreateControls()
+{
+////@begin CDlgConnection content construction
+
+ CDlgConnection* item1 = this;
+
+ wxBoxSizer* item2 = new wxBoxSizer(wxVERTICAL);
+ item1->SetSizer(item2);
+ item1->SetAutoLayout(TRUE);
+
+ wxBoxSizer* item3 = new wxBoxSizer(wxHORIZONTAL);
+ item2->Add(item3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+ wxBoxSizer* item4 = new wxBoxSizer(wxVERTICAL);
+ item3->Add(item4, 0, wxALIGN_TOP|wxALL, 5);
+
+ wxStaticText* item5 = new wxStaticText;
+ item5->Create( item1, wxID_STATIC, _("BOINC needs to connect to the network.\nMay it do so now?"), wxDefaultPosition, wxDefaultSize, 0 );
+ item4->Add(item5, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
+
+ wxBoxSizer* item6 = new wxBoxSizer(wxVERTICAL);
+ item3->Add(item6, 0, wxALIGN_TOP|wxALL, 5);
+
+ wxButton* item7 = new wxButton;
+ item7->Create( item1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
+ item7->SetDefault();
+ item6->Add(item7, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+ wxButton* item8 = new wxButton;
+ item8->Create( item1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
+ item6->Add(item8, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+////@end CDlgConnection content construction
+}
+
+/*!
+ * Should we show tooltips?
+ */
+
+bool CDlgConnection::ShowToolTips()
+{
+ return TRUE;
+}
diff --git a/clientgui/DlgConnection.h b/clientgui/DlgConnection.h
new file mode 100644
index 0000000000..c1b9571bfd
--- /dev/null
+++ b/clientgui/DlgConnection.h
@@ -0,0 +1,98 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#ifndef _DLGCONNECTION_H_
+#define _DLGCONNECTION_H_
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface "DlgConnection.cpp"
+#endif
+
+/*!
+ * Includes
+ */
+
+////@begin includes
+////@end includes
+
+/*!
+ * Forward declarations
+ */
+
+////@begin forward declarations
+////@end forward declarations
+
+/*!
+ * Control identifiers
+ */
+
+////@begin control identifiers
+#define ID_DIALOG 10000
+#define SYMBOL_CDLGCONNECTION_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
+#define SYMBOL_CDLGCONNECTION_TITLE _("Connection")
+#define SYMBOL_CDLGCONNECTION_IDNAME ID_DIALOG
+#define SYMBOL_CDLGCONNECTION_SIZE wxSize(400, 300)
+#define SYMBOL_CDLGCONNECTION_POSITION wxDefaultPosition
+////@end control identifiers
+
+/*!
+ * Compatibility
+ */
+
+#ifndef wxCLOSE_BOX
+#define wxCLOSE_BOX 0x1000
+#endif
+
+/*!
+ * CDlgConnection class declaration
+ */
+
+class CDlgConnection: public wxDialog
+{
+ DECLARE_CLASS( CDlgConnection )
+ DECLARE_EVENT_TABLE()
+
+public:
+ /// Constructors
+ CDlgConnection( );
+ CDlgConnection( wxWindow* parent, wxWindowID id = SYMBOL_CDLGCONNECTION_IDNAME, const wxString& caption = SYMBOL_CDLGCONNECTION_TITLE, const wxPoint& pos = SYMBOL_CDLGCONNECTION_POSITION, const wxSize& size = SYMBOL_CDLGCONNECTION_SIZE, long style = SYMBOL_CDLGCONNECTION_STYLE );
+
+ /// Creation
+ bool Create( wxWindow* parent, wxWindowID id = SYMBOL_CDLGCONNECTION_IDNAME, const wxString& caption = SYMBOL_CDLGCONNECTION_TITLE, const wxPoint& pos = SYMBOL_CDLGCONNECTION_POSITION, const wxSize& size = SYMBOL_CDLGCONNECTION_SIZE, long style = SYMBOL_CDLGCONNECTION_STYLE );
+
+ /// Creates the controls and sizers
+ void CreateControls();
+
+////@begin CDlgConnection event handler declarations
+
+////@end CDlgConnection event handler declarations
+
+////@begin CDlgConnection member function declarations
+
+////@end CDlgConnection member function declarations
+
+ /// Should we show tooltips?
+ static bool ShowToolTips();
+
+////@begin CDlgConnection member variables
+////@end CDlgConnection member variables
+};
+
+#endif
+ // _DLGCONNECTION_H_
diff --git a/clientgui/DlgOptions.cpp b/clientgui/DlgOptions.cpp
new file mode 100644
index 0000000000..701fb80d57
--- /dev/null
+++ b/clientgui/DlgOptions.cpp
@@ -0,0 +1,318 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma implementation "DlgToolsOptions.h"
+#endif
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+////@begin includes
+////@end includes
+
+#include "DlgToolsOptions.h"
+
+////@begin XPM images
+////@end XPM images
+
+/*!
+ * CDlgToolsOptions type definition
+ */
+
+IMPLEMENT_CLASS( CDlgToolsOptions, wxDialog )
+
+/*!
+ * CDlgToolsOptions event table definition
+ */
+
+BEGIN_EVENT_TABLE( CDlgToolsOptions, wxDialog )
+
+////@begin CDlgToolsOptions event table entries
+ EVT_NOTEBOOK_PAGE_CHANGED( ID_NOTEBOOK, CDlgToolsOptions::OnNotebookPageChanged )
+ EVT_UPDATE_UI( ID_NOTEBOOK, CDlgToolsOptions::OnNotebookUpdate )
+
+ EVT_CHECKBOX( ID_ENABLEHTTPPROXYCTRL, CDlgToolsOptions::OnEnablehttpproxyctrlClick )
+ EVT_UPDATE_UI( ID_ENABLEHTTPPROXYCTRL, CDlgToolsOptions::OnEnablehttpproxyctrlUpdate )
+
+ EVT_CHECKBOX( ID_ENABLESOCKSPROXYCTRL, CDlgToolsOptions::OnEnablesocksproxyctrlClick )
+ EVT_UPDATE_UI( ID_ENABLESOCKSPROXYCTRL, CDlgToolsOptions::OnEnablesocksproxyctrlUpdate )
+
+////@end CDlgToolsOptions event table entries
+
+END_EVENT_TABLE()
+
+/*!
+ * CDlgToolsOptions constructors
+ */
+
+CDlgToolsOptions::CDlgToolsOptions( )
+{
+}
+
+CDlgToolsOptions::CDlgToolsOptions( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
+{
+ Create(parent, id, caption, pos, size, style);
+}
+
+/*!
+ * CDlgToolsOptions creator
+ */
+
+bool CDlgToolsOptions::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
+{
+////@begin CDlgToolsOptions member initialisation
+ m_EnableHTTPProxyCtrl = NULL;
+ m_HTTPAddressCtrl = NULL;
+ m_HTTPPortCtrl = NULL;
+ m_HTTPUsernameCtrl = NULL;
+ m_HTTPPasswordCtrl = NULL;
+ m_EnableSOCKSProxyCtrl = NULL;
+ m_SOCKSAddressCtrl = NULL;
+ m_SOCKSPortCtrl = NULL;
+ m_SOCKSUsernameCtrl = NULL;
+ m_SOCKPasswordCtrl = NULL;
+////@end CDlgToolsOptions member initialisation
+
+////@begin CDlgToolsOptions creation
+ SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
+ wxDialog::Create( parent, id, caption, pos, size, style );
+
+ CreateControls();
+ GetSizer()->Fit(this);
+ GetSizer()->SetSizeHints(this);
+ Centre();
+////@end CDlgToolsOptions creation
+ return TRUE;
+}
+
+/*!
+ * Control creation for CDlgToolsOptions
+ */
+
+void CDlgToolsOptions::CreateControls()
+{
+////@begin CDlgToolsOptions content construction
+
+ CDlgToolsOptions* item1 = this;
+
+ wxBoxSizer* item2 = new wxBoxSizer(wxVERTICAL);
+ item1->SetSizer(item2);
+ item1->SetAutoLayout(TRUE);
+
+ wxNotebook* item3 = new wxNotebook;
+ item3->Create( item1, ID_NOTEBOOK, wxDefaultPosition, wxSize(300, 265), wxNB_TOP );
+ wxPanel* item4 = new wxPanel;
+ item4->Create( item3, ID_GENERAL, wxDefaultPosition, wxSize(99, 80), wxTAB_TRAVERSAL );
+ item3->AddPage(item4, _("General"));
+ wxPanel* item5 = new wxPanel;
+ item5->Create( item3, ID_HTTPPROXY, wxDefaultPosition, wxSize(99, 150), wxTAB_TRAVERSAL );
+ wxBoxSizer* item6 = new wxBoxSizer(wxVERTICAL);
+ item5->SetSizer(item6);
+ item5->SetAutoLayout(TRUE);
+ wxCheckBox* item7 = new wxCheckBox;
+ item7->Create( item5, ID_ENABLEHTTPPROXYCTRL, _("Connect via HTTP proxy server"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_EnableHTTPProxyCtrl = item7;
+ item7->SetValue(FALSE);
+ item6->Add(item7, 0, wxGROW|wxALL, 5);
+ wxStaticBox* item8Static = new wxStaticBox(item5, wxID_ANY, _("HTTP Proxy Server Configuration"));
+ wxStaticBoxSizer* item8 = new wxStaticBoxSizer(item8Static, wxVERTICAL);
+ item6->Add(item8, 0, wxGROW|wxALL, 5);
+ wxGridSizer* item9 = new wxGridSizer(2, 1, 0, 0);
+ item8->Add(item9, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+ wxFlexGridSizer* item10 = new wxFlexGridSizer(2, 2, 0, 0);
+ item9->Add(item10, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticText* item11 = new wxStaticText;
+ item11->Create( item5, wxID_STATIC, _("Address:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item10->Add(item11, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxTextCtrl* item12 = new wxTextCtrl;
+ item12->Create( item5, ID_HTTPADDRESSCTRL, _T(""), wxDefaultPosition, wxSize(150, -1), 0 );
+ m_HTTPAddressCtrl = item12;
+ item10->Add(item12, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticText* item13 = new wxStaticText;
+ item13->Create( item5, wxID_STATIC, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item10->Add(item13, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxTextCtrl* item14 = new wxTextCtrl;
+ item14->Create( item5, ID_HTTPPORTCTRL, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
+ m_HTTPPortCtrl = item14;
+ item10->Add(item14, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticBox* item15Static = new wxStaticBox(item5, wxID_ANY, _("Leave these blank if not needed"));
+ wxStaticBoxSizer* item15 = new wxStaticBoxSizer(item15Static, wxVERTICAL);
+ item8->Add(item15, 0, wxGROW|wxALL, 5);
+ wxFlexGridSizer* item16 = new wxFlexGridSizer(2, 2, 0, 0);
+ item15->Add(item16, 0, wxALIGN_LEFT|wxALL, 5);
+ wxStaticText* item17 = new wxStaticText;
+ item17->Create( item5, wxID_STATIC, _("User Name:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item16->Add(item17, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxTextCtrl* item18 = new wxTextCtrl;
+ item18->Create( item5, ID_HTTPUSERNAMECTRL, _T(""), wxDefaultPosition, wxSize(175, -1), 0 );
+ m_HTTPUsernameCtrl = item18;
+ item16->Add(item18, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticText* item19 = new wxStaticText;
+ item19->Create( item5, wxID_STATIC, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item16->Add(item19, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxTextCtrl* item20 = new wxTextCtrl;
+ item20->Create( item5, ID_HTTPPASSWORDCTRL, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
+ m_HTTPPasswordCtrl = item20;
+ item16->Add(item20, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ item3->AddPage(item5, _("HTTP Proxy"));
+ wxPanel* item21 = new wxPanel;
+ item21->Create( item3, ID_SOCKSPROXY, wxDefaultPosition, wxSize(99, 80), wxTAB_TRAVERSAL );
+ wxBoxSizer* item22 = new wxBoxSizer(wxVERTICAL);
+ item21->SetSizer(item22);
+ item21->SetAutoLayout(TRUE);
+ wxCheckBox* item23 = new wxCheckBox;
+ item23->Create( item21, ID_ENABLESOCKSPROXYCTRL, _("Connect via SOCKS proxy server"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_EnableSOCKSProxyCtrl = item23;
+ item23->SetValue(FALSE);
+ item22->Add(item23, 0, wxGROW|wxALL, 5);
+ wxStaticBox* item24Static = new wxStaticBox(item21, wxID_ANY, _("SOCKS Proxy Server Configuration"));
+ wxStaticBoxSizer* item24 = new wxStaticBoxSizer(item24Static, wxVERTICAL);
+ item22->Add(item24, 0, wxGROW|wxALL, 5);
+ wxGridSizer* item25 = new wxGridSizer(2, 1, 0, 0);
+ item24->Add(item25, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+ wxFlexGridSizer* item26 = new wxFlexGridSizer(2, 2, 0, 0);
+ item25->Add(item26, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticText* item27 = new wxStaticText;
+ item27->Create( item21, wxID_STATIC, _("Address:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item26->Add(item27, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxTextCtrl* item28 = new wxTextCtrl;
+ item28->Create( item21, ID_SOCKSADDRESSCTRL, _T(""), wxDefaultPosition, wxSize(150, -1), 0 );
+ m_SOCKSAddressCtrl = item28;
+ item26->Add(item28, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticText* item29 = new wxStaticText;
+ item29->Create( item21, wxID_STATIC, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item26->Add(item29, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxTextCtrl* item30 = new wxTextCtrl;
+ item30->Create( item21, ID_SOCKSPORTCTRL, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
+ m_SOCKSPortCtrl = item30;
+ item26->Add(item30, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticBox* item31Static = new wxStaticBox(item21, wxID_ANY, _("Leave these blank if not needed"));
+ wxStaticBoxSizer* item31 = new wxStaticBoxSizer(item31Static, wxVERTICAL);
+ item24->Add(item31, 0, wxGROW|wxALL, 5);
+ wxFlexGridSizer* item32 = new wxFlexGridSizer(2, 2, 0, 0);
+ item31->Add(item32, 0, wxALIGN_LEFT|wxALL, 5);
+ wxStaticText* item33 = new wxStaticText;
+ item33->Create( item21, wxID_STATIC, _("User Name:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item32->Add(item33, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxTextCtrl* item34 = new wxTextCtrl;
+ item34->Create( item21, ID_SOCKSUSERNAMECTRL, _T(""), wxDefaultPosition, wxSize(175, -1), 0 );
+ m_SOCKSUsernameCtrl = item34;
+ item32->Add(item34, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticText* item35 = new wxStaticText;
+ item35->Create( item21, wxID_STATIC, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
+ item32->Add(item35, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxTextCtrl* item36 = new wxTextCtrl;
+ item36->Create( item21, ID_SOCKSPASSWORDCTRL, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
+ m_SOCKPasswordCtrl = item36;
+ item32->Add(item36, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ item3->AddPage(item21, _("SOCKS Proxy"));
+ item2->Add(item3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+
+ wxBoxSizer* item37 = new wxBoxSizer(wxHORIZONTAL);
+ item2->Add(item37, 0, wxALIGN_RIGHT|wxALL, 5);
+
+ wxButton* item38 = new wxButton;
+ item38->Create( item1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
+ item38->SetDefault();
+ item37->Add(item38, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
+ wxButton* item39 = new wxButton;
+ item39->Create( item1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
+ item37->Add(item39, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
+////@end CDlgToolsOptions content construction
+}
+
+/*!
+ * wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED event handler for ID_NOTEBOOK
+ */
+
+void CDlgToolsOptions::OnNotebookPageChanged( wxNotebookEvent& event )
+{
+ // Insert custom code here
+ event.Skip();
+}
+
+/*!
+ * wxEVT_UPDATE_UI event handler for ID_NOTEBOOK
+ */
+
+void CDlgToolsOptions::OnNotebookUpdate( wxUpdateUIEvent& event )
+{
+ // Insert custom code here
+ event.Skip();
+}
+
+/*!
+ * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_ENABLEHTTPPROXYCTRL
+ */
+
+void CDlgToolsOptions::OnEnablehttpproxyctrlClick( wxCommandEvent& event )
+{
+ // Insert custom code here
+ event.Skip();
+}
+
+/*!
+ * wxEVT_UPDATE_UI event handler for ID_ENABLEHTTPPROXYCTRL
+ */
+
+void CDlgToolsOptions::OnEnablehttpproxyctrlUpdate( wxUpdateUIEvent& event )
+{
+ // Insert custom code here
+ event.Skip();
+}
+
+/*!
+ * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_ENABLESOCKSPROXYCTRL
+ */
+
+void CDlgToolsOptions::OnEnablesocksproxyctrlClick( wxCommandEvent& event )
+{
+ // Insert custom code here
+ event.Skip();
+}
+
+/*!
+ * wxEVT_UPDATE_UI event handler for ID_ENABLESOCKSPROXYCTRL
+ */
+
+void CDlgToolsOptions::OnEnablesocksproxyctrlUpdate( wxUpdateUIEvent& event )
+{
+ // Insert custom code here
+ event.Skip();
+}
+
+/*!
+ * Should we show tooltips?
+ */
+
+bool CDlgToolsOptions::ShowToolTips()
+{
+ return TRUE;
+}
diff --git a/clientgui/DlgOptions.h b/clientgui/DlgOptions.h
new file mode 100644
index 0000000000..ae39d318d9
--- /dev/null
+++ b/clientgui/DlgOptions.h
@@ -0,0 +1,141 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#ifndef _DLGOPTIONS_H_
+#define _DLGOPTIONS_H_
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface "DlgOptions.cpp"
+#endif
+
+/*!
+ * Includes
+ */
+
+////@begin includes
+#include "wx/notebook.h"
+////@end includes
+
+/*!
+ * Forward declarations
+ */
+
+////@begin forward declarations
+////@end forward declarations
+
+/*!
+ * Control identifiers
+ */
+
+////@begin control identifiers
+#define ID_TOOLSOPTIONSDIALOG 10000
+#define SYMBOL_CDLGTOOLSOPTIONS_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
+#define SYMBOL_CDLGTOOLSOPTIONS_TITLE _("Options")
+#define SYMBOL_CDLGTOOLSOPTIONS_IDNAME ID_TOOLSOPTIONSDIALOG
+#define SYMBOL_CDLGTOOLSOPTIONS_SIZE wxDefaultSize
+#define SYMBOL_CDLGTOOLSOPTIONS_POSITION wxDefaultPosition
+#define ID_NOTEBOOK 10001
+#define ID_GENERAL 10002
+#define ID_HTTPPROXY 10003
+#define ID_ENABLEHTTPPROXYCTRL 10007
+#define ID_HTTPADDRESSCTRL 10010
+#define ID_HTTPPORTCTRL 10011
+#define ID_HTTPUSERNAMECTRL 10008
+#define ID_HTTPPASSWORDCTRL 10009
+#define ID_SOCKSPROXY 10006
+#define ID_ENABLESOCKSPROXYCTRL 10012
+#define ID_SOCKSADDRESSCTRL 10013
+#define ID_SOCKSPORTCTRL 10014
+#define ID_SOCKSUSERNAMECTRL 10015
+#define ID_SOCKSPASSWORDCTRL 10016
+////@end control identifiers
+
+/*!
+ * Compatibility
+ */
+
+#ifndef wxCLOSE_BOX
+#define wxCLOSE_BOX 0x1000
+#endif
+
+/*!
+ * CDlgToolsOptions class declaration
+ */
+
+class CDlgToolsOptions: public wxDialog
+{
+ DECLARE_CLASS( CDlgToolsOptions )
+ DECLARE_EVENT_TABLE()
+
+public:
+ /// Constructors
+ CDlgToolsOptions( );
+ CDlgToolsOptions( wxWindow* parent, wxWindowID id = SYMBOL_CDLGTOOLSOPTIONS_IDNAME, const wxString& caption = SYMBOL_CDLGTOOLSOPTIONS_TITLE, const wxPoint& pos = SYMBOL_CDLGTOOLSOPTIONS_POSITION, const wxSize& size = SYMBOL_CDLGTOOLSOPTIONS_SIZE, long style = SYMBOL_CDLGTOOLSOPTIONS_STYLE );
+
+ /// Creation
+ bool Create( wxWindow* parent, wxWindowID id = SYMBOL_CDLGTOOLSOPTIONS_IDNAME, const wxString& caption = SYMBOL_CDLGTOOLSOPTIONS_TITLE, const wxPoint& pos = SYMBOL_CDLGTOOLSOPTIONS_POSITION, const wxSize& size = SYMBOL_CDLGTOOLSOPTIONS_SIZE, long style = SYMBOL_CDLGTOOLSOPTIONS_STYLE );
+
+ /// Creates the controls and sizers
+ void CreateControls();
+
+////@begin CDlgToolsOptions event handler declarations
+
+ /// wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED event handler for ID_NOTEBOOK
+ void OnNotebookPageChanged( wxNotebookEvent& event );
+
+ /// wxEVT_UPDATE_UI event handler for ID_NOTEBOOK
+ void OnNotebookUpdate( wxUpdateUIEvent& event );
+
+ /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_ENABLEHTTPPROXYCTRL
+ void OnEnablehttpproxyctrlClick( wxCommandEvent& event );
+
+ /// wxEVT_UPDATE_UI event handler for ID_ENABLEHTTPPROXYCTRL
+ void OnEnablehttpproxyctrlUpdate( wxUpdateUIEvent& event );
+
+ /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_ENABLESOCKSPROXYCTRL
+ void OnEnablesocksproxyctrlClick( wxCommandEvent& event );
+
+ /// wxEVT_UPDATE_UI event handler for ID_ENABLESOCKSPROXYCTRL
+ void OnEnablesocksproxyctrlUpdate( wxUpdateUIEvent& event );
+
+////@end CDlgToolsOptions event handler declarations
+
+////@begin CDlgToolsOptions member function declarations
+
+////@end CDlgToolsOptions member function declarations
+
+ /// Should we show tooltips?
+ static bool ShowToolTips();
+
+////@begin CDlgToolsOptions member variables
+ wxCheckBox* m_EnableHTTPProxyCtrl;
+ wxTextCtrl* m_HTTPAddressCtrl;
+ wxTextCtrl* m_HTTPPortCtrl;
+ wxTextCtrl* m_HTTPUsernameCtrl;
+ wxTextCtrl* m_HTTPPasswordCtrl;
+ wxCheckBox* m_EnableSOCKSProxyCtrl;
+ wxTextCtrl* m_SOCKSAddressCtrl;
+ wxTextCtrl* m_SOCKSPortCtrl;
+ wxTextCtrl* m_SOCKSUsernameCtrl;
+ wxTextCtrl* m_SOCKPasswordCtrl;
+////@end CDlgToolsOptions member variables
+};
+
+#endif
+ // _DLGOPTIONS_H_
diff --git a/clientgui/Events.h b/clientgui/Events.h
new file mode 100644
index 0000000000..d914d5b839
--- /dev/null
+++ b/clientgui/Events.h
@@ -0,0 +1,26 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+
+enum {
+ ID_STATUSBAR = wxID_HIGHEST + 1,
+
+} enumEvents;
+
diff --git a/clientgui/MainDocument.cpp b/clientgui/MainDocument.cpp
new file mode 100644
index 0000000000..f11a94e025
--- /dev/null
+++ b/clientgui/MainDocument.cpp
@@ -0,0 +1,33 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#include "stdwx.h"
+#include ".\maindocument.h"
+
+
+IMPLEMENT_DYNAMIC_CLASS(CMainDocument, wxObject)
+
+
+CMainDocument::CMainDocument(void)
+{
+}
+
+CMainDocument::~CMainDocument(void)
+{
+}
diff --git a/clientgui/MainDocument.h b/clientgui/MainDocument.h
new file mode 100644
index 0000000000..1e873f5b76
--- /dev/null
+++ b/clientgui/MainDocument.h
@@ -0,0 +1,29 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+
+class CMainDocument : public wxObject
+{
+ DECLARE_DYNAMIC_CLASS(CMainDocument)
+
+public:
+ CMainDocument(void);
+ ~CMainDocument(void);
+};
diff --git a/clientgui/MainFrame.cpp b/clientgui/MainFrame.cpp
new file mode 100644
index 0000000000..d984601eb4
--- /dev/null
+++ b/clientgui/MainFrame.cpp
@@ -0,0 +1,237 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#include "stdwx.h"
+#include "boincguiapp.h"
+#include "mainframe.h"
+#include "baselistctrlview.h"
+#include "basewindowview.h"
+#include "messagesview.h"
+#include "projectsview.h"
+#include "resourceutilizationview.h"
+#include "transfersview.h"
+#include "workview.h"
+#include "events.h"
+
+
+IMPLEMENT_DYNAMIC_CLASS(CMainFrame, wxFrame)
+
+
+BEGIN_EVENT_TABLE (CMainFrame, wxFrame)
+ EVT_CLOSE ( CMainFrame::OnClose)
+ EVT_IDLE ( CMainFrame::OnIdle)
+ EVT_MENU (wxID_EXIT, CMainFrame::OnExit)
+ EVT_MENU (wxID_ABOUT, CMainFrame::OnAbout)
+ EVT_MENU (ID_STATUSBAR, CMainFrame::OnStatusbar)
+ EVT_UPDATE_UI (ID_STATUSBAR, CMainFrame::OnStatusbarUI)
+END_EVENT_TABLE ()
+
+
+CMainFrame::CMainFrame()
+{
+}
+
+
+CMainFrame::CMainFrame(wxString strTitle) :
+ wxFrame ((wxFrame *)NULL, -1, strTitle, wxDefaultPosition, wxDefaultSize,
+ wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE)
+{
+ m_pMenubar = NULL;
+ m_pNotebook = NULL;
+ m_pStatusbar = NULL;
+
+ SetIcon(wxICON(APP_ICON));
+
+ wxCHECK_RET(CreateMenu(), _T("Failed to create menu bar."));
+ wxCHECK_RET(CreateNotebook(), _T("Failed to create notebook."));
+ wxCHECK_RET(CreateStatusbar(), _T("Failed to create status bar."));
+}
+
+
+CMainFrame::~CMainFrame(void)
+{
+ if (m_pMenubar)
+ wxCHECK_RET(DeleteMenu(), _T("Failed to delete menu bar."));
+
+ if (m_pNotebook)
+ wxCHECK_RET(DeleteNotebook(), _T("Failed to delete notebook."));
+
+ if (m_pStatusbar)
+ wxCHECK_RET(DeleteStatusbar(), _T("Failed to delete status bar."));
+}
+
+
+bool CMainFrame::CreateMenu() {
+
+ // File menu
+ wxMenu *menuFile = new wxMenu;
+ menuFile->Append(wxID_EXIT, _("E&xit"));
+
+ // Commands menu
+ wxMenu *menuCommands = new wxMenu;
+ menuCommands->Append(wxID_EXIT, _("&Attach to Project..."));
+
+ // Tools menu
+ wxMenu *menuTools = new wxMenu;
+ menuTools->Append(wxID_EXIT, _("&Options"));
+
+ // Help menu
+ wxMenu *menuHelp = new wxMenu;
+ menuHelp->Append(wxID_ABOUT, _("&About BOINC..."));
+
+ // construct menu
+ m_pMenubar = new wxMenuBar;
+ m_pMenubar->Append(menuFile, _("&File"));
+ m_pMenubar->Append(menuCommands, _("&Commands"));
+ m_pMenubar->Append(menuTools, _("&Tools"));
+ m_pMenubar->Append(menuHelp, _("&Help"));
+ SetMenuBar(m_pMenubar);
+
+ return true;
+}
+
+
+bool CMainFrame::CreateNotebook() {
+
+ // create frame panel
+ wxPanel *pPanel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize,
+ wxTAB_TRAVERSAL|wxCLIP_CHILDREN|wxNO_BORDER);
+
+ // initialize notebook
+ m_pNotebook = new wxNotebook(pPanel, -1, wxDefaultPosition, wxDefaultSize,
+ wxNB_FIXEDWIDTH|wxCLIP_CHILDREN);
+
+ wxNotebookSizer *pNotebookSizer = new wxNotebookSizer(m_pNotebook);
+
+ // layout frame panel
+ wxBoxSizer *pPanelSizer = new wxBoxSizer(wxVERTICAL);
+ pPanelSizer->Add(new wxStaticLine(pPanel, -1), 0, wxEXPAND);
+ pPanelSizer->Add(0, 4);
+ pPanelSizer->Add(pNotebookSizer, 1, wxEXPAND);
+ pPanel->SetSizerAndFit(pPanelSizer);
+
+ CreateNotebookPage(new CProjectsView(m_pNotebook));
+ CreateNotebookPage(new CWorkView(m_pNotebook));
+ CreateNotebookPage(new CTransfersView(m_pNotebook));
+ CreateNotebookPage(new CMessagesView(m_pNotebook));
+ CreateNotebookPage(new CResourceUtilizationView(m_pNotebook));
+
+ return true;
+}
+
+
+bool CMainFrame::CreateNotebookPage(wxWindow* pwndNewNotebookPage) {
+
+ wxASSERT(pwndNewNotebookPage->IsKindOf(CLASSINFO(CBaseListCtrlView)) ||
+ pwndNewNotebookPage->IsKindOf(CLASSINFO(CBaseWindowView)));
+
+ if(pwndNewNotebookPage->IsKindOf(CLASSINFO(CBaseListCtrlView)))
+ {
+ CBaseListCtrlView* pPage = (CBaseListCtrlView*)pwndNewNotebookPage;
+ m_pNotebook->AddPage(pPage, pPage->GetViewName(), true, -1);
+ }
+ else
+ {
+ if(pwndNewNotebookPage->IsKindOf(CLASSINFO(CBaseWindowView)))
+ {
+ CBaseWindowView* pPage = (CBaseWindowView*)pwndNewNotebookPage;
+ m_pNotebook->AddPage(pPage, pPage->GetViewName(), true, -1);
+ }
+ }
+
+ return true;
+}
+
+
+bool CMainFrame::CreateStatusbar() {
+
+ if (m_pStatusbar)
+ return true;
+
+ int ch = GetCharWidth();
+
+ const int widths[] = {-1, 20*ch, 15};
+
+ m_pStatusbar = CreateStatusBar(WXSIZEOF(widths), wxST_SIZEGRIP, ID_STATUSBAR);
+ m_pStatusbar->SetStatusWidths(WXSIZEOF(widths), widths);
+
+ SetStatusBar(m_pStatusbar);
+ SendSizeEvent();
+
+ return true;
+}
+
+
+bool CMainFrame::DeleteMenu() {
+ return true;
+}
+
+
+bool CMainFrame::DeleteNotebook() {
+ return true;
+}
+
+
+bool CMainFrame::DeleteStatusbar() {
+
+ if (!m_pStatusbar)
+ return true;
+
+ SetStatusBar (NULL);
+
+ delete m_pStatusbar;
+
+ m_pStatusbar = NULL;
+ SendSizeEvent();
+
+ return true;
+}
+
+
+void CMainFrame::OnAbout(wxCommandEvent &WXUNUSED(event)) {
+}
+
+
+void CMainFrame::OnClose(wxCloseEvent &event) {
+ Destroy();
+}
+
+
+void CMainFrame::OnExit(wxCommandEvent &WXUNUSED(event)) {
+ Close(true);
+}
+
+
+void CMainFrame::OnIdle (wxIdleEvent &event) {
+}
+
+
+void CMainFrame::OnStatusbar (wxCommandEvent &WXUNUSED(event)) {
+
+ if (!m_pStatusbar)
+ CreateStatusbar();
+ else
+ DeleteStatusbar();
+
+}
+
+
+void CMainFrame::OnStatusbarUI (wxUpdateUIEvent &event) {
+ event.Check(m_pStatusbar != NULL);
+}
diff --git a/clientgui/MainFrame.h b/clientgui/MainFrame.h
new file mode 100644
index 0000000000..9b1bd3b818
--- /dev/null
+++ b/clientgui/MainFrame.h
@@ -0,0 +1,64 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+
+class CMainFrame : public wxFrame
+{
+ DECLARE_DYNAMIC_CLASS(CMainFrame)
+
+public:
+ CMainFrame();
+ CMainFrame(wxString strTitle);
+
+ ~CMainFrame(void);
+
+ void OnClose (wxCloseEvent &event);
+ void OnIdle (wxIdleEvent &event);
+
+ void OnAbout (wxCommandEvent &event);
+ void OnExit (wxCommandEvent &event);
+ void OnStatusbar (wxCommandEvent &event);
+
+ void OnToolbarsUI (wxUpdateUIEvent &event);
+ void OnStatusbarUI (wxUpdateUIEvent &event);
+
+private:
+
+ wxMenuBar* m_pMenubar;
+ wxNotebook* m_pNotebook;
+ wxStatusBar* m_pStatusbar;
+
+ wxString m_strStatusMessage;
+
+ // menu bar
+ bool CreateMenu();
+ bool DeleteMenu();
+
+ // notebook
+ bool CreateNotebook();
+ bool CreateNotebookPage(wxWindow* pwndNewNotebookPage);
+ bool DeleteNotebook();
+
+ // status bar
+ bool CreateStatusbar();
+ bool DeleteStatusbar();
+
+ DECLARE_EVENT_TABLE()
+};
diff --git a/clientgui/MessagesView.cpp b/clientgui/MessagesView.cpp
new file mode 100644
index 0000000000..a7db17321d
--- /dev/null
+++ b/clientgui/MessagesView.cpp
@@ -0,0 +1,49 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#include "stdwx.h"
+#include ".\messagesview.h"
+
+
+IMPLEMENT_DYNAMIC_CLASS(CMessagesView, CBaseListCtrlView)
+
+
+CMessagesView::CMessagesView(void)
+{
+}
+
+
+CMessagesView::CMessagesView(wxNotebook* pNotebook) :
+ CBaseListCtrlView(pNotebook)
+{
+ InsertColumn(0, _("Project"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(1, _("Time"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(2, _("Message"), wxLIST_FORMAT_LEFT, -1);
+}
+
+
+CMessagesView::~CMessagesView(void)
+{
+}
+
+
+wxString CMessagesView::GetViewName(void)
+{
+ return wxString(_("Messages"));
+}
diff --git a/clientgui/MessagesView.h b/clientgui/MessagesView.h
new file mode 100644
index 0000000000..1ce5d3cf06
--- /dev/null
+++ b/clientgui/MessagesView.h
@@ -0,0 +1,34 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+#include "baselistctrlview.h"
+
+class CMessagesView : public CBaseListCtrlView
+{
+ DECLARE_DYNAMIC_CLASS(CMessagesView)
+
+public:
+ CMessagesView(void);
+ CMessagesView(wxNotebook* pNotebook);
+
+ ~CMessagesView(void);
+
+ virtual wxString GetViewName(void);
+};
diff --git a/clientgui/ProjectsView.cpp b/clientgui/ProjectsView.cpp
new file mode 100644
index 0000000000..70439285fc
--- /dev/null
+++ b/clientgui/ProjectsView.cpp
@@ -0,0 +1,51 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#include "stdwx.h"
+#include ".\projectsview.h"
+
+
+IMPLEMENT_DYNAMIC_CLASS(CProjectsView, CBaseListCtrlView)
+
+
+CProjectsView::CProjectsView(void)
+{
+}
+
+
+CProjectsView::CProjectsView(wxNotebook* pNotebook) :
+ CBaseListCtrlView(pNotebook)
+{
+ InsertColumn(0, _("Project"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(1, _("Account"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(2, _("Total Credit"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(3, _("Avg. Credit"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(4, _("Resource Share"), wxLIST_FORMAT_LEFT, -1);
+}
+
+
+CProjectsView::~CProjectsView(void)
+{
+}
+
+
+wxString CProjectsView::GetViewName(void)
+{
+ return wxString(_("Projects"));
+}
diff --git a/clientgui/ProjectsView.h b/clientgui/ProjectsView.h
new file mode 100644
index 0000000000..3b20ec7cd0
--- /dev/null
+++ b/clientgui/ProjectsView.h
@@ -0,0 +1,34 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+#include "baselistctrlview.h"
+
+class CProjectsView : public CBaseListCtrlView
+{
+ DECLARE_DYNAMIC_CLASS(CProjectsView)
+
+public:
+ CProjectsView(void);
+ CProjectsView(wxNotebook* pNotebook);
+
+ ~CProjectsView(void);
+
+ virtual wxString GetViewName(void);
+};
diff --git a/clientgui/ResourceUtilizationView.cpp b/clientgui/ResourceUtilizationView.cpp
new file mode 100644
index 0000000000..c1b200ebc1
--- /dev/null
+++ b/clientgui/ResourceUtilizationView.cpp
@@ -0,0 +1,50 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#include "stdwx.h"
+#include ".\resourceutilizationview.h"
+
+
+IMPLEMENT_DYNAMIC_CLASS(CResourceUtilizationView, CBaseWindowView)
+
+
+CResourceUtilizationView::CResourceUtilizationView(void)
+{
+}
+
+
+CResourceUtilizationView::CResourceUtilizationView(wxNotebook* pNotebook) :
+ CBaseWindowView(pNotebook)
+{
+ SetBackgroundColour(wxColor(_T("WHITE")));
+
+ (void) new wxStaticText( this, -1,
+ wxT("This page intentionally left blank"), wxPoint(10, 10) );
+}
+
+
+CResourceUtilizationView::~CResourceUtilizationView(void)
+{
+}
+
+
+wxString CResourceUtilizationView::GetViewName(void)
+{
+ return wxString(_("Disk"));
+}
diff --git a/clientgui/ResourceUtilizationView.h b/clientgui/ResourceUtilizationView.h
new file mode 100644
index 0000000000..e4577b8d02
--- /dev/null
+++ b/clientgui/ResourceUtilizationView.h
@@ -0,0 +1,34 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+#include "basewindowview.h"
+
+class CResourceUtilizationView : public CBaseWindowView
+{
+ DECLARE_DYNAMIC_CLASS(CResourceUtilizationView)
+
+public:
+ CResourceUtilizationView(void);
+ CResourceUtilizationView(wxNotebook* pNotebook);
+
+ ~CResourceUtilizationView(void);
+
+ virtual wxString GetViewName(void);
+};
diff --git a/clientgui/TransfersView.cpp b/clientgui/TransfersView.cpp
new file mode 100644
index 0000000000..a0efdf43b7
--- /dev/null
+++ b/clientgui/TransfersView.cpp
@@ -0,0 +1,53 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#include "stdwx.h"
+#include ".\transfersview.h"
+
+
+IMPLEMENT_DYNAMIC_CLASS(CTransfersView, CBaseListCtrlView)
+
+
+CTransfersView::CTransfersView(void)
+{
+}
+
+
+CTransfersView::CTransfersView(wxNotebook* pNotebook) :
+ CBaseListCtrlView(pNotebook)
+{
+ InsertColumn(0, _("Project"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(1, _("File"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(2, _("Progress"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(3, _("Size"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(4, _("Time"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(4, _("Speed"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(4, _("Status"), wxLIST_FORMAT_LEFT, -1);
+}
+
+
+CTransfersView::~CTransfersView(void)
+{
+}
+
+
+wxString CTransfersView::GetViewName(void)
+{
+ return wxString(_("Transfers"));
+}
diff --git a/clientgui/TransfersView.h b/clientgui/TransfersView.h
new file mode 100644
index 0000000000..bb10e07161
--- /dev/null
+++ b/clientgui/TransfersView.h
@@ -0,0 +1,35 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+#include "mainframe.h"
+#include "baselistctrlview.h"
+
+class CTransfersView : public CBaseListCtrlView
+{
+ DECLARE_DYNAMIC_CLASS(CTransfersView)
+
+public:
+ CTransfersView(void);
+ CTransfersView(wxNotebook* pNotebook);
+
+ ~CTransfersView(void);
+
+ virtual wxString GetViewName(void);
+};
diff --git a/clientgui/WorkView.cpp b/clientgui/WorkView.cpp
new file mode 100644
index 0000000000..0cb6ea7aa0
--- /dev/null
+++ b/clientgui/WorkView.cpp
@@ -0,0 +1,54 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#include "stdwx.h"
+#include ".\workview.h"
+
+
+IMPLEMENT_DYNAMIC_CLASS(CWorkView, CBaseListCtrlView)
+
+
+CWorkView::CWorkView(void)
+{
+}
+
+
+CWorkView::CWorkView(wxNotebook* pNotebook) :
+ CBaseListCtrlView(pNotebook)
+{
+ InsertColumn(0, _("Project"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(1, _("Application"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(2, _("Name"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(3, _("CPU time"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(4, _("Progress"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(4, _("To Completetion"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(4, _("Report Deadline"), wxLIST_FORMAT_LEFT, -1);
+ InsertColumn(4, _("Status"), wxLIST_FORMAT_LEFT, -1);
+}
+
+
+CWorkView::~CWorkView(void)
+{
+}
+
+
+wxString CWorkView::GetViewName(void)
+{
+ return wxString(_("Work"));
+}
diff --git a/clientgui/WorkView.h b/clientgui/WorkView.h
new file mode 100644
index 0000000000..603b6b7249
--- /dev/null
+++ b/clientgui/WorkView.h
@@ -0,0 +1,35 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+#pragma once
+#include "mainframe.h"
+#include "baselistctrlview.h"
+
+class CWorkView : public CBaseListCtrlView
+{
+ DECLARE_DYNAMIC_CLASS(CWorkView)
+
+public:
+ CWorkView(void);
+ CWorkView(wxNotebook* pNotebook);
+
+ ~CWorkView(void);
+
+ virtual wxString GetViewName(void);
+};
diff --git a/clientgui/_wx_intellisense.h b/clientgui/_wx_intellisense.h
new file mode 100644
index 0000000000..c621768ec4
--- /dev/null
+++ b/clientgui/_wx_intellisense.h
@@ -0,0 +1,12 @@
+/*
+ * This file enables intellisense for wxWindows. It is included in the project,
+ * but never actually included in any cpp source.
+ *
+ * It needs to be opened once to create the *.ncb file.
+ * You can close this file now.
+ *
+ * NOTE: To enable intellisense for your other projects, copy this file to the project
+ * and include it in your workspace. Then open the file and close it again to give
+ * Visual Studio the opportunity to parse the file and add its contents to intellisense.
+ */
+#include
diff --git a/clientgui/boincsm-preview.png b/clientgui/boincsm-preview.png
new file mode 100644
index 0000000000..2fad59f4fa
Binary files /dev/null and b/clientgui/boincsm-preview.png differ
diff --git a/clientgui/boincsm.xpm b/clientgui/boincsm.xpm
new file mode 100644
index 0000000000..3c3c6faf31
--- /dev/null
+++ b/clientgui/boincsm.xpm
@@ -0,0 +1,137 @@
+/* XPM */
+static char *boincsm_xpm[] = {
+"50 50 84 1",
+" c #848484",
+". c #94B5D6",
+"X c #9CCEFF",
+"o c #8C9CB5",
+"O c #94C6F7",
+"+ c #94BDE7",
+"@ c #848C94",
+"# c #8CADCE",
+"$ c #7BA5CE",
+"% c #84848C",
+"& c #CEFFFF",
+"* c #4A5A6B",
+"= c #A5CECE",
+"- c #7B9C9C",
+"; c #6B6B6B",
+": c #8CADAD",
+"> c #848C9C",
+", c #8CA5C6",
+"< c #525252",
+"1 c #293131",
+"2 c #739CC6",
+"3 c #8CBDEF",
+"4 c #84949C",
+"5 c #182931",
+"6 c #000000",
+"7 c #BDEFEF",
+"8 c #5273A5",
+"9 c #21319C",
+"0 c #5A738C",
+"q c #181884",
+"w c #000084",
+"e c #6B6B84",
+"r c #525284",
+"t c #84ADEF",
+"y c #08108C",
+"u c #5263B5",
+"i c #10188C",
+"p c #29319C",
+"a c #00006B",
+"s c #18299C",
+"d c #080884",
+"f c #182984",
+"g c #ADD6EF",
+"h c #A5CEE7",
+"j c #000073",
+"k c #00007B",
+"l c #292984",
+"z c #39429C",
+"x c #739CE7",
+"c c #8CBDF7",
+"v c #18218C",
+"b c #7B9CCE",
+"n c #8CADD6",
+"m c #31399C",
+"M c #21316B",
+"N c #7BA5E7",
+"B c #4A4A84",
+"V c #3952B5",
+"C c #B5E7EF",
+"Z c #8C9CAD",
+"A c #848C8C",
+"S c #84B5E7",
+"D c #4A6373",
+"F c #3142AD",
+"G c #9CC6E7",
+"H c #6B84C6",
+"J c #424284",
+"K c #526B73",
+"L c #4A5AAD",
+"P c #637BBD",
+"I c #5A7BCE",
+"U c #6B8CAD",
+"Y c #21298C",
+"T c #393984",
+"R c #000042",
+"E c #000031",
+"W c #4A63BD",
+"Q c #637B84",
+"! c #8CA5BD",
+"~ c #737373",
+"^ c #526363",
+"/ c #5A7B9C",
+"( c #84ADD6",
+") c #101010",
+" ",
+" ",
+" ",
+" . ",
+" X ",
+" XX ",
+" oXX ",
+" O . XXX ",
+" X+ X@ XXXX ",
+" XX+ XXX #XX$+ ",
+" XXXo XXX+ %XX&$+ ",
+" @XXXX@ XXXX* XX=&$+ ++ ",
+" +XXXXX% #XXXX-; +X:&&$+ >,XXXXX ",
+" +XXXXXX XXXXX&&&&&&&&&&&&&&&&&XXX11XXXXXXX ",
+" ~=&&&&&&&&&&&^5&&XXXXX@XXXXXX ",
+" ZX/=&&&(&&(X()XXXXX 4XXXXX# ",
+" #XX=&&XX55X oXXXXXX XXXXX ",
+" XXX=&;XXXXX XXXXXX OXXX ",
+" XXX=; XXXXX XXXXZ XXX ",
+" >X ) XXXXo +XXX> !X. ",
+" + XXXX XXX> X ",
+" XXXX #XX ",
+" XXX! XX ",
+" XX X ",
+" XX + ",
+" X> ",
+" X ",
+" X ",
+" # ",
+" ",
+" ",
+" "};
diff --git a/clientgui/res/BOINCGUIApp.ico b/clientgui/res/BOINCGUIApp.ico
new file mode 100644
index 0000000000..207d5a4a6b
Binary files /dev/null and b/clientgui/res/BOINCGUIApp.ico differ
diff --git a/clientgui/resource.h b/clientgui/resource.h
new file mode 100644
index 0000000000..bad9222412
--- /dev/null
+++ b/clientgui/resource.h
@@ -0,0 +1,17 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by wxWindowsTemplate.rc
+//
+#define IDI_MYFRAME 1
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC 1
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1001
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/clientgui/stdwx.cpp b/clientgui/stdwx.cpp
new file mode 100644
index 0000000000..2bc44426bf
--- /dev/null
+++ b/clientgui/stdwx.cpp
@@ -0,0 +1,31 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+// stdafx.cpp : source file that includes just the standard includes
+// wxWindowsTemplate.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdwx.h"
+
+#ifndef __WIN95__
+#error An error in wxWindows version 2.4.0 and 2.4.1 require that you set WINVER=0x400 in the project settings!
+#endif
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file
diff --git a/clientgui/stdwx.h b/clientgui/stdwx.h
new file mode 100644
index 0000000000..e13ebfeee4
--- /dev/null
+++ b/clientgui/stdwx.h
@@ -0,0 +1,50 @@
+// The contents of this file are subject to the BOINC Public License
+// Version 1.0 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://boinc.berkeley.edu/license_1.0.txt
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is the Berkeley Open Infrastructure for Network Computing.
+//
+// The Initial Developer of the Original Code is the SETI@home project.
+// Portions created by the SETI@home project are Copyright (C) 2002
+// University of California at Berkeley. All Rights Reserved.
+//
+// Contributor(s):
+//
+
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#ifndef __STDWX_H__
+#define __STDWX_H__
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/wx.h"
+#endif
+
+#include // diagnostics support
+#include // accelerator support
+#include // command line support
+#include // configuration support
+#include // internationalization
+#include // list control support
+#include // notebook support
+#include // toolbars support
+#include // system settings
+#include // static line
+
+#endif
\ No newline at end of file