static void poly_level_update_values(PolyLevelControls *controls, PolyLevelArgs *args) { args->col_degree = gwy_adjustment_get_int(controls->col_degree); args->row_degree = gwy_adjustment_get_int(controls->row_degree); args->max_degree = gwy_adjustment_get_int(controls->max_degree); args->do_extract = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(controls->do_extract)); args->same_degree = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(controls->same_degree)); args->independent = gwy_radio_buttons_get_current(controls->type_group); if (controls->masking_group) args->masking = gwy_radio_buttons_get_current(controls->masking_group); }
/** * gwy_radio_buttons_get_current_from_widget: * @widget: A member of a radio button group created by * gwy_radio_buttons_create(). * @key: Value object data key (specified as @key when called * gwy_radio_buttons_create()). * * Gets the integer enum value corresponding to currently selected item. * * Returns: The enum value corresponding to currently selected item. In * case of failure -1 is returned. * * Since: 1.2. **/ gint gwy_radio_buttons_get_current_from_widget(GtkWidget *widget, const gchar *key) { return gwy_radio_buttons_get_current (gtk_radio_button_get_group(GTK_RADIO_BUTTON(widget)), key); }
static void masking_changed(GtkToggleButton *button, LevelControls *controls) { if (!gtk_toggle_button_get_active(button)) return; controls->args->masking = gwy_radio_buttons_get_current(controls->masking); }
static void mode_changed(GtkToggleButton *toggle, EntropyControls *controls) { if (!gtk_toggle_button_get_active(toggle)) return; controls->args->mode = gwy_radio_buttons_get_current(controls->mode); update_sensitivity(controls); }
static void immerse_leveling_changed(GtkToggleButton *button, ImmerseControls *controls) { if (!gtk_toggle_button_get_active(button)) return; controls->args->leveling = gwy_radio_buttons_get_current(controls->leveling); }
static void poly_level_masking_changed(GtkToggleButton *button, PolyLevelControls *controls) { PolyLevelArgs *args; if (!gtk_toggle_button_get_active(button)) return; args = controls->args; args->masking = gwy_radio_buttons_get_current(controls->masking_group); poly_level_update_preview(controls, args); }
static void curvature_masking_changed(GtkToggleButton *button, CurvatureControls *controls) { CurvatureArgs *args; if (!gtk_toggle_button_get_active(button)) return; args = controls->args; args->masking = gwy_radio_buttons_get_current(controls->masking_group); curvature_update_preview(controls, args); }
static void poly_level_type_changed(GtkToggleButton *button, PolyLevelControls *controls) { PolyLevelArgs *args; if (!gtk_toggle_button_get_active(button)) return; args = controls->args; args->independent = gwy_radio_buttons_get_current(controls->type_group); gtk_widget_set_sensitive(controls->same_degree, args->independent); gwy_table_hscale_set_sensitive(controls->row_degree, args->independent); gwy_table_hscale_set_sensitive(controls->col_degree, args->independent); gwy_table_hscale_set_sensitive(controls->max_degree, !args->independent); poly_level_update_preview(controls, args); }
static void grain_dist_dialog_update_values(GrainDistControls *controls, GrainDistArgs *args) { GSList *l; guint bit; args->selected = 0; for (l = controls->qlist; l; l = g_slist_next(l)) { bit = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(l->data), "bit")); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(l->data))) args->selected |= bit; } args->mode = gwy_radio_buttons_get_current(controls->mode); args->resolution = gwy_adjustment_get_int(controls->resolution); args->fixres = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(controls->fixres)); }
static void mode_changed_cb(G_GNUC_UNUSED GObject *unused, LevelControls *controls) { controls->args->level_mode = gwy_radio_buttons_get_current(controls->mode); }
static guint select_which_data(GPtrArray *rhkfile) { RHKControls controls; RHKPage *rhkpage; GtkWidget *dialog, *label, *vbox, *hbox, *align; GwyDataField *dfield; GwyEnum *choices; GwyPixmapLayer *layer; GSList *radio, *rl; guint i, b = (guint)-1; const gchar *s; if (!rhkfile->len) return b; if (rhkfile->len == 1) return 0; controls.file = rhkfile; choices = g_new(GwyEnum, rhkfile->len + 1); for (i = 0; i < rhkfile->len; i++) { rhkpage = g_ptr_array_index(rhkfile, i); choices[i].value = i; s = rhkpage->strings[RHK_STRING_LABEL]; if (s && *s) choices[i].name = g_strdup_printf(_("Page %u (%s)"), rhkpage->pageno, s); else choices[i].name = g_strdup_printf(_("Page %u"), rhkpage->pageno); } rhkpage = g_ptr_array_index(rhkfile, 0); dialog = gtk_dialog_new_with_buttons(_("Select Data"), NULL, 0, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); hbox = gtk_hbox_new(FALSE, 20); gtk_container_set_border_width(GTK_CONTAINER(hbox), 6); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, TRUE, TRUE, 0); align = gtk_alignment_new(0.0, 0.0, 0.0, 0.0); gtk_box_pack_start(GTK_BOX(hbox), align, TRUE, TRUE, 0); vbox = gtk_vbox_new(TRUE, 0); gtk_container_add(GTK_CONTAINER(align), vbox); label = gtk_label_new(_("Data to load:")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); radio = gwy_radio_buttons_create(choices, rhkfile->len, "data", G_CALLBACK(selection_changed), &controls, 0); for (i = 0, rl = radio; rl; i++, rl = g_slist_next(rl)) gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(rl->data), TRUE, TRUE, 0); /* preview */ align = gtk_alignment_new(1.0, 0.0, 0.0, 0.0); gtk_box_pack_start(GTK_BOX(hbox), align, TRUE, TRUE, 0); controls.data = GWY_CONTAINER(gwy_container_new()); dfield = rhk_sm3_page_to_data_field(rhkpage); gwy_container_set_object_by_name(controls.data, "/0/data", (GObject*)dfield); g_object_unref(dfield); controls.data_view = gwy_data_view_new(controls.data); g_object_unref(controls.data); gwy_data_view_set_zoom(GWY_DATA_VIEW(controls.data_view), 120.0/MAX(rhkpage->x_size, rhkpage->y_size)); layer = GWY_PIXMAP_LAYER(gwy_layer_basic_new()); gwy_data_view_set_base_layer(GWY_DATA_VIEW(controls.data_view), layer); gtk_container_add(GTK_CONTAINER(align), controls.data_view); gtk_widget_show_all(dialog); gtk_window_present(GTK_WINDOW(dialog)); switch (gtk_dialog_run(GTK_DIALOG(dialog))) { case GTK_RESPONSE_CANCEL: case GTK_RESPONSE_DELETE_EVENT: gtk_widget_destroy(dialog); case GTK_RESPONSE_NONE: break; case GTK_RESPONSE_OK: b = GPOINTER_TO_UINT(gwy_radio_buttons_get_current(radio, "data")); gtk_widget_destroy(dialog); break; default: g_assert_not_reached(); break; } for (i = 0; i < rhkfile->len; i++) g_free((gpointer)choices[i].name); g_free(choices); return b; }
static void base_changed(G_GNUC_UNUSED GtkWidget *button, LevelGrainsControls *controls) { controls->args->base = gwy_radio_buttons_get_current(controls->base); }