Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions Sources/Plasma/Apps/plClient/win32/res/plClient.rc
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#include "resource_en.rc"
#include "resource_de.rc"

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
Expand Down Expand Up @@ -92,15 +94,15 @@ 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,225,50,14
PUSHBUTTON "Quit",IDCANCEL,163,225,50,14
DEFPUSHBUTTON "Login",IDC_BUTTON_LOGIN,87,225,50,14
PUSHBUTTON "Quit",IDC_BUTTON_CANCEL,163,225,50,14
CONTROL 151,IDC_STATIC,"Static",SS_BITMAP | SS_REALSIZECONTROL | WS_BORDER,7,7,289,36
LTEXT "Account name:",IDC_STATIC,69,119,49,10
LTEXT "Password:",IDC_STATIC,69,135,49,10
LTEXT "Account name:",IDC_STATIC_ACCOUNT,69,119,49,10
LTEXT "Password:",IDC_STATIC_PASSWORD,69,135,49,10
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,112
LTEXT "Language:",IDC_STATIC,69,151,49,10
LTEXT "Language:",IDC_STATIC_LANGUAGE,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,167,100,10
GROUPBOX "",IDC_STATIC,14,54,274,43
Expand All @@ -114,8 +116,8 @@ IDD_URULOGIN_EULA DIALOGEX 0, 0, 300, 318
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "Accept",IDOK,89,297,50,14
PUSHBUTTON "Decline",IDCANCEL,160,297,50,14
DEFPUSHBUTTON "Accept",IDC_BUTTON_ACCEPT,89,297,50,14
PUSHBUTTON "Decline",IDC_BUTTON_DECLINE,160,297,50,14
CONTROL 151,IDC_STATIC,"Static",SS_BITMAP,7,7,287,36,WS_EX_CLIENTEDGE
CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | SS_SUNKEN,9,46,284,242
CTEXT "End User License Agreement",IDC_STATIC,46,55,207,10
Expand Down
23 changes: 23 additions & 0 deletions Sources/Plasma/Apps/plClient/win32/res/resource.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,29 @@
#define IDC_STATUS_TEXT 1034
#define IDC_HOTKEY1 1035
#define IDC_LANGUAGE 1040
#define IDC_STATIC_ACCOUNT 1050
#define IDC_STATIC_PASSWORD 1051
#define IDC_STATIC_LANGUAGE 1052

#define IDC_BUTTON_LOGIN 1901
#define IDC_BUTTON_CANCEL 1902
#define IDC_BUTTON_ACCEPT 1903
#define IDC_BUTTON_DECLINE 1904

#define IDC_TEXT_LOGIN 2000
#define IDC_TEXT_QUIT 2001
#define IDC_TEXT_ACCOUNT 2002
#define IDC_TEXT_PASSWORD 2003
#define IDC_TEXT_LANGUAGE 2004
#define IDC_TEXT_REMEMBER_PASS 2005
#define IDC_TEXT_WELCOME 2006
#define IDC_TEXT_NEED_ACCOUNT 2007
#define IDC_TEXT_DONATE 2008

#define IDC_TEXT_ACCEPT 2009
#define IDC_TEXT_DECLINE 2010
#define IDC_TEXT_AUTH 2011


// Next default values for new objects
//
Expand Down
22 changes: 22 additions & 0 deletions Sources/Plasma/Apps/plClient/win32/res/resource_de.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#include "resource.h"
#include <windows.h>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#include <windows.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

#include <commctrl.h>

LANGUAGE LANG_GERMAN, SUBLANG_GERMAN

STRINGTABLE
BEGIN
IDC_TEXT_LOGIN "Anmelden"
IDC_TEXT_QUIT "Beenden"
IDC_TEXT_ACCOUNT "Kontoname:"
IDC_TEXT_PASSWORD "Passwort:"
IDC_TEXT_LANGUAGE "Sprache:"
IDC_TEXT_REMEMBER_PASS "Passwort merken:"
IDC_TEXT_NEED_ACCOUNT "Konto erstellen?"
IDC_TEXT_DONATE "Spenden"

IDC_TEXT_ACCEPT "Akzeptieren"
IDC_TEXT_DECLINE "Ablehnen"

IDC_TEXT_AUTH "Authentifizierung fehlgeschlagen. Bitte versuchen Sie es erneut."
END
22 changes: 22 additions & 0 deletions Sources/Plasma/Apps/plClient/win32/res/resource_en.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#include "resource.h"
#include <windows.h>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#include <windows.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

#include <commctrl.h>

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

STRINGTABLE
BEGIN
IDC_TEXT_LOGIN "Login"
IDC_TEXT_QUIT "Quit"
IDC_TEXT_ACCOUNT "Account name:"
IDC_TEXT_PASSWORD "Password:"
IDC_TEXT_LANGUAGE "Language:"
IDC_TEXT_REMEMBER_PASS "Remember Password:"
IDC_TEXT_NEED_ACCOUNT "Need an account?"
IDC_TEXT_DONATE "Donate"

IDC_TEXT_ACCEPT "Accept"
IDC_TEXT_DECLINE "Decline"

IDC_TEXT_AUTH "Authentication failed. Please try again."
END
45 changes: 41 additions & 4 deletions Sources/Plasma/Apps/plClient/win32/winmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -579,6 +579,13 @@ INT_PTR CALLBACK AuthFailedDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, L
return FALSE;
}

static const char* LoadLocalizedString(UINT nID)
{
static char buffer[256];
LoadStringA(gHInst, nID, buffer, sizeof(buffer));
return buffer;
}
Comment on lines +582 to +587
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In order to best support all languages, we should probably use unicode here. Also, per the documentation, we can ask for a read only pointer to the string and avoid the copy.

Suggested change
static const char* LoadLocalizedString(UINT nID)
{
static char buffer[256];
LoadStringA(gHInst, nID, buffer, sizeof(buffer));
return buffer;
}
static const wchar_t* GetLocalizedString(UINT nID)
{
wchar_t* buffer = nullptr;
LoadStringW(gHInst, nID, reinterpret_cast<LPWSTR>(&buffer), 0);
return buffer;
}


INT_PTR CALLBACK UruTOSDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
switch( uMsg )
Expand All @@ -598,16 +605,19 @@ INT_PTR CALLBACK UruTOSDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA

SetDlgItemTextW(hwndDlg, IDC_URULOGIN_EULATEXT,
ST::string(eula, ST::substitute_invalid).to_wchar().data());

SetDlgItemText(hwndDlg, IDC_BUTTON_ACCEPT, LoadLocalizedString(IDC_TEXT_ACCEPT));
SetDlgItemText(hwndDlg, IDC_BUTTON_DECLINE, LoadLocalizedString(IDC_TEXT_DECLINE));
Comment on lines +609 to +610
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
SetDlgItemText(hwndDlg, IDC_BUTTON_ACCEPT, LoadLocalizedString(IDC_TEXT_ACCEPT));
SetDlgItemText(hwndDlg, IDC_BUTTON_DECLINE, LoadLocalizedString(IDC_TEXT_DECLINE));
SetDlgItemTextW(hwndDlg, IDC_BUTTON_ACCEPT, GetLocalizedString(IDC_TEXT_ACCEPT));
SetDlgItemTextW(hwndDlg, IDC_BUTTON_DECLINE, GetLocalizedString(IDC_TEXT_DECLINE));

}
else // no TOS found, go ahead
EndDialog(hwndDlg, true);

break;
}
case WM_COMMAND:
if (HIWORD(wParam) == BN_CLICKED && (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL))
if (HIWORD(wParam) == BN_CLICKED && (LOWORD(wParam) == IDC_BUTTON_ACCEPT || LOWORD(wParam) == IDC_BUTTON_DECLINE))
{
bool ok = (LOWORD(wParam) == IDOK);
bool ok = (LOWORD(wParam) == IDC_BUTTON_ACCEPT);
EndDialog(hwndDlg, ok);
return TRUE;
}
Expand Down Expand Up @@ -722,6 +732,23 @@ static size_t CurlCallback(void *buffer, size_t size, size_t nmemb, void *param)
return size * nmemb;
}

void SetWindowsUILanguage(plLocalization::Language lang)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
void SetWindowsUILanguage(plLocalization::Language lang)
static void SetWindowsUILanguage(plLocalization::Language lang)

{
LANGID langId;

switch (lang) {
case plLocalization::kGerman:
langId = MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN);
break;

default:
langId = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
break;
}

SetThreadUILanguage(langId);
}

INT_PTR CALLBACK UruLoginDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
static LoginDialogParam* pLoginParam;
Expand Down Expand Up @@ -835,9 +862,9 @@ INT_PTR CALLBACK UruLoginDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPA

case WM_COMMAND:
{
if (HIWORD(wParam) == BN_CLICKED && (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL))
if (HIWORD(wParam) == BN_CLICKED && (LOWORD(wParam) == IDC_BUTTON_LOGIN || LOWORD(wParam) == IDC_BUTTON_CANCEL))
{
bool ok = (LOWORD(wParam) == IDOK);
bool ok = (LOWORD(wParam) == IDC_BUTTON_LOGIN);
if (ok)
{
wchar_t password[kMaxPasswordLength];
Expand Down Expand Up @@ -896,6 +923,16 @@ INT_PTR CALLBACK UruLoginDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPA

return TRUE;
}
else if (HIWORD(wParam) == CBN_SELCHANGE && LOWORD(wParam) == IDC_LANGUAGE)
{
HWND hCombo = (HWND)lParam;
int currentIndex = (int)SendMessage(hCombo, CB_GETCURSEL, 0, 0);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
int currentIndex = (int)SendMessage(hCombo, CB_GETCURSEL, 0, 0);
int currentIndex = ComboBox_GetCurSel(hCombo);


if (currentIndex != CB_ERR) {
plLocalization::Language new_language = (plLocalization::Language)SendMessage(GetDlgItem(hwndDlg, IDC_LANGUAGE), CB_GETCURSEL, 0, 0L);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we could just cast currentIndex to plLocalization::Lanuage instead of asking for the current selection again.

SetWindowsUILanguage(new_language);
}
}
break;
}

Expand Down