/* * SPDX-FileCopyrightText: 2020-2021 Bruce Cowan <bruce@bcowan.me.uk> * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "rugby-pref-window.h" struct _RugbyPrefWindow { AdwPreferencesWindow parent_instance; GtkWidget *try_spin; GtkWidget *utry_spin; GtkWidget *kick_spin; GSettings *settings; }; G_DEFINE_TYPE (RugbyPrefWindow, rugby_pref_window, ADW_TYPE_PREFERENCES_WINDOW) static void rugby_pref_window_dispose (GObject *object) { RugbyPrefWindow *self = RUGBY_PREF_WINDOW (object); g_clear_object (&self->settings); G_OBJECT_CLASS (rugby_pref_window_parent_class)->dispose (object); } static void rugby_pref_window_class_init (RugbyPrefWindowClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); object_class->dispose = rugby_pref_window_dispose; gtk_widget_class_set_template_from_resource (widget_class, "/uk/me/bcowan/rugby/prefs.ui"); gtk_widget_class_bind_template_child (widget_class, RugbyPrefWindow, try_spin); gtk_widget_class_bind_template_child (widget_class, RugbyPrefWindow, utry_spin); gtk_widget_class_bind_template_child (widget_class, RugbyPrefWindow, kick_spin); } static void rugby_pref_window_init (RugbyPrefWindow *self) { gtk_widget_init_template (GTK_WIDGET (self)); self->settings = g_settings_new ("uk.me.bcowan.Rugby"); g_settings_bind (self->settings, "try-points", self->try_spin, "value", G_SETTINGS_BIND_DEFAULT); g_settings_bind (self->settings, "utry-points", self->utry_spin, "value", G_SETTINGS_BIND_DEFAULT); g_settings_bind (self->settings, "kick-points", self->kick_spin, "value", G_SETTINGS_BIND_DEFAULT); } RugbyPrefWindow * rugby_pref_window_new (RugbyAppWindow *window) { return g_object_new (RUGBY_TYPE_PREF_WINDOW, "transient-for", window, NULL); }