X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/ad5c93cc19001ef3e9f3ccb0fb63d34140481c05..7781f316d0d6aa3e286c588fb0efc832037e6866:/windlg.c diff --git a/windlg.c b/windlg.c index 91a2e27e..21ed7a78 100644 --- a/windlg.c +++ b/windlg.c @@ -359,6 +359,7 @@ enum { IDCX_ABOUT = IDC_RESIZEFONT, IDC_RESIZENONE, IDC_SCROLLBAR, + IDC_SCROLLBARFULLSCREEN, IDC_CLOSEWARN, IDC_SAVESTATIC, IDC_SAVEEDIT, @@ -478,12 +479,16 @@ enum { IDCX_ABOUT = IDC_MBWINDOWS, IDC_MBXTERM, IDC_MOUSEOVERRIDE, + IDC_SELTYPESTATIC, + IDC_SELTYPELEX, + IDC_SELTYPERECT, IDC_CCSTATIC, IDC_CCLIST, IDC_CCSET, IDC_CCSTATIC2, IDC_CCEDIT, IDC_RAWCNP, + IDC_RTFPASTE, selectionpanelend, colourspanelstart, @@ -675,6 +680,7 @@ static void init_dlg_ctrls(HWND hwnd, int keepsess) cfg.cursor_type == 1 ? IDC_CURUNDER : IDC_CURVERT); CheckDlgButton(hwnd, IDC_BLINKCUR, cfg.blink_cur); CheckDlgButton(hwnd, IDC_SCROLLBAR, cfg.scrollbar); + CheckDlgButton(hwnd, IDC_SCROLLBARFULLSCREEN, cfg.scrollbar_in_fullscreen); CheckRadioButton(hwnd, IDC_RESIZETERM, IDC_RESIZENONE, cfg.resize_action == RESIZE_TERM ? IDC_RESIZETERM : cfg.resize_action == RESIZE_FONT ? IDC_RESIZEFONT : @@ -761,11 +767,13 @@ static void init_dlg_ctrls(HWND hwnd, int keepsess) } - CheckRadioButton(hwnd, IDC_MBWINDOWS, IDC_MBXTERM, cfg.mouse_is_xterm ? IDC_MBXTERM : IDC_MBWINDOWS); + CheckRadioButton(hwnd, IDC_SELTYPELEX, IDC_SELTYPERECT, + cfg.rect_select == 0 ? IDC_SELTYPELEX : IDC_SELTYPERECT); CheckDlgButton(hwnd, IDC_MOUSEOVERRIDE, cfg.mouse_override); CheckDlgButton(hwnd, IDC_RAWCNP, cfg.rawcnp); + CheckDlgButton(hwnd, IDC_RTFPASTE, cfg.rtf_paste); { static int tabs[4] = { 25, 61, 96, 128 }; SendDlgItemMessage(hwnd, IDC_CCLIST, LB_SETTABSTOPS, 4, @@ -1040,7 +1048,7 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) } if (panel == windowpanelstart) { - /* The Window panel. Accelerators used: [acgo] rmz sdkp w4ylt f */ + /* The Window panel. Accelerators used: [acgo] rmznb sdikp w4ylt f */ struct ctlpos cp; ctlposinit(&cp, hwnd, 80, 3, 13); bartitle(&cp, "Options controlling PuTTY's window", @@ -1052,13 +1060,14 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) radioline(&cp, "Action when the window is resized:", IDC_RESIZESTATIC, 3, "Resi&ze terminal", IDC_RESIZETERM, "Change fo&nt", IDC_RESIZEFONT, - "Forb&id resizing", IDC_RESIZENONE, NULL); + "For&bid resizing", IDC_RESIZENONE, NULL); endbox(&cp); beginbox(&cp, "Control the scrollback in the window", IDC_BOX_WINDOW2); staticedit(&cp, "Lines of &scrollback", IDC_SAVESTATIC, IDC_SAVEEDIT, 50); checkbox(&cp, "&Display scrollbar", IDC_SCROLLBAR); + checkbox(&cp, "D&isplay scrollbar in full screen mode", IDC_SCROLLBARFULLSCREEN); checkbox(&cp, "Reset scrollback on &keypress", IDC_SCROLLKEY); checkbox(&cp, "Reset scrollback on dis&play activity", IDC_SCROLLDISP); @@ -1138,7 +1147,7 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) } if (panel == selectionpanelstart) { - /* The Selection panel. Accelerators used: [acgo] d wxp hst */ + /* The Selection panel. Accelerators used: [acgo] df wxp hst nr */ struct ctlpos cp; ctlposinit(&cp, hwnd, 80, 3, 13); bartitle(&cp, "Options controlling copy and paste", @@ -1148,6 +1157,9 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) checkbox(&cp, "&Don't translate line drawing chars into +, - and |", IDC_RAWCNP); + checkbox(&cp, + "Paste to clipboard in RT&F as well as plain text", + IDC_RTFPASTE); endbox(&cp); beginbox(&cp, "Control which mouse button does which thing", IDC_BOX_SELECTION2); @@ -1158,6 +1170,11 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) checkbox(&cp, "Shift overrides a&pplication's use of mouse", IDC_MOUSEOVERRIDE); + radioline(&cp, + "Default selection mode (Alt+drag does the other one):", + IDC_SELTYPESTATIC, 2, + "&Normal", IDC_SELTYPELEX, + "&Rectangular block", IDC_SELTYPERECT, NULL); endbox(&cp); beginbox(&cp, "Control the select-one-word-at-a-time mode", IDC_BOX_SELECTION3); @@ -1432,7 +1449,7 @@ static int GenericMainDlgProc(HWND hwnd, UINT msg, r.left = 3; r.right = r.left + 75; r.top = 13; - r.bottom = r.top + 206; + r.bottom = r.top + 219; MapDialogRect(hwnd, &r); treeview = CreateWindowEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, "", WS_CHILD | WS_VISIBLE | @@ -2114,6 +2131,12 @@ static int GenericMainDlgProc(HWND hwnd, UINT msg, cfg.scrollbar = IsDlgButtonChecked(hwnd, IDC_SCROLLBAR); break; + case IDC_SCROLLBARFULLSCREEN: + if (HIWORD(wParam) == BN_CLICKED || + HIWORD(wParam) == BN_DOUBLECLICKED) + cfg.scrollbar_in_fullscreen = + IsDlgButtonChecked(hwnd, IDC_SCROLLBARFULLSCREEN); + break; case IDC_RESIZETERM: case IDC_RESIZEFONT: case IDC_RESIZENONE: @@ -2394,10 +2417,17 @@ static int GenericMainDlgProc(HWND hwnd, UINT msg, case IDC_RAWCNP: cfg.rawcnp = IsDlgButtonChecked(hwnd, IDC_RAWCNP); break; + case IDC_RTFPASTE: + cfg.rtf_paste = IsDlgButtonChecked(hwnd, IDC_RTFPASTE); + break; case IDC_MBWINDOWS: case IDC_MBXTERM: cfg.mouse_is_xterm = IsDlgButtonChecked(hwnd, IDC_MBXTERM); break; + case IDC_SELTYPELEX: + case IDC_SELTYPERECT: + cfg.rect_select = IsDlgButtonChecked(hwnd, IDC_SELTYPERECT); + break; case IDC_MOUSEOVERRIDE: cfg.mouse_override = IsDlgButtonChecked(hwnd, IDC_MOUSEOVERRIDE); break;