Newer
Older
* 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
{
GtkWidget *try_spin;
GtkWidget *utry_spin;
GtkWidget *kick_spin;
GSettings *settings;
};
G_DEFINE_TYPE (RugbyPrefWindow, rugby_pref_window, ADW_TYPE_PREFERENCES_WINDOW)
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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);
}