GtkWidget *gretl_opts_combo_full (combo_opts *opts, int deflt, const int *masked, GCallback callback, gpointer calldata) { GtkWidget *combo; int i; *opts->optp |= opts->vals[deflt]; combo = gtk_combo_box_text_new(); for (i=0; opts->strs[i] != NULL; i++) { if (!in_gretl_list(masked, i)) { combo_box_append_text(combo, _(opts->strs[i])); } } gtk_combo_box_set_active(GTK_COMBO_BOX(combo), deflt); g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(combo_opt_changed), opts); if (callback != NULL) { g_signal_connect(G_OBJECT(combo), "changed", callback, calldata); } return combo; }
void set_combo_box_strings_from_list (GtkWidget *box, GList *list) { GList *mylist = list; while (mylist != NULL) { combo_box_append_text(box, mylist->data); mylist = mylist->next; } }
static GtkWidget *dwiz_combo (GList *vlist, dw_opts *opts) { const char *strs[] = { N_("Unit or group index variable"), N_("Time index variable") }; GtkWidget *w; GtkWidget *table; GtkWidget *combo[2]; int i; panelvar_candidates(vlist, &opts->uid, &opts->tid); #if DWDEBUG fprintf(stderr, "dwiz_combo: uid = %d, tid = %d\n", opts->uid, opts->tid); #endif table = gtk_table_new(2, 2, FALSE); gtk_table_set_col_spacings(GTK_TABLE(table), 5); gtk_table_set_row_spacings(GTK_TABLE(table), 5); for (i=0; i<2; i++) { GList *list = vlist; w = gtk_label_new(_(strs[i])); gtk_misc_set_alignment(GTK_MISC(w), 1.0, 0.5); gtk_table_attach_defaults(GTK_TABLE(table), w, 0, 1, i, i+1); combo[i] = gtk_combo_box_text_new(); gtk_table_attach_defaults(GTK_TABLE(table), combo[i], 1, 2, i, i+1); while (list != NULL) { combo_box_append_text(combo[i], list->data); list = list->next; } gtk_combo_box_set_active(GTK_COMBO_BOX(combo[i]), (i == 0)? opts->uid : opts->tid); g_object_set_data(G_OBJECT(combo[i]), "index", GINT_TO_POINTER(i)); g_signal_connect(G_OBJECT(combo[i]), "changed", G_CALLBACK(update_panel_var), opts); } /* cross-connect the selectors */ g_object_set_data(G_OBJECT(combo[0]), "other", combo[1]); g_object_set_data(G_OBJECT(combo[1]), "other", combo[0]); return table; }
static void system_estimator_list (GtkWidget *vbox, dialog_t *d, GtkWidget *bt, GtkWidget *bv) { equation_system *sys = NULL; GtkWidget *w, *hbox; gchar *str; int active = 0; int i, j; if (d->data != NULL) { sys = (equation_system *) d->data; } hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); gtk_widget_show(hbox); w = gtk_label_new(_("Estimator")); gtk_box_pack_start(GTK_BOX(hbox), w, FALSE, FALSE, 5); gtk_widget_show(w); w = gtk_combo_box_text_new(); j = 0; for (i=SYS_METHOD_SUR; i<SYS_METHOD_MAX; i++) { if (system_supports_method(sys, i)) { str = g_strdup_printf("%s (%s)", _(system_method_full_string(i)), system_method_short_string(i)); combo_box_append_text(w, str); g_free(str); if (sys != NULL && sys->method == i) { active = j; } j++; } } g_object_set_data(G_OBJECT(w), "bt", bt); g_object_set_data(G_OBJECT(w), "bv", bv); g_signal_connect(G_OBJECT(w), "changed", G_CALLBACK(set_sys_method), d); gtk_combo_box_set_active(GTK_COMBO_BOX(w), active); gtk_box_pack_start(GTK_BOX(hbox), w, TRUE, TRUE, 5); gtk_widget_show(w); }
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 }
static void real_view_format_dialog (windata_t *vwin, series_view *sview) { struct view_toggler vt; GtkWidget *dlg, *vbox; GtkWidget *tmp, *hbox; GtkWidget *b1, *b2; GSList *group; int std; dlg = gretl_dialog_new(_("gretl: data format"), vwin->main, GRETL_DLG_BLOCK); vbox = gtk_dialog_get_content_area(GTK_DIALOG(dlg)); std = (sview->view == VIEW_STANDARD); vt.view = sview->view; vt.digits = sview->digits; vt.format = sview->format; vt.target_vwin = vwin; vt.sview = sview; hbox = gtk_hbox_new(FALSE, 5); tmp = gtk_label_new(_("Select data format")); gtk_box_pack_start(GTK_BOX(hbox), tmp, FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5); /* standard format radio option */ hbox = gtk_hbox_new(FALSE, 5); b1 = gtk_radio_button_new_with_label(NULL, _("Standard format")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b1), std); gtk_box_pack_start(GTK_BOX(hbox), b1, TRUE, TRUE, 5); gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5); /* custom format radio option */ hbox = gtk_hbox_new(FALSE, 5); group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(b1)); b2 = gtk_radio_button_new_with_label(group, _("Show")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b2), !std); gtk_box_pack_start(GTK_BOX(hbox), b2, FALSE, FALSE, 5); /* with spinner for number of digits */ vt.spin = gtk_spin_button_new_with_range(1, 15, 1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(vt.spin), sview->digits); g_signal_connect(G_OBJECT(vt.spin), "value-changed", G_CALLBACK(series_view_set_digits), &vt.digits); gtk_widget_set_sensitive(vt.spin, !std); gtk_box_pack_start(GTK_BOX(hbox), vt.spin, FALSE, FALSE, 0); /* and selector for digits / decimal places */ vt.combo = gtk_combo_box_text_new(); combo_box_append_text(vt.combo, _("significant figures")); combo_box_append_text(vt.combo, _("decimal places")); if (sview->format == 'g') { gtk_combo_box_set_active(GTK_COMBO_BOX(vt.combo), 0); } else { gtk_combo_box_set_active(GTK_COMBO_BOX(vt.combo), 1); } g_signal_connect(G_OBJECT(GTK_COMBO_BOX(vt.combo)), "changed", G_CALLBACK(series_view_set_fmt), &vt.format); gtk_widget_set_sensitive(vt.combo, !std); gtk_box_pack_start(GTK_BOX(hbox), vt.combo, FALSE, FALSE, 5); /* connect toggle signal */ g_signal_connect(G_OBJECT(b1), "toggled", G_CALLBACK(series_view_toggle_view), &vt); /* pack the custom line */ gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5); hbox = gtk_dialog_get_action_area(GTK_DIALOG(dlg)); /* Cancel button */ cancel_delete_button(hbox, dlg); /* OK button */ tmp = ok_button(hbox); g_signal_connect(G_OBJECT(tmp), "clicked", G_CALLBACK(reformat_callback), &vt); g_signal_connect(G_OBJECT(tmp), "clicked", G_CALLBACK(delete_widget), dlg); gtk_widget_grab_default(tmp); gtk_widget_show_all(dlg); }