#include <glib/gi18n.h>
#include <gtk/gtk.h>
+/* Use a custom GSettings backend for our preferences file */
+#define G_SETTINGS_ENABLE_BACKEND
+#include <gio/gsettingsbackend.h>
+
#include "error.h"
#include <libchimara/chimara-glk.h>
#include <libchimara/chimara-if.h>
GtkWidget *aboutwindow = NULL;
GtkWidget *prefswindow = NULL;
GtkWidget *toolbar = NULL;
+GSettings *prefs_settings = NULL;
+GSettings *state_settings = NULL;
GObject *
load_object(const gchar *name)
}
#endif /* DEBUG */
}
-
+
glk = chimara_if_new();
g_object_set(glk,
"ignore-errors", TRUE,
g_signal_connect(glk, "notify::story-name", G_CALLBACK(change_window_title), window);
/* Create preferences window */
- //preferences_create(CHIMARA_GLK(glk));
+ preferences_create(CHIMARA_GLK(glk));
}
int
gdk_threads_init();
gtk_init(&argc, &argv);
+ /* Initialize settings file */
+ gchar *keyfile = g_build_filename(g_get_home_dir(), ".chimara", NULL);
+ GSettingsBackend *backend = g_keyfile_settings_backend_new(keyfile, "/org/chimara-if/player/", NULL);
+ prefs_settings = g_settings_new_with_backend("org.chimara-if.player.preferences", backend);
+ state_settings = g_settings_new_with_backend("org.chimara-if.player.state", backend);
+
create_window();
gtk_widget_show_all(window);
g_object_unref( G_OBJECT(uimanager) );
+ if(argc == 3) {
+ g_object_set(glk, "graphics-file", argv[2], NULL);
+ }
if(argc >= 2) {
if( !chimara_if_run_game(CHIMARA_IF(glk), argv[1], &error) ) {
error_dialog(GTK_WINDOW(window), error, "Error starting Glk library: ");