X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/74790953a734d6e745c1e412cb9824743348ec3c..8def70c3ec6f81f95673c0de67a75b5a6b2e9e1c:/windows/wincfg.c diff --git a/windows/wincfg.c b/windows/wincfg.c index ea997c74..516f0a3d 100644 --- a/windows/wincfg.c +++ b/windows/wincfg.c @@ -31,7 +31,7 @@ static void help_handler(union control *ctrl, void *dlg, } void win_setup_config_box(struct controlbox *b, HWND *hwndp, int has_help, - int midsession) + int midsession, int protocol) { struct controlset *s; union control *c; @@ -173,6 +173,20 @@ void win_setup_config_box(struct controlbox *b, HWND *hwndp, int has_help, dlg_stdcheckbox_handler, I(offsetof(Config,sunken_edge))); /* + * Configurable font quality settings for Windows. + */ + s = ctrl_getset(b, "Window/Appearance", "font", + "Font settings"); + ctrl_radiobuttons(s, "Font quality:", 'q', 2, + HELPCTX(appearance_font), + dlg_stdradiobutton_handler, + I(offsetof(Config, font_quality)), + "Antialiased", I(FQ_ANTIALIASED), + "Non-Antialiased", I(FQ_NONANTIALIASED), + "ClearType", I(FQ_CLEARTYPE), + "Default", I(FQ_DEFAULT), NULL); + + /* * Cyrillic Lock is a horrid misfeature even on Windows, and * the least we can do is ensure it never makes it to any other * platform (at least unless someone fixes it!). @@ -319,4 +333,58 @@ void win_setup_config_box(struct controlbox *b, HWND *hwndp, int has_help, HELPCTX(behaviour_altenter), dlg_stdcheckbox_handler, I(offsetof(Config,fullscreenonaltenter))); + + /* + * Windows supports a local-command proxy. This also means we + * must adjust the text on the `Telnet command' control. + */ + if (!midsession) { + int i; + s = ctrl_getset(b, "Connection/Proxy", "basics", NULL); + for (i = 0; i < s->ncontrols; i++) { + c = s->ctrls[i]; + if (c->generic.type == CTRL_RADIO && + c->generic.context.i == offsetof(Config, proxy_type)) { + assert(c->generic.handler == dlg_stdradiobutton_handler); + c->radio.nbuttons++; + c->radio.buttons = + sresize(c->radio.buttons, c->radio.nbuttons, char *); + c->radio.buttons[c->radio.nbuttons-1] = + dupstr("Local"); + c->radio.buttondata = + sresize(c->radio.buttondata, c->radio.nbuttons, intorptr); + c->radio.buttondata[c->radio.nbuttons-1] = I(PROXY_CMD); + break; + } + } + + for (i = 0; i < s->ncontrols; i++) { + c = s->ctrls[i]; + if (c->generic.type == CTRL_EDITBOX && + c->generic.context.i == + offsetof(Config, proxy_telnet_command)) { + assert(c->generic.handler == dlg_stdeditbox_handler); + sfree(c->generic.label); + c->generic.label = dupstr("Telnet command, or local" + " proxy command"); + break; + } + } + } + + /* + * Serial back end is available on Windows. + */ + if (!midsession || (protocol == PROT_SERIAL)) + ser_setup_config_box(b, midsession, 0x1F, 0x0F); + + /* + * $XAUTHORITY is not reliable on Windows, so we provide a + * means to override it. + */ + s = ctrl_getset(b, "Connection/SSH/X11", "x11", "X11 forwarding"); + ctrl_filesel(s, "X authority file for local display", 't', + NULL, FALSE, "Select X authority file", + HELPCTX(ssh_tunnels_xauthority), + dlg_stdfilesel_handler, I(offsetof(Config, xauthfile))); }