printer_enum *pe;
dlg_update_start(ctrl, dlg);
- dlg_listbox_clear(ctrl, dlg);
- dlg_listbox_add(ctrl, dlg, PRINTER_DISABLED_STRING);
- pe = printer_start_enum(&nprinters);
- for (i = 0; i < nprinters; i++)
- dlg_listbox_add(ctrl, dlg, printer_get_name(pe, i));
- printer_finish_enum(pe);
+ /*
+ * Some backends may wish to disable the drop-down list on
+ * this edit box. Be prepared for this.
+ */
+ if (ctrl->editbox.has_list) {
+ dlg_listbox_clear(ctrl, dlg);
+ dlg_listbox_add(ctrl, dlg, PRINTER_DISABLED_STRING);
+ pe = printer_start_enum(&nprinters);
+ for (i = 0; i < nprinters; i++)
+ dlg_listbox_add(ctrl, dlg, printer_get_name(pe, i));
+ printer_finish_enum(pe);
+ }
dlg_editbox_set(ctrl, dlg,
(*cfg->printer ? cfg->printer :
PRINTER_DISABLED_STRING));
return -2;
}
-printer_enum *printer_start_enum(int *nprinters_ptr) {
- *nprinters_ptr = 0;
- return NULL;
-}
-char *printer_get_name(printer_enum *pe, int i) { return NULL;
-}
-void printer_finish_enum(printer_enum *pe) { }
-
Backend *select_backend(Config *cfg)
{
return &pty_backend;
*/
/*
+ * 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!
*/
pclose(pj->fp);
sfree(pj);
}
+
+/*
+ * There's no sensible way to enumerate printers under Unix, since
+ * practically any valid Unix command is a valid printer :-) So
+ * these are useless stub functions, and uxcfg.c will disable the
+ * drop-down list in the printer configurer.
+ */
+printer_enum *printer_start_enum(int *nprinters_ptr) {
+ *nprinters_ptr = 0;
+ return NULL;
+}
+char *printer_get_name(printer_enum *pe, int i) { return NULL;
+}
+void printer_finish_enum(printer_enum *pe) { }
return -2;
}
-printer_enum *printer_start_enum(int *nprinters_ptr) {
- *nprinters_ptr = 0;
- return NULL;
-}
-char *printer_get_name(printer_enum *pe, int i) { return NULL;
-}
-void printer_finish_enum(printer_enum *pe) { }
-
const char *const appname = "PuTTY";
Backend *select_backend(Config *cfg)