summaryrefslogtreecommitdiff
path: root/src/framework.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/framework.c')
-rw-r--r--src/framework.c19
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);
}