From d1d717db7d880a7bbe66fa645a3e0657f1d56b15 Mon Sep 17 00:00:00 2001 From: Fernando Farfan Date: Sun, 16 Jun 2013 21:58:53 -0700 Subject: Added topbar hboxes to further contain topbar widgets. Added individual topbar hboxes that will further contain topbar widgets. These hboxes will be set with the preferred properties, withtout interfering with the widgets' properties. [endlessm/eos-sdk#97] --- endless/eostopbar.c | 53 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 10 deletions(-) (limited to 'endless') diff --git a/endless/eostopbar.c b/endless/eostopbar.c index 5a60d90..59ca39d 100644 --- a/endless/eostopbar.c +++ b/endless/eostopbar.c @@ -29,6 +29,8 @@ G_DEFINE_TYPE (EosTopBar, eos_top_bar, GTK_TYPE_EVENT_BOX) struct _EosTopBarPrivate { GtkWidget *actions_hbox; + GtkWidget *left_top_bar_hbox; + GtkWidget *center_top_bar_hbox; GtkWidget *left_top_bar_widget; GtkWidget *center_top_bar_widget; @@ -119,9 +121,24 @@ eos_top_bar_init (EosTopBar *self) gtk_widget_set_hexpand (GTK_WIDGET (self), TRUE); - self->priv->actions_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + self->priv->actions_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_hexpand (self->priv->actions_hbox, TRUE); + self->priv->left_top_bar_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + self->priv->center_top_bar_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + + // Global properties for top_bar_hbox'es ... + gtk_widget_set_halign (GTK_WIDGET (self->priv->left_top_bar_hbox), + GTK_ALIGN_CENTER); + gtk_widget_set_valign (GTK_WIDGET (self->priv->left_top_bar_hbox), + GTK_ALIGN_CENTER); + + gtk_widget_set_hexpand (self->priv->center_top_bar_hbox, TRUE); + gtk_widget_set_halign (GTK_WIDGET (self->priv->center_top_bar_hbox), + GTK_ALIGN_CENTER); + gtk_widget_set_valign (GTK_WIDGET (self->priv->center_top_bar_hbox), + GTK_ALIGN_CENTER); + /* TODO implement adding actions and widgets to the actions_hbox */ self->priv->minimize_button = gtk_button_new (); @@ -140,6 +157,13 @@ eos_top_bar_init (EosTopBar *self) gtk_button_set_image (GTK_BUTTON (self->priv->close_button), self->priv->close_icon); + gtk_box_pack_start (GTK_BOX (self->priv->actions_hbox), + self->priv->left_top_bar_hbox, + FALSE, FALSE, _EOS_TOP_BAR_BUTTON_PADDING_PX); + gtk_box_pack_start (GTK_BOX (self->priv->actions_hbox), + self->priv->center_top_bar_hbox, + FALSE, FALSE, _EOS_TOP_BAR_BUTTON_PADDING_PX); + gtk_box_pack_end (GTK_BOX (self->priv->actions_hbox), self->priv->close_button, FALSE, FALSE, _EOS_TOP_BAR_BUTTON_PADDING_PX); @@ -175,6 +199,9 @@ void eos_top_bar_set_left_widget (EosTopBar *self, GtkWidget *left_top_bar_widget) { + /* TODO Remove */ + GdkRGBA gray = {0.75, 0.75, 0.75, 1.0}; + g_return_if_fail (EOS_IS_TOP_BAR (self)); g_return_if_fail (left_top_bar_widget == NULL || GTK_IS_WIDGET (left_top_bar_widget)); @@ -189,12 +216,14 @@ eos_top_bar_set_left_widget (EosTopBar *self, priv->left_top_bar_widget = left_top_bar_widget; if (left_top_bar_widget) { - gtk_widget_set_halign (GTK_WIDGET (left_top_bar_widget), GTK_ALIGN_CENTER); - gtk_widget_set_valign (GTK_WIDGET (left_top_bar_widget), GTK_ALIGN_CENTER); + /* TODO Remove */ + gtk_widget_override_color (priv->left_top_bar_hbox, + GTK_STATE_FLAG_NORMAL, + &gray); - gtk_box_pack_start (GTK_BOX (priv->actions_hbox), + gtk_box_pack_start (GTK_BOX (priv->left_top_bar_hbox), left_top_bar_widget, - TRUE, TRUE, 0); + FALSE, FALSE, 0); } } @@ -209,6 +238,9 @@ void eos_top_bar_set_center_widget (EosTopBar *self, GtkWidget *center_top_bar_widget) { + /* TODO Remove */ + GdkRGBA gray = {0.75, 0.75, 0.75, 1.0}; + g_return_if_fail (EOS_IS_TOP_BAR (self)); g_return_if_fail (center_top_bar_widget == NULL || GTK_IS_WIDGET (center_top_bar_widget)); @@ -223,12 +255,13 @@ eos_top_bar_set_center_widget (EosTopBar *self, priv->center_top_bar_widget = center_top_bar_widget; if (center_top_bar_widget) { - gtk_widget_set_halign (GTK_WIDGET (center_top_bar_widget), GTK_ALIGN_CENTER); - gtk_widget_set_valign (GTK_WIDGET (center_top_bar_widget), GTK_ALIGN_CENTER); - gtk_widget_set_hexpand (GTK_WIDGET (center_top_bar_widget), TRUE); + /* TODO Remove */ + gtk_widget_override_color (priv->center_top_bar_hbox, + GTK_STATE_FLAG_NORMAL, + &gray); - gtk_box_pack_start (GTK_BOX (priv->actions_hbox), + gtk_box_pack_start (GTK_BOX (priv->center_top_bar_hbox), center_top_bar_widget, - TRUE, TRUE, 0); + FALSE, FALSE, 0); } } -- cgit v1.2.3