Branch data Line data Source code
1 : : // SPDX-License-Identifier: GPL-3.0-or-later
2 : : // SPDX-FileCopyrightText: Andy Holmes <andrew.g.r.holmes@gmail.com>
3 : :
4 : : #define G_LOG_DOMAIN "valent-battery-preferences"
5 : :
6 : : #include "config.h"
7 : :
8 : : #include <glib/gi18n.h>
9 : : #include <adwaita.h>
10 : : #include <gtk/gtk.h>
11 : : #include <valent.h>
12 : :
13 : : #include "valent-device-preferences-battery.h"
14 : :
15 : :
16 : : struct _ValentBatteryPreferences
17 : : {
18 : : ValentDevicePreferencesGroup parent_instance;
19 : :
20 : : /* template */
21 : : AdwExpanderRow *full_notification;
22 : : GtkAdjustment *full_notification_level;
23 : : AdwExpanderRow *low_notification;
24 : : GtkAdjustment *low_notification_level;
25 : : };
26 : :
27 [ + + + - ]: 43 : G_DEFINE_FINAL_TYPE (ValentBatteryPreferences, valent_battery_preferences, VALENT_TYPE_DEVICE_PREFERENCES_GROUP)
28 : :
29 : :
30 : : /*
31 : : * GObject
32 : : */
33 : : static void
34 : 1 : valent_battery_preferences_constructed (GObject *object)
35 : : {
36 : 1 : ValentBatteryPreferences *self = VALENT_BATTERY_PREFERENCES (object);
37 : 1 : ValentDevicePreferencesGroup *group = VALENT_DEVICE_PREFERENCES_GROUP (self);
38 : 1 : GSettings *settings;
39 : :
40 : 1 : settings = valent_device_preferences_group_get_settings (group);
41 : 1 : g_settings_bind (settings, "full-notification",
42 : 1 : self->full_notification, "enable-expansion",
43 : : G_SETTINGS_BIND_DEFAULT);
44 : 1 : g_settings_bind (settings, "full-notification-level",
45 : 1 : self->full_notification_level, "value",
46 : : G_SETTINGS_BIND_DEFAULT);
47 : 1 : g_settings_bind (settings, "low-notification",
48 : 1 : self->low_notification, "enable-expansion",
49 : : G_SETTINGS_BIND_DEFAULT);
50 : 1 : g_settings_bind (settings, "low-notification-level",
51 : 1 : self->low_notification_level, "value",
52 : : G_SETTINGS_BIND_DEFAULT);
53 : :
54 : 1 : G_OBJECT_CLASS (valent_battery_preferences_parent_class)->constructed (object);
55 : 1 : }
56 : :
57 : : static void
58 : 1 : valent_battery_preferences_dispose (GObject *object)
59 : : {
60 : 1 : GtkWidget *widget = GTK_WIDGET (object);
61 : :
62 : 1 : gtk_widget_dispose_template (widget, VALENT_TYPE_BATTERY_PREFERENCES);
63 : :
64 : 1 : G_OBJECT_CLASS (valent_battery_preferences_parent_class)->dispose (object);
65 : 1 : }
66 : :
67 : : static void
68 : 1 : valent_battery_preferences_class_init (ValentBatteryPreferencesClass *klass)
69 : : {
70 : 1 : GObjectClass *object_class = G_OBJECT_CLASS (klass);
71 : 1 : GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
72 : :
73 : 1 : object_class->constructed = valent_battery_preferences_constructed;
74 : 1 : object_class->dispose = valent_battery_preferences_dispose;
75 : :
76 : 1 : gtk_widget_class_set_template_from_resource (widget_class, "/plugins/gnome/valent-device-preferences-battery.ui");
77 : 1 : gtk_widget_class_bind_template_child (widget_class, ValentBatteryPreferences, full_notification);
78 : 1 : gtk_widget_class_bind_template_child (widget_class, ValentBatteryPreferences, full_notification_level);
79 : 1 : gtk_widget_class_bind_template_child (widget_class, ValentBatteryPreferences, low_notification);
80 : 1 : gtk_widget_class_bind_template_child (widget_class, ValentBatteryPreferences, low_notification_level);
81 : 1 : }
82 : :
83 : : static void
84 : 1 : valent_battery_preferences_init (ValentBatteryPreferences *self)
85 : : {
86 : 1 : gtk_widget_init_template (GTK_WIDGET (self));
87 : 1 : }
88 : :
|