Browse Source

Add language changer to Login form

Florian Meissner 13 years ago committed by Florian Meissner
parent
commit
8fd6e5eb1b
  1. 1
      Sources/Plasma/Apps/plClient/res/plClient.rc
  2. 1
      Sources/Plasma/Apps/plClient/res/resource.h
  3. 15
      Sources/Plasma/Apps/plClient/winmain.cpp

1
Sources/Plasma/Apps/plClient/res/plClient.rc

@ -104,6 +104,7 @@ BEGIN
288,152 288,152
PUSHBUTTON "Need an account?",IDC_URULOGIN_GAMETAPLINK,95,175,110, PUSHBUTTON "Need an account?",IDC_URULOGIN_GAMETAPLINK,95,175,110,
14,BS_FLAT 14,BS_FLAT
COMBOBOX IDC_LANGUAGE,175,151,56,100,CBS_DROPDOWNLIST | WS_TABSTOP
END END
IDD_URULOGIN_EULA DIALOGEX 0, 0, 300, 318 IDD_URULOGIN_EULA DIALOGEX 0, 0, 300, 318

1
Sources/Plasma/Apps/plClient/res/resource.h

@ -27,6 +27,7 @@
#define IDC_PRODUCTSTRING 1033 #define IDC_PRODUCTSTRING 1033
#define IDC_STATUS_TEXT 1034 #define IDC_STATUS_TEXT 1034
#define IDC_HOTKEY1 1035 #define IDC_HOTKEY1 1035
#define IDC_LANGUAGE 1040
// Next default values for new objects // Next default values for new objects
// //

15
Sources/Plasma/Apps/plClient/winmain.cpp

@ -177,6 +177,7 @@ struct LoginDialogParam {
ShaDigest namePassHash; ShaDigest namePassHash;
bool remember; bool remember;
int focus; int focus;
int language;
}; };
static bool AuthenticateNetClientComm(ENetError* result, HWND parentWnd); static bool AuthenticateNetClientComm(ENetError* result, HWND parentWnd);
@ -1033,6 +1034,7 @@ static void SaveUserPass (LoginDialogParam *pLoginParam, char *password)
stream->Writebool(pLoginParam->remember); stream->Writebool(pLoginParam->remember);
if (pLoginParam->remember) if (pLoginParam->remember)
stream->Write(sizeof(pLoginParam->namePassHash), pLoginParam->namePassHash); stream->Write(sizeof(pLoginParam->namePassHash), pLoginParam->namePassHash);
stream->WriteBE32(pLoginParam->language);
stream->Close(); stream->Close();
delete stream; delete stream;
} }
@ -1048,6 +1050,7 @@ static void LoadUserPass (LoginDialogParam *pLoginParam)
char* temp; char* temp;
pLoginParam->remember = false; pLoginParam->remember = false;
pLoginParam->username[0] = '\0'; pLoginParam->username[0] = '\0';
pLoginParam->language = plLocalization::kEnglish;
wchar_t fileAndPath[MAX_PATH]; wchar_t fileAndPath[MAX_PATH];
PathGetInitDirectory(fileAndPath, arrsize(fileAndPath)); PathGetInitDirectory(fileAndPath, arrsize(fileAndPath));
@ -1086,6 +1089,8 @@ static void LoadUserPass (LoginDialogParam *pLoginParam)
{ {
pLoginParam->focus = IDC_URULOGIN_PASSWORD; pLoginParam->focus = IDC_URULOGIN_PASSWORD;
} }
pLoginParam->language = stream->ReadBE32();
} }
stream->Close(); stream->Close();
@ -1174,6 +1179,13 @@ BOOL CALLBACK UruLoginDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM
StrToAnsi(windowName, productString, arrsize(windowName)); StrToAnsi(windowName, productString, arrsize(windowName));
SendMessage(GetDlgItem(hwndDlg, IDC_PRODUCTSTRING), WM_SETTEXT, 0, (LPARAM) 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); SetTimer(hwndDlg, AUTH_LOGIN_TIMER, 10, NULL);
return FALSE; return FALSE;
} }
@ -1219,6 +1231,9 @@ BOOL CALLBACK UruLoginDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM
GetDlgItemText(hwndDlg, IDC_URULOGIN_PASSWORD, password, kMaxPasswordLength); GetDlgItemText(hwndDlg, IDC_URULOGIN_PASSWORD, password, kMaxPasswordLength);
pLoginParam->remember = (IsDlgButtonChecked(hwndDlg, IDC_URULOGIN_REMEMBERPASS) == BST_CHECKED); 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); SaveUserPass (pLoginParam, password);
memset(&pLoginParam->authError, 0, sizeof(pLoginParam->authError)); memset(&pLoginParam->authError, 0, sizeof(pLoginParam->authError));

Loading…
Cancel
Save