X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/4c4f2716380164e1ee72d74f731a9c250b186e23..e95edc0020e89be99457e8564040ef4039c4e42a:/windlg.c diff --git a/windlg.c b/windlg.c index c085e6ae..a912df8f 100644 --- a/windlg.c +++ b/windlg.c @@ -219,6 +219,8 @@ enum { IDCX_ABOUT = IDC_ABOUT, IDCX_TVSTATIC, IDCX_TREEVIEW, controlstartvalue, IDC_KPNORMAL, IDC_KPAPPLIC, IDC_KPNH, + IDC_NOAPPLICK, + IDC_NOAPPLICC, IDC_CURSTATIC, IDC_CURNORMAL, IDC_CURAPPLIC, @@ -256,6 +258,7 @@ enum { IDCX_ABOUT = IDC_ABOUT, IDCX_TVSTATIC, IDCX_TREEVIEW, controlstartvalue, IDC_ALTONLY, IDC_SCROLLKEY, IDC_SCROLLDISP, + IDC_ALWAYSONTOP, windowpanelend, appearancepanelstart, @@ -430,6 +433,8 @@ static void init_dlg_ctrls(HWND hwnd) { cfg.funky_type == 2 ? IDC_FUNCXTERM : cfg.funky_type == 3 ? IDC_FUNCVT400 : IDC_FUNCTILDE ); + CheckDlgButton (hwnd, IDC_NOAPPLICC, cfg.no_applic_c); + CheckDlgButton (hwnd, IDC_NOAPPLICK, cfg.no_applic_k); CheckRadioButton (hwnd, IDC_CURNORMAL, IDC_CURAPPLIC, cfg.app_cursor ? IDC_CURAPPLIC : IDC_CURNORMAL); CheckRadioButton (hwnd, IDC_KPNORMAL, IDC_KPNH, @@ -440,6 +445,7 @@ static void init_dlg_ctrls(HWND hwnd) { CheckDlgButton (hwnd, IDC_ALTONLY, cfg.alt_only); CheckDlgButton (hwnd, IDC_COMPOSEKEY, cfg.compose_key); CheckDlgButton (hwnd, IDC_LDISCTERM, cfg.ldisc_term); + CheckDlgButton (hwnd, IDC_ALWAYSONTOP, cfg.alwaysontop); CheckDlgButton (hwnd, IDC_SCROLLKEY, cfg.scroll_on_key); CheckDlgButton (hwnd, IDC_SCROLLDISP, cfg.scroll_on_disp); @@ -704,13 +710,13 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, checkbox(&cp, "&Beep enabled", IDC_BEEP); checkbox(&cp, "Use background colour to &erase screen", IDC_BCE); checkbox(&cp, "Enable bli&nking text", IDC_BLINKTEXT); - checkbox(&cp, "&Use local terminal line discipline", IDC_LDISCTERM); + checkbox(&cp, "&Use local terminal line discipline", IDC_LDISCTERM); endbox(&cp); treeview_insert(&tvfaff, 0, "Terminal"); } - /* The Keyboard panel. Accelerators used: [acgo] h?srvlxvnpmiet */ + /* The Keyboard panel. Accelerators used: [acgo] h?srvlxvnpmietu */ { struct ctlpos cp; ctlposinit(&cp, hwnd, 80, 3, 13); @@ -730,11 +736,17 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, "&Xterm R6", IDC_FUNCXTERM, "&VT400", IDC_FUNCVT400, NULL); endbox(&cp); - beginbox(&cp, "Change the initial state of:", + beginbox(&cp, "Application keypad settings:", IDC_BOX_KEYBOARD2, IDC_BOXT_KEYBOARD2); + checkbox(&cp, + "Application c&ursor keys totally disabled", + IDC_NOAPPLICC); radioline(&cp, "Initial state of cursor keys:", IDC_CURSTATIC, 2, "&Normal", IDC_CURNORMAL, "A&pplication", IDC_CURAPPLIC, NULL); + checkbox(&cp, + "Application ke&ypad keys totally disabled", + IDC_NOAPPLICK); radioline(&cp, "Initial state of numeric keypad:", IDC_KPSTATIC, 3, "Nor&mal", IDC_KPNORMAL, "Appl&ication", IDC_KPAPPLIC, @@ -749,7 +761,7 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, treeview_insert(&tvfaff, 1, "Keyboard"); } - /* The Window panel. Accelerators used: [acgo] bsdkw4ylp */ + /* The Window panel. Accelerators used: [acgo] bsdkw4ylpt */ { struct ctlpos cp; ctlposinit(&cp, hwnd, 80, 3, 13); @@ -777,6 +789,7 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, checkbox(&cp, "Window closes on ALT-F&4", IDC_ALTF4); checkbox(&cp, "S&ystem menu appears on ALT-Space", IDC_ALTSPACE); checkbox(&cp, "System menu appears on A< alone", IDC_ALTONLY); + checkbox(&cp, "Ensure window is always on &top", IDC_ALWAYSONTOP); endbox(&cp); treeview_insert(&tvfaff, 0, "Window"); @@ -787,7 +800,7 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, struct ctlpos cp; ctlposinit(&cp, hwnd, 80, 3, 13); bartitle(&cp, "Options controlling PuTTY's appearance", - IDC_TITLE_WINDOW); + IDC_TITLE_APPEARANCE); beginbox(&cp, "Adjust the use of the cursor", IDC_BOX_APPEARANCE1, IDC_BOXT_APPEARANCE1); checkbox(&cp, "Cursor &blinks", IDC_BLINKCUR); @@ -1235,6 +1248,16 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, HIWORD(wParam) == BN_DOUBLECLICKED) cfg.app_cursor = IsDlgButtonChecked (hwnd, IDC_CURAPPLIC); break; + case IDC_NOAPPLICC: + if (HIWORD(wParam) == BN_CLICKED || + HIWORD(wParam) == BN_DOUBLECLICKED) + cfg.no_applic_c = IsDlgButtonChecked (hwnd, IDC_NOAPPLICC); + break; + case IDC_NOAPPLICK: + if (HIWORD(wParam) == BN_CLICKED || + HIWORD(wParam) == BN_DOUBLECLICKED) + cfg.no_applic_k = IsDlgButtonChecked (hwnd, IDC_NOAPPLICK); + break; case IDC_ALTF4: if (HIWORD(wParam) == BN_CLICKED || HIWORD(wParam) == BN_DOUBLECLICKED) @@ -1255,6 +1278,11 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, HIWORD(wParam) == BN_DOUBLECLICKED) cfg.ldisc_term = IsDlgButtonChecked (hwnd, IDC_LDISCTERM); break; + case IDC_ALWAYSONTOP: + if (HIWORD(wParam) == BN_CLICKED || + HIWORD(wParam) == BN_DOUBLECLICKED) + cfg.alwaysontop = IsDlgButtonChecked (hwnd, IDC_ALWAYSONTOP); + break; case IDC_SCROLLKEY: if (HIWORD(wParam) == BN_CLICKED || HIWORD(wParam) == BN_DOUBLECLICKED) @@ -1601,7 +1629,6 @@ static int GenericMainDlgProc (HWND hwnd, UINT msg, 0, 0); if (!cfg.bold_colour) i = (i < 3 ? i*2 : i == 3 ? 5 : i*2-2); -debug(("ooh\n")); SetDlgItemInt (hwnd, IDC_RVALUE, cfg.colours[i][0], FALSE); SetDlgItemInt (hwnd, IDC_GVALUE, cfg.colours[i][1], FALSE); SetDlgItemInt (hwnd, IDC_BVALUE, cfg.colours[i][2], FALSE);