Added checks when editing window and sb size so that they are kept
consistent.
diff --git a/programs/wineconsole/dialog.c b/programs/wineconsole/dialog.c
index ab7333c..7b34188 100644
--- a/programs/wineconsole/dialog.c
+++ b/programs/wineconsole/dialog.c
@@ -611,7 +611,6 @@
0, (LPARAM)s2);
SendDlgItemMessage(hDlg, IDC_CNF_EDITION_MODE, CB_SETCURSEL,
di->config.edition_mode, 0);
- WINE_FIXME("edmo=%d\n", di->config.edition_mode);
}
break;
@@ -624,7 +623,7 @@
case WM_NOTIFY:
{
NMHDR* nmhdr = (NMHDR*)lParam;
- int x, y;
+ int win_w, win_h, sb_w, sb_h;
BOOL st1, st2;
di = (struct dialog_info*)GetWindowLong(hDlg, DWL_USER);
@@ -634,21 +633,39 @@
di->hDlg = hDlg;
break;
case PSN_APPLY:
- x = GetDlgItemInt(hDlg, IDC_CNF_SB_WIDTH, &st1, FALSE);
- y = GetDlgItemInt(hDlg, IDC_CNF_SB_HEIGHT, &st2, FALSE);
- if (st1 && st2)
+ sb_w = GetDlgItemInt(hDlg, IDC_CNF_SB_WIDTH, &st1, FALSE);
+ sb_h = GetDlgItemInt(hDlg, IDC_CNF_SB_HEIGHT, &st2, FALSE);
+ if (!st1 || ! st2)
{
- di->config.sb_width = x;
- di->config.sb_height = y;
+ SetWindowLong(hDlg, DWL_MSGRESULT, PSNRET_INVALID);
+ return TRUE;
}
+ win_w = GetDlgItemInt(hDlg, IDC_CNF_WIN_WIDTH, &st1, FALSE);
+ win_h = GetDlgItemInt(hDlg, IDC_CNF_WIN_HEIGHT, &st2, FALSE);
+ if (!st1 || !st2)
+ {
+ SetWindowLong(hDlg, DWL_MSGRESULT, PSNRET_INVALID);
+ return TRUE;
+ }
+ if (win_w > sb_w || win_h > sb_h)
+ {
+ WCHAR cap[256];
+ WCHAR txt[256];
- x = GetDlgItemInt(hDlg, IDC_CNF_WIN_WIDTH, &st1, FALSE);
- y = GetDlgItemInt(hDlg, IDC_CNF_WIN_HEIGHT, &st2, FALSE);
- if (st1 && st2)
- {
- di->config.win_width = x;
- di->config.win_height = y;
+ LoadString(GetModuleHandle(NULL), IDS_DLG_TIT_ERROR,
+ cap, sizeof(cap) / sizeof(WCHAR));
+ LoadString(GetModuleHandle(NULL), IDS_DLG_ERR_SBWINSIZE,
+ txt, sizeof(txt) / sizeof(WCHAR));
+
+ MessageBox(hDlg, txt, cap, MB_OK);
+ SetWindowLong(hDlg, DWL_MSGRESULT, PSNRET_INVALID);
+ return TRUE;
}
+ di->config.win_width = win_w;
+ di->config.win_height = win_h;
+ di->config.sb_width = sb_w;
+ di->config.sb_height = sb_h;
+
di->config.exit_on_die = IsDlgButtonChecked(hDlg, IDC_CNF_CLOSE_EXIT) ? 1 : 0;
di->config.edition_mode = SendDlgItemMessage(hDlg, IDC_CNF_EDITION_MODE, CB_GETCURSEL,
0, 0);
diff --git a/programs/wineconsole/wineconsole_De.rc b/programs/wineconsole/wineconsole_De.rc
index 5a16dab..98262c4 100644
--- a/programs/wineconsole/wineconsole_De.rc
+++ b/programs/wineconsole/wineconsole_De.rc
@@ -32,8 +32,10 @@
IDS_FNT_DISPLAY, "Jeder Buchstabe ist %ld Pixel breit und %ld Pixel hoch"
IDS_FNT_PREVIEW_1, "Dies ist ein Test"
IDS_FNT_PREVIEW_2, ""
-IDS_DLG_TIT_DEFAULT "Setup - Standardeinstellungen"
-IDS_DLG_TIT_CURRENT "Setup - aktuelle Einstellungen"
+IDS_DLG_TIT_DEFAULT, "Setup - Standardeinstellungen"
+IDS_DLG_TIT_CURRENT, "Setup - aktuelle Einstellungen"
+IDS_DLG_TIT_ERROR, "Configuration error"
+IDS_DLG_ERR_SBWINSIZE, "Screen buffer size must be greater or equal to the window's one"
END
IDD_OPTION DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 140, 105
diff --git a/programs/wineconsole/wineconsole_En.rc b/programs/wineconsole/wineconsole_En.rc
index 453bf99..c593f72 100644
--- a/programs/wineconsole/wineconsole_En.rc
+++ b/programs/wineconsole/wineconsole_En.rc
@@ -32,8 +32,10 @@
IDS_FNT_DISPLAY, "Each character is %ld pixels wide on %ld pixels high"
IDS_FNT_PREVIEW_1, "This is a test"
IDS_FNT_PREVIEW_2, ""
-IDS_DLG_TIT_DEFAULT "Setup - Default settings"
-IDS_DLG_TIT_CURRENT "Setup - Current settings"
+IDS_DLG_TIT_DEFAULT, "Setup - Default settings"
+IDS_DLG_TIT_CURRENT, "Setup - Current settings"
+IDS_DLG_TIT_ERROR, "Configuration error"
+IDS_DLG_ERR_SBWINSIZE, "Screen buffer size must be greater or equal to the window's one"
END
IDD_OPTION DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 140, 105
diff --git a/programs/wineconsole/wineconsole_Fr.rc b/programs/wineconsole/wineconsole_Fr.rc
index 0a486cb..ca7ae40 100644
--- a/programs/wineconsole/wineconsole_Fr.rc
+++ b/programs/wineconsole/wineconsole_Fr.rc
@@ -32,8 +32,10 @@
IDS_FNT_DISPLAY, "Chaque caractère a %ld points en largeur et %ld points en hauteur"
IDS_FNT_PREVIEW_1, "Ceci est un test"
IDS_FNT_PREVIEW_2, "éèàôë"
-IDS_DLG_TIT_DEFAULT "Configuration par défault"
-IDS_DLG_TIT_CURRENT "Configuration courante"
+IDS_DLG_TIT_DEFAULT, "Configuration par défault"
+IDS_DLG_TIT_CURRENT, "Configuration courante"
+IDS_DLG_TIT_ERROR, "Erreur de configuration"
+IDS_DLG_ERR_SBWINSIZE, "La taille du tampon écran doit être plus grande que celle de la fenêtre"
END
IDD_OPTION DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 140, 105
diff --git a/programs/wineconsole/wineconsole_Hu.rc b/programs/wineconsole/wineconsole_Hu.rc
index 8a22ccd..3186a22 100644
--- a/programs/wineconsole/wineconsole_Hu.rc
+++ b/programs/wineconsole/wineconsole_Hu.rc
@@ -33,8 +33,10 @@
IDS_FNT_DISPLAY, "Minden karakter %ld pixel széles és %ld pixel magas"
IDS_FNT_PREVIEW_1, "Ez egy teszt"
IDS_FNT_PREVIEW_2, ""
-IDS_DLG_TIT_DEFAULT "Beállítás - alapértelmezett beállítások"
-IDS_DLG_TIT_CURRENT "Beállítás - aktuális beállítások"
+IDS_DLG_TIT_DEFAULT, "Beállítás - alapértelmezett beállítások"
+IDS_DLG_TIT_CURRENT, "Beállítás - aktuális beállítások"
+IDS_DLG_TIT_ERROR, "Configuration error"
+IDS_DLG_ERR_SBWINSIZE, "Screen buffer size must be greater or equal to the window's one"
END
IDD_OPTION DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 140, 105
diff --git a/programs/wineconsole/wineconsole_Zh.rc b/programs/wineconsole/wineconsole_Zh.rc
index 3050bb9..cea9626 100644
--- a/programs/wineconsole/wineconsole_Zh.rc
+++ b/programs/wineconsole/wineconsole_Zh.rc
@@ -34,8 +34,10 @@
IDS_FNT_DISPLAY, "ÿ¸ö×Ö¶¼ÊÇ %ld ¸öÏñËØ¿í£¬%ld ¸öÏñËظß"
IDS_FNT_PREVIEW_1, "ÕâÊÇÒ»¶Î²âÊÔÓï¾ä"
IDS_FNT_PREVIEW_2, ""
-IDS_DLG_TIT_DEFAULT "ÅäÖà - ĬÈÏÉèÖÃ"
-IDS_DLG_TIT_CURRENT "ÅäÖà - µ±Ç°ÉèÖÃ"
+IDS_DLG_TIT_DEFAULT, "ÅäÖà - ĬÈÏÉèÖÃ"
+IDS_DLG_TIT_CURRENT, "ÅäÖà - µ±Ç°ÉèÖÃ"
+IDS_DLG_TIT_ERROR, "Configuration error"
+IDS_DLG_ERR_SBWINSIZE, "Screen buffer size must be greater or equal to the window's one"
END
IDD_OPTION DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 140, 105
diff --git a/programs/wineconsole/wineconsole_res.h b/programs/wineconsole/wineconsole_res.h
index 5d52eee..7817c7f 100644
--- a/programs/wineconsole/wineconsole_res.h
+++ b/programs/wineconsole/wineconsole_res.h
@@ -32,6 +32,9 @@
#define IDS_DLG_TIT_DEFAULT 0x120
#define IDS_DLG_TIT_CURRENT 0x121
+#define IDS_DLG_TIT_ERROR 0x122
+
+#define IDS_DLG_ERR_SBWINSIZE 0x130
#define IDS_FNT_DISPLAY 0x200
#define IDS_FNT_PREVIEW_1 0x201