diff options
Diffstat (limited to 'src/framework.c')
-rw-r--r-- | src/framework.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/framework.c b/src/framework.c index 47e93a0..dfd0bfa 100644 --- a/src/framework.c +++ b/src/framework.c @@ -38,6 +38,8 @@ struct _GtkChrysalideFramework { GtkApplication parent; /* A laisser en premier */ + GSettings *settings; /* Paramètres globaux */ + GtkApplicationWindow *main_window; /* Fenêtre principale */ }; @@ -125,6 +127,8 @@ static void gtk_chrysalide_framework_class_init(GtkChrysalideFrameworkClass *kla static void gtk_chrysalide_framework_init(GtkChrysalideFramework *app) { + app->settings = NULL; + app->main_window = NULL; } @@ -144,6 +148,8 @@ static void gtk_chrysalide_framework_init(GtkChrysalideFramework *app) static void gtk_chrysalide_framework_dispose(GtkChrysalideFramework *app) { + g_clear_object(&app->settings); + g_clear_object(&app->main_window); G_OBJECT_CLASS(gtk_chrysalide_framework_parent_class)->dispose(G_OBJECT(app)); @@ -217,17 +223,28 @@ GtkChrysalideFramework *gtk_chrysalide_framework_new(void) static void gtk_chrysalide_framework_activate(GApplication *app) { GtkChrysalideFramework *real_app; /* Version réelle de l'instance*/ + GSettings *settings; /* Paramètres globaux */ GtkWindow *window; /* Fenêtre mise en place */ real_app = GTK_CHRYSALIDE_FRAMEWORK(app); + /* Paramètres globaux */ + + settings = g_settings_new("re.chrysalide.framework.mainapp"); + real_app->settings = settings; + + /* Fenêtre principale */ + window = GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(app))); real_app->main_window = GTK_APPLICATION_WINDOW(window); g_object_ref(G_OBJECT(window)); + g_settings_bind(settings, "window-width", G_OBJECT(window), "default-width", G_SETTINGS_BIND_DEFAULT); + g_settings_bind(settings, "window-height", G_OBJECT(window), "default-height", G_SETTINGS_BIND_DEFAULT); + g_settings_bind(settings, "window-maximized", G_OBJECT(window), "maximized", G_SETTINGS_BIND_DEFAULT); + gtk_window_set_title(window, "Chrysalide"); - gtk_window_set_default_size(window, 400, 300); gtk_window_present(window); } |