static GObject* go_arrow_sel_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_params) { GtkWidget *arrowsel; GOArrowSel *as = (GOArrowSel *) (as_parent_class->constructor (type, n_construct_properties, construct_params)); if (!as) return NULL; as->gui = go_gtk_builder_load_internal ("res:go:gtk/go-arrow-sel.ui", GETTEXT_PACKAGE, NULL); as->spin_a = GTK_SPIN_BUTTON (go_gtk_builder_get_widget (as->gui, "spin_a")); g_signal_connect_swapped (as->spin_a, "value-changed", G_CALLBACK (cb_changed), as); as->spin_b = GTK_SPIN_BUTTON (go_gtk_builder_get_widget (as->gui, "spin_b")); g_signal_connect_swapped (as->spin_b, "value-changed", G_CALLBACK (cb_changed), as); as->spin_c = GTK_SPIN_BUTTON (go_gtk_builder_get_widget (as->gui, "spin_c")); g_signal_connect_swapped (as->spin_c, "value-changed", G_CALLBACK (cb_changed), as); as->type_selector = go_gtk_builder_get_widget (as->gui, "type-selector"); gtk_combo_box_set_active (GTK_COMBO_BOX (as->type_selector), GO_ARROW_NONE); set_actives (as); g_signal_connect_swapped (as->type_selector, "changed", G_CALLBACK (cb_changed), as); as->preview = go_gtk_builder_get_widget (as->gui, "preview"); g_signal_connect (G_OBJECT (as->preview), "draw", G_CALLBACK (cb_draw_arrow), as); arrowsel = go_gtk_builder_get_widget (as->gui, "arrow-selector"); gtk_widget_show_all (arrowsel); gtk_container_add (GTK_CONTAINER (as), arrowsel); return (GObject *)as; }
static void gog_chart_populate_editor (GogObject *gobj, GOEditor *editor, G_GNUC_UNUSED GogDataAllocator *dalloc, GOCmdContext *cc) { static guint chart_pref_page = 0; GtkBuilder *gui; PlotAreaPrefState *state; gboolean is_plot_area_manual; GogViewAllocation plot_area; GtkWidget *w; GogChart *chart = GOG_CHART (gobj); g_return_if_fail (chart != NULL); gui = go_gtk_builder_load_internal ("res:go:graph/gog-plot-prefs.ui", GETTEXT_PACKAGE, cc); g_return_if_fail (gui != NULL); (GOG_OBJECT_CLASS(chart_parent_klass)->populate_editor) (gobj, editor, dalloc, cc); state = g_new (PlotAreaPrefState, 1); state->chart = chart; state->gui = gui; g_object_ref (chart); is_plot_area_manual = gog_chart_get_plot_area (chart, &plot_area); state->x_spin = go_gtk_builder_get_widget (gui, "x_spin"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->x_spin), plot_area.x * 100.0); g_signal_connect (G_OBJECT (state->x_spin), "value-changed", G_CALLBACK (cb_plot_area_changed), state); state->y_spin = go_gtk_builder_get_widget (gui, "y_spin"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->y_spin), plot_area.y * 100.0); g_signal_connect (G_OBJECT (state->y_spin), "value-changed", G_CALLBACK (cb_plot_area_changed), state); state->w_spin = go_gtk_builder_get_widget (gui, "w_spin"); gtk_spin_button_set_range (GTK_SPIN_BUTTON (state->w_spin), 0.0, (1.0 - plot_area.x) * 100.0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->w_spin), 100.0 * plot_area.w); state->w_spin_signal = g_signal_connect (G_OBJECT (state->w_spin), "value-changed", G_CALLBACK (cb_plot_area_changed), state); state->h_spin = go_gtk_builder_get_widget (gui, "h_spin"); gtk_spin_button_set_range (GTK_SPIN_BUTTON (state->h_spin), 0.0, (1.0 - plot_area.y) * 100.0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->h_spin), 100.0 * plot_area.h); state->h_spin_signal = g_signal_connect (G_OBJECT (state->h_spin), "value-changed", G_CALLBACK (cb_plot_area_changed), state); state->position_select_combo = go_gtk_builder_get_widget (gui, "position_select_combo"); gtk_combo_box_set_active (GTK_COMBO_BOX (state->position_select_combo), is_plot_area_manual ? 1 : 0); state->manual_setting_grid = go_gtk_builder_get_widget (gui, "manual-setting-grid"); if (!is_plot_area_manual) gtk_widget_hide (state->manual_setting_grid); g_signal_connect (G_OBJECT (state->position_select_combo), "changed", G_CALLBACK (cb_manual_position_changed), state); w = go_gtk_builder_get_widget (gui, "gog-plot-prefs"); g_signal_connect_swapped (G_OBJECT (w), "destroy", G_CALLBACK (plot_area_pref_state_free), state); go_editor_add_page (editor, w, _("Plot area")); go_editor_set_store_page (editor, &chart_pref_page); }