diff --git a/checkin_notes b/checkin_notes
index 814db9a3d6..fcacd64895 100755
--- a/checkin_notes
+++ b/checkin_notes
@@ -24105,3 +24105,19 @@ David 6 Feb 2005
handle_request.C
sched_send.C
server_types.C
+
+Rom 6 Feb 2005
+ - Bug Fix: Enable the user to select which language the BOINC Manager
+ should display on startup. This is configured via the tools\options
+ dialog.
+ - Bug Fix: BOINC Manager should now remember whether it is maximized
+ or minimized, it does not remember position because wxWidgets
+ has a hard time with negitive coordinate values that multi-mon
+ configurations may have. If you plug in a negative value for
+ x or y the client ends up off the visible part of the screen.
+
+ clientgui/
+ BOINCGUI.pjd
+ BOINCGUIApp.cpp, .h
+ DlgOptions.cpp, .h
+ MainFrame.cpp, .h
diff --git a/clientgui/BOINCGUI.pjd b/clientgui/BOINCGUI.pjd
index 1625e3b195..8864503305 100644
--- a/clientgui/BOINCGUI.pjd
+++ b/clientgui/BOINCGUI.pjd
@@ -12,7 +12,7 @@
- 82
+ 84
TRUE
FALSE
@@ -77,7 +77,7 @@
Projects
- 12516264
+ 12516512
root-document
project
@@ -87,23 +87,23 @@
0
Windows
- 12873624
+ 12702040
html-document
dialogsfolder
1
1
- 12516264
+ 12516512
1
Options
- 12828328
+ 12796032
dialog-document
dialog
0
1
- 12873624
+ 12702040
0
8/3/2004
wbDialogProxy
@@ -163,13 +163,13 @@
wxBoxSizer V
- 12628024
+ 12840552
dialog-control-document
sizer
0
1
- 12828328
+ 12796032
0
wbBoxSizerProxy
Vertical
@@ -180,13 +180,13 @@
<Any platform>
wxNotebook: ID_NOTEBOOK
- 12847304
+ 12661552
dialog-control-document
notebook
0
1
- 12628024
+ 12840552
0
wbNotebookProxy
wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED|OnNotebookPageChanged
@@ -240,13 +240,13 @@
FALSE
wxPanel: ID_GENERAL
- 12767600
+ 12724848
dialog-control-document
panel
0
1
- 12847304
+ 12661552
0
wbPanelProxy
ID_GENERAL
@@ -299,13 +299,13 @@
wxBoxSizer V
- 12791408
+ 12794576
dialog-control-document
sizer
0
1
- 12767600
+ 12724848
0
24/9/2004
wbBoxSizerProxy
@@ -324,68 +324,149 @@
FALSE
<Any platform>
- wxStaticText: wxID_STATIC
- 12853488
+ wxGridSizer
+ 25462392
dialog-control-document
- statictext
+ sizer
0
1
- 12791408
+ 12794576
0
- 24/9/2004
- wbStaticTextProxy
- wxID_STATIC
- 5105
- wxStaticText
+ 6/1/2005
+ wbGridSizerProxy
+ 2
+ 2
+ 0
+ 0
- This page is intentionally left blank
-
-
-
- FALSE
<Any platform>
- FALSE
- FALSE
- TRUE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
- FALSE
-
- -1
- -1
- -1
- -1
Expand
Centre
- 1
- 5
- FALSE
- FALSE
- FALSE
- FALSE
+ 0
+ 3
+ TRUE
+ TRUE
+ TRUE
+ TRUE
FALSE
FALSE
FALSE
+
+ wxStaticText: wxID_STATIC
+ 13233696
+ dialog-control-document
+
+ statictext
+ 0
+ 1
+ 25462392
+ 0
+ 6/1/2005
+ wbStaticTextProxy
+ wxID_STATIC
+ 5105
+ wxStaticText
+
+ Language Selection:
+
+
+
+ FALSE
+ <Any platform>
+ 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
+ FALSE
+
+
+ wxComboBox: ID_COMBOBOX
+ 13238704
+ dialog-control-document
+
+ combobox
+ 0
+ 1
+ 25462392
+ 0
+ 6/1/2005
+ wbComboBoxProxy
+ ID_COMBOBOX
+ 10004
+ wxComboBox
+ m_LanguageSelectionCtrl
+ (Automatic Detection)|English|French|German|Arabic
+ (Automatic Detection)
+
+
+
+
+
+ FALSE
+ <Any platform>
+
+
+ FALSE
+ FALSE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+
+ -1
+ -1
+ -1
+ -1
+ Expand
+ Centre
+ 0
+ 5
+ TRUE
+ TRUE
+ TRUE
+ TRUE
+ FALSE
+ FALSE
+ FALSE
+
-
+
wxPanel: ID_HTTPPROXY
- 12766840
+ 12705880
dialog-control-document
panel
0
1
- 12847304
+ 12661552
0
wbPanelProxy
ID_HTTPPROXY
@@ -436,15 +517,15 @@
FALSE
FALSE
-
+
wxBoxSizer V
- 12689024
+ 12745904
dialog-control-document
sizer
0
1
- 12766840
+ 12705880
0
wbBoxSizerProxy
Vertical
@@ -461,15 +542,15 @@
FALSE
FALSE
<Any platform>
-
+
wxCheckBox: ID_ENABLEHTTPPROXYCTRL
- 12690040
+ 12750976
dialog-control-document
checkbox
0
1
- 12689024
+ 12745904
0
wbCheckBoxProxy
wxEVT_COMMAND_CHECKBOX_CLICKED|OnEnablehttpproxyctrlClick
@@ -509,15 +590,15 @@
FALSE
FALSE
-
+
wxStaticBoxSizer V
- 12749376
+ 12943880
dialog-control-document
sizer
0
1
- 12689024
+ 12745904
0
wbStaticBoxSizerProxy
wxID_ANY
@@ -538,15 +619,15 @@
FALSE
FALSE
<Any platform>
-
+
wxGridSizer
- 12775552
+ 12554512
dialog-control-document
sizer
0
1
- 12749376
+ 12943880
0
wbGridSizerProxy
1
@@ -566,15 +647,15 @@
FALSE
FALSE
FALSE
-
+
wxFlexGridSizer
- 12947152
+ 12685976
dialog-control-document
sizer
0
1
- 12775552
+ 12554512
0
wbFlexGridSizerProxy
@@ -596,15 +677,15 @@
FALSE
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 12942976
+ 12844208
dialog-control-document
statictext
0
1
- 12947152
+ 12685976
0
wbStaticTextProxy
wxID_STATIC
@@ -647,15 +728,15 @@
TRUE
FALSE
-
+
wxTextCtrl: ID_HTTPADDRESSCTRL
- 12714576
+ 12654080
dialog-control-document
textctrl
0
1
- 12947152
+ 12685976
0
wbTextCtrlProxy
ID_HTTPADDRESSCTRL
@@ -713,15 +794,15 @@
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 12846480
+ 12867424
dialog-control-document
statictext
0
1
- 12947152
+ 12685976
0
wbStaticTextProxy
wxID_STATIC
@@ -764,15 +845,15 @@
TRUE
FALSE
-
+
wxTextCtrl: ID_HTTPPORTCTRL
- 12724712
+ 12711056
dialog-control-document
textctrl
0
1
- 12947152
+ 12685976
0
wbTextCtrlProxy
ID_HTTPPORTCTRL
@@ -832,15 +913,15 @@
-
+
wxStaticBoxSizer V
- 12814640
+ 12553696
dialog-control-document
sizer
0
1
- 12749376
+ 12943880
0
wbStaticBoxSizerProxy
wxID_ANY
@@ -861,15 +942,15 @@
FALSE
FALSE
<Any platform>
-
+
wxFlexGridSizer
- 12809264
+ 12902832
dialog-control-document
sizer
0
1
- 12814640
+ 12553696
0
wbFlexGridSizerProxy
@@ -891,15 +972,15 @@
FALSE
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 12538856
+ 12911920
dialog-control-document
statictext
0
1
- 12809264
+ 12902832
0
wbStaticTextProxy
wxID_STATIC
@@ -942,15 +1023,15 @@
TRUE
FALSE
-
+
wxTextCtrl: ID_HTTPUSERNAMECTRL
- 12898800
+ 12927544
dialog-control-document
textctrl
0
1
- 12809264
+ 12902832
0
wbTextCtrlProxy
ID_HTTPUSERNAMECTRL
@@ -1008,15 +1089,15 @@
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 12918736
+ 12534840
dialog-control-document
statictext
0
1
- 12809264
+ 12902832
0
wbStaticTextProxy
wxID_STATIC
@@ -1059,15 +1140,15 @@
TRUE
FALSE
-
+
wxTextCtrl: ID_HTTPPASSWORDCTRL
- 12933600
+ 12639816
dialog-control-document
textctrl
0
1
- 12809264
+ 12902832
0
wbTextCtrlProxy
ID_HTTPPASSWORDCTRL
@@ -1130,15 +1211,15 @@
-
+
wxPanel: ID_SOCKSPROXY
- 12700032
+ 12685424
dialog-control-document
panel
0
1
- 12847304
+ 12661552
0
wbPanelProxy
ID_SOCKSPROXY
@@ -1189,15 +1270,15 @@
FALSE
FALSE
-
+
wxBoxSizer V
- 12706472
+ 12829152
dialog-control-document
sizer
0
1
- 12700032
+ 12685424
0
wbBoxSizerProxy
Vertical
@@ -1214,15 +1295,15 @@
FALSE
FALSE
<Any platform>
-
+
wxCheckBox: ID_ENABLESOCKSPROXYCTRL
- 12732296
+ 12883624
dialog-control-document
checkbox
0
1
- 12706472
+ 12829152
0
wbCheckBoxProxy
wxEVT_COMMAND_CHECKBOX_CLICKED|OnEnablesocksproxyctrlClick
@@ -1262,15 +1343,15 @@
FALSE
FALSE
-
+
wxStaticBoxSizer V
- 12836152
+ 12897384
dialog-control-document
sizer
0
1
- 12706472
+ 12829152
0
wbStaticBoxSizerProxy
wxID_ANY
@@ -1291,15 +1372,15 @@
FALSE
FALSE
<Any platform>
-
+
wxGridSizer
- 12889832
+ 12955160
dialog-control-document
sizer
0
1
- 12836152
+ 12897384
0
wbGridSizerProxy
1
@@ -1319,15 +1400,15 @@
FALSE
FALSE
FALSE
-
+
wxFlexGridSizer
- 25793104
+ 25792960
dialog-control-document
sizer
0
1
- 12889832
+ 12955160
0
wbFlexGridSizerProxy
@@ -1349,15 +1430,15 @@
FALSE
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 25803696
+ 25803536
dialog-control-document
statictext
0
1
- 25793104
+ 25792960
0
wbStaticTextProxy
wxID_STATIC
@@ -1400,15 +1481,15 @@
TRUE
FALSE
-
+
wxTextCtrl: ID_SOCKSADDRESSCTRL
- 25819896
+ 25819784
dialog-control-document
textctrl
0
1
- 25793104
+ 25792960
0
wbTextCtrlProxy
ID_SOCKSADDRESSCTRL
@@ -1466,15 +1547,15 @@
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 25840752
+ 25840640
dialog-control-document
statictext
0
1
- 25793104
+ 25792960
0
wbStaticTextProxy
wxID_STATIC
@@ -1517,15 +1598,15 @@
TRUE
FALSE
-
+
wxTextCtrl: ID_SOCKSPORTCTRL
- 25856176
+ 25856064
dialog-control-document
textctrl
0
1
- 25793104
+ 25792960
0
wbTextCtrlProxy
ID_SOCKSPORTCTRL
@@ -1585,15 +1666,15 @@
-
+
wxStaticBoxSizer V
- 12888968
+ 12954296
dialog-control-document
sizer
0
1
- 12836152
+ 12897384
0
wbStaticBoxSizerProxy
wxID_ANY
@@ -1614,15 +1695,15 @@
FALSE
FALSE
<Any platform>
-
+
wxFlexGridSizer
- 25883128
+ 25883008
dialog-control-document
sizer
0
1
- 12888968
+ 12954296
0
wbFlexGridSizerProxy
@@ -1644,15 +1725,15 @@
FALSE
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 25892272
+ 25892176
dialog-control-document
statictext
0
1
- 25883128
+ 25883008
0
wbStaticTextProxy
wxID_STATIC
@@ -1695,7 +1776,7 @@
TRUE
FALSE
-
+
wxTextCtrl: ID_SOCKSUSERNAMECTRL
25908384
dialog-control-document
@@ -1703,7 +1784,7 @@
textctrl
0
1
- 25883128
+ 25883008
0
wbTextCtrlProxy
ID_SOCKSUSERNAMECTRL
@@ -1761,15 +1842,15 @@
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 25929312
+ 25929272
dialog-control-document
statictext
0
1
- 25883128
+ 25883008
0
wbStaticTextProxy
wxID_STATIC
@@ -1812,15 +1893,15 @@
TRUE
FALSE
-
+
wxTextCtrl: ID_SOCKSPASSWORDCTRL
- 25944744
+ 25944696
dialog-control-document
textctrl
0
1
- 25883128
+ 25883008
0
wbTextCtrlProxy
ID_SOCKSPASSWORDCTRL
@@ -1884,15 +1965,15 @@
-
+
wxBoxSizer H
- 12713520
+ 25791496
dialog-control-document
sizer
0
1
- 12628024
+ 12840552
0
wbBoxSizerProxy
Horizontal
@@ -1909,15 +1990,15 @@
FALSE
FALSE
<Any platform>
-
+
wxButton: wxID_OK
- 12731864
+ 12810392
dialog-control-document
dialogcontrol
0
1
- 12713520
+ 25791496
0
wbButtonProxy
wxID_OK
@@ -1958,7 +2039,7 @@
FALSE
FALSE
-
+
wxButton: wxID_CANCEL
25976456
dialog-control-document
@@ -1966,7 +2047,7 @@
dialogcontrol
0
1
- 12713520
+ 25791496
0
wbButtonProxy
wxID_CANCEL
@@ -2010,15 +2091,15 @@
-
+
About BOINC
- 12799392
+ 12799672
dialog-document
dialog
0
1
- 12873624
+ 12702040
0
9/3/2004
wbDialogProxy
@@ -2076,15 +2157,15 @@
400
300
-
+
wxBoxSizer V
- 26004448
+ 26004464
dialog-control-document
sizer
0
1
- 12799392
+ 12799672
0
wbBoxSizerProxy
Vertical
@@ -2101,15 +2182,15 @@
FALSE
FALSE
<Any platform>
-
+
wxStaticText: wxID_STATIC
- 26013976
+ 26014088
dialog-control-document
statictext
0
1
- 26004448
+ 26004464
0
wbStaticTextProxy
wxID_STATIC
@@ -2152,15 +2233,15 @@
TRUE
FALSE
-
+
wxBoxSizer H
- 26029288
+ 26029384
dialog-control-document
sizer
0
1
- 26004448
+ 26004464
0
wbBoxSizerProxy
Horizontal
@@ -2177,15 +2258,15 @@
FALSE
FALSE
<Any platform>
-
+
wxBoxSizer V
- 26035896
+ 26035984
dialog-control-document
sizer
0
1
- 26029288
+ 26029384
0
wbBoxSizerProxy
Vertical
@@ -2202,15 +2283,15 @@
FALSE
FALSE
<Any platform>
-
+
wxStaticBitmap: wxID_STATIC
- 26045152
+ 26045248
dialog-control-document
staticbitmap
0
1
- 26035896
+ 26035984
0
wbStaticBitmapProxy
wxID_STATIC
@@ -2250,15 +2331,15 @@
FALSE
-
+
wxFlexGridSizer
- 26059024
+ 26059072
dialog-control-document
sizer
0
1
- 26029288
+ 26029384
0
wbFlexGridSizerProxy
@@ -2280,7 +2361,7 @@
FALSE
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
26067528
dialog-control-document
@@ -2288,7 +2369,7 @@
statictext
0
1
- 26059024
+ 26059072
0
wbStaticTextProxy
wxID_STATIC
@@ -2331,15 +2412,15 @@
TRUE
FALSE
-
+
wxStaticText: wxID_STATIC
- 26082928
+ 26082904
dialog-control-document
statictext
0
1
- 26059024
+ 26059072
0
wbStaticTextProxy
wxID_STATIC
@@ -2382,15 +2463,15 @@
TRUE
FALSE
-
+
wxStaticText: wxID_STATIC
- 26098280
+ 26098336
dialog-control-document
statictext
0
1
- 26059024
+ 26059072
0
wbStaticTextProxy
wxID_STATIC
@@ -2433,15 +2514,15 @@
TRUE
FALSE
-
+
wxStaticText: wxID_STATIC
- 26113736
+ 26113816
dialog-control-document
statictext
0
1
- 26059024
+ 26059072
0
wbStaticTextProxy
wxID_STATIC
@@ -2484,15 +2565,15 @@
TRUE
FALSE
-
+
wxStaticText: wxID_STATIC
- 26129120
+ 26129200
dialog-control-document
statictext
0
1
- 26059024
+ 26059072
0
wbStaticTextProxy
wxID_STATIC
@@ -2535,15 +2616,15 @@
TRUE
FALSE
-
+
wxStaticText: wxID_STATIC
- 26144504
+ 26144584
dialog-control-document
statictext
0
1
- 26059024
+ 26059072
0
wbStaticTextProxy
wxID_STATIC
@@ -2589,15 +2670,15 @@ All Rights Reserved.
-
+
wxStaticText: wxID_STATIC
- 26012960
+ 26013016
dialog-control-document
statictext
0
1
- 26004448
+ 26004464
0
wbStaticTextProxy
wxID_STATIC
@@ -2640,15 +2721,15 @@ All Rights Reserved.
TRUE
FALSE
-
+
wxStaticText: wxID_STATIC
- 26173944
+ 26173928
dialog-control-document
statictext
0
1
- 26004448
+ 26004464
0
wbStaticTextProxy
wxID_STATIC
@@ -2691,15 +2772,15 @@ All Rights Reserved.
TRUE
FALSE
-
+
wxStaticText: wxID_STATIC
- 26188488
+ 26188432
dialog-control-document
statictext
0
1
- 26004448
+ 26004464
0
wbStaticTextProxy
wxID_STATIC
@@ -2742,15 +2823,15 @@ All Rights Reserved.
TRUE
FALSE
-
+
wxStaticLine: wxID_STATIC
- 26203480
+ 26203632
dialog-control-document
staticline
0
1
- 26004448
+ 26004464
0
wbStaticLineProxy
wxID_STATIC
@@ -2790,15 +2871,15 @@ All Rights Reserved.
FALSE
FALSE
-
+
wxButton: wxID_OK
- 26217536
+ 26217640
dialog-control-document
dialogcontrol
0
1
- 26004448
+ 26004464
0
wbButtonProxy
wxID_OK
@@ -2841,15 +2922,15 @@ All Rights Reserved.
-
+
Connection
- 25944176
+ 25944128
dialog-document
dialog
0
1
- 12873624
+ 12702040
0
9/3/2004
wbDialogProxy
@@ -2907,15 +2988,15 @@ All Rights Reserved.
400
300
-
+
wxBoxSizer V
- 26248296
+ 26248376
dialog-control-document
sizer
0
1
- 25944176
+ 25944128
0
wbBoxSizerProxy
Vertical
@@ -2932,15 +3013,15 @@ All Rights Reserved.
FALSE
FALSE
<Any platform>
-
+
wxBoxSizer H
- 26256320
+ 26256328
dialog-control-document
sizer
0
1
- 26248296
+ 26248376
0
wbBoxSizerProxy
Horizontal
@@ -2957,15 +3038,15 @@ All Rights Reserved.
FALSE
FALSE
<Any platform>
-
+
wxBoxSizer V
- 26264240
+ 26264312
dialog-control-document
sizer
0
1
- 26256320
+ 26256328
0
wbBoxSizerProxy
Vertical
@@ -2982,15 +3063,15 @@ All Rights Reserved.
FALSE
FALSE
<Any platform>
-
+
wxStaticText: wxID_STATIC
- 26273728
+ 26273800
dialog-control-document
statictext
0
1
- 26264240
+ 26264312
0
wbStaticTextProxy
wxID_STATIC
@@ -3035,15 +3116,15 @@ May it do so now?
FALSE
-
+
wxBoxSizer V
- 26289056
+ 26289112
dialog-control-document
sizer
0
1
- 26256320
+ 26256328
0
wbBoxSizerProxy
Vertical
@@ -3060,15 +3141,15 @@ May it do so now?
FALSE
FALSE
<Any platform>
-
+
wxButton: wxID_OK
- 26295832
+ 26295896
dialog-control-document
dialogcontrol
0
1
- 26289056
+ 26289112
0
wbButtonProxy
wxID_OK
@@ -3109,15 +3190,15 @@ May it do so now?
FALSE
FALSE
-
+
wxButton: wxID_CANCEL
- 26310096
+ 26310160
dialog-control-document
dialogcontrol
0
1
- 26289056
+ 26289112
0
wbButtonProxy
wxID_CANCEL
@@ -3162,15 +3243,15 @@ May it do so now?
-
+
Attach to Project
- 26035608
+ 26003816
dialog-document
dialog
0
1
- 12873624
+ 12702040
0
9/3/2004
wbDialogProxy
@@ -3228,15 +3309,15 @@ May it do so now?
400
300
-
+
wxBoxSizer V
- 26339552
+ 26339440
dialog-control-document
sizer
0
1
- 26035608
+ 26003816
0
wbBoxSizerProxy
Vertical
@@ -3253,15 +3334,15 @@ May it do so now?
FALSE
FALSE
<Any platform>
-
+
wxBoxSizer H
- 26346608
+ 26346656
dialog-control-document
sizer
0
1
- 26339552
+ 26339440
0
wbBoxSizerProxy
Horizontal
@@ -3278,15 +3359,15 @@ May it do so now?
FALSE
FALSE
<Any platform>
-
+
wxFlexGridSizer
- 26355040
+ 26355080
dialog-control-document
sizer
0
1
- 26346608
+ 26346656
0
wbFlexGridSizerProxy
@@ -3308,15 +3389,15 @@ May it do so now?
FALSE
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 26365624
+ 26365584
dialog-control-document
statictext
0
1
- 26355040
+ 26355080
0
wbStaticTextProxy
wxID_STATIC
@@ -3359,15 +3440,15 @@ May it do so now?
TRUE
FALSE
-
+
wxTextCtrl: ID_PROJECTADDRESS
- 26381776
+ 26381736
dialog-control-document
textctrl
0
1
- 26355040
+ 26355080
0
wbTextCtrlProxy
ID_PROJECTADDRESS
@@ -3425,15 +3506,15 @@ May it do so now?
FALSE
FALSE
-
+
wxStaticText: wxID_STATIC
- 26402632
+ 26402544
dialog-control-document
statictext
0
1
- 26355040
+ 26355080
0
wbStaticTextProxy
wxID_STATIC
@@ -3476,15 +3557,15 @@ May it do so now?
TRUE
FALSE
-
+
wxTextCtrl: ID_PROJECTACCOUNTKEY
- 26418088
+ 26418048
dialog-control-document
textctrl
0
1
- 26355040
+ 26355080
0
wbTextCtrlProxy
ID_PROJECTACCOUNTKEY
@@ -3543,7 +3624,7 @@ May it do so now?
FALSE
-
+
wxBoxSizer V
26438800
dialog-control-document
@@ -3551,7 +3632,7 @@ May it do so now?
sizer
0
1
- 26346608
+ 26346656
0
wbBoxSizerProxy
Vertical
@@ -3568,7 +3649,7 @@ May it do so now?
FALSE
FALSE
<Any platform>
-
+
wxButton: wxID_OK
26445176
dialog-control-document
@@ -3617,7 +3698,7 @@ May it do so now?
FALSE
FALSE
-
+
wxButton: wxID_CANCEL
26458720
dialog-control-document
@@ -3671,25 +3752,25 @@ May it do so now?
-
+
Images
- 12849048
+ 12648632
html-document
bitmapsfolder
1
1
- 12516264
+ 12516512
1
-
+
Untitled
- 12795144
+ 12795040
image-document
boincsm.xpm
image
0
1
- 12849048
+ 12648632
0
9/3/2004
100
diff --git a/clientgui/BOINCGUIApp.cpp b/clientgui/BOINCGUIApp.cpp
index 999286df27..ea6bfb1b3e 100644
--- a/clientgui/BOINCGUIApp.cpp
+++ b/clientgui/BOINCGUIApp.cpp
@@ -68,6 +68,9 @@ bool CBOINCGUIApp::OnInit()
m_hBOINCCoreProcess = NULL;
m_hIdleDetectionDll = NULL;
#endif
+ m_strDefaultWindowStation.Clear();
+ m_strDefaultDesktop.Clear();
+
// Initialize the BOINC Diagnostics Framework
int dwDiagnosticsFlags =
@@ -89,6 +92,8 @@ bool CBOINCGUIApp::OnInit()
wxConfigBase::Set(m_pConfig);
wxASSERT(NULL != m_pConfig);
+ m_pConfig->SetPath(wxT("/"));
+
// Enable Logging and Trace Masks
m_pLog = new wxLogBOINC();
wxLog::SetActiveTarget(m_pLog);
@@ -106,11 +111,15 @@ bool CBOINCGUIApp::OnInit()
m_pLocale = new wxLocale();
wxASSERT(NULL != m_pLocale);
- // Locale information is stored relative to the executable,
- m_pLocale->Init();
+ wxInt32 iSelectedLanguage = m_pConfig->Read(wxT("Language"), 0L);
+
+ // Locale information is stored relative to the executable.
+ m_pLocale->Init(iSelectedLanguage);
m_pLocale->AddCatalogLookupPathPrefix(wxT("locale"));
m_pLocale->AddCatalog(GetAppName());
+ InitSupportedLanguages();
+
// Commandline parsing is done in wxApp::OnInit()
if (!wxApp::OnInit())
return false;
@@ -249,6 +258,27 @@ void CBOINCGUIApp::DetectDefaultDesktop()
}
+void CBOINCGUIApp::InitSupportedLanguages()
+{
+ wxInt32 iIndex = 0;
+ const wxLanguageInfo* liLanguage = NULL;
+
+ // These are just special tags so deal with them in a special way
+ m_strLanguages[wxLANGUAGE_DEFAULT] = _("(Automatic Detection)");
+ m_strLanguages[wxLANGUAGE_UNKNOWN] = _("(Unknown)");
+ m_strLanguages[wxLANGUAGE_USER_DEFINED] = _("(User Defined)");
+
+ for ( iIndex = 0; iIndex <= wxLANGUAGE_USER_DEFINED; iIndex++ )
+ {
+ liLanguage = wxLocale::GetLanguageInfo( iIndex );
+ if ( NULL != liLanguage )
+ {
+ m_strLanguages[iIndex] = liLanguage->Description;
+ }
+ }
+}
+
+
bool CBOINCGUIApp::IsBOINCCoreRunning()
{
wxInt32 iMode = -1;
diff --git a/clientgui/BOINCGUIApp.h b/clientgui/BOINCGUIApp.h
index c7ed7ed1bf..1e0b7def0f 100644
--- a/clientgui/BOINCGUIApp.h
+++ b/clientgui/BOINCGUIApp.h
@@ -46,6 +46,8 @@ protected:
void DetectDefaultWindowStation();
void DetectDefaultDesktop();
+ void InitSupportedLanguages();
+
bool IsBOINCCoreRunning();
void StartupBOINCCore();
void ShutdownBOINCCore();
@@ -76,21 +78,27 @@ protected:
wxString m_strDefaultWindowStation;
wxString m_strDefaultDesktop;
+ // The last value defined in the wxLanguage enum is wxLANGUAGE_USER_DEFINED.
+ // defined in: wx/intl.h
+ wxString m_strLanguages[wxLANGUAGE_USER_DEFINED + 1];
+
public:
bool OnInit();
wxInt32 UpdateSystemIdleDetection();
- CMainFrame* GetFrame() { return m_pFrame; };
- CMainDocument* GetDocument() { return m_pDocument; };
+ CMainFrame* GetFrame() { return m_pFrame; };
+ CMainDocument* GetDocument() { return m_pDocument; };
#ifndef NOTASKBAR
- CTaskBarIcon* GetTaskBarIcon() { return m_pTaskBarIcon; };
+ CTaskBarIcon* GetTaskBarIcon() { return m_pTaskBarIcon; };
#endif
- wxString GetDefaultWindowStation() { return m_strDefaultWindowStation; };
- wxString GetDefaultDesktop() { return m_strDefaultDesktop; };
+ wxString GetDefaultWindowStation() { return m_strDefaultWindowStation; };
+ wxString GetDefaultDesktop() { return m_strDefaultDesktop; };
+ wxString* GetSupportedLanguages() { return (wxString*)&m_strLanguages; };
+ wxInt32 GetSupportedLanguagesCount() { return WXSIZEOF(m_strLanguages); };
};
diff --git a/clientgui/DlgOptions.cpp b/clientgui/DlgOptions.cpp
index fc9c91d2a3..58ca2cc09b 100644
--- a/clientgui/DlgOptions.cpp
+++ b/clientgui/DlgOptions.cpp
@@ -23,6 +23,7 @@
#endif
#include "stdwx.h"
+#include "BOINCGUIApp.h"
#include "DlgOptions.h"
@@ -95,143 +96,151 @@ void CDlgOptions::CreateControls()
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
itemPanel4->SetSizer(itemBoxSizer5);
itemPanel4->SetAutoLayout(TRUE);
- wxStaticText* itemStaticText6 = new wxStaticText;
- itemStaticText6->Create( itemPanel4, wxID_STATIC, _("This page is intentionally left blank"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
- itemBoxSizer5->Add(itemStaticText6, 1, wxGROW, 5);
+ wxGridSizer* itemGridSizer6 = new wxGridSizer(2, 2, 0, 0);
+ itemBoxSizer5->Add(itemGridSizer6, 0, wxGROW|wxALL, 3);
+ wxStaticText* itemStaticText7 = new wxStaticText;
+ itemStaticText7->Create( itemPanel4, wxID_STATIC, _("Language Selection:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemGridSizer6->Add(itemStaticText7, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+
+ wxComboBox* itemComboBox8 = new wxComboBox;
+ itemComboBox8->Create( itemPanel4, ID_LANGUAGESELECTION, wxT(""), wxDefaultPosition, wxDefaultSize, wxGetApp().GetSupportedLanguagesCount(), wxGetApp().GetSupportedLanguages(), wxCB_READONLY );
+ m_LanguageSelectionCtrl = itemComboBox8;
+ itemComboBox8->SetStringSelection(_("(Automatic Detection)"));
+ itemGridSizer6->Add(itemComboBox8, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemNotebook3->AddPage(itemPanel4, _("General"));
- wxPanel* itemPanel7 = new wxPanel;
- itemPanel7->Create( itemNotebook3, ID_HTTPPROXY, wxDefaultPosition, wxSize(99, 150), wxTAB_TRAVERSAL );
- wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxVERTICAL);
- itemPanel7->SetSizer(itemBoxSizer8);
- itemPanel7->SetAutoLayout(TRUE);
- wxCheckBox* itemCheckBox9 = new wxCheckBox;
- itemCheckBox9->Create( itemPanel7, ID_ENABLEHTTPPROXYCTRL, _("Connect via HTTP proxy server"), wxDefaultPosition, wxDefaultSize, 0 );
- m_EnableHTTPProxyCtrl = itemCheckBox9;
- itemCheckBox9->SetValue(FALSE);
- itemBoxSizer8->Add(itemCheckBox9, 0, wxGROW|wxALL, 5);
-
- wxStaticBox* itemStaticBoxSizer10Static = new wxStaticBox(itemPanel7, wxID_ANY, _("HTTP Proxy Server Configuration"));
- wxStaticBoxSizer* itemStaticBoxSizer10 = new wxStaticBoxSizer(itemStaticBoxSizer10Static, wxVERTICAL);
- itemBoxSizer8->Add(itemStaticBoxSizer10, 0, wxGROW|wxALL, 5);
- wxGridSizer* itemGridSizer11 = new wxGridSizer(2, 1, 0, 0);
- itemStaticBoxSizer10->Add(itemGridSizer11, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
- wxFlexGridSizer* itemFlexGridSizer12 = new wxFlexGridSizer(2, 2, 0, 0);
- itemGridSizer11->Add(itemFlexGridSizer12, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
- wxStaticText* itemStaticText13 = new wxStaticText;
- itemStaticText13->Create( itemPanel7, wxID_STATIC, _("Address:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemFlexGridSizer12->Add(itemStaticText13, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
-
- wxTextCtrl* itemTextCtrl14 = new wxTextCtrl;
- itemTextCtrl14->Create( itemPanel7, ID_HTTPADDRESSCTRL, _T(""), wxDefaultPosition, wxSize(150, -1), 0 );
- m_HTTPAddressCtrl = itemTextCtrl14;
- itemFlexGridSizer12->Add(itemTextCtrl14, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxPanel* itemPanel9 = new wxPanel;
+ itemPanel9->Create( itemNotebook3, ID_HTTPPROXY, wxDefaultPosition, wxSize(99, 150), wxTAB_TRAVERSAL );
+ wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxVERTICAL);
+ itemPanel9->SetSizer(itemBoxSizer10);
+ itemPanel9->SetAutoLayout(TRUE);
+ wxCheckBox* itemCheckBox11 = new wxCheckBox;
+ itemCheckBox11->Create( itemPanel9, ID_ENABLEHTTPPROXYCTRL, _("Connect via HTTP proxy server"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_EnableHTTPProxyCtrl = itemCheckBox11;
+ itemCheckBox11->SetValue(FALSE);
+ itemBoxSizer10->Add(itemCheckBox11, 0, wxGROW|wxALL, 5);
+ wxStaticBox* itemStaticBoxSizer12Static = new wxStaticBox(itemPanel9, wxID_ANY, _("HTTP Proxy Server Configuration"));
+ wxStaticBoxSizer* itemStaticBoxSizer12 = new wxStaticBoxSizer(itemStaticBoxSizer12Static, wxVERTICAL);
+ itemBoxSizer10->Add(itemStaticBoxSizer12, 0, wxGROW|wxALL, 5);
+ wxGridSizer* itemGridSizer13 = new wxGridSizer(2, 1, 0, 0);
+ itemStaticBoxSizer12->Add(itemGridSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+ wxFlexGridSizer* itemFlexGridSizer14 = new wxFlexGridSizer(2, 2, 0, 0);
+ itemGridSizer13->Add(itemFlexGridSizer14, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText15 = new wxStaticText;
- itemStaticText15->Create( itemPanel7, wxID_STATIC, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemFlexGridSizer12->Add(itemStaticText15, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ itemStaticText15->Create( itemPanel9, wxID_STATIC, _("Address:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemFlexGridSizer14->Add(itemStaticText15, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxTextCtrl* itemTextCtrl16 = new wxTextCtrl;
- itemTextCtrl16->Create( itemPanel7, ID_HTTPPORTCTRL, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
- m_HTTPPortCtrl = itemTextCtrl16;
- itemFlexGridSizer12->Add(itemTextCtrl16, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ itemTextCtrl16->Create( itemPanel9, ID_HTTPADDRESSCTRL, _T(""), wxDefaultPosition, wxSize(150, -1), 0 );
+ m_HTTPAddressCtrl = itemTextCtrl16;
+ itemFlexGridSizer14->Add(itemTextCtrl16, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
- wxStaticBox* itemStaticBoxSizer17Static = new wxStaticBox(itemPanel7, wxID_ANY, _("Leave these blank if not needed"));
- wxStaticBoxSizer* itemStaticBoxSizer17 = new wxStaticBoxSizer(itemStaticBoxSizer17Static, wxVERTICAL);
- itemStaticBoxSizer10->Add(itemStaticBoxSizer17, 0, wxGROW|wxALL, 5);
- wxFlexGridSizer* itemFlexGridSizer18 = new wxFlexGridSizer(2, 2, 0, 0);
- itemStaticBoxSizer17->Add(itemFlexGridSizer18, 0, wxALIGN_LEFT|wxALL, 5);
- wxStaticText* itemStaticText19 = new wxStaticText;
- itemStaticText19->Create( itemPanel7, wxID_STATIC, _("User Name:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemFlexGridSizer18->Add(itemStaticText19, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxStaticText* itemStaticText17 = new wxStaticText;
+ itemStaticText17->Create( itemPanel9, wxID_STATIC, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemFlexGridSizer14->Add(itemStaticText17, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
- wxTextCtrl* itemTextCtrl20 = new wxTextCtrl;
- itemTextCtrl20->Create( itemPanel7, ID_HTTPUSERNAMECTRL, _T(""), wxDefaultPosition, wxSize(175, -1), 0 );
- m_HTTPUsernameCtrl = itemTextCtrl20;
- itemFlexGridSizer18->Add(itemTextCtrl20, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxTextCtrl* itemTextCtrl18 = new wxTextCtrl;
+ itemTextCtrl18->Create( itemPanel9, ID_HTTPPORTCTRL, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
+ m_HTTPPortCtrl = itemTextCtrl18;
+ itemFlexGridSizer14->Add(itemTextCtrl18, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticBox* itemStaticBoxSizer19Static = new wxStaticBox(itemPanel9, wxID_ANY, _("Leave these blank if not needed"));
+ wxStaticBoxSizer* itemStaticBoxSizer19 = new wxStaticBoxSizer(itemStaticBoxSizer19Static, wxVERTICAL);
+ itemStaticBoxSizer12->Add(itemStaticBoxSizer19, 0, wxGROW|wxALL, 5);
+ wxFlexGridSizer* itemFlexGridSizer20 = new wxFlexGridSizer(2, 2, 0, 0);
+ itemStaticBoxSizer19->Add(itemFlexGridSizer20, 0, wxALIGN_LEFT|wxALL, 5);
wxStaticText* itemStaticText21 = new wxStaticText;
- itemStaticText21->Create( itemPanel7, wxID_STATIC, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemFlexGridSizer18->Add(itemStaticText21, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ itemStaticText21->Create( itemPanel9, wxID_STATIC, _("User Name:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemFlexGridSizer20->Add(itemStaticText21, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxTextCtrl* itemTextCtrl22 = new wxTextCtrl;
- itemTextCtrl22->Create( itemPanel7, ID_HTTPPASSWORDCTRL, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
- m_HTTPPasswordCtrl = itemTextCtrl22;
- itemFlexGridSizer18->Add(itemTextCtrl22, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ itemTextCtrl22->Create( itemPanel9, ID_HTTPUSERNAMECTRL, _T(""), wxDefaultPosition, wxSize(175, -1), 0 );
+ m_HTTPUsernameCtrl = itemTextCtrl22;
+ itemFlexGridSizer20->Add(itemTextCtrl22, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
- itemNotebook3->AddPage(itemPanel7, _("HTTP Proxy"));
- wxPanel* itemPanel23 = new wxPanel;
- itemPanel23->Create( itemNotebook3, ID_SOCKSPROXY, wxDefaultPosition, wxSize(99, 80), wxTAB_TRAVERSAL );
- wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxVERTICAL);
- itemPanel23->SetSizer(itemBoxSizer24);
- itemPanel23->SetAutoLayout(TRUE);
- wxCheckBox* itemCheckBox25 = new wxCheckBox;
- itemCheckBox25->Create( itemPanel23, ID_ENABLESOCKSPROXYCTRL, _("Connect via SOCKS proxy server"), wxDefaultPosition, wxDefaultSize, 0 );
- m_EnableSOCKSProxyCtrl = itemCheckBox25;
- itemCheckBox25->SetValue(FALSE);
- itemBoxSizer24->Add(itemCheckBox25, 0, wxGROW|wxALL, 5);
+ wxStaticText* itemStaticText23 = new wxStaticText;
+ itemStaticText23->Create( itemPanel9, wxID_STATIC, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemFlexGridSizer20->Add(itemStaticText23, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
- wxStaticBox* itemStaticBoxSizer26Static = new wxStaticBox(itemPanel23, wxID_ANY, _("SOCKS Proxy Server Configuration"));
- wxStaticBoxSizer* itemStaticBoxSizer26 = new wxStaticBoxSizer(itemStaticBoxSizer26Static, wxVERTICAL);
- itemBoxSizer24->Add(itemStaticBoxSizer26, 0, wxGROW|wxALL, 5);
- wxGridSizer* itemGridSizer27 = new wxGridSizer(2, 1, 0, 0);
- itemStaticBoxSizer26->Add(itemGridSizer27, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
- wxFlexGridSizer* itemFlexGridSizer28 = new wxFlexGridSizer(2, 2, 0, 0);
- itemGridSizer27->Add(itemFlexGridSizer28, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
- wxStaticText* itemStaticText29 = new wxStaticText;
- itemStaticText29->Create( itemPanel23, wxID_STATIC, _("Address:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemFlexGridSizer28->Add(itemStaticText29, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxTextCtrl* itemTextCtrl24 = new wxTextCtrl;
+ itemTextCtrl24->Create( itemPanel9, ID_HTTPPASSWORDCTRL, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
+ m_HTTPPasswordCtrl = itemTextCtrl24;
+ itemFlexGridSizer20->Add(itemTextCtrl24, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
- wxTextCtrl* itemTextCtrl30 = new wxTextCtrl;
- itemTextCtrl30->Create( itemPanel23, ID_SOCKSADDRESSCTRL, _T(""), wxDefaultPosition, wxSize(150, -1), 0 );
- m_SOCKSAddressCtrl = itemTextCtrl30;
- itemFlexGridSizer28->Add(itemTextCtrl30, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ itemNotebook3->AddPage(itemPanel9, _("HTTP Proxy"));
+ wxPanel* itemPanel25 = new wxPanel;
+ itemPanel25->Create( itemNotebook3, ID_SOCKSPROXY, wxDefaultPosition, wxSize(99, 80), wxTAB_TRAVERSAL );
+ wxBoxSizer* itemBoxSizer26 = new wxBoxSizer(wxVERTICAL);
+ itemPanel25->SetSizer(itemBoxSizer26);
+ itemPanel25->SetAutoLayout(TRUE);
+ wxCheckBox* itemCheckBox27 = new wxCheckBox;
+ itemCheckBox27->Create( itemPanel25, ID_ENABLESOCKSPROXYCTRL, _("Connect via SOCKS proxy server"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_EnableSOCKSProxyCtrl = itemCheckBox27;
+ itemCheckBox27->SetValue(FALSE);
+ itemBoxSizer26->Add(itemCheckBox27, 0, wxGROW|wxALL, 5);
+ wxStaticBox* itemStaticBoxSizer28Static = new wxStaticBox(itemPanel25, wxID_ANY, _("SOCKS Proxy Server Configuration"));
+ wxStaticBoxSizer* itemStaticBoxSizer28 = new wxStaticBoxSizer(itemStaticBoxSizer28Static, wxVERTICAL);
+ itemBoxSizer26->Add(itemStaticBoxSizer28, 0, wxGROW|wxALL, 5);
+ wxGridSizer* itemGridSizer29 = new wxGridSizer(2, 1, 0, 0);
+ itemStaticBoxSizer28->Add(itemGridSizer29, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
+ wxFlexGridSizer* itemFlexGridSizer30 = new wxFlexGridSizer(2, 2, 0, 0);
+ itemGridSizer29->Add(itemFlexGridSizer30, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText31 = new wxStaticText;
- itemStaticText31->Create( itemPanel23, wxID_STATIC, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemFlexGridSizer28->Add(itemStaticText31, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ itemStaticText31->Create( itemPanel25, wxID_STATIC, _("Address:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemFlexGridSizer30->Add(itemStaticText31, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxTextCtrl* itemTextCtrl32 = new wxTextCtrl;
- itemTextCtrl32->Create( itemPanel23, ID_SOCKSPORTCTRL, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
- m_SOCKSPortCtrl = itemTextCtrl32;
- itemFlexGridSizer28->Add(itemTextCtrl32, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ itemTextCtrl32->Create( itemPanel25, ID_SOCKSADDRESSCTRL, _T(""), wxDefaultPosition, wxSize(150, -1), 0 );
+ m_SOCKSAddressCtrl = itemTextCtrl32;
+ itemFlexGridSizer30->Add(itemTextCtrl32, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
- wxStaticBox* itemStaticBoxSizer33Static = new wxStaticBox(itemPanel23, wxID_ANY, _("Leave these blank if not needed"));
- wxStaticBoxSizer* itemStaticBoxSizer33 = new wxStaticBoxSizer(itemStaticBoxSizer33Static, wxVERTICAL);
- itemStaticBoxSizer26->Add(itemStaticBoxSizer33, 0, wxGROW|wxALL, 5);
- wxFlexGridSizer* itemFlexGridSizer34 = new wxFlexGridSizer(2, 2, 0, 0);
- itemStaticBoxSizer33->Add(itemFlexGridSizer34, 0, wxALIGN_LEFT|wxALL, 5);
- wxStaticText* itemStaticText35 = new wxStaticText;
- itemStaticText35->Create( itemPanel23, wxID_STATIC, _("User Name:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemFlexGridSizer34->Add(itemStaticText35, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ wxStaticText* itemStaticText33 = new wxStaticText;
+ itemStaticText33->Create( itemPanel25, wxID_STATIC, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemFlexGridSizer30->Add(itemStaticText33, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
- wxTextCtrl* itemTextCtrl36 = new wxTextCtrl;
- itemTextCtrl36->Create( itemPanel23, ID_SOCKSUSERNAMECTRL, _T(""), wxDefaultPosition, wxSize(175, -1), 0 );
- m_SOCKSUsernameCtrl = itemTextCtrl36;
- itemFlexGridSizer34->Add(itemTextCtrl36, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxTextCtrl* itemTextCtrl34 = new wxTextCtrl;
+ itemTextCtrl34->Create( itemPanel25, ID_SOCKSPORTCTRL, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
+ m_SOCKSPortCtrl = itemTextCtrl34;
+ itemFlexGridSizer30->Add(itemTextCtrl34, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxStaticBox* itemStaticBoxSizer35Static = new wxStaticBox(itemPanel25, wxID_ANY, _("Leave these blank if not needed"));
+ wxStaticBoxSizer* itemStaticBoxSizer35 = new wxStaticBoxSizer(itemStaticBoxSizer35Static, wxVERTICAL);
+ itemStaticBoxSizer28->Add(itemStaticBoxSizer35, 0, wxGROW|wxALL, 5);
+ wxFlexGridSizer* itemFlexGridSizer36 = new wxFlexGridSizer(2, 2, 0, 0);
+ itemStaticBoxSizer35->Add(itemFlexGridSizer36, 0, wxALIGN_LEFT|wxALL, 5);
wxStaticText* itemStaticText37 = new wxStaticText;
- itemStaticText37->Create( itemPanel23, wxID_STATIC, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
- itemFlexGridSizer34->Add(itemStaticText37, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+ itemStaticText37->Create( itemPanel25, wxID_STATIC, _("User Name:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemFlexGridSizer36->Add(itemStaticText37, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxTextCtrl* itemTextCtrl38 = new wxTextCtrl;
- itemTextCtrl38->Create( itemPanel23, ID_SOCKSPASSWORDCTRL, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
- m_SOCKSPasswordCtrl = itemTextCtrl38;
- itemFlexGridSizer34->Add(itemTextCtrl38, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ itemTextCtrl38->Create( itemPanel25, ID_SOCKSUSERNAMECTRL, _T(""), wxDefaultPosition, wxSize(175, -1), 0 );
+ m_SOCKSUsernameCtrl = itemTextCtrl38;
+ itemFlexGridSizer36->Add(itemTextCtrl38, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
- itemNotebook3->AddPage(itemPanel23, _("SOCKS Proxy"));
+ wxStaticText* itemStaticText39 = new wxStaticText;
+ itemStaticText39->Create( itemPanel25, wxID_STATIC, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemFlexGridSizer36->Add(itemStaticText39, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
+
+ wxTextCtrl* itemTextCtrl40 = new wxTextCtrl;
+ itemTextCtrl40->Create( itemPanel25, ID_SOCKSPASSWORDCTRL, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
+ m_SOCKSPasswordCtrl = itemTextCtrl40;
+ itemFlexGridSizer36->Add(itemTextCtrl40, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
+
+ itemNotebook3->AddPage(itemPanel25, _("SOCKS Proxy"));
itemBoxSizer2->Add(itemNotebook3Sizer, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
- wxBoxSizer* itemBoxSizer39 = new wxBoxSizer(wxHORIZONTAL);
- itemBoxSizer2->Add(itemBoxSizer39, 0, wxALIGN_RIGHT|wxALL, 5);
- wxButton* itemButton40 = new wxButton;
- itemButton40->Create( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
- itemButton40->SetDefault();
- itemBoxSizer39->Add(itemButton40, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxBoxSizer* itemBoxSizer41 = new wxBoxSizer(wxHORIZONTAL);
+ itemBoxSizer2->Add(itemBoxSizer41, 0, wxALIGN_RIGHT|wxALL, 5);
+ wxButton* itemButton42 = new wxButton;
+ itemButton42->Create( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemButton42->SetDefault();
+ itemBoxSizer41->Add(itemButton42, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
- wxButton* itemButton41 = new wxButton;
- itemButton41->Create( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
- itemBoxSizer39->Add(itemButton41, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
+ wxButton* itemButton43 = new wxButton;
+ itemButton43->Create( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
+ itemBoxSizer41->Add(itemButton43, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
}
diff --git a/clientgui/DlgOptions.h b/clientgui/DlgOptions.h
index 1b4900fa0e..1f0a45768b 100644
--- a/clientgui/DlgOptions.h
+++ b/clientgui/DlgOptions.h
@@ -33,7 +33,8 @@
#define SYMBOL_CDLGTOOLSOPTIONS_POSITION wxDefaultPosition
#define ID_NOTEBOOK 10001
#define ID_GENERAL 10002
-#define ID_HTTPPROXY 10003
+#define ID_LANGUAGESELECTION 10003
+#define ID_HTTPPROXY 10004
#define ID_ENABLEHTTPPROXYCTRL 10007
#define ID_HTTPADDRESSCTRL 10010
#define ID_HTTPPORTCTRL 10011
@@ -88,6 +89,7 @@ public:
/// Should we show tooltips?
static bool ShowToolTips();
+ wxComboBox* m_LanguageSelectionCtrl;
bool m_bProxySectionConfigured;
wxCheckBox* m_EnableHTTPProxyCtrl;
wxTextCtrl* m_HTTPAddressCtrl;
diff --git a/clientgui/MainFrame.cpp b/clientgui/MainFrame.cpp
index 600905802f..cb731a2da8 100644
--- a/clientgui/MainFrame.cpp
+++ b/clientgui/MainFrame.cpp
@@ -72,6 +72,9 @@ END_EVENT_TABLE ()
CMainFrame::CMainFrame()
{
wxLogTrace(wxT("Function Start/End"), wxT("CMainFrame::CMainFrame - Default Constructor Function Begin"));
+
+ m_iSelectedLanguage = 0;
+
wxLogTrace(wxT("Function Start/End"), wxT("CMainFrame::CMainFrame - Default Constructor Function End"));
}
@@ -427,9 +430,17 @@ bool CMainFrame::SaveState()
//
pConfig->SetPath(strBaseConfigLocation);
+ pConfig->Write(wxT("Language"), m_iSelectedLanguage);
+
pConfig->Write(wxT("CurrentPage"), m_pNotebook->GetSelection());
- pConfig->Write(wxT("Width"), GetSize().GetWidth());
- pConfig->Write(wxT("Height"), GetSize().GetHeight());
+
+ pConfig->Write(wxT("WindowIconized"), IsIconized());
+ pConfig->Write(wxT("WindowMaximized"), IsMaximized());
+ if ( !IsIconized() && !IsMaximized() )
+ {
+ pConfig->Write(wxT("Width"), GetSize().GetWidth());
+ pConfig->Write(wxT("Height"), GetSize().GetHeight());
+ }
//
@@ -472,6 +483,10 @@ bool CMainFrame::RestoreState()
wxString strPreviousLocation = wxEmptyString;
wxInt32 iIndex = 0;
wxInt32 iPageCount = 0;
+ bool bWindowIconized = false;
+ bool bWindowMaximized = false;
+ wxInt32 iTop = 0;
+ wxInt32 iLeft = 0;
wxInt32 iHeight = 0;
wxInt32 iWidth = 0;
@@ -488,12 +503,21 @@ bool CMainFrame::RestoreState()
pConfig->SetPath(strBaseConfigLocation);
+ pConfig->Read(wxT("Language"), &m_iSelectedLanguage, 0L);
+
+
pConfig->Read(wxT("CurrentPage"), &iCurrentPage, 1);
m_pNotebook->SetSelection(iCurrentPage);
+
+ pConfig->Read(wxT("WindowIconized"), &bWindowIconized, false);
+ pConfig->Read(wxT("WindowMaximized"), &bWindowMaximized, false);
pConfig->Read(wxT("Width"), &iWidth, 800);
pConfig->Read(wxT("Height"), &iHeight, 600);
+
SetSize( -1, -1, iWidth, iHeight );
+ Iconize( bWindowIconized );
+ Maximize( bWindowMaximized );
//
@@ -691,6 +715,8 @@ void CMainFrame::OnToolsOptions( wxCommandEvent& WXUNUSED(event) )
pDlg->m_SOCKSUsernameCtrl->SetValue( strBuffer );
if ( 0 == pDoc->GetProxySOCKSPassword( strBuffer ) )
pDlg->m_SOCKSPasswordCtrl->SetValue( strBuffer );
+
+ pDlg->m_LanguageSelectionCtrl->SetSelection( m_iSelectedLanguage );
}
iAnswer = pDlg->ShowModal();
@@ -721,6 +747,17 @@ void CMainFrame::OnToolsOptions( wxCommandEvent& WXUNUSED(event) )
pDoc->SetProxySOCKSPassword( strBuffer );
pDoc->SetProxyConfiguration();
+
+ if ( m_iSelectedLanguage != pDlg->m_LanguageSelectionCtrl->GetSelection() )
+ {
+ ::wxMessageBox(
+ _("The BOINC Managers default language has been changed, in order for this change to take affect you must restart the manager."),
+ _("Language Selection..."),
+ wxICON_INFORMATION
+ );
+ }
+
+ m_iSelectedLanguage = pDlg->m_LanguageSelectionCtrl->GetSelection();
}
if (pDlg)
diff --git a/clientgui/MainFrame.h b/clientgui/MainFrame.h
index 477d3449e5..c6fd964e41 100644
--- a/clientgui/MainFrame.h
+++ b/clientgui/MainFrame.h
@@ -74,6 +74,8 @@ private:
wxString m_strBaseTitle;
+ wxInt32 m_iSelectedLanguage;
+
bool CreateMenu();
bool DeleteMenu();