IDC_ROWSEDIT,
IDC_COLSSTATIC,
IDC_COLSEDIT,
- IDC_LOCKSIZE,
- IDC_LOCKFONT,
+ IDC_RESIZESTATIC,
+ IDC_RESIZETERM,
+ IDC_RESIZEFONT,
+ IDC_RESIZENONE,
+ IDC_RESIZEEITHER,
IDC_SCROLLBAR,
- IDC_CLOSEWARN,
+ IDC_SCROLLBARFULLSCREEN,
IDC_SAVESTATIC,
IDC_SAVEEDIT,
+ IDC_SCROLLKEY,
+ IDC_SCROLLDISP,
+ windowpanelend,
+
+ behaviourpanelstart,
+ IDC_TITLE_BEHAVIOUR,
+ IDC_BOX_BEHAVIOUR1,
+ IDC_CLOSEWARN,
IDC_ALTF4,
IDC_ALTSPACE,
IDC_ALTONLY,
- IDC_SCROLLKEY,
- IDC_SCROLLDISP,
IDC_ALWAYSONTOP,
IDC_FULLSCREENONALTENTER,
- windowpanelend,
+ behaviourpanelend,
appearancepanelstart,
IDC_TITLE_APPEARANCE,
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,
cfg.cursor_type == 1 ? IDC_CURUNDER : IDC_CURVERT);
CheckDlgButton(hwnd, IDC_BLINKCUR, cfg.blink_cur);
CheckDlgButton(hwnd, IDC_SCROLLBAR, cfg.scrollbar);
- CheckDlgButton(hwnd, IDC_LOCKSIZE, cfg.locksize);
- CheckDlgButton(hwnd, IDC_LOCKFONT, cfg.lockfont);
+ CheckDlgButton(hwnd, IDC_SCROLLBARFULLSCREEN, cfg.scrollbar_in_fullscreen);
+ CheckRadioButton(hwnd, IDC_RESIZETERM, IDC_RESIZEEITHER,
+ cfg.resize_action == RESIZE_TERM ? IDC_RESIZETERM :
+ cfg.resize_action == RESIZE_FONT ? IDC_RESIZEFONT :
+ cfg.resize_action == RESIZE_EITHER ? IDC_RESIZEEITHER :
+ IDC_RESIZENONE);
CheckRadioButton(hwnd, IDC_COEALWAYS, IDC_COENORMAL,
cfg.close_on_exit == COE_NORMAL ? IDC_COENORMAL :
cfg.close_on_exit ==
static const struct { char *s; int c; } ciphers[] = {
{ "3DES", CIPHER_3DES },
{ "Blowfish", CIPHER_BLOWFISH },
- { "DES (SSH 1 only)", CIPHER_DES },
+ { "DES", CIPHER_DES },
{ "AES (SSH 2 only)", CIPHER_AES },
{ "-- warn below here --", CIPHER_WARN }
};
}
-
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,
/* The Keyboard panel. Accelerators used: [acgo] bhf ruyntd */
struct ctlpos cp;
ctlposinit(&cp, hwnd, 80, 3, 13);
- /*
- bartitle(&cp, "Options controlling the effects of keys",
- IDC_TITLE_KEYBOARD);
- */
+ bartitle(&cp, "Options controlling the effects of keys",
+ IDC_TITLE_KEYBOARD);
beginbox(&cp, "Change the sequences sent by:", IDC_BOX_KEYBOARD1);
radioline(&cp, "The &Backspace key", IDC_DELSTATIC, 2,
"Control-H", IDC_DEL008,
}
if (panel == windowpanelstart) {
- /* The Window panel. Accelerators used: [acgo] rmz sdkp w4ylt f */
+ /* The Window panel. Accelerators used: [acgo] rmz sdikp */
struct ctlpos cp;
ctlposinit(&cp, hwnd, 80, 3, 13);
bartitle(&cp, "Options controlling PuTTY's window",
multiedit(&cp,
"&Rows", IDC_ROWSSTATIC, IDC_ROWSEDIT, 50,
"Colu&mns", IDC_COLSSTATIC, IDC_COLSEDIT, 50, NULL);
- checkbox(&cp, "Lock terminal size against resi&zing", IDC_LOCKSIZE);
- checkbox(&cp, "Lock font size against resi&zing", IDC_LOCKFONT);
+ radiobig(&cp, "When window is resi&zed:", IDC_RESIZESTATIC,
+ "Change the number of rows and columns", IDC_RESIZETERM,
+ "Change the size of the font", IDC_RESIZEFONT,
+ "Change font size only when maximised", IDC_RESIZEEITHER,
+ "Forbid resizing completely", 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);
endbox(&cp);
- beginbox(&cp, NULL, IDC_BOX_WINDOW3);
- checkbox(&cp, "&Warn before closing window", IDC_CLOSEWARN);
- 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);
- checkbox(&cp, "&Full screen on Alt-Enter", IDC_FULLSCREENONALTENTER);
- endbox(&cp);
}
if (panel == appearancepanelstart) {
/* The Appearance panel. Accelerators used: [acgo] luvb h ti p s */
struct ctlpos cp;
ctlposinit(&cp, hwnd, 80, 3, 13);
- /* bartitle(&cp, "Options controlling PuTTY's appearance",
- IDC_TITLE_APPEARANCE); */
+ bartitle(&cp, "Configure the appearance of PuTTY's window",
+ IDC_TITLE_APPEARANCE);
beginbox(&cp, "Adjust the use of the cursor", IDC_BOX_APPEARANCE1);
radioline(&cp, "Cursor appearance:", IDC_CURSORSTATIC, 3,
"B&lock", IDC_CURBLOCK,
endbox(&cp);
}
+ if (panel == behaviourpanelstart) {
+ /* The Behaviour panel. Accelerators used: [acgo] w4yltf */
+ struct ctlpos cp;
+ ctlposinit(&cp, hwnd, 80, 3, 13);
+ bartitle(&cp, "Configure the behaviour of PuTTY's window",
+ IDC_TITLE_WINDOW);
+ beginbox(&cp, NULL, IDC_BOX_BEHAVIOUR1);
+ checkbox(&cp, "&Warn before closing window", IDC_CLOSEWARN);
+ 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);
+ checkbox(&cp, "&Full screen on Alt-Enter", IDC_FULLSCREENONALTENTER);
+ endbox(&cp);
+ }
+
if (panel == translationpanelstart) {
/* The Translation panel. Accelerators used: [acgo] rxbepus */
struct ctlpos cp;
}
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",
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);
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);
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 |
treeview_insert(&tvfaff, 1, "Bell");
treeview_insert(&tvfaff, 0, "Window");
treeview_insert(&tvfaff, 1, "Appearance");
+ treeview_insert(&tvfaff, 1, "Behaviour");
treeview_insert(&tvfaff, 1, "Translation");
treeview_insert(&tvfaff, 1, "Selection");
treeview_insert(&tvfaff, 1, "Colours");
create_controls(hwnd, dlgtype, windowpanelstart);
if (!strcmp(buffer, "Appearance"))
create_controls(hwnd, dlgtype, appearancepanelstart);
+ if (!strcmp(buffer, "Behaviour"))
+ create_controls(hwnd, dlgtype, behaviourpanelstart);
if (!strcmp(buffer, "Tunnels"))
create_controls(hwnd, dlgtype, tunnelspanelstart);
if (!strcmp(buffer, "Connection"))
cfg.scrollbar =
IsDlgButtonChecked(hwnd, IDC_SCROLLBAR);
break;
- case IDC_LOCKSIZE:
+ case IDC_SCROLLBARFULLSCREEN:
if (HIWORD(wParam) == BN_CLICKED ||
HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.locksize =
- IsDlgButtonChecked(hwnd, IDC_LOCKSIZE);
+ cfg.scrollbar_in_fullscreen =
+ IsDlgButtonChecked(hwnd, IDC_SCROLLBARFULLSCREEN);
break;
- case IDC_LOCKFONT:
+ case IDC_RESIZETERM:
+ case IDC_RESIZEFONT:
+ case IDC_RESIZENONE:
+ case IDC_RESIZEEITHER:
if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.lockfont =
- IsDlgButtonChecked(hwnd, IDC_LOCKFONT);
+ HIWORD(wParam) == BN_DOUBLECLICKED) {
+ cfg.resize_action =
+ IsDlgButtonChecked(hwnd,
+ IDC_RESIZETERM) ? RESIZE_TERM :
+ IsDlgButtonChecked(hwnd,
+ IDC_RESIZEFONT) ? RESIZE_FONT :
+ IsDlgButtonChecked(hwnd,
+ IDC_RESIZEEITHER) ? RESIZE_EITHER :
+ RESIZE_DISABLED;
+ }
break;
case IDC_WINEDIT:
if (HIWORD(wParam) == EN_CHANGE)
of.nMaxFile = sizeof(filename);
of.lpstrFileTitle = NULL;
of.lpstrInitialDir = NULL;
- of.lpstrTitle = "Select Public Key File";
+ of.lpstrTitle = "Select Private Key File";
of.Flags = 0;
if (GetOpenFileName(&of)) {
strcpy(cfg.keyfile, filename);
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;
else
return 0;
}
+
+/*
+ * Warn about the obsolescent key file format.
+ */
+void old_keyfile_warning(void)
+{
+ static const char mbtitle[] = "PuTTY Key File Warning";
+ static const char message[] =
+ "You are loading an SSH 2 private key which has an\n"
+ "old version of the file format. This means your key\n"
+ "file is not fully tamperproof. Future versions of\n"
+ "PuTTY may stop supporting this private key format,\n"
+ "so we recommend you convert your key to the new\n"
+ "format.\n"
+ "\n"
+ "You can perform this conversion by loading the key\n"
+ "into PuTTYgen and then saving it again.";
+
+ MessageBox(NULL, message, mbtitle, MB_OK);
+}