diff options
author | Ian Douglas Scott <idscott@system76.com> | 2020-08-05 13:55:07 -0700 |
---|---|---|
committer | Robert Ancell <robert.ancell@gmail.com> | 2020-08-18 03:01:02 +0000 |
commit | 3893a1da77d6afcc663225f4832df11bb8177fce (patch) | |
tree | 0b2d079aa6a4ba122e8c602a4444cab661eb31c4 /panels/power | |
parent | fd60c313dfe5397992b7830ce0c0cbf1ed577395 (diff) | |
download | gnome-control-center-3893a1da77d6afcc663225f4832df11bb8177fce.tar.gz |
power: Refactor brightness scale code into a CcBrightnessScale class
This reduces some redundancy between the screen brightness and keyboard
brightness code.
Such refactoring is a prerequisite for including a keyboard backlight
control in the Keyboard panel, as has been [proposed][1]. But hopefully
this makes the code a bit neater and more managable even without that.
[1]: https://gitlab.gnome.org/Teams/Design/settings-mockups/-/blob/master/keyboard/Keyboard-with-dialogs.png
Diffstat (limited to 'panels/power')
-rw-r--r-- | panels/power/cc-brightness-scale.c | 282 | ||||
-rw-r--r-- | panels/power/cc-brightness-scale.h | 38 | ||||
-rw-r--r-- | panels/power/cc-power-panel.c | 286 | ||||
-rw-r--r-- | panels/power/meson.build | 9 |
4 files changed, 372 insertions, 243 deletions
diff --git a/panels/power/cc-brightness-scale.c b/panels/power/cc-brightness-scale.c new file mode 100644 index 000000000..517177771 --- /dev/null +++ b/panels/power/cc-brightness-scale.c @@ -0,0 +1,282 @@ +/* cc-brightness-scale.c + * + * Copyright (C) 2010 Red Hat, Inc + * Copyright (C) 2008 William Jon McCann <jmccann@redhat.com> + * Copyright (C) 2010,2015 Richard Hughes <richard@hughsie.com> + * Copyright (C) 2020 System76, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <http://www.gnu.org/licenses/>. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "cc-brightness-scale.h" +#include "shell/cc-object-storage.h" + +struct _CcBrightnessScale { + GtkScale parent_instance; + + GCancellable *cancellable; + BrightnessDevice device; + gboolean has_brightness; + GDBusProxy *proxy; + gboolean setting_brightness; +}; + +enum +{ + PROP_0, + PROP_HAS_BRIGHTNESS, + PROP_DEVICE, +}; + +G_DEFINE_TYPE (CcBrightnessScale, cc_brightness_scale, GTK_TYPE_SCALE) + +static void +set_brightness_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + g_autoptr(GError) error = NULL; + g_autoptr(GVariant) result = NULL; + GDBusProxy *proxy = G_DBUS_PROXY (source_object); + + result = g_dbus_proxy_call_finish (proxy, res, &error); + if (result == NULL) + { + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + g_printerr ("Error setting brightness: %s\n", error->message); + return; + } + + CcBrightnessScale *self = CC_BRIGHTNESS_SCALE (user_data); + + /* not setting, so pay attention to changed signals */ + self->setting_brightness = FALSE; +} + +static void +brightness_slider_value_changed_cb (CcBrightnessScale *self, GtkRange *range) +{ + guint percentage; + g_autoptr(GVariant) variant = NULL; + + percentage = (guint) gtk_range_get_value (range); + + /* do not loop */ + if (self->setting_brightness) + return; + + self->setting_brightness = TRUE; + + if (self->device == BRIGHTNESS_DEVICE_KBD) + variant = g_variant_new_parsed ("('org.gnome.SettingsDaemon.Power.Keyboard'," + "'Brightness', %v)", + g_variant_new_int32 (percentage)); + else + variant = g_variant_new_parsed ("('org.gnome.SettingsDaemon.Power.Screen'," + "'Brightness', %v)", + g_variant_new_int32 (percentage)); + + /* push this to g-s-d */ + g_dbus_proxy_call (self->proxy, + "org.freedesktop.DBus.Properties.Set", + g_variant_ref_sink (variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + self->cancellable, + set_brightness_cb, + self); +} + +static void +sync_brightness (CcBrightnessScale *self) +{ + g_autoptr(GVariant) result = NULL; + gint brightness; + GtkRange *range; + + result = g_dbus_proxy_get_cached_property (self->proxy, "Brightness"); + + if (result) + { + /* set the slider */ + brightness = g_variant_get_int32 (result); + self->has_brightness = brightness >= 0.0; + } + else + { + self->has_brightness = FALSE; + } + + g_object_notify (G_OBJECT (self), "has-brightness"); + + if (self->has_brightness) + { + range = GTK_RANGE (self); + self->setting_brightness = TRUE; + gtk_range_set_value (range, brightness); + self->setting_brightness = FALSE; + } +} + +static void +got_proxy_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + g_autoptr(GError) error = NULL; + CcBrightnessScale *self; + GDBusProxy *proxy; + + self = CC_BRIGHTNESS_SCALE (user_data); + + proxy = cc_object_storage_create_dbus_proxy_finish (res, &error); + if (proxy == NULL) + { + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + g_printerr ("Error creating proxy: %s\n", error->message); + return; + } + + self->proxy = proxy; + + g_signal_connect_object (proxy, "g-properties-changed", + G_CALLBACK (sync_brightness), self, G_CONNECT_SWAPPED); + + sync_brightness (self); +} + +static void +cc_brightness_scale_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + CcBrightnessScale *self; + + self = CC_BRIGHTNESS_SCALE (object); + + switch (prop_id) { + case PROP_HAS_BRIGHTNESS: + g_value_set_boolean (value, self->has_brightness); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +cc_brightness_scale_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + CcBrightnessScale *self; + + self = CC_BRIGHTNESS_SCALE (object); + + switch (prop_id) { + case PROP_DEVICE: + self->device = g_value_get_enum (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +cc_brightness_scale_constructed (GObject *object) +{ + CcBrightnessScale *self; + const gchar *interface; + + G_OBJECT_CLASS (cc_brightness_scale_parent_class)->constructed (object); + + self = CC_BRIGHTNESS_SCALE (object); + + self->cancellable = g_cancellable_new(); + + g_signal_connect_object (GTK_SCALE (self), "value-changed", + G_CALLBACK (brightness_slider_value_changed_cb), self, G_CONNECT_SWAPPED); + + if (self->device == BRIGHTNESS_DEVICE_KBD) + interface = "org.gnome.SettingsDaemon.Power.Keyboard"; + else + interface = "org.gnome.SettingsDaemon.Power.Screen"; + + cc_object_storage_create_dbus_proxy (G_BUS_TYPE_SESSION, + G_DBUS_PROXY_FLAGS_NONE, + "org.gnome.SettingsDaemon.Power", + "/org/gnome/SettingsDaemon/Power", + interface, + self->cancellable, + got_proxy_cb, + self); + + gtk_range_set_range (GTK_RANGE (self), 0, 100); + gtk_range_set_increments (GTK_RANGE (self), 1, 10); + gtk_range_set_round_digits (GTK_RANGE (self), 0); + gtk_scale_set_draw_value (GTK_SCALE (self), FALSE); +} + +static void +cc_brightness_scale_finalize (GObject *object) +{ + CcBrightnessScale *self = CC_BRIGHTNESS_SCALE (object); + + g_cancellable_cancel (self->cancellable); + + G_OBJECT_CLASS (cc_brightness_scale_parent_class)->finalize (object); +} + +void +cc_brightness_scale_class_init (CcBrightnessScaleClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->get_property = cc_brightness_scale_get_property; + object_class->set_property = cc_brightness_scale_set_property; + object_class->constructed = cc_brightness_scale_constructed; + object_class->finalize = cc_brightness_scale_finalize; + + g_object_class_install_property (object_class, + PROP_DEVICE, + g_param_spec_enum ("device", + "device", + "device", + brightness_device_get_type(), + BRIGHTNESS_DEVICE_SCREEN, + G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE)); + + g_object_class_install_property (object_class, + PROP_HAS_BRIGHTNESS, + g_param_spec_boolean ("has-brightness", + "has brightness", + "has brightness", + FALSE, + G_PARAM_READABLE)); +} + +static void +cc_brightness_scale_init (CcBrightnessScale *self) +{ +} + + +gboolean +cc_brightness_scale_get_has_brightness (CcBrightnessScale *self) +{ + g_return_val_if_fail (CC_IS_BRIGHTNESS_SCALE (self), FALSE); + + return self->has_brightness; +} diff --git a/panels/power/cc-brightness-scale.h b/panels/power/cc-brightness-scale.h new file mode 100644 index 000000000..b55d05b33 --- /dev/null +++ b/panels/power/cc-brightness-scale.h @@ -0,0 +1,38 @@ +/* cc-brightness-scale.h + * + * Copyright (C) 2020 System76, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <http://www.gnu.org/licenses/>. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#pragma once + +#include <gtk/gtk.h> +#include "cc-brightness-scale-types.h" + +G_BEGIN_DECLS + +typedef enum { + BRIGHTNESS_DEVICE_SCREEN, + BRIGHTNESS_DEVICE_KBD, +} BrightnessDevice; + +#define CC_TYPE_BRIGHTNESS_SCALE (cc_brightness_scale_get_type()) +G_DECLARE_FINAL_TYPE (CcBrightnessScale, cc_brightness_scale, CC, BRIGHTNESS_SCALE, GtkBox) + +gboolean cc_brightness_scale_get_has_brightness (CcBrightnessScale*); + +G_END_DECLS diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c index e565ee934..044f633f9 100644 --- a/panels/power/cc-power-panel.c +++ b/panels/power/cc-power-panel.c @@ -31,6 +31,7 @@ #include "shell/cc-object-storage.h" #include "list-box-helper.h" +#include "cc-brightness-scale.h" #include "cc-power-panel.h" #include "cc-power-resources.h" #include "cc-util.h" @@ -75,8 +76,6 @@ struct _CcPowerPanel GtkListStore *liststore_power_button; UpClient *up_client; GPtrArray *devices; - GDBusProxy *screen_proxy; - GDBusProxy *kbd_proxy; gboolean has_batteries; char *chassis_type; @@ -99,11 +98,9 @@ struct _CcPowerPanel GtkWidget *dim_screen_row; GtkWidget *brightness_row; - GtkWidget *brightness_scale; - gboolean setting_brightness; + CcBrightnessScale *brightness_scale; GtkWidget *kbd_brightness_row; - GtkWidget *kbd_brightness_scale; - gboolean kbd_setting_brightness; + CcBrightnessScale *kbd_brightness_scale; GtkWidget *automatic_suspend_row; GtkWidget *automatic_suspend_label; @@ -150,8 +147,6 @@ cc_power_panel_dispose (GObject *object) g_clear_object (&self->session_settings); g_clear_object (&self->interface_settings); g_clear_pointer (&self->automatic_suspend_dialog, gtk_widget_destroy); - g_clear_object (&self->screen_proxy); - g_clear_object (&self->kbd_proxy); g_clear_pointer (&self->devices, g_ptr_array_unref); g_clear_object (&self->up_client); g_clear_object (&self->bt_rfkill); @@ -1035,144 +1030,6 @@ up_client_device_added (CcPowerPanel *self, } static void -set_brightness_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) -{ - CcPowerPanel *self = CC_POWER_PANEL (user_data); - g_autoptr(GError) error = NULL; - g_autoptr(GVariant) result = NULL; - GDBusProxy *proxy = G_DBUS_PROXY (source_object); - - /* not setting, so pay attention to changed signals */ - if (proxy == self->screen_proxy) - self->setting_brightness = FALSE; - else if (proxy == self->kbd_proxy) - self->kbd_setting_brightness = FALSE; - - result = g_dbus_proxy_call_finish (proxy, res, &error); - if (result == NULL) - { - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - g_printerr ("Error setting brightness: %s\n", error->message); - return; - } -} - -static void -brightness_slider_value_changed_cb (CcPowerPanel *self, GtkRange *range) -{ - guint percentage; - g_autoptr(GVariant) variant = NULL; - GDBusProxy *proxy; - - percentage = (guint) gtk_range_get_value (range); - - if (range == GTK_RANGE (self->brightness_scale)) - { - /* do not loop */ - if (self->setting_brightness) - return; - - self->setting_brightness = TRUE; - proxy = self->screen_proxy; - - variant = g_variant_new_parsed ("('org.gnome.SettingsDaemon.Power.Screen'," - "'Brightness', %v)", - g_variant_new_int32 (percentage)); - } - else - { - /* do not loop */ - if (self->kbd_setting_brightness) - return; - - self->kbd_setting_brightness = TRUE; - proxy = self->kbd_proxy; - - variant = g_variant_new_parsed ("('org.gnome.SettingsDaemon.Power.Keyboard'," - "'Brightness', %v)", - g_variant_new_int32 (percentage)); - } - - /* push this to g-s-d */ - g_dbus_proxy_call (proxy, - "org.freedesktop.DBus.Properties.Set", - g_variant_ref_sink (variant), - G_DBUS_CALL_FLAGS_NONE, - -1, - cc_panel_get_cancellable (CC_PANEL (self)), - set_brightness_cb, - self); -} - -static void -sync_kbd_brightness (CcPowerPanel *self) -{ - g_autoptr(GVariant) result = NULL; - gint brightness; - gboolean visible; - GtkRange *range; - - result = g_dbus_proxy_get_cached_property (self->kbd_proxy, "Brightness"); - if (result) - { - /* set the slider */ - brightness = g_variant_get_int32 (result); - visible = brightness >= 0.0; - } - else - { - visible = FALSE; - } - - gtk_widget_set_visible (self->kbd_brightness_row, visible); - - if (visible) - { - range = GTK_RANGE (self->kbd_brightness_scale); - gtk_range_set_range (range, 0, 100); - gtk_range_set_increments (range, 1, 10); - self->kbd_setting_brightness = TRUE; - gtk_range_set_value (range, brightness); - self->kbd_setting_brightness = FALSE; - } -} - -static void -sync_screen_brightness (CcPowerPanel *self) -{ - g_autoptr(GVariant) result = NULL; - gint brightness; - gboolean visible; - GtkRange *range; - - result = g_dbus_proxy_get_cached_property (self->screen_proxy, "Brightness"); - - if (result) - { - /* set the slider */ - brightness = g_variant_get_int32 (result); - visible = brightness >= 0.0; - } - else - { - visible = FALSE; - } - - gtk_widget_set_visible (self->brightness_row, visible); - gtk_widget_set_visible (self->dim_screen_row, visible); - - if (visible) - { - range = GTK_RANGE (self->brightness_scale); - gtk_range_set_range (range, 0, 100); - gtk_range_set_increments (range, 1, 10); - self->setting_brightness = TRUE; - gtk_range_set_value (range, brightness); - self->setting_brightness = FALSE; - } -} - -static void als_switch_changed (CcPowerPanel *self) { gboolean enabled; @@ -1188,12 +1045,7 @@ als_enabled_state_changed (CcPowerPanel *self) gboolean has_brightness = FALSE; gboolean visible = FALSE; - if (self->screen_proxy != NULL) - { - g_autoptr(GVariant) v = g_dbus_proxy_get_cached_property (self->screen_proxy, "Brightness"); - if (v != NULL) - has_brightness = g_variant_get_int32 (v) >= 0.0; - } + has_brightness = cc_brightness_scale_get_has_brightness (self->brightness_scale); if (self->iio_proxy != NULL) { @@ -1211,69 +1063,6 @@ als_enabled_state_changed (CcPowerPanel *self) } static void -on_screen_property_change (CcPowerPanel *self) -{ - sync_screen_brightness (self); -} - -static void -got_screen_proxy_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) -{ - g_autoptr(GError) error = NULL; - CcPowerPanel *self; - GDBusProxy *screen_proxy; - - screen_proxy = cc_object_storage_create_dbus_proxy_finish (res, &error); - if (screen_proxy == NULL) - { - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - g_printerr ("Error creating screen proxy: %s\n", error->message); - return; - } - - self = CC_POWER_PANEL (user_data); - self->screen_proxy = screen_proxy; - - /* we want to change the bar if the user presses brightness buttons */ - g_signal_connect_object (screen_proxy, "g-properties-changed", - G_CALLBACK (on_screen_property_change), self, G_CONNECT_SWAPPED); - - sync_screen_brightness (self); - als_enabled_state_changed (self); -} - -static void -on_kbd_property_change (CcPowerPanel *self) -{ - sync_kbd_brightness (self); -} - -static void -got_kbd_proxy_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) -{ - CcPowerPanel *self; - g_autoptr(GError) error = NULL; - GDBusProxy *kbd_proxy; - - kbd_proxy = cc_object_storage_create_dbus_proxy_finish (res, &error); - if (kbd_proxy == NULL) - { - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - g_printerr ("Error creating keyboard proxy: %s\n", error->message); - return; - } - - self = CC_POWER_PANEL (user_data); - self->kbd_proxy = kbd_proxy; - - /* we want to change the bar if the user presses brightness buttons */ - g_signal_connect_object (kbd_proxy, "g-properties-changed", - G_CALLBACK (on_kbd_property_change), self, G_CONNECT_SWAPPED); - - sync_kbd_brightness (self); -} - -static void combo_time_changed_cb (CcPowerPanel *self, GtkWidget *widget) { GtkTreeIter iter; @@ -1739,9 +1528,10 @@ combo_power_button_changed_cb (CcPowerPanel *self) } static GtkWidget * -add_brightness_row (CcPowerPanel *self, - const char *text, - GtkWidget **brightness_scale) +add_brightness_row (CcPowerPanel *self, + BrightnessDevice device, + const char *text, + CcBrightnessScale **brightness_scale) { GtkWidget *row, *box, *label, *title, *box2, *w, *scale; @@ -1759,15 +1549,14 @@ add_brightness_row (CcPowerPanel *self, gtk_box_pack_start (GTK_BOX (box2), w, FALSE, TRUE, 0); gtk_size_group_add_widget (self->charge_sizegroup, w); - *brightness_scale = scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, 0, 100, 1); + scale = g_object_new (CC_TYPE_BRIGHTNESS_SCALE, + "device", device, + NULL); gtk_widget_show (scale); gtk_label_set_mnemonic_widget (GTK_LABEL (label), scale); - gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE); gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0); gtk_size_group_add_widget (self->level_sizegroup, scale); - gtk_range_set_round_digits (GTK_RANGE (scale), 0); - g_signal_connect_object (scale, "value-changed", - G_CALLBACK (brightness_slider_value_changed_cb), self, G_CONNECT_SWAPPED); + *brightness_scale = CC_BRIGHTNESS_SCALE (scale); gtk_box_pack_start (GTK_BOX (box), box2, TRUE, TRUE, 0); @@ -2009,6 +1798,32 @@ can_suspend_or_hibernate (CcPowerPanel *self, } static void +has_brightness_cb (CcPowerPanel *self) +{ + gboolean has_brightness; + + has_brightness = cc_brightness_scale_get_has_brightness (self->brightness_scale); + + gtk_widget_set_visible (self->brightness_row, has_brightness); + gtk_widget_set_visible (self->dim_screen_row, has_brightness); + + als_enabled_state_changed (self); + +} + +static void +has_kbd_brightness_cb (CcPowerPanel *self, + GParamSpec *pspec, + GObject *object) +{ + gboolean has_brightness; + + has_brightness = cc_brightness_scale_get_has_brightness (self->kbd_brightness_scale); + + gtk_widget_set_visible (self->kbd_brightness_row, has_brightness); +} + +static void add_power_saving_section (CcPowerPanel *self) { GtkWidget *widget, *box, *label, *row; @@ -2054,7 +1869,9 @@ add_power_saving_section (CcPowerPanel *self) gtk_container_add (GTK_CONTAINER (box), widget); gtk_box_pack_start (GTK_BOX (self->vbox_power), box, FALSE, TRUE, 0); - row = add_brightness_row (self, _("_Screen Brightness"), &self->brightness_scale); + row = add_brightness_row (self, BRIGHTNESS_DEVICE_SCREEN, _("_Screen Brightness"), &self->brightness_scale); + g_signal_connect_object (self->brightness_scale, "notify::has-brightness", + G_CALLBACK (has_brightness_cb), self, G_CONNECT_SWAPPED); gtk_widget_show (row); self->brightness_row = row; @@ -2088,7 +1905,9 @@ add_power_saving_section (CcPowerPanel *self) g_signal_connect_object (self->als_switch, "notify::active", G_CALLBACK (als_switch_changed), self, G_CONNECT_SWAPPED); - row = add_brightness_row (self, _("_Keyboard Brightness"), &self->kbd_brightness_scale); + row = add_brightness_row (self, BRIGHTNESS_DEVICE_KBD, _("_Keyboard Brightness"), &self->kbd_brightness_scale); + g_signal_connect_object (self->kbd_brightness_scale, "notify::has-brightness", + G_CALLBACK (has_kbd_brightness_cb), self, G_CONNECT_SWAPPED); gtk_widget_show (row); self->kbd_brightness_row = row; @@ -2548,23 +2367,6 @@ cc_power_panel_init (CcPowerPanel *self) gtk_widget_init_template (GTK_WIDGET (self)); load_custom_css (self); - cc_object_storage_create_dbus_proxy (G_BUS_TYPE_SESSION, - G_DBUS_PROXY_FLAGS_NONE, - "org.gnome.SettingsDaemon.Power", - "/org/gnome/SettingsDaemon/Power", - "org.gnome.SettingsDaemon.Power.Screen", - cc_panel_get_cancellable (CC_PANEL (self)), - got_screen_proxy_cb, - self); - cc_object_storage_create_dbus_proxy (G_BUS_TYPE_SESSION, - G_DBUS_PROXY_FLAGS_NONE, - "org.gnome.SettingsDaemon.Power", - "/org/gnome/SettingsDaemon/Power", - "org.gnome.SettingsDaemon.Power.Keyboard", - cc_panel_get_cancellable (CC_PANEL (self)), - got_kbd_proxy_cb, - self); - self->chassis_type = get_chassis_type (cc_panel_get_cancellable (CC_PANEL (self))); self->up_client = up_client_new (); diff --git a/panels/power/meson.build b/panels/power/meson.build index 737d86817..1700c91e8 100644 --- a/panels/power/meson.build +++ b/panels/power/meson.build @@ -17,7 +17,14 @@ i18n.merge_file( install_dir: control_center_desktopdir ) -sources = files('cc-power-panel.c') +sources = files( + 'cc-brightness-scale.c', + 'cc-power-panel.c' +) + +sources += gnome.mkenums_simple( + 'cc-brightness-scale-types', + sources: ['cc-brightness-scale.h']) resource_data = files('cc-power-panel.ui') |