2
3
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-13 18:17:49 -04:00

Add language changer to Login form

This commit is contained in:
Florian Meissner
2012-01-22 20:16:59 +01:00
committed by Florian Meissner
parent b6122ff7aa
commit 8fd6e5eb1b
3 changed files with 17 additions and 0 deletions

View File

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

View File

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

View File

@ -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<EFBFBD>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));