[annum] Reworked widget creation code to make it easier to read
- From: Gustavo Noronha Silva <gns src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [annum] Reworked widget creation code to make it easier to read
- Date: Wed, 24 Feb 2010 19:23:20 +0000 (UTC)
commit f6d88ef68af478f66fc9c89ee7508648d06a1f3b
Author: Gustavo Noronha Silva <gustavo noronha collabora co uk>
Date: Wed Jan 27 16:07:31 2010 -0200
Reworked widget creation code to make it easier to read
The code tried to be generic, but failed at being readable. This tries
to fix it.
src/annum-shell-sidebar.c | 64 ++++++++++++++++++++++++++-------------------
1 files changed, 37 insertions(+), 27 deletions(-)
---
diff --git a/src/annum-shell-sidebar.c b/src/annum-shell-sidebar.c
index 83f5f22..5f44751 100644
--- a/src/annum-shell-sidebar.c
+++ b/src/annum-shell-sidebar.c
@@ -40,7 +40,10 @@ G_DEFINE_TYPE (AnnumShellSidebar, annum_shell_sidebar, E_TYPE_SHELL_SIDEBAR)
struct _AnnumShellSidebarPrivate {
GtkWidget *paned;
+ GtkWidget *vbox;
+
GtkWidget *selector;
+
GtkWidget *date_navigator;
/* UID -> Client */
@@ -335,6 +338,11 @@ static void annum_shell_sidebar_dispose (GObject * object)
priv->paned = NULL;
}
+ if (priv->vbox != NULL) {
+ g_object_unref (priv->vbox);
+ priv->vbox = NULL;
+ }
+
if (priv->selector != NULL) {
g_object_unref (priv->selector);
priv->selector = NULL;
@@ -373,10 +381,9 @@ static void annum_shell_sidebar_constructed (GObject * object)
ESourceList *source_list;
ESource *source;
ECalendarItem *calitem;
+ GtkWidget *widget;
GConfBridge *bridge;
GtkTreeModel *model;
- GtkWidget *container;
- GtkWidget *widget;
AtkObject *a11y;
GSList *list, *iter;
const gchar *key;
@@ -398,43 +405,46 @@ static void annum_shell_sidebar_constructed (GObject * object)
annum_shell_backend_get_source_list (ANNUM_SHELL_BACKEND
(shell_backend));
- container = GTK_WIDGET (shell_sidebar);
-
- widget = gtk_vpaned_new ();
- gtk_container_add (GTK_CONTAINER (container), widget);
- priv->paned = g_object_ref (widget);
- gtk_widget_show (widget);
-
- container = widget;
-
+ /* Paned - main divisor of the side bar */
+ priv->paned = gtk_vpaned_new ();
+ gtk_container_add (GTK_CONTAINER (shell_sidebar), priv->paned);
+ g_object_ref (priv->paned);
+ gtk_widget_show (priv->paned);
+
+ /* VBox that separates the calendar chooser from the add button,
+ * first part of the paned.
+ */
+ priv->vbox = gtk_vbox_new (FALSE, 0);
+ gtk_paned_pack1 (GTK_PANED (priv->paned), priv->vbox, TRUE, TRUE);
+ g_object_ref (priv->vbox);
+ gtk_widget_show (priv->vbox);
+
+ /* Scrolled window, with the calendar selector */
widget = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (priv->vbox), widget);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (widget),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (widget),
GTK_SHADOW_IN);
- gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, TRUE);
gtk_widget_show (widget);
- container = widget;
-
- widget = e_calendar_selector_new (source_list);
- e_source_selector_set_select_new (E_SOURCE_SELECTOR (widget), TRUE);
- gtk_container_add (GTK_CONTAINER (container), widget);
- a11y = gtk_widget_get_accessible (widget);
+ priv->selector = e_calendar_selector_new (source_list);
+ e_source_selector_set_select_new (E_SOURCE_SELECTOR (priv->selector), TRUE);
+ gtk_container_add (GTK_CONTAINER (widget), priv->selector);
+ a11y = gtk_widget_get_accessible (priv->selector);
atk_object_set_name (a11y, _("Calendar Selector"));
- priv->selector = g_object_ref (widget);
- gtk_widget_show (widget);
-
- container = priv->paned;
+ priv->selector = g_object_ref (priv->selector);
+ gtk_widget_show (priv->selector);
- widget = e_calendar_new ();
- calitem = E_CALENDAR (widget)->calitem;
+ /* Mini-calendar (date navigator) - second part of the paned. */
+ priv->date_navigator = e_calendar_new ();
+ gtk_paned_pack2 (GTK_PANED (priv->paned), priv->date_navigator, FALSE, TRUE);
+ calitem = E_CALENDAR (priv->date_navigator)->calitem;
e_calendar_item_set_days_start_week_sel (calitem, 9);
e_calendar_item_set_max_days_sel (calitem, 42);
- gtk_paned_pack2 (GTK_PANED (container), widget, FALSE, TRUE);
- priv->date_navigator = g_object_ref (widget);
- gtk_widget_show (widget);
+ g_object_ref (priv->date_navigator);
+ gtk_widget_show (priv->date_navigator);
e_binding_new (shell_settings, "cal-show-week-numbers",
calitem, "show-week-numbers");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]