}
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;
HELPCTX(appearance_border),
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!).
*/
- s = ctrl_getset(b, "Window/Translation", "input",
- "Enable character set translation on input data");
+ s = ctrl_getset(b, "Window/Translation", "tweaks", NULL);
ctrl_checkbox(s, "Caps Lock acts as Cyrillic switch", 's',
HELPCTX(translation_cyrillic),
dlg_stdcheckbox_handler,
I(offsetof(Config,xlat_capslockcyr)));
+ /*
+ * On Windows we can use but not enumerate translation tables
+ * from the operating system. Briefly document this.
+ */
+ s = ctrl_getset(b, "Window/Translation", "trans",
+ "Character set translation on received data");
+ ctrl_text(s, "(Codepages supported by Windows but not listed here, "
+ "such as CP866 on many systems, can be entered manually)",
+ HELPCTX(translation_codepage));
+
/*
* Windows has the weird OEM font mode, which gives us some
* additional options when working with line-drawing
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);
}