summaryrefslogtreecommitdiff
path: root/panels/power
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2020-11-25 11:04:34 +1300
committerRobert Ancell <robert.ancell@gmail.com>2020-12-13 20:57:04 +0000
commit1d11ba552d50a628798a5d28fd4716652d71af50 (patch)
tree1f79b7a0fb25ebe3e798b3398b278f620275a72b /panels/power
parent3bd01516e3456a0e90d3abbbfa1f2607d20409f8 (diff)
downloadgnome-control-center-1d11ba552d50a628798a5d28fd4716652d71af50.tar.gz
power: Move device UI into GtkBuilder file
Diffstat (limited to 'panels/power')
-rw-r--r--panels/power/cc-power-panel.c80
-rw-r--r--panels/power/cc-power-panel.ui37
2 files changed, 59 insertions, 58 deletions
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
index 3a33288c3..71484d5ff 100644
--- a/panels/power/cc-power-panel.c
+++ b/panels/power/cc-power-panel.c
@@ -68,6 +68,9 @@ struct _CcPowerPanel
GtkBox *battery_section;
GtkSizeGroup *battery_sizegroup;
GtkSizeGroup *charge_sizegroup;
+ GtkLabel *device_heading;
+ GtkListBox *device_listbox;
+ GtkBox *device_section;
GtkListStore *idle_time_liststore;
GtkSizeGroup *level_sizegroup;
GtkScrolledWindow *main_scroll;
@@ -94,10 +97,6 @@ struct _CcPowerPanel
GList *boxes;
GList *boxes_reverse;
- GtkWidget *device_heading;
- GtkWidget *device_section;
- GtkWidget *device_list;
-
GtkWidget *dim_screen_row;
GtkWidget *brightness_row;
CcBrightnessScale *brightness_scale;
@@ -325,8 +324,8 @@ add_device (CcPowerPanel *panel, UpDevice *device)
cc_battery_row_set_charge_sizegroup (row, panel->charge_sizegroup);
cc_battery_row_set_battery_sizegroup (row, panel->battery_sizegroup);
- gtk_container_add (GTK_CONTAINER (panel->device_list), GTK_WIDGET (row));
- gtk_widget_set_visible (panel->device_section, TRUE);
+ gtk_container_add (GTK_CONTAINER (panel->device_listbox), GTK_WIDGET (row));
+ gtk_widget_set_visible (GTK_WIDGET (panel->device_section), TRUE);
}
static void
@@ -347,10 +346,10 @@ up_client_changed (CcPowerPanel *self)
gtk_container_remove (GTK_CONTAINER (self->battery_listbox), l->data);
gtk_widget_hide (GTK_WIDGET (self->battery_section));
- device_children = gtk_container_get_children (GTK_CONTAINER (self->device_list));
+ device_children = gtk_container_get_children (GTK_CONTAINER (self->device_listbox));
for (l = device_children; l != NULL; l = l->next)
- gtk_container_remove (GTK_CONTAINER (self->device_list), l->data);
- gtk_widget_hide (self->device_section);
+ gtk_container_remove (GTK_CONTAINER (self->device_listbox), l->data);
+ gtk_widget_hide (GTK_WIDGET (self->device_section));
#ifdef TEST_FAKE_DEVICES
{
@@ -2073,54 +2072,6 @@ battery_sort_func (GtkListBoxRow *a, GtkListBoxRow *b, gpointer data)
}
static void
-add_device_section (CcPowerPanel *self)
-{
- GtkWidget *widget, *box;
- GtkWidget *frame;
- g_autofree gchar *s = NULL;
-
- self->device_section = box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
- gtk_widget_show (box);
- gtk_widget_set_margin_top (box, 6);
- gtk_widget_set_margin_bottom (box, 32);
- gtk_box_pack_start (self->power_vbox, box, FALSE, TRUE, 0);
-
- s = g_markup_printf_escaped ("<b>%s</b>", _("Devices"));
- self->device_heading = widget = gtk_label_new (s);
- gtk_widget_show (widget);
- gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
- gtk_label_set_xalign (GTK_LABEL (widget), 0.0);
- gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
- gtk_widget_set_halign (widget, GTK_ALIGN_START);
- gtk_widget_set_margin_bottom (widget, 12);
- gtk_box_pack_start (GTK_BOX (box), widget, FALSE, TRUE, 0);
-
- self->device_list = widget = gtk_list_box_new ();
- gtk_widget_show (widget);
- self->boxes_reverse = g_list_prepend (self->boxes_reverse, self->device_list);
- g_signal_connect_object (widget, "keynav-failed", G_CALLBACK (keynav_failed_cb), self, G_CONNECT_SWAPPED);
- gtk_list_box_set_selection_mode (GTK_LIST_BOX (widget), GTK_SELECTION_NONE);
- gtk_list_box_set_header_func (GTK_LIST_BOX (widget),
- cc_list_box_update_header_func,
- NULL, NULL);
- gtk_list_box_set_sort_func (GTK_LIST_BOX (widget),
- (GtkListBoxSortFunc)battery_sort_func, NULL, NULL);
-
- atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (self->device_heading)),
- ATK_RELATION_LABEL_FOR,
- ATK_OBJECT (gtk_widget_get_accessible (self->device_list)));
- atk_object_add_relationship (ATK_OBJECT (gtk_widget_get_accessible (self->device_list)),
- ATK_RELATION_LABELLED_BY,
- ATK_OBJECT (gtk_widget_get_accessible (self->device_heading)));
-
- frame = gtk_frame_new (NULL);
- gtk_widget_show (frame);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
- gtk_container_add (GTK_CONTAINER (frame), widget);
- gtk_box_pack_start (GTK_BOX (box), frame, FALSE, TRUE, 0);
-}
-
-static void
cc_power_panel_class_init (CcPowerPanelClass *klass)
{
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
@@ -2140,6 +2091,9 @@ cc_power_panel_class_init (CcPowerPanelClass *klass)
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_section);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, battery_sizegroup);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, charge_sizegroup);
+ gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_heading);
+ gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_listbox);
+ gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, device_section);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, idle_time_liststore);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, level_sizegroup);
gtk_widget_class_bind_template_child (widget_class, CcPowerPanel, main_scroll);
@@ -2162,6 +2116,7 @@ static void
cc_power_panel_init (CcPowerPanel *self)
{
g_autofree gchar *battery_label = NULL;
+ g_autofree gchar *device_label = NULL;
guint i;
g_resources_register (cc_power_get_resource ());
@@ -2188,7 +2143,16 @@ cc_power_panel_init (CcPowerPanel *self)
gtk_list_box_set_sort_func (self->battery_listbox,
(GtkListBoxSortFunc)battery_sort_func, NULL, NULL);
- add_device_section (self);
+ device_label = g_markup_printf_escaped ("<b>%s</b>", _("Devices"));
+ gtk_label_set_markup (self->device_heading, device_label);
+
+ self->boxes_reverse = g_list_prepend (self->boxes_reverse, self->device_listbox);
+ gtk_list_box_set_header_func (self->device_listbox,
+ cc_list_box_update_header_func,
+ NULL, NULL);
+ gtk_list_box_set_sort_func (self->device_listbox,
+ (GtkListBoxSortFunc)battery_sort_func, NULL, NULL);
+
add_power_profiles_section (self);
add_power_saving_section (self);
add_general_section (self);
diff --git a/panels/power/cc-power-panel.ui b/panels/power/cc-power-panel.ui
index 1204d9ddf..a2c89458b 100644
--- a/panels/power/cc-power-panel.ui
+++ b/panels/power/cc-power-panel.ui
@@ -165,6 +165,43 @@
</child>
</object>
</child>
+ <child>
+ <object class="GtkBox" id="device_section">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">32</property>
+ <child>
+ <object class="GtkLabel" id="device_heading">
+ <property name="visible">True</property>
+ <property name="ellipsize">end</property>
+ <property name="xalign">0</property>
+ <property name="use-markup">True</property>
+ <property name="halign">start</property>
+ <property name="margin_bottom">12</property>
+ <accessibility>
+ <relation target="device_listbox" type="label-for"/>
+ </accessibility>
+ </object>
+ </child>
+ <child>
+ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkListBox" id="device_listbox">
+ <property name="visible">True</property>
+ <property name="selection-mode">none</property>
+ <signal name="keynav-failed" handler="keynav_failed_cb" object="CcPowerPanel" swapped="yes"/>
+ <accessibility>
+ <relation target="device_heading" type="labelled-by"/>
+ </accessibility>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
</child>
</object>