/* * SPDX-FileCopyrightText: 2020-2021 Bruce Cowan <bruce@bcowan.me.uk> * * SPDX-License-Identifier: GPL-3.0-or-later */ #include "rugby-pref-dialog.h" struct _RugbyPrefDialog { AdwPreferencesDialog parent_instance; GtkWidget *try_spin; GtkWidget *utry_spin; GtkWidget *kick_spin; GSettings *settings; }; G_DEFINE_FINAL_TYPE (RugbyPrefDialog, rugby_pref_dialog, ADW_TYPE_PREFERENCES_DIALOG) static void rugby_pref_dialog_dispose (GObject *object) { RugbyPrefDialog *self = RUGBY_PREF_DIALOG (object); g_clear_object (&self->settings); gtk_widget_dispose_template (GTK_WIDGET (object), RUGBY_TYPE_PREF_DIALOG); G_OBJECT_CLASS (rugby_pref_dialog_parent_class)->dispose (object); } static void rugby_pref_dialog_class_init (RugbyPrefDialogClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); object_class->dispose = rugby_pref_dialog_dispose; gtk_widget_class_set_template_from_resource (widget_class, "/uk/me/bcowan/Rugby/gtk/prefs.ui"); gtk_widget_class_bind_template_child (widget_class, RugbyPrefDialog, try_spin); gtk_widget_class_bind_template_child (widget_class, RugbyPrefDialog, utry_spin); gtk_widget_class_bind_template_child (widget_class, RugbyPrefDialog, kick_spin); } static void rugby_pref_dialog_init (RugbyPrefDialog *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); } RugbyPrefDialog * rugby_pref_dialog_new (void) { return g_object_new (RUGBY_TYPE_PREF_DIALOG, NULL); }