diff --git a/data/sm.puri.phosh.gschema.xml b/data/sm.puri.phosh.gschema.xml index 7d034f5b8650f4cc4adc139a3d460c97d9f199ec..92af5b65eae80e6a0a94ada6b04f36af58cfe3f2 100644 --- a/data/sm.puri.phosh.gschema.xml +++ b/data/sm.puri.phosh.gschema.xml @@ -1,4 +1,9 @@ + + + + + @@ -60,6 +65,13 @@ When automatic high contrast is enabled this defines the light level at which to switch. + + 'center' + Clock position in top bar + + Allow vendors to move clock if default position is hidden by a notch + + diff --git a/src/stylesheet/common.css b/src/stylesheet/common.css index bb8960c4117f424041c61bba0b12603688a8ca28..45ea55543ec8c3eb4614498a4b3cbb6fd439396d 100644 --- a/src/stylesheet/common.css +++ b/src/stylesheet/common.css @@ -33,8 +33,8 @@ phosh-top-panel .phosh-topbar-date{ } .phosh-topbar-button { - padding: 0 12px; - border-radius: 99px; + padding: 8px 12px; + border-radius: 50%; } .phosh-osk-button { diff --git a/src/top-panel.c b/src/top-panel.c index 1e04da4e7d28988f5660bbd9e2741a2a717ed194..4b3ae0c8a8356309e2fc6ea080c2e91299fd3bb3 100644 --- a/src/top-panel.c +++ b/src/top-panel.c @@ -53,12 +53,21 @@ enum { }; static guint signals[N_SIGNALS] = { 0 }; +/* Clock position */ +enum { + CLOCK_POSITION_LEFT, + CLOCK_POSITION_RIGHT, +}; + typedef struct _PhoshTopPanel { PhoshDragSurface parent; PhoshTopPanelState state; gboolean on_lockscreen; + /* Top bar */ + GtkWidget *box_top_bar; + /* Top row above settings */ GtkWidget *btn_power; GtkWidget *menu_power; @@ -480,6 +489,7 @@ phosh_top_panel_constructed (GObject *object) { PhoshTopPanel *self = PHOSH_TOP_PANEL (object); GdkDisplay *display = gdk_display_get_default (); + g_autoptr (GSettings) settings = g_settings_new ("sm.puri.phosh"); G_OBJECT_CLASS (phosh_top_panel_parent_class)->constructed (object); @@ -498,6 +508,19 @@ phosh_top_panel_constructed (GObject *object) "visible", G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN); + switch (g_settings_get_enum (settings, "clock-position")) { + case CLOCK_POSITION_LEFT: + gtk_box_pack_start (GTK_BOX (self->box_top_bar), self->lbl_clock, FALSE, FALSE, 5); + gtk_box_reorder_child (GTK_BOX (self->box_top_bar), self->lbl_clock, 0); + break; + case CLOCK_POSITION_RIGHT: + gtk_box_pack_end (GTK_BOX (self->box_top_bar), self->lbl_clock, FALSE, FALSE, 5); + gtk_box_reorder_child (GTK_BOX (self->box_top_bar), self->lbl_clock, 0); + break; + default: + gtk_box_set_center_widget (GTK_BOX (self->box_top_bar), self->lbl_clock); + break; + } self->wall_clock2 = gnome_wall_clock_new (); g_object_set (self->wall_clock2, "time-only", TRUE, NULL); g_signal_connect_object (self->wall_clock2, @@ -680,6 +703,7 @@ phosh_top_panel_class_init (PhoshTopPanelClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/sm/puri/phosh/ui/top-panel.ui"); gtk_widget_class_bind_template_child (widget_class, PhoshTopPanel, arrow); + gtk_widget_class_bind_template_child (widget_class, PhoshTopPanel, box_top_bar); gtk_widget_class_bind_template_child (widget_class, PhoshTopPanel, menu_power); gtk_widget_class_bind_template_child (widget_class, PhoshTopPanel, btn_power); gtk_widget_class_bind_template_child (widget_class, PhoshTopPanel, btn_lock); diff --git a/src/ui/top-panel.ui b/src/ui/top-panel.ui index 3a9694e784b64a56cd17fa518683820dd5b3dd7d..e3d27f6e1b793aa753b12d8d170fb434fd43d7f1 100644 --- a/src/ui/top-panel.ui +++ b/src/ui/top-panel.ui @@ -58,6 +58,8 @@ True panel.lockscreen + center + center @@ -73,10 +75,10 @@ True vertical + 12 True - 2 @@ -97,6 +99,8 @@ True menu_power + center + center @@ -178,18 +182,6 @@ - - - True - False - True - 2 - 00:00 - - - True @@ -248,7 +240,7 @@ end - + top-bar @@ -286,4 +278,14 @@ PhoshTopPanel + + True + False + True + 2 + 00:00 + +