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
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

1
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
//

15
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));

Loading…
Cancel
Save