diff --git a/reactos/dll/win32/msgina/en.rc b/reactos/dll/win32/msgina/en.rc new file mode 100644 index 00000000000..287680434e0 --- /dev/null +++ b/reactos/dll/win32/msgina/en.rc @@ -0,0 +1,50 @@ +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +IDD_STATUSWINDOW_DLG DIALOGEX 0,0,274,26 +STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP +CAPTION "Please wait..." +FONT 8,"MS Shell Dlg 2",400,0,1 +BEGIN + LTEXT "",IDC_STATUSLABEL,7,8,234,12,SS_WORDELLIPSIS +END + +IDD_NOTICE_DLG DIALOGEX 0,0,186,59 +STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP +CAPTION "Welcome to ReactOS" +FONT 8,"MS Shell Dlg 2",400,0,1 +BEGIN + LTEXT "Press Control-Alt-Delete key combination",IDC_STATIC,16,18,144,14 +END + +IDD_LOGGEDOUT_DLG DIALOGEX 0,0,275,147 +STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP +CAPTION "Logon" +FONT 8,"MS Shell Dlg 2",400,0,1 +BEGIN + PUSHBUTTON "OK",IDOK,51,122,50,14,BS_DEFPUSHBUTTON + PUSHBUTTON "Cancel",IDCANCEL,115,122,50,14 + PUSHBUTTON "Shutdown",IDC_SHUTDOWN,179,122,50,14 + LTEXT "Username:",IDC_STATIC,36,75,40,8 + LTEXT "Password:",IDC_STATIC,36,93,42,8 + EDITTEXT IDC_USERNAME,84,72,119,14,ES_AUTOHSCROLL + EDITTEXT IDC_PASSWORD,84,91,119,14,ES_AUTOHSCROLL | ES_PASSWORD +END + +IDD_LOGGEDON_DLG DIALOGEX 0,0,186,52 +STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU +CAPTION "Security" +FONT 8,"MS Shell Dlg 2",400,0,1 +BEGIN + PUSHBUTTON "Cancel",IDCANCEL,125,31,50,14 + PUSHBUTTON "Log off",IDC_LOGOFF,11,31,50,14 + PUSHBUTTON "Shutdown",IDC_SHUTDOWN,69,31,50,14 + LTEXT "What do you want to do?",IDC_STATIC,50,18,87,8 +END + +STRINGTABLE +BEGIN + IDS_PRESSCTRLALTDELETE "Press CONTROL+ALT+DELETE key combination\n" + IDS_ASKFORUSER "User name: " + IDS_ASKFORPASSWORD "Password: " +END + diff --git a/reactos/dll/win32/msgina/gui.c b/reactos/dll/win32/msgina/gui.c index 488122dcbc5..cfb92d26f34 100644 --- a/reactos/dll/win32/msgina/gui.c +++ b/reactos/dll/win32/msgina/gui.c @@ -14,6 +14,9 @@ #undef DPRINT #undef DPRINT1 +static HBITMAP hBitmap = NULL; +static int cxSource, cySource; + typedef struct _DISPLAYSTATUSMSG { PGINA_CONTEXT Context; @@ -46,7 +49,7 @@ StatusMessageWindowProc( PDISPLAYSTATUSMSG msg = (PDISPLAYSTATUSMSG)lParam; if (!msg) return FALSE; - + msg->Context->hStatusWindow = hwndDlg; if (msg->pTitle) @@ -207,6 +210,8 @@ LoggedOutWindowProc( IN WPARAM wParam, IN LPARAM lParam) { + BITMAP bitmap; + switch (uMsg) { case WM_INITDIALOG: @@ -214,6 +219,31 @@ LoggedOutWindowProc( /* FIXME: take care of DontDisplayLastUserName, NoDomainUI, ShutdownWithoutLogon */ SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)lParam); SetFocus(GetDlgItem(hwndDlg, IDC_USERNAME)); + + hBitmap = LoadImage(hDllInstance, MAKEINTRESOURCE(IDC_ROSLOGO), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); + if (hBitmap != NULL) + { + GetObject(hBitmap, sizeof(BITMAP), &bitmap); + cxSource = bitmap.bmWidth; + cySource = bitmap.bmHeight; + } + break; + } + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc, hdcMem; + hdc = BeginPaint(hwndDlg, &ps); + hdcMem = CreateCompatibleDC(hdc); + SelectObject(hdcMem, hBitmap); + BitBlt(hdc, 0, 0, cxSource, cySource, hdcMem, 0, 0, SRCCOPY); + DeleteDC(hdcMem); + EndPaint(hwndDlg, &ps); + break; + } + case WM_DESTROY: + { + DeleteObject(hBitmap); break; } case WM_COMMAND: diff --git a/reactos/dll/win32/msgina/msgina.rbuild b/reactos/dll/win32/msgina/msgina.rbuild index cc68c806dee..dc6e7f524f4 100644 --- a/reactos/dll/win32/msgina/msgina.rbuild +++ b/reactos/dll/win32/msgina/msgina.rbuild @@ -10,6 +10,7 @@ kernel32 advapi32 user32 + gdi32 gui.c msgina.c stubs.c diff --git a/reactos/dll/win32/msgina/msgina.rc b/reactos/dll/win32/msgina/msgina.rc index b00b1811e58..567fb7a7dd3 100644 --- a/reactos/dll/win32/msgina/msgina.rc +++ b/reactos/dll/win32/msgina/msgina.rc @@ -7,53 +7,8 @@ #define REACTOS_STR_ORIGINAL_FILENAME "msgina.dll\0" #include -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -IDD_STATUSWINDOW_DLG DIALOGEX 0,0,274,26 -STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP -CAPTION "Please wait..." -FONT 8,"MS Shell Dlg 2",400,0,1 -BEGIN - LTEXT "",IDC_STATUSLABEL,7,8,234,12,SS_WORDELLIPSIS -END +IDC_ROSLOGO BITMAP "resources/reactos.bmp" -IDD_NOTICE_DLG DIALOGEX 0,0,186,59 -STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP -CAPTION "Welcome to ReactOS" -FONT 8,"MS Shell Dlg 2",400,0,1 -BEGIN - LTEXT "Press Control-Alt-Delete key combination",IDC_STATIC,16,18,144,14 -END - -IDD_LOGGEDOUT_DLG DIALOGEX 0,0,245,77 -STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP -CAPTION "Logon" -FONT 8,"MS Shell Dlg 2",400,0,1 -BEGIN - PUSHBUTTON "OK",IDOK,31,52,50,14,BS_DEFPUSHBUTTON - PUSHBUTTON "Cancel",IDCANCEL,95,52,50,14 - PUSHBUTTON "Shutdown",IDC_SHUTDOWN,159,52,50,14 - LTEXT "User name:",IDC_STATIC,16,15,40,8 - LTEXT "Password:",IDC_STATIC,16,33,42,8 - EDITTEXT IDC_USERNAME,64,12,169,14,ES_AUTOHSCROLL - EDITTEXT IDC_PASSWORD,64,31,169,14,ES_AUTOHSCROLL | ES_PASSWORD -END - -IDD_LOGGEDON_DLG DIALOGEX 0,0,186,52 -STYLE NOT WS_VISIBLE | DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SETFONT | DS_FIXEDSYS | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU -CAPTION "Security" -FONT 8,"MS Shell Dlg 2",400,0,1 -BEGIN - PUSHBUTTON "Cancel",IDCANCEL,125,31,50,14 - PUSHBUTTON "Log off",IDC_LOGOFF,11,31,50,14 - PUSHBUTTON "Shutdown",IDC_SHUTDOWN,69,31,50,14 - LTEXT "What do you want to do?",IDC_STATIC,50,18,87,8 -END - -STRINGTABLE -BEGIN - IDS_PRESSCTRLALTDELETE "Press CONTROL+ALT+DELETE key combination\n" - IDS_ASKFORUSER "User name: " - IDS_ASKFORPASSWORD "Password: " -END +#include "En.rc" diff --git a/reactos/dll/win32/msgina/resource.h b/reactos/dll/win32/msgina/resource.h index 558e29116e3..36b936868c1 100644 --- a/reactos/dll/win32/msgina/resource.h +++ b/reactos/dll/win32/msgina/resource.h @@ -11,6 +11,7 @@ #define IDC_PASSWORD 1003 #define IDC_SHUTDOWN 1004 #define IDC_STATUSLABEL 1005 +#define IDC_ROSLOGO 1006 #define IDS_ASKFORUSER 40000 #define IDS_PRESSCTRLALTDELETE 40001 #define IDS_ASKFORPASSWORD 40002 diff --git a/reactos/dll/win32/msgina/resources/reactos.bmp b/reactos/dll/win32/msgina/resources/reactos.bmp new file mode 100644 index 00000000000..b5775aebecc Binary files /dev/null and b/reactos/dll/win32/msgina/resources/reactos.bmp differ diff --git a/reactos/dll/win32/msgina/tui.c b/reactos/dll/win32/msgina/tui.c index d2cb15c2362..62c5f72f09c 100644 --- a/reactos/dll/win32/msgina/tui.c +++ b/reactos/dll/win32/msgina/tui.c @@ -88,7 +88,7 @@ ReadString( IN OUT PWSTR Buffer, IN DWORD BufferLength, IN BOOL ShowString) -{ +{ WCHAR Prompt[256]; DWORD count, i;