Esempio n. 1
0
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);
}
Esempio n. 2
0
/**
 * 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);
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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);
}
Esempio n. 5
0
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);
}
Esempio n. 6
0
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);
}
Esempio n. 7
0
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);
}
Esempio n. 8
0
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);
}
Esempio n. 9
0
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));
}
Esempio n. 10
0
static void
mode_changed_cb(G_GNUC_UNUSED GObject *unused, LevelControls *controls)
{
    controls->args->level_mode = gwy_radio_buttons_get_current(controls->mode);
}
Esempio n. 11
0
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;
}
Esempio n. 12
0
static void
base_changed(G_GNUC_UNUSED GtkWidget *button,
             LevelGrainsControls *controls)
{
    controls->args->base = gwy_radio_buttons_get_current(controls->base);
}