summaryrefslogtreecommitdiff
path: root/endless
diff options
context:
space:
mode:
authorFernando Farfan <fernando@endlessm.com>2013-06-17 12:49:18 -0700
committerFernando Farfan <fernando@endlessm.com>2013-06-17 14:19:36 -0700
commitd3bab0c4d20aa98a04cdb81d65a9733f73a4c600 (patch)
tree9c748ccad0d4202692c9bad998efa0f9be8e2327 /endless
parentd1d717db7d880a7bbe66fa645a3e0657f1d56b15 (diff)
Addressed code review comments.
Several edits to address code review comments: - eostopbar.c: Switched the left&center top bar hboxes to alignments. - eostopbar.c: Replaced gtk_widget_destroy with gtk_container_remove. - eospagemanager.c: added dispose() virtual function to unref topbar widgets. [endlessm/eos-sdk#97]
Diffstat (limited to 'endless')
-rw-r--r--endless/eospagemanager.c18
-rw-r--r--endless/eostopbar.c65
2 files changed, 40 insertions, 43 deletions
diff --git a/endless/eospagemanager.c b/endless/eospagemanager.c
index 432ab88..fd3c4d5 100644
--- a/endless/eospagemanager.c
+++ b/endless/eospagemanager.c
@@ -167,6 +167,13 @@ page_info_free (EosPageManagerPageInfo *info)
g_slice_free (EosPageManagerPageInfo, info);
}
+static void
+top_bars_unref (EosPageManagerPageInfo *info)
+{
+ g_object_unref (info->left_topbar_widget);
+ g_object_unref (info->center_topbar_widget);
+}
+
/*
* find_page_info_by_widget:
* @self: the page manager
@@ -318,6 +325,16 @@ eos_page_manager_set_property (GObject *object,
}
static void
+eos_page_manager_dispose (GObject *object)
+{
+ EosPageManager *self = EOS_PAGE_MANAGER (object);
+
+ g_list_foreach (self->priv->page_info, (GFunc)top_bars_unref, NULL);
+
+ G_OBJECT_CLASS (eos_page_manager_parent_class)->dispose (object);
+}
+
+static void
eos_page_manager_finalize (GObject *object)
{
EosPageManager *self = EOS_PAGE_MANAGER (object);
@@ -620,6 +637,7 @@ eos_page_manager_class_init (EosPageManagerClass *klass)
object_class->get_property = eos_page_manager_get_property;
object_class->set_property = eos_page_manager_set_property;
+ object_class->dispose = eos_page_manager_dispose;
object_class->finalize = eos_page_manager_finalize;
/* Pass all size requesting and allocation on to the stack */
diff --git a/endless/eostopbar.c b/endless/eostopbar.c
index 59ca39d..d8516bd 100644
--- a/endless/eostopbar.c
+++ b/endless/eostopbar.c
@@ -29,8 +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_attach;
+ GtkWidget *center_top_bar_attach;
GtkWidget *left_top_bar_widget;
GtkWidget *center_top_bar_widget;
@@ -124,20 +124,15 @@ eos_top_bar_init (EosTopBar *self)
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);
+ self->priv->left_top_bar_attach = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
+ self->priv->center_top_bar_attach = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
+
+ /* TODO Remove foreground override; for now, it is useful for smoke tests */
+ GdkRGBA gray = {0.75, 0.75, 0.75, 1.0};
+ gtk_widget_override_color (self->priv->left_top_bar_attach,
+ GTK_STATE_FLAG_NORMAL, &gray);
+ gtk_widget_override_color (self->priv->center_top_bar_attach,
+ GTK_STATE_FLAG_NORMAL, &gray);
/* TODO implement adding actions and widgets to the actions_hbox */
@@ -158,11 +153,11 @@ eos_top_bar_init (EosTopBar *self)
self->priv->close_icon);
gtk_box_pack_start (GTK_BOX (self->priv->actions_hbox),
- self->priv->left_top_bar_hbox,
+ self->priv->left_top_bar_attach,
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);
+ self->priv->center_top_bar_attach,
+ TRUE, FALSE, _EOS_TOP_BAR_BUTTON_PADDING_PX);
gtk_box_pack_end (GTK_BOX (self->priv->actions_hbox),
self->priv->close_button,
@@ -199,9 +194,6 @@ 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));
@@ -211,19 +203,14 @@ eos_top_bar_set_left_widget (EosTopBar *self,
return;
if (priv->left_top_bar_widget)
- gtk_widget_destroy (priv->left_top_bar_widget);
+ gtk_container_remove (GTK_CONTAINER (priv->left_top_bar_attach),
+ priv->left_top_bar_widget);
priv->left_top_bar_widget = left_top_bar_widget;
if (left_top_bar_widget)
{
- /* TODO Remove */
- gtk_widget_override_color (priv->left_top_bar_hbox,
- GTK_STATE_FLAG_NORMAL,
- &gray);
-
- gtk_box_pack_start (GTK_BOX (priv->left_top_bar_hbox),
- left_top_bar_widget,
- FALSE, FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (priv->left_top_bar_attach),
+ priv->left_top_bar_widget);
}
}
@@ -238,9 +225,6 @@ 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));
@@ -250,18 +234,13 @@ eos_top_bar_set_center_widget (EosTopBar *self,
return;
if (priv->center_top_bar_widget)
- gtk_widget_destroy (priv->center_top_bar_widget);
+ gtk_container_remove (GTK_CONTAINER (priv->center_top_bar_attach),
+ priv->center_top_bar_widget);
priv->center_top_bar_widget = center_top_bar_widget;
if (center_top_bar_widget)
{
- /* TODO Remove */
- gtk_widget_override_color (priv->center_top_bar_hbox,
- GTK_STATE_FLAG_NORMAL,
- &gray);
-
- gtk_box_pack_start (GTK_BOX (priv->center_top_bar_hbox),
- center_top_bar_widget,
- FALSE, FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (priv->center_top_bar_attach),
+ priv->center_top_bar_widget);
}
}