void *data, int event)
{
if (event == EVENT_ACTION) {
- about_box();
+ about_box(ctrl->generic.context.p);
}
}
-void unix_setup_config_box(struct controlbox *b, int midsession)
+void unix_setup_config_box(struct controlbox *b, int midsession, void *win)
{
struct controlset *s, *s2;
union control *c;
*/
s = ctrl_getset(b, "", "", "");
c = ctrl_pushbutton(s, "About", 'a', HELPCTX(no_help),
- about_handler, P(NULL));
+ about_handler, P(win));
c->generic.column = 0;
}
* when these elements would be useful to configure.
*/
+ /*
+ * On Unix, we don't have a drop-down list for the printer
+ * control.
+ */
+ s = ctrl_getset(b, "Terminal", "printing", "Remote-controlled printing");
+ assert(s->ncontrols == 1 && s->ctrls[0]->generic.type == CTRL_EDITBOX);
+ s->ctrls[0]->editbox.has_list = 0;
+
/*
* GTK makes it rather easier to put the scrollbar on the left
* than Windows does!
ctrl_fontsel(s, "Font used for bold wide text", 'i',
HELPCTX(no_help),
dlg_stdfontsel_handler, I(offsetof(Config,wideboldfont)));
- ctrl_text(s, "If you leave the bold font selectors blank, bold text"
- " will be displayed by overprinting (\"shadow bold\"). Note"
- " that this only applies if you have not requested bolding"
- " to be done by changing the text colour.",
+ ctrl_checkbox(s, "Use shadow bold instead of bold fonts", 'u',
+ HELPCTX(no_help),
+ dlg_stdcheckbox_handler,
+ I(offsetof(Config,shadowbold)));
+ ctrl_text(s, "(Note that bold fonts or shadow bolding are only"
+ " used if you have not requested bolding to be done by"
+ " changing the text colour.)",
HELPCTX(no_help));
ctrl_editbox(s, "Horizontal offset for shadow bold:", 'z', 20,
HELPCTX(no_help), dlg_stdeditbox_handler,
I(offsetof(Config,shadowboldoffset)), I(-1));
+
+ /*
+ * Markus Kuhn feels, not totally unreasonably, that it's good
+ * for all applications to shift into UTF-8 mode if they notice
+ * that they've been started with a LANG setting dictating it,
+ * so that people don't have to keep remembering a separate
+ * UTF-8 option for every application they use. Therefore,
+ * here's an override option in the Translation panel.
+ */
+ s = ctrl_getset(b, "Window/Translation", "trans",
+ "Character set translation on received data");
+ ctrl_checkbox(s, "Override with UTF-8 if locale says so", 'l',
+ HELPCTX(translation_utf8_override),
+ dlg_stdcheckbox_handler,
+ I(offsetof(Config,utf8_override)));
+
+ /*
+ * Unix 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;
+ }
+ }
+ }
+
}