Exemple #1
0
GtkWidget *
gog_barcol_plot_pref (GogBarColPlot *barcol, GOCmdContext *cc)
{
	GtkWidget  *w;
	GtkBuilder *gui =
		go_gtk_builder_load ("res:go:plot_barcol/gog-barcol-prefs.ui",
				    GETTEXT_PACKAGE, cc);
        if (gui == NULL)
                return NULL;

	w = go_gtk_builder_get_widget (gui, "gap_spinner");
	gtk_spin_button_set_value (GTK_SPIN_BUTTON (w), barcol->gap_percentage);
	g_signal_connect (G_OBJECT (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (w))),
		"value_changed",
		G_CALLBACK (cb_gap_changed), barcol);

	w = go_gtk_builder_get_widget (gui, "overlap_spinner");
	gtk_spin_button_set_value (GTK_SPIN_BUTTON (w), barcol->overlap_percentage);
	g_signal_connect (G_OBJECT (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (w))),
		"value_changed",
		G_CALLBACK (cb_overlap_changed), barcol);

	w = go_gtk_builder_get_widget (gui, "before-grid");
	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
			(GOG_PLOT (barcol))->rendering_order == GOG_PLOT_RENDERING_BEFORE_GRID);
	g_signal_connect (G_OBJECT (w),
		"toggled",
		G_CALLBACK (display_before_grid_cb), barcol);

	w = GTK_WIDGET (g_object_ref (gtk_builder_get_object (gui, "gog-barcol-prefs")));
	g_object_unref (gui);

	return w;
}
Exemple #2
0
/**
 * go_gtk_builder_load_internal:
 * @uifile: the name of the file load
 * @domain: the translation domain
 * @gcc: #GOCmdContext
 *
 * Simple utility to open ui files
 *
 * Since: 0.9.6
 * Returns: (transfer full): a new #GtkBuilder or NULL
 *
 * Variant of go_gtk_builder_new that searchs goffice directories
 * for files.
 * @uifile should be one of these:
 *
 * res:NAME  -- data from resource manager
 * data:DATA -- data right here
 * filename  -- data from local file
 *
 * Data may be compressed, regardless of source.
**/
GtkBuilder *
go_gtk_builder_load_internal (char const *uifile,
			      char const *domain, GOCmdContext *gcc)
{
	char *f;
	GtkBuilder *res;

	if (g_path_is_absolute (uifile) ||
	    strncmp (uifile, "res:", 4) == 0 ||
	    strncmp (uifile, "data:", 5) == 0)
		return go_gtk_builder_load (uifile, domain, gcc);

	f = g_build_filename (go_sys_data_dir (), "ui", uifile, NULL);
	res = go_gtk_builder_load (f, domain, gcc);
	g_free (f);

	return res;
}
Exemple #3
0
GtkWidget *
gog_bubble_plot_pref (GogBubblePlot *bubble, GOCmdContext *cc)
{
	GtkWidget  *w;
	GtkBuilder *gui =
		go_gtk_builder_load ("res:go:plot_xy/gog-bubble-prefs.ui",
				    GETTEXT_PACKAGE, cc);

        if (gui == NULL)
                return NULL;

	w = go_gtk_builder_get_widget (gui, "area");
	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), bubble->size_as_area);
	g_signal_connect (G_OBJECT (w),
		"toggled",
		G_CALLBACK (cb_type_changed), bubble);

	w = go_gtk_builder_get_widget (gui, "diameter");
	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), !bubble->size_as_area);
	g_signal_connect (G_OBJECT (w),
		"toggled",
		G_CALLBACK (cb_type_changed), bubble);

	w = go_gtk_builder_get_widget (gui, "vary_style_by_element");
	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), bubble->base.base.vary_style_by_element);
	g_signal_connect (G_OBJECT (w),
		"toggled",
		G_CALLBACK (cb_style_changed), bubble);

	w = go_gtk_builder_get_widget (gui, "3d");
	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), bubble->in_3d);
	g_signal_connect (G_OBJECT (w),
		"toggled",
		G_CALLBACK (cb_3d_changed), bubble);

	/* TODO Add support for 3D bubbles. Hide the button for now. */
	gtk_widget_hide (w);

	w = go_gtk_builder_get_widget (gui, "scale");
	gtk_spin_button_set_value (GTK_SPIN_BUTTON (w), bubble->bubble_scale * 100.);
	g_signal_connect (G_OBJECT (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (w))),
		"value_changed",
		G_CALLBACK (cb_scale_changed), bubble);

	w = go_gtk_builder_get_widget (gui, "show_negative_values");
	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), bubble->show_negatives);
	g_signal_connect (G_OBJECT (w),
		"toggled",
		G_CALLBACK (cb_negatives_changed), bubble);

	w = GTK_WIDGET (g_object_ref (gtk_builder_get_object (gui, "gog-bubble-prefs")));
	g_object_unref (gui);

	return w;
}
Exemple #4
0
static void
gog_xy_dropbar_populate_editor (GogObject *obj,
			     GOEditor *editor,
                             GogDataAllocator *dalloc,
                             GOCmdContext *cc)
{
#ifdef GOFFICE_WITH_GTK
	GogXYDropBarPlot *dropbar = GOG_XY_DROPBAR_PLOT (obj);
	GtkBuilder *gui =
		go_gtk_builder_load ("res:go:plot_xy/gog-xy-dropbar-prefs.ui",
				    GETTEXT_PACKAGE, cc);

	if (gui != NULL) {
		GtkWidget *w = go_gtk_builder_get_widget (gui, "before-grid");
		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
				(GOG_PLOT (obj))->rendering_order == GOG_PLOT_RENDERING_BEFORE_GRID);
		g_signal_connect (G_OBJECT (w),
			"toggled",
			G_CALLBACK (display_before_grid_cb), obj);
		w = go_gtk_builder_get_widget (gui, "horizontal");
		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), dropbar->horizontal);
		g_signal_connect (G_OBJECT (w),
			"toggled",
			G_CALLBACK (horizontal_cb), obj);
		w = go_gtk_builder_get_widget (gui, "width-btn");
		gtk_spin_button_set_value (GTK_SPIN_BUTTON (w), dropbar->width);
		g_signal_connect (G_OBJECT (w),
			"value_changed",
			G_CALLBACK (value_changed_cb), obj);
		w = go_gtk_builder_get_widget (gui, "gog-xy-dropbar-prefs");
		go_editor_add_page (editor, w, _("Properties"));
		g_object_unref (gui);
	}

#endif
	gog_xy_dropbar_parent_klass->populate_editor (obj, editor, dalloc, cc);
};
Exemple #5
0
/**
 * go_gtk_builder_new:
 * @uifile: the name of the file load
 * @domain: the translation domain
 * @gcc: #GOCmdContext
 *
 * Simple utility to open ui files
 *
 * Deprecated: 0.9.6, use go_gtk_builder_load().
 * Returns: (transfer full): a new #GtkBuilder or NULL
 *
 * @uifile should be one of these:
 *
 * res:NAME  -- data from resource manager
 * data:DATA -- data right here
 * filename  -- data from local file
 *
 * Data may be compressed, regardless of source.
**/
GtkBuilder *
go_gtk_builder_new (char const *uifile,
		    char const *domain, GOCmdContext *gcc)
{
	return go_gtk_builder_load (uifile, domain, gcc);
}
GtkWidget *
gog_xyz_surface_plot_pref (GogXYZPlot *plot, GogDataAllocator *dalloc, GOCmdContext *cc)
{
	GogDataset *set = GOG_DATASET (plot);
	XYZSurfPrefsState *state;
	GtkWidget  *w, *grid;
	GtkBuilder *gui =
		go_gtk_builder_load ("res:go:plot_surface/gog-xyz-surface-prefs.ui",
				    GETTEXT_PACKAGE, cc);

        if (gui == NULL)
                return NULL;

	state = g_new (XYZSurfPrefsState, 1);
	state->plot = plot;

	state->x_spin = w = go_gtk_builder_get_widget (gui, "columns_spinner");
	gtk_spin_button_set_value (GTK_SPIN_BUTTON (w), plot->columns);
	g_signal_connect (G_OBJECT (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (w))),
		"value_changed",
		G_CALLBACK (cb_columns_changed), plot);
	state->x_label = go_gtk_builder_get_widget (gui, "cols-nb-lbl");

	grid = go_gtk_builder_get_widget (gui, "gog-xyz-surface-prefs");
	state->x_entry = GTK_WIDGET (gog_data_allocator_editor (dalloc, set, 0, GOG_DATA_VECTOR));
	gtk_widget_show_all (state->x_entry);
	gtk_widget_set_margin_left (state->x_entry, 12);
	gtk_grid_attach (GTK_GRID (grid), state->x_entry, 0, 2, 3, 1);
	w = go_gtk_builder_get_widget (gui, "preset-cols-btn");
	if (!state->plot->auto_x) {
		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), TRUE);
		gtk_widget_hide (state->x_spin);
		gtk_widget_hide (state->x_label);
	} else
		gtk_widget_hide (state->x_entry);
	w = go_gtk_builder_get_widget (gui, "calc-cols-btn");
	g_signal_connect (G_OBJECT (w), "toggled", G_CALLBACK (cb_cols_toggled), state);

	state->y_spin = w = go_gtk_builder_get_widget (gui, "rows_spinner");
	gtk_spin_button_set_value (GTK_SPIN_BUTTON (w), plot->rows);
	g_signal_connect (G_OBJECT (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (w))),
		"value_changed",
		G_CALLBACK (cb_rows_changed), plot);
	state->y_label = go_gtk_builder_get_widget (gui, "rows-nb-lbl");

	state->y_entry = GTK_WIDGET (gog_data_allocator_editor (dalloc, set, 1, GOG_DATA_VECTOR));
	gtk_widget_show_all (state->y_entry);
	gtk_widget_set_margin_left (state->y_entry, 12);
	gtk_grid_attach (GTK_GRID (grid), state->y_entry, 0, 5, 3, 1);
	w = go_gtk_builder_get_widget (gui, "preset-rows-btn");
	if (!state->plot->auto_y) {
		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), TRUE);
		gtk_widget_hide (state->y_spin);
		gtk_widget_hide (state->y_label);
	} else
		gtk_widget_hide (state->y_entry);
	w = go_gtk_builder_get_widget (gui, "calc-rows-btn");
	g_signal_connect (G_OBJECT (w), "toggled", G_CALLBACK (cb_rows_toggled), state);

	w = go_gtk_builder_get_widget (gui, "missing-as-btn");
	if (GOG_PLOT (plot)->desc.series.num_dim == 2) {
		gboolean as_density;
		gtk_widget_hide (w);
		gtk_widget_hide (go_gtk_builder_get_widget (gui, "missing-lbl"));
		w = gtk_check_button_new_with_label (_("Display population density"));
		gtk_container_add (GTK_CONTAINER (grid), w);
		gtk_widget_show (w);
		g_object_get (plot, "as-density", &as_density, NULL);
		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), as_density);
		g_signal_connect (G_OBJECT (w), "toggled", G_CALLBACK (cb_as_density_toggled), state);
	} else {
		char const *missing;
		g_object_get (plot, "missing-as", &missing, NULL);
		gtk_combo_box_set_active (GTK_COMBO_BOX (w), missing_as_value (missing));
		g_signal_connect (G_OBJECT (w), "changed", G_CALLBACK (cb_missing_as_changed), state);
	}

	w = GTK_WIDGET (g_object_ref (grid));
	g_object_set_data_full (G_OBJECT (w), "state", state, g_free);
	g_object_unref (gui);

	return w;
}