From 9caa71644b1bf2c45de641519d1f65208ef1c593 Mon Sep 17 00:00:00 2001 From: Rom Walton Date: Mon, 7 Feb 2005 04:47:18 +0000 Subject: [PATCH] *** empty log message *** svn path=/trunk/boinc/; revision=5336 --- checkin_notes | 16 + clientgui/BOINCGUI.pjd | 613 +++++++++++++++++++++----------------- clientgui/BOINCGUIApp.cpp | 34 ++- clientgui/BOINCGUIApp.h | 18 +- clientgui/DlgOptions.cpp | 225 +++++++------- clientgui/DlgOptions.h | 4 +- clientgui/MainFrame.cpp | 41 ++- clientgui/MainFrame.h | 2 + 8 files changed, 569 insertions(+), 384 deletions(-) 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();