}
+
+gboolean
+psppire_conf_get_string (PsppireConf *conf, const gchar *base,
+ const gchar *name, gchar **value)
+{
+ gboolean ok;
+ gchar *b;
+ GError *err = NULL;
+ conf_read (conf);
+ b = g_key_file_get_string (conf->keyfile,
+ base,
+ name, &err);
+
+ ok = (err == NULL);
+ if ( err != NULL )
+ g_error_free (err);
+
+ if (ok)
+ *value = b;
+
+ return ok;
+}
+
+
+
void
psppire_conf_set_int (PsppireConf *conf,
const gchar *base, const gchar *name,
conf_write (conf);
}
+
+void
+psppire_conf_set_string (PsppireConf *conf,
+ const gchar *base, const gchar *name,
+ const gchar *value)
+{
+ g_key_file_set_string (conf->keyfile, base, name, value);
+ conf_write (conf);
+}
+
+
+
/*
A convenience function to set the geometry of a
window from from a saved config
gboolean psppire_conf_get_int (PsppireConf *,
const gchar *, const gchar *, int *);
+gboolean psppire_conf_get_string (PsppireConf *,
+ const gchar *, const gchar *, gchar **);
+
gboolean psppire_conf_get_boolean (PsppireConf *,
const gchar *, const gchar *, gboolean *);
const gchar *base, const gchar *name,
gboolean value);
+void psppire_conf_set_string (PsppireConf *conf,
+ const gchar *base, const gchar *name,
+ const gchar *value);
void psppire_conf_set_window_geometry (PsppireConf *conf,
const gchar *base,
#include "ui/gui/psppire-value-entry.h"
#include "ui/gui/psppire-var-sheet.h"
#include "ui/gui/psppire.h"
+#include "ui/gui/psppire-conf.h"
#include <gettext.h>
#define _(msgid) gettext (msgid)
return GTK_WIDGET (xpaned);
}
+static void set_font_recursively (GtkWidget *w, gpointer data);
+
static void
psppire_data_editor_init (PsppireDataEditor *de)
{
GtkWidget *var_sheet_scroller;
GtkWidget *hbox;
+ gchar *fontname = NULL;
de->font = NULL;
de->ui_manager = NULL;
g_object_set (de, "can-focus", FALSE, NULL);
+ if (psppire_conf_get_string (psppire_conf_new (),
+ "Data Editor", "font",
+ &fontname) )
+ {
+ de->font = pango_font_description_from_string (fontname);
+ g_free (fontname);
+ set_font_recursively (GTK_WIDGET (de), de->font);
+ }
+
psppire_data_editor_update_ui_manager (de);
}
void
psppire_data_editor_set_font (PsppireDataEditor *de, PangoFontDescription *font_desc)
{
+ gchar *font_name;
set_font_recursively (GTK_WIDGET (de), font_desc);
if (de->font)
pango_font_description_free (de->font);
de->font = pango_font_description_copy (font_desc);
+ font_name = pango_font_description_to_string (de->font);
+
+ psppire_conf_set_string (psppire_conf_new (),
+ "Data Editor", "font",
+ font_name);
+
}
/* If SPLIT is TRUE, splits DE's data sheet into four panes.