static void dwt_save_args(GwyContainer *container, DWTArgs *args) { gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_enum_by_name(container, wavelet_key, args->wavelet); }
static void save_args(GwyContainer *container, UnrotateArgs *args) { gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_enum_by_name(container, symmetry_key, args->symmetry); }
static void dwt_anisotropy_save_args(GwyContainer *container, DWTAnisotropyArgs *args) { gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_enum_by_name(container, wavelet_key, args->wavelet); gwy_container_set_double_by_name(container, ratio_key, args->ratio); gwy_container_set_int32_by_name(container, lowlimit_key, args->lowlimit); }
static void dwt_denoise_save_args(GwyContainer *container, DWTDenoiseArgs *args) { gwy_container_set_boolean_by_name(container, preserve_key, args->preserve); gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_enum_by_name(container, wavelet_key, args->wavelet); gwy_container_set_enum_by_name(container, method_key, args->method); }
static void cwt_save_args(GwyContainer *container, CWTArgs *args) { gwy_container_set_boolean_by_name(container, preserve_key, args->preserve); gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_enum_by_name(container, wavelet_key, args->wavelet); gwy_container_set_double_by_name(container, scale_key, args->scale); }
static void maskcor_save_args(GwyContainer *settings, MaskcorArgs *args) { kernel_id = args->kernel; gwy_container_set_enum_by_name(settings, result_key, args->result); gwy_container_set_enum_by_name(settings, method_key, args->method); gwy_container_set_double_by_name(settings, threshold_key, args->threshold); }
static void scale_save_args(GwyContainer *container, ScaleArgs *args) { gwy_container_set_enum_by_name(container, proportional_key, args->proportional); gwy_container_set_double_by_name(container, ratio_key, args->ratio); gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_double_by_name(container, aspectratio_key, args->aspectratio); }
static void save_args(GwyContainer *container, EntropyArgs *args) { gwy_container_set_enum_by_name(container, mode_key, args->mode); gwy_container_set_enum_by_name(container, masking_key, args->masking); gwy_container_set_boolean_by_name(container, zoom_in_key, args->zoom_in); gwy_container_set_boolean_by_name(container, fit_plane_key, args->fit_plane); gwy_container_set_int32_by_name(container, kernel_size_key, args->kernel_size); }
static void immerse_save_args(GwyContainer *settings, ImmerseArgs *args) { detail_id = args->detail; gwy_container_set_enum_by_name(settings, sampling_key, args->sampling); gwy_container_set_enum_by_name(settings, leveling_key, args->leveling); gwy_container_set_boolean_by_name(settings, draw_frame_key, args->draw_frame); gwy_container_set_double_by_name(settings, xpos_key, args->xpos); gwy_container_set_double_by_name(settings, ypos_key, args->ypos); }
static void merge_save_args(GwyContainer *settings, MergeArgs *args) { op2_id = args->op2; gwy_container_set_enum_by_name(settings, direction_key, args->direction); gwy_container_set_enum_by_name(settings, mode_key, args->mode); gwy_container_set_enum_by_name(settings, boundary_key, args->boundary); gwy_container_set_boolean_by_name(settings, create_mask_key, args->create_mask); gwy_container_set_boolean_by_name(settings, crop_to_rectangle_key, args->crop_to_rectangle); }
static void psdflp_save_args(GwyContainer *container, PSDFLPArgs *args) { gwy_container_set_enum_by_name(container, window_key, args->window); gwy_container_set_double_by_name(container, sigma_key, args->sigma); }
static void gfilter_save_args(GwyContainer *container, GFilterArgs *args) { gchar *filename; FILE *fh; guint i; gwy_container_set_boolean_by_name(container, update_key, args->update); gwy_container_set_int32_by_name(container, expanded_key, args->expanded); gwy_container_set_enum_by_name(container, logical_key, args->logical); for (i = 0; i < NQUANTITIES; i++) { gchar buf[sizeof(quantity_key) + 10]; g_snprintf(buf, sizeof(buf), "%s%u", quantity_key, i+1); gwy_container_set_string_by_name(container, buf, g_strdup(args->ranges[i].quantity)); } filename = g_build_filename(gwy_get_user_dir(), "grain_filter", NULL); if (!g_file_test(filename, G_FILE_TEST_IS_DIR)) g_mkdir(filename, 0700); g_free(filename); filename = g_build_filename(gwy_get_user_dir(), "grain_filter", "ranges", NULL); if ((fh = g_fopen(filename, "w"))) { g_hash_table_foreach(args->ranges_history, save_range, fh); fclose(fh); } g_free(filename); }
static void save_args(GwyContainer *container, LevelGrainsArgs *args) { gwy_container_set_enum_by_name(container, base_key, args->base); gwy_container_set_boolean_by_name(container, do_extract_key, args->do_extract); }
static void rotate_save_args(GwyContainer *container, RotateArgs *args) { gwy_container_set_double_by_name(container, angle_key, args->angle); gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_boolean_by_name(container, expand_key, args->expand); }
static void sphrev_save_args(GwyContainer *container, Sphrev1DArgs *args) { gwy_container_set_double_by_name(container, radius_key, args->size); gwy_container_set_enum_by_name(container, direction_key, args->direction); gwy_container_set_boolean_by_name(container, do_extract_key, args->do_extract); }
static void noise_synth_save_args(GwyContainer *container, const NoiseSynthArgs *args, const GwyDimensionArgs *dimsargs) { gwy_container_set_int32_by_name(container, active_page_key, args->active_page); gwy_container_set_boolean_by_name(container, update_key, args->update); gwy_container_set_int32_by_name(container, seed_key, args->seed); gwy_container_set_boolean_by_name(container, randomize_key, args->randomize); gwy_container_set_enum_by_name(container, distribution_key, args->distribution); gwy_container_set_enum_by_name(container, direction_key, args->direction); gwy_container_set_double_by_name(container, sigma_key, args->sigma); gwy_dimensions_save_args(dimsargs, container, prefix); }
static void grain_dist_save_args(GwyContainer *container, GrainDistArgs *args) { gwy_container_set_boolean_by_name(container, fixres_key, args->fixres); gwy_container_set_int32_by_name(container, selected_key, args->selected); gwy_container_set_int32_by_name(container, resolution_key, args->resolution); gwy_container_set_enum_by_name(container, mode_key, args->mode); }
static void save_args(GwyContainer *container, CurvatureArgs *args) { target_id = args->target_graph; gwy_container_set_enum_by_name(container, masking_key, args->masking); gwy_container_set_boolean_by_name(container, set_selection_key, args->set_selection); gwy_container_set_boolean_by_name(container, plot_graph_key, args->plot_graph); }
static void tip_model_save_args(GwyContainer *container, TipModelArgs *args) { gwy_container_set_int32_by_name(container, nsides_key, args->nsides); gwy_container_set_double_by_name(container, angle_key, args->angle); gwy_container_set_double_by_name(container, radius_key, args->radius); gwy_container_set_double_by_name(container, theta_key, args->theta); gwy_container_set_enum_by_name(container, type_key, args->type); }
static void facets_save_args(GwyContainer *container, FacetsArgs *args) { gwy_container_set_boolean_by_name(container, combine_key, args->combine); gwy_container_set_double_by_name(container, tolerance_key, args->tolerance); gwy_container_set_int32_by_name(container, kernel_size_key, args->kernel_size); gwy_container_set_enum_by_name(container, combine_type_key, args->combine_type); }
static void prof_save_args(GwyContainer *container, ProfArgs *args) { gwy_container_set_boolean_by_name(container, separate_key, args->separate); gwy_container_set_boolean_by_name(container, fixres_key, args->fixres); gwy_container_set_int32_by_name(container, resolution_key, args->resolution); gwy_container_set_enum_by_name(container, interpolation_key, args->interpolation); target_id = args->target_graph; }
static void save_args(GwyContainer *container, PolyLevelArgs *args) { gwy_container_set_int32_by_name(container, col_degree_key, args->col_degree); gwy_container_set_int32_by_name(container, row_degree_key, args->row_degree); gwy_container_set_int32_by_name(container, max_degree_key, args->max_degree); gwy_container_set_enum_by_name(container, masking_key, args->masking); gwy_container_set_boolean_by_name(container, do_extract_key, args->do_extract); gwy_container_set_boolean_by_name(container, same_degree_key, args->same_degree); gwy_container_set_boolean_by_name(container, independent_key, args->independent); }
static void save_args(GwyContainer *container, LevelArgs *args) { gwy_container_set_enum_by_name(container, masking_key, args->masking); }
static void prof_dialog(ProfArgs *args, GwyContainer *data, GwyDataField *dfield, gint id) { GtkWidget *hbox, *hbox2, *vbox, *label; GwyDataChooser *chooser; GtkTable *table; GtkDialog *dialog; GwyGraph *graph; GwyGraphArea *area; ProfControls controls; gint response; gint row; controls.args = args; controls.psdffield = prof_psdf(dfield, args); controls.modfield = prof_sqrt(controls.psdffield); controls.hx = gwy_data_field_get_xmeasure(dfield)/(2*G_PI); controls.hy = gwy_data_field_get_xmeasure(dfield)/(2*G_PI); controls.dialog = gtk_dialog_new_with_buttons(_("Radial PSDF Section"), NULL, 0, GTK_STOCK_CLEAR, RESPONSE_CLEAR, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); dialog = GTK_DIALOG(controls.dialog); gtk_dialog_set_default_response(dialog, GTK_RESPONSE_OK); gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_OK, FALSE); gwy_help_add_to_proc_dialog(GTK_DIALOG(dialog), GWY_HELP_DEFAULT); hbox = gtk_hbox_new(FALSE, 2); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, FALSE, 4); controls.mydata = gwy_container_new(); gwy_container_set_object_by_name(controls.mydata, "/0/data", controls.modfield); g_object_unref(controls.modfield); gwy_container_set_string_by_name(controls.mydata, "/0/base/palette", g_strdup("DFit")); gwy_container_set_enum_by_name(controls.mydata, "/0/base/range-type", GWY_LAYER_BASIC_RANGE_AUTO); gwy_app_sync_data_items(data, controls.mydata, id, 0, FALSE, GWY_DATA_ITEM_REAL_SQUARE, 0); controls.view = create_preview(controls.mydata, 0, PREVIEW_SIZE, FALSE); controls.selection = create_vector_layer(GWY_DATA_VIEW(controls.view), 0, "Point", TRUE); gwy_selection_set_max_objects(controls.selection, NLINES); g_object_set(gwy_data_view_get_top_layer(GWY_DATA_VIEW(controls.view)), "draw-as-vector", TRUE, NULL); g_signal_connect_swapped(controls.selection, "changed", G_CALLBACK(prof_selection_changed), &controls); gtk_box_pack_start(GTK_BOX(hbox), controls.view, FALSE, FALSE, 4); vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 4); controls.gmodel = gwy_graph_model_new(); g_object_set(controls.gmodel, "title", _("PSDF Section"), "axis-label-bottom", "k", "axis-label-left", "W", NULL); init_graph_model_units(controls.gmodel, controls.psdffield); controls.line = gwy_data_line_new(1, 1.0, FALSE); controls.graph = gwy_graph_new(controls.gmodel); graph = GWY_GRAPH(controls.graph); gtk_widget_set_size_request(controls.graph, GRAPH_WIDTH, -1); gwy_graph_set_axis_visible(graph, GTK_POS_LEFT, FALSE); gwy_graph_set_axis_visible(graph, GTK_POS_RIGHT, FALSE); gwy_graph_set_axis_visible(graph, GTK_POS_TOP, FALSE); gwy_graph_set_axis_visible(graph, GTK_POS_BOTTOM, FALSE); gwy_graph_enable_user_input(graph, FALSE); area = GWY_GRAPH_AREA(gwy_graph_get_area(graph)); gwy_graph_area_enable_user_input(area, FALSE); gtk_box_pack_start(GTK_BOX(vbox), controls.graph, TRUE, TRUE, 0); table = GTK_TABLE(gtk_table_new(4, 4, FALSE)); gtk_table_set_row_spacings(table, 2); gtk_table_set_col_spacings(table, 6); gtk_container_set_border_width(GTK_CONTAINER(table), 4); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(table), FALSE, FALSE, 0); row = 0; controls.resolution = gtk_adjustment_new(controls.args->resolution, MIN_RESOLUTION, MAX_RESOLUTION, 1, 10, 0); gwy_table_attach_hscale(GTK_WIDGET(table), row, _("_Fix res.:"), NULL, controls.resolution, GWY_HSCALE_CHECK | GWY_HSCALE_SQRT); g_signal_connect_swapped(controls.resolution, "value-changed", G_CALLBACK(prof_resolution_changed), &controls); controls.fixres = gwy_table_hscale_get_check(controls.resolution); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(controls.fixres), controls.args->fixres); g_signal_connect_swapped(controls.fixres, "toggled", G_CALLBACK(prof_fixres_changed), &controls); gwy_table_hscale_set_sensitive(controls.resolution, controls.args->fixres); row++; controls.separate = gtk_check_button_new_with_mnemonic(_("_Separate curves")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(controls.separate), args->separate); gtk_table_attach(table, controls.separate, 0, 3, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0); g_signal_connect_swapped(controls.separate, "toggled", G_CALLBACK(prof_separate_changed), &controls); row++; hbox2 = gtk_hbox_new(FALSE, 6); gtk_table_attach(table, hbox2, 0, 3, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0); label = gtk_label_new_with_mnemonic(_("_Interpolation type:")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(hbox2), label, FALSE, FALSE, 0); controls.interpolation = gwy_enum_combo_box_new(gwy_interpolation_type_get_enum(), -1, G_CALLBACK(prof_interpolation_changed), &controls, controls.args->interpolation, TRUE); gtk_label_set_mnemonic_widget(GTK_LABEL(label), controls.interpolation); gtk_box_pack_end(GTK_BOX(hbox2), controls.interpolation, FALSE, FALSE, 0); row++; controls.target_hbox = hbox2 = gtk_hbox_new(FALSE, 6); gtk_widget_set_sensitive(hbox2, !args->separate); gtk_table_attach(GTK_TABLE(table), hbox2, 0, 4, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0); label = gtk_label_new_with_mnemonic(_("Target _graph:")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(hbox2), label, FALSE, FALSE, 0); controls.target_graph = gwy_data_chooser_new_graphs(); chooser = GWY_DATA_CHOOSER(controls.target_graph); gwy_data_chooser_set_none(chooser, _("New graph")); gwy_data_chooser_set_active(chooser, NULL, -1); gwy_data_chooser_set_filter(chooser, filter_target_graphs, &controls, NULL); gwy_data_chooser_set_active_id(chooser, &args->target_graph); gwy_data_chooser_get_active_id(chooser, &args->target_graph); gtk_label_set_mnemonic_widget(GTK_LABEL(label), controls.target_graph); gtk_box_pack_end(GTK_BOX(hbox2), controls.target_graph, FALSE, FALSE, 0); g_signal_connect_swapped(controls.target_graph, "changed", G_CALLBACK(target_graph_changed), &controls); row++; gtk_widget_show_all(controls.dialog); do { response = gtk_dialog_run(dialog); switch (response) { case GTK_RESPONSE_CANCEL: case GTK_RESPONSE_DELETE_EVENT: gtk_widget_destroy(controls.dialog); case GTK_RESPONSE_NONE: goto finalize; break; case GTK_RESPONSE_OK: break; case RESPONSE_CLEAR: gwy_selection_clear(controls.selection); break; default: g_assert_not_reached(); break; } } while (response != GTK_RESPONSE_OK); gtk_widget_destroy(controls.dialog); prof_execute(&controls, data); finalize: g_object_unref(controls.psdffield); g_object_unref(controls.mydata); g_object_unref(controls.gmodel); g_object_unref(controls.line); }
static void level_save_args(GwyContainer *container, LevelArgs *args) { gwy_container_set_enum_by_name(container, level_mode_key, args->level_mode); }
static void save_args(GwyContainer *container, ToolControls *controls) { gwy_container_set_enum_by_name(container, mode_key, controls->mode); }