static void DriverDialogSetup(GtkWidget *wi, void *data, int makewidget) { GtkWidget *w, *table; struct DriverDialog *d; struct extprinter *pcur; int i, j; d = (struct DriverDialog *) data; if (makewidget) { #if GTK_CHECK_VERSION(3, 4, 0) table = gtk_grid_new(); #else table = gtk_table_new(1, 2, FALSE); #endif i = 0; w = combo_box_create(); d->driver = w; add_widget_to_table(table, w, _("_Driver:"), FALSE, i++); g_signal_connect(d->driver, "changed", G_CALLBACK(DriverDialogSelectCB), d); w = create_text_entry(FALSE, TRUE); d->option = w; add_widget_to_table(table, w, _("_Option:"), TRUE, i++); w = create_file_entry_with_cb(G_CALLBACK(DriverDialogBrowseCB), d); d->file = w; add_widget_to_table(table, w, _("_File:"), TRUE, i++); gtk_box_pack_start(GTK_BOX(d->vbox), table, FALSE, FALSE, 4); gtk_widget_show_all(GTK_WIDGET(d->vbox)); } combo_box_clear(d->driver); pcur = Menulocal.extprinterroot; while (pcur != NULL) { combo_box_append_text(d->driver, pcur->name); pcur = pcur->next; j++; } combo_box_set_active(d->driver, 0); }
GtkWidget *style_select_widget(appdata_t *appdata) { file_chain_t *chain = file_scan(".style"); /* there must be at least one style, otherwise */ /* the program wouldn't be running */ g_assert(chain); GtkWidget *cbox = combo_box_new(_("Style")); /* fill combo box with presets */ int cnt = 0, match = -1; while(chain) { file_chain_t *next = chain->next; printf(" file: %s\n", chain->name); style_t *style = style_parse(appdata, chain->name, NULL, TRUE); printf(" name: %s\n", style->name); combo_box_append_text(cbox, style->name); char *basename = style_basename(chain->name); if(strcmp(basename, appdata->settings->style) == 0) match = cnt; g_free(basename); style_free(style); cnt++; g_free(chain->name); g_free(chain); chain = next; } if(match >= 0) combo_box_set_active(cbox, match); return cbox; }
int DialogComboEntry(GtkWidget *parent, const char *title, const char *caption, struct narray *array, int sel, char **r, int *x, int *y) { GtkWidget *dlg, *combo; GtkBox *vbox; int data; gint res_id; char **d; const char *s; int i, anum; d = arraydata(array); anum = arraynum(array); *r = NULL; dlg = gtk_dialog_new_with_buttons(title, GTK_WINDOW(parent), #if GTK_CHECK_VERSION(3, 12, 0) && USE_HEADER_BAR GTK_DIALOG_USE_HEADER_BAR | #endif GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dlg), GTK_RESPONSE_OK); gtk_window_set_resizable(GTK_WINDOW(dlg), FALSE); vbox = GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dlg))); if (caption) { GtkWidget *label; label = gtk_label_new(caption); gtk_box_pack_start(vbox, label, FALSE, FALSE, 5); } combo = combo_box_entry_create(); for (i = 0; i < anum; i++) { combo_box_append_text(combo, d[i]); } if (sel >= 0 && sel < anum) { combo_box_set_active(combo, sel); } gtk_box_pack_start(vbox, combo, FALSE, FALSE, 2); set_dialog_position(dlg, x, y); gtk_widget_show_all(dlg); res_id = ndialog_run(dlg); switch (res_id) { case GTK_RESPONSE_OK: s = combo_box_entry_get_text(combo); if (s) { *r = g_strdup(s); } else { *r = NULL; } data = IDOK; break; default: data = IDCANCEL; break; } get_dialog_position(dlg, x, y); gtk_widget_destroy(dlg); reset_event(); return data; }
static void OutputImageDialogSetupItem(GtkWidget *w, struct OutputImageDialog *d) { int i; GtkWidget *vlabel; #if GTK_CHECK_VERSION(3, 0, 0) GtkWidget *window; GtkRequisition minimum_size; #endif vlabel = get_mnemonic_label(d->version); gtk_label_set_text(GTK_LABEL(vlabel), ""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->use_opacity), FALSE); combo_box_clear(d->version); switch (d->DlgType) { case MenuIdOutputPSFile: case MenuIdOutputEPSFile: for (i = 0; PsVersion[i]; i++) { combo_box_append_text(d->version, PsVersion[i]); } set_widget_visibility_with_label(d->dpi, FALSE); set_widget_visibility_with_label(d->version, TRUE); gtk_widget_set_visible(d->t2p, TRUE); gtk_label_set_markup_with_mnemonic(GTK_LABEL(vlabel), _("_PostScript Version:")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), 72); combo_box_set_active(d->version, Menulocal.ps_version); break; case MenuIdOutputPNGFile: set_widget_visibility_with_label(d->dpi, TRUE); set_widget_visibility_with_label(d->version, FALSE); gtk_widget_set_visible(d->t2p, FALSE); gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), Menulocal.png_dpi); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->use_opacity), Menulocal.use_opacity); break; case MenuIdOutputPDFFile: set_widget_visibility_with_label(d->dpi, FALSE); set_widget_visibility_with_label(d->version, FALSE); gtk_widget_set_visible(d->t2p, TRUE); gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), 72); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->use_opacity), Menulocal.use_opacity); break; case MenuIdOutputSVGFile: for (i = 0; PsVersion[i]; i++) { combo_box_append_text(d->version, SvgVersion[i]); } set_widget_visibility_with_label(d->dpi, FALSE); set_widget_visibility_with_label(d->version, TRUE); gtk_widget_set_visible(d->t2p, TRUE); gtk_label_set_markup_with_mnemonic(GTK_LABEL(vlabel), _("_SVG Version:")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), 72); combo_box_set_active(d->version, Menulocal.svg_version); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->use_opacity), Menulocal.use_opacity); break; #ifdef CAIRO_HAS_WIN32_SURFACE case MenuIdOutputCairoEMFFile: set_widget_visibility_with_label(d->dpi, TRUE); set_widget_visibility_with_label(d->version, FALSE); gtk_widget_set_visible(d->t2p, FALSE); gtk_spin_button_set_value(GTK_SPIN_BUTTON(d->dpi), Menulocal.emf_dpi); break; #endif /* CAIRO_HAS_WIN32_SURFACE */ } #if GTK_CHECK_VERSION(3, 0, 0) window = gtk_widget_get_parent(GTK_WIDGET(d->vbox)); if (GTK_IS_WINDOW(window)) { gtk_widget_get_preferred_size(GTK_WIDGET(d->vbox), &minimum_size, NULL); gtk_window_resize(GTK_WINDOW(window), minimum_size.width, minimum_size.height); } #endif }