From 8fd6e5eb1b708845f13468c924d1fc0981329298 Mon Sep 17 00:00:00 2001 From: Florian Meissner Date: Sun, 22 Jan 2012 20:16:59 +0100 Subject: [PATCH 1/3] Add language changer to Login form --- Sources/Plasma/Apps/plClient/res/plClient.rc | 1 + Sources/Plasma/Apps/plClient/res/resource.h | 1 + Sources/Plasma/Apps/plClient/winmain.cpp | 15 +++++++++++++++ 3 files changed, 17 insertions(+) diff --git a/Sources/Plasma/Apps/plClient/res/plClient.rc b/Sources/Plasma/Apps/plClient/res/plClient.rc index 5ad90e40..683da31b 100644 --- a/Sources/Plasma/Apps/plClient/res/plClient.rc +++ b/Sources/Plasma/Apps/plClient/res/plClient.rc @@ -104,6 +104,7 @@ BEGIN 288,152 PUSHBUTTON "Need an account?",IDC_URULOGIN_GAMETAPLINK,95,175,110, 14,BS_FLAT + COMBOBOX IDC_LANGUAGE,175,151,56,100,CBS_DROPDOWNLIST | WS_TABSTOP END IDD_URULOGIN_EULA DIALOGEX 0, 0, 300, 318 diff --git a/Sources/Plasma/Apps/plClient/res/resource.h b/Sources/Plasma/Apps/plClient/res/resource.h index 9d35e3a0..f04be26b 100644 --- a/Sources/Plasma/Apps/plClient/res/resource.h +++ b/Sources/Plasma/Apps/plClient/res/resource.h @@ -27,6 +27,7 @@ #define IDC_PRODUCTSTRING 1033 #define IDC_STATUS_TEXT 1034 #define IDC_HOTKEY1 1035 +#define IDC_LANGUAGE 1040 // Next default values for new objects // diff --git a/Sources/Plasma/Apps/plClient/winmain.cpp b/Sources/Plasma/Apps/plClient/winmain.cpp index 94bcdd5b..db77e581 100644 --- a/Sources/Plasma/Apps/plClient/winmain.cpp +++ b/Sources/Plasma/Apps/plClient/winmain.cpp @@ -177,6 +177,7 @@ struct LoginDialogParam { ShaDigest namePassHash; bool remember; int focus; + int language; }; static bool AuthenticateNetClientComm(ENetError* result, HWND parentWnd); @@ -1033,6 +1034,7 @@ static void SaveUserPass (LoginDialogParam *pLoginParam, char *password) stream->Writebool(pLoginParam->remember); if (pLoginParam->remember) stream->Write(sizeof(pLoginParam->namePassHash), pLoginParam->namePassHash); + stream->WriteBE32(pLoginParam->language); stream->Close(); delete stream; } @@ -1048,6 +1050,7 @@ static void LoadUserPass (LoginDialogParam *pLoginParam) char* temp; pLoginParam->remember = false; pLoginParam->username[0] = '\0'; + pLoginParam->language = plLocalization::kEnglish; wchar_t fileAndPath[MAX_PATH]; PathGetInitDirectory(fileAndPath, arrsize(fileAndPath)); @@ -1086,6 +1089,8 @@ static void LoadUserPass (LoginDialogParam *pLoginParam) { pLoginParam->focus = IDC_URULOGIN_PASSWORD; } + + pLoginParam->language = stream->ReadBE32(); } stream->Close(); @@ -1174,6 +1179,13 @@ BOOL CALLBACK UruLoginDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM StrToAnsi(windowName, productString, arrsize(windowName)); SendMessage(GetDlgItem(hwndDlg, IDC_PRODUCTSTRING), WM_SETTEXT, 0, (LPARAM) windowName); + const char* languages[] = {"English", "Français", "Deutsch"}; + for (int i = 0; i < arrsize(languages); i++) + { + SendMessage(GetDlgItem(hwndDlg, IDC_LANGUAGE), CB_ADDSTRING, 0, (LPARAM)languages[i]); + } + SendMessage(GetDlgItem(hwndDlg, IDC_LANGUAGE), CB_SETCURSEL, (WPARAM)pLoginParam->language, 0); + SetTimer(hwndDlg, AUTH_LOGIN_TIMER, 10, NULL); return FALSE; } @@ -1219,6 +1231,9 @@ BOOL CALLBACK UruLoginDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM GetDlgItemText(hwndDlg, IDC_URULOGIN_PASSWORD, password, kMaxPasswordLength); pLoginParam->remember = (IsDlgButtonChecked(hwndDlg, IDC_URULOGIN_REMEMBERPASS) == BST_CHECKED); + pLoginParam->language = SendMessage(GetDlgItem(hwndDlg, IDC_LANGUAGE), CB_GETCURSEL, 0, 0L); + plLocalization::SetLanguage((plLocalization::Language)pLoginParam->language); + SaveUserPass (pLoginParam, password); memset(&pLoginParam->authError, 0, sizeof(pLoginParam->authError)); From 90dd0f433d3fff2fdcc5e6285cc7e5615d824096 Mon Sep 17 00:00:00 2001 From: Joseph Davies Date: Sat, 28 Jan 2012 02:28:08 +0800 Subject: [PATCH 2/3] Use Localization list of available languages for login dialog. --- Sources/Plasma/Apps/plClient/winmain.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Sources/Plasma/Apps/plClient/winmain.cpp b/Sources/Plasma/Apps/plClient/winmain.cpp index db77e581..29cd7730 100644 --- a/Sources/Plasma/Apps/plClient/winmain.cpp +++ b/Sources/Plasma/Apps/plClient/winmain.cpp @@ -1179,10 +1179,9 @@ BOOL CALLBACK UruLoginDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM StrToAnsi(windowName, productString, arrsize(windowName)); SendMessage(GetDlgItem(hwndDlg, IDC_PRODUCTSTRING), WM_SETTEXT, 0, (LPARAM) windowName); - const char* languages[] = {"English", "Français", "Deutsch"}; - for (int i = 0; i < arrsize(languages); i++) + for (int i = 0; i < plLocalization::GetNumLocales(); i++) { - SendMessage(GetDlgItem(hwndDlg, IDC_LANGUAGE), CB_ADDSTRING, 0, (LPARAM)languages[i]); + SendMessage(GetDlgItem(hwndDlg, IDC_LANGUAGE), CB_ADDSTRING, 0, (LPARAM)plLocalization::GetLanguageName((plLocalization::Language)i)); } SendMessage(GetDlgItem(hwndDlg, IDC_LANGUAGE), CB_SETCURSEL, (WPARAM)pLoginParam->language, 0); From d0412b2f38be84721fc8d8c98dfdf6381e424e7d Mon Sep 17 00:00:00 2001 From: Florian Meissner Date: Wed, 4 Apr 2012 11:57:47 +0200 Subject: [PATCH 3/3] Move the combo box into an own line --- Sources/Plasma/Apps/plClient/res/plClient.rc | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Sources/Plasma/Apps/plClient/res/plClient.rc b/Sources/Plasma/Apps/plClient/res/plClient.rc index 683da31b..5aca3f7a 100644 --- a/Sources/Plasma/Apps/plClient/res/plClient.rc +++ b/Sources/Plasma/Apps/plClient/res/plClient.rc @@ -80,13 +80,13 @@ BEGIN PUSHBUTTON "Copy",IDC_COPY,239,26,50,14 END -IDD_URULOGIN_MAIN DIALOGEX 0, 0, 302, 230 +IDD_URULOGIN_MAIN DIALOGEX 0, 0, 302, 246 STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - DEFPUSHBUTTON "Login",IDOK,87,209,50,14 - PUSHBUTTON "Quit",IDCANCEL,163,209,50,14 + DEFPUSHBUTTON "Login",IDOK,87,225,50,14 + PUSHBUTTON "Quit",IDCANCEL,163,225,50,14 CONTROL 151,IDC_STATIC,"Static",SS_BITMAP | SS_REALSIZEIMAGE | WS_BORDER,7,7,289,36 LTEXT "Account name:",IDC_STATIC,69,119,49,10 @@ -94,17 +94,18 @@ BEGIN EDITTEXT IDC_URULOGIN_USERNAME,123,119,108,12,ES_AUTOHSCROLL EDITTEXT IDC_URULOGIN_PASSWORD,123,135,108,12,ES_PASSWORD | ES_AUTOHSCROLL - GROUPBOX "",IDC_STATIC,14,99,274,96 + GROUPBOX "",IDC_STATIC,14,99,274,112 + LTEXT "Language:",IDC_STATIC,69,151,49,10 + COMBOBOX IDC_LANGUAGE,123,151,108,100,CBS_DROPDOWNLIST | WS_TABSTOP CONTROL "Remember Password:",IDC_URULOGIN_REMEMBERPASS,"Button", - BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_TABSTOP,69,151,100,10 + BS_AUTOCHECKBOX | BS_LEFTTEXT | WS_TABSTOP,69,167,100,10 GROUPBOX "",IDC_STATIC,14,54,274,43 LTEXT "Welcome to URU",IDC_STATUS_TEXT,17,62,267,20 RTEXT "Product String",IDC_PRODUCTSTRING,88,86,194,8 CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | SS_SUNKEN,7,49, - 288,152 - PUSHBUTTON "Need an account?",IDC_URULOGIN_GAMETAPLINK,95,175,110, + 288,168 + PUSHBUTTON "Need an account?",IDC_URULOGIN_GAMETAPLINK,95,183,110, 14,BS_FLAT - COMBOBOX IDC_LANGUAGE,175,151,56,100,CBS_DROPDOWNLIST | WS_TABSTOP END IDD_URULOGIN_EULA DIALOGEX 0, 0, 300, 318