diff --git a/reactos/base/applications/games/solitaire/lang/bg-BG.rc b/reactos/base/applications/games/solitaire/lang/bg-BG.rc index aa0452cb4f1..16b9e0e5f76 100644 --- a/reactos/base/applications/games/solitaire/lang/bg-BG.rc +++ b/reactos/base/applications/games/solitaire/lang/bg-BG.rc @@ -22,7 +22,7 @@ BEGIN AUTORADIOBUTTON "Изтегли &три", IDC_OPT_DRAWTHREE, 14, 32, 70, 10 AUTOCHECKBOX "&Показване на времето", IDC_OPT_SHOWTIME, 7 ,51 ,100 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "Лента &състояние", IDC_OPT_STATUSBAR, 7, 66, 100, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "Лента &състояние", IDC_OPT_STATUSBAR, 7, 66, 100, 10, WS_TABSTOP DEFPUSHBUTTON "Добре", IDOK, 35, 97, 50, 14 PUSHBUTTON "Отказ", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/de-DE.rc b/reactos/base/applications/games/solitaire/lang/de-DE.rc index 4e3917c5409..aa3078c97e1 100644 --- a/reactos/base/applications/games/solitaire/lang/de-DE.rc +++ b/reactos/base/applications/games/solitaire/lang/de-DE.rc @@ -22,7 +22,7 @@ BEGIN AUTORADIOBUTTON "&Drei ziehen", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Zeit anzeigen", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "S&tatusleiste", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "S&tatusleiste", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK",IDOK,35,97,50,14 PUSHBUTTON "Abbrechen",IDCANCEL,101,97,50,14 diff --git a/reactos/base/applications/games/solitaire/lang/el-GR.rc b/reactos/base/applications/games/solitaire/lang/el-GR.rc index 9f852bda125..dbace04da9c 100644 --- a/reactos/base/applications/games/solitaire/lang/el-GR.rc +++ b/reactos/base/applications/games/solitaire/lang/el-GR.rc @@ -22,7 +22,7 @@ BEGIN AUTORADIOBUTTON "СЯое &ФсЯб", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&ЕмцЬнйуз їсбт", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "Г&сбммЮ кбфЬуфбузт", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "Г&сбммЮ кбфЬуфбузт", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Бкэсщуз", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/en-US.rc b/reactos/base/applications/games/solitaire/lang/en-US.rc index a545c9a8597..0a731e977f1 100644 --- a/reactos/base/applications/games/solitaire/lang/en-US.rc +++ b/reactos/base/applications/games/solitaire/lang/en-US.rc @@ -22,7 +22,7 @@ BEGIN AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/es-ES.rc b/reactos/base/applications/games/solitaire/lang/es-ES.rc index 7ae0e26788e..d2958b50ced 100644 --- a/reactos/base/applications/games/solitaire/lang/es-ES.rc +++ b/reactos/base/applications/games/solitaire/lang/es-ES.rc @@ -22,7 +22,7 @@ BEGIN AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "Aceptar", IDOK, 35, 97, 50, 14 PUSHBUTTON "Cancelar", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/fr-FR.rc b/reactos/base/applications/games/solitaire/lang/fr-FR.rc index 7d089fe1b4b..b6b9df27cc4 100644 --- a/reactos/base/applications/games/solitaire/lang/fr-FR.rc +++ b/reactos/base/applications/games/solitaire/lang/fr-FR.rc @@ -22,7 +22,7 @@ BEGIN AUTORADIOBUTTON "En tirer trois", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "Afficher le temp&s", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "Barre de s&tatus", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "Barre de s&tatus", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Annuler", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/id-ID.rc b/reactos/base/applications/games/solitaire/lang/id-ID.rc index 452e7512aba..b750371acb7 100644 --- a/reactos/base/applications/games/solitaire/lang/id-ID.rc +++ b/reactos/base/applications/games/solitaire/lang/id-ID.rc @@ -23,7 +23,7 @@ BEGIN AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Batal", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/it-IT.rc b/reactos/base/applications/games/solitaire/lang/it-IT.rc index 0ce6923f4c0..5dbc304d6bc 100644 --- a/reactos/base/applications/games/solitaire/lang/it-IT.rc +++ b/reactos/base/applications/games/solitaire/lang/it-IT.rc @@ -23,7 +23,7 @@ BEGIN AUTORADIOBUTTON "Girane &Tre", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Visualizza il tempo", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "&Barra di stato", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "&Barra di stato", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Annulla", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/nb-NO.rc b/reactos/base/applications/games/solitaire/lang/nb-NO.rc index 5a19f6e13b1..89c2da5771a 100644 --- a/reactos/base/applications/games/solitaire/lang/nb-NO.rc +++ b/reactos/base/applications/games/solitaire/lang/nb-NO.rc @@ -23,7 +23,7 @@ BEGIN AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Avbryt", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/pl-PL.rc b/reactos/base/applications/games/solitaire/lang/pl-PL.rc index 8009a3ad1c1..a3b9cb875de 100644 --- a/reactos/base/applications/games/solitaire/lang/pl-PL.rc +++ b/reactos/base/applications/games/solitaire/lang/pl-PL.rc @@ -21,7 +21,7 @@ BEGIN AUTORADIOBUTTON "Rozdaj &dwie", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Pokazuj czas gry", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "Pokazuj pa&sek stanu", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "Pokazuj pa&sek stanu", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Anuluj", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/ru-RU.rc b/reactos/base/applications/games/solitaire/lang/ru-RU.rc index cd4e779adc6..123ce9952a8 100644 --- a/reactos/base/applications/games/solitaire/lang/ru-RU.rc +++ b/reactos/base/applications/games/solitaire/lang/ru-RU.rc @@ -17,7 +17,7 @@ BEGIN AUTORADIOBUTTON "По &три", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Показывать время", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "&Строка состояния", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "&Строка состояния", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Отмена", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/sk-SK.rc b/reactos/base/applications/games/solitaire/lang/sk-SK.rc index 72e3e3ba302..961bb07a094 100644 --- a/reactos/base/applications/games/solitaire/lang/sk-SK.rc +++ b/reactos/base/applications/games/solitaire/lang/sk-SK.rc @@ -24,7 +24,7 @@ BEGIN AUTORADIOBUTTON "Ќahaќ &tri", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "Иa&sovэ limit", IDC_OPT_SHOWTIME, 7 ,51 ,64 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "Stavovэ riad&ok", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "Stavovэ riad&ok", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Zruљiќ", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/th-TH.rc b/reactos/base/applications/games/solitaire/lang/th-TH.rc index f0adc052f9b..b97d4b8a896 100644 --- a/reactos/base/applications/games/solitaire/lang/th-TH.rc +++ b/reactos/base/applications/games/solitaire/lang/th-TH.rc @@ -23,7 +23,7 @@ BEGIN AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "µЎЕ§", IDOK, 35, 97, 50, 14 PUSHBUTTON "ВЎаЕФЎ", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/uk-UA.rc b/reactos/base/applications/games/solitaire/lang/uk-UA.rc index 4ebe228488f..dee908a8e8e 100644 --- a/reactos/base/applications/games/solitaire/lang/uk-UA.rc +++ b/reactos/base/applications/games/solitaire/lang/uk-UA.rc @@ -22,7 +22,7 @@ BEGIN AUTORADIOBUTTON "П&о три", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Гра за часом", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "&Рядок стану", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "&Рядок стану", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14 PUSHBUTTON "Скасувати", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/lang/zh-CN.rc b/reactos/base/applications/games/solitaire/lang/zh-CN.rc index 16be8fced11..fa9b9a85b02 100644 --- a/reactos/base/applications/games/solitaire/lang/zh-CN.rc +++ b/reactos/base/applications/games/solitaire/lang/zh-CN.rc @@ -23,7 +23,7 @@ BEGIN AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10 AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED - AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP | WS_DISABLED + AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP DEFPUSHBUTTON "И·¶Ё", IDOK, 35, 97, 50, 14 PUSHBUTTON "ИЎПы", IDCANCEL, 101, 97, 50, 14 diff --git a/reactos/base/applications/games/solitaire/solitaire.cpp b/reactos/base/applications/games/solitaire/solitaire.cpp index 2f2c76eef0e..7a20862bab4 100644 --- a/reactos/base/applications/games/solitaire/solitaire.cpp +++ b/reactos/base/applications/games/solitaire/solitaire.cpp @@ -206,6 +206,9 @@ BOOL CALLBACK OptionsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) CheckRadioButton(hDlg, IDC_OPT_DRAWONE, IDC_OPT_DRAWTHREE, (dwOptions & OPTION_THREE_CARDS) ? IDC_OPT_DRAWTHREE : IDC_OPT_DRAWONE); + CheckDlgButton(hDlg, + IDC_OPT_STATUSBAR, + (dwOptions & OPTION_SHOW_STATUS) ? BST_CHECKED : BST_UNCHECKED); return TRUE; case WM_COMMAND: @@ -216,6 +219,11 @@ BOOL CALLBACK OptionsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) if (IsDlgButtonChecked(hDlg, IDC_OPT_DRAWTHREE) == BST_CHECKED) dwOptions |= OPTION_THREE_CARDS; + if (IsDlgButtonChecked(hDlg, IDC_OPT_STATUSBAR) == BST_CHECKED) + dwOptions |= OPTION_SHOW_STATUS; + else + dwOptions &= ~OPTION_SHOW_STATUS; + EndDialog(hDlg, TRUE); return TRUE; @@ -231,11 +239,34 @@ BOOL CALLBACK OptionsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) VOID ShowGameOptionsDlg(HWND hwnd) { DWORD dwOldOptions = dwOptions; + RECT rcMain, rcStatus; + int nWidth, nHeight, nStatusHeight; if (DialogBox(hInstance, MAKEINTRESOURCE(IDD_OPTIONS), hwnd, OptionsDlgProc)) { if ((dwOldOptions & OPTION_THREE_CARDS) != (dwOptions & OPTION_THREE_CARDS)) NewGame(); + + if ((dwOldOptions & OPTION_SHOW_STATUS) != (dwOptions & OPTION_SHOW_STATUS)) + { + GetClientRect(hwndMain, &rcMain); + nHeight = rcMain.bottom - rcMain.top; + nWidth = rcMain.right - rcMain.left; + + if (dwOptions & OPTION_SHOW_STATUS) + { + ShowWindow(hwndStatus, SW_SHOW); + GetWindowRect(hwndStatus, &rcStatus); + nStatusHeight = rcStatus.bottom - rcStatus.top; + MoveWindow(SolWnd, 0, 0, nWidth, nHeight-nStatusHeight, TRUE); + MoveWindow(hwndStatus, 0, nHeight-nStatusHeight, nWidth, nHeight, TRUE); + } + else + { + ShowWindow(hwndStatus, SW_HIDE); + MoveWindow(SolWnd, 0, 0, nWidth, nHeight, TRUE); + } + } } } @@ -413,9 +444,10 @@ VOID ShowDeckOptionsDlg(HWND hwnd) LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { static int nWidth, nHeight; - int nStatusHeight = 0;//20; int parts[] = { 100, -1 }; int ret; + RECT rc; + int nStatusHeight = 0; MINMAXINFO *mmi; @@ -429,8 +461,6 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) SendMessage(hwndStatus, SB_SETPARTS, 2, (LPARAM)parts); SendMessage(hwndStatus, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM)""); - ShowWindow(hwndStatus, SW_HIDE); - SolWnd.Create(hwnd, WS_EX_CLIENTEDGE, WS_CHILD|WS_VISIBLE, 0, 0, 0, 0); CreateSol(); @@ -449,8 +479,17 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) nWidth = LOWORD(lParam); nHeight = HIWORD(lParam); - MoveWindow(SolWnd, 0, 0, nWidth, nHeight-nStatusHeight, TRUE); - //MoveWindow(hwndStatus, 0, nHeight-nStatusHeight, nWidth, nHeight, TRUE); + if (dwOptions & OPTION_SHOW_STATUS) + { + GetWindowRect(hwndStatus, &rc); + nStatusHeight = rc.bottom - rc.top; + MoveWindow(SolWnd, 0, 0, nWidth, nHeight-nStatusHeight, TRUE); + MoveWindow(hwndStatus, 0, nHeight-nStatusHeight, nWidth, nHeight, TRUE); + } + else + { + MoveWindow(SolWnd, 0, 0, nWidth, nHeight, TRUE); + } //parts[0] = nWidth - 256; //SendMessage(hwndStatus, SB_SETPARTS, 2, (LPARAM)parts); return 0; diff --git a/reactos/base/applications/games/solitaire/solitaire.h b/reactos/base/applications/games/solitaire/solitaire.h index d08dd099122..79b524c9ac5 100644 --- a/reactos/base/applications/games/solitaire/solitaire.h +++ b/reactos/base/applications/games/solitaire/solitaire.h @@ -5,6 +5,7 @@ extern CardWindow SolWnd; extern TCHAR szAppName[]; extern bool fGameStarted; +#define OPTION_SHOW_STATUS 4 #define OPTION_THREE_CARDS 8 #define CARDBACK_START IDC_CARDBACK1 #define CARDBACK_END IDC_CARDBACK4