diff options
author | Rodrigo Moya <rodrigo@gnome-db.org> | 2010-12-10 20:15:27 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-06-30 00:41:26 +0800 |
commit | b5aba428f4d7daca78a6b079e1766d9fba5a8bc3 (patch) | |
tree | c8cd9400a62f2cf2b3ba84bd6e6b01774f2b3085 /shell | |
parent | cd633936b1f2f2e8c678dfb4e3e38ba9713e41a4 (diff) | |
download | gsoc2013-evolution-b5aba428f4d7daca78a6b079e1766d9fba5a8bc3.tar gsoc2013-evolution-b5aba428f4d7daca78a6b079e1766d9fba5a8bc3.tar.gz gsoc2013-evolution-b5aba428f4d7daca78a6b079e1766d9fba5a8bc3.tar.bz2 gsoc2013-evolution-b5aba428f4d7daca78a6b079e1766d9fba5a8bc3.tar.lz gsoc2013-evolution-b5aba428f4d7daca78a6b079e1766d9fba5a8bc3.tar.xz gsoc2013-evolution-b5aba428f4d7daca78a6b079e1766d9fba5a8bc3.tar.zst gsoc2013-evolution-b5aba428f4d7daca78a6b079e1766d9fba5a8bc3.zip |
Adapt size_request vfuncs to latest gtk+-3.0 API.
Diffstat (limited to 'shell')
-rw-r--r-- | shell/e-shell-content.c | 50 | ||||
-rw-r--r-- | shell/e-shell-meego.c | 2 | ||||
-rw-r--r-- | shell/e-shell-sidebar.c | 42 | ||||
-rw-r--r-- | shell/e-shell-switcher.c | 62 |
4 files changed, 118 insertions, 38 deletions
diff --git a/shell/e-shell-content.c b/shell/e-shell-content.c index 38b62738be..586b706859 100644 --- a/shell/e-shell-content.c +++ b/shell/e-shell-content.c @@ -213,31 +213,54 @@ shell_content_constructed (GObject *object) } static void -shell_content_size_request (GtkWidget *widget, - GtkRequisition *requisition) +shell_content_get_preferred_width (GtkWidget *widget, + gint *minimum, + gint *natural) { EShellContentPrivate *priv; - GtkRequisition child_requisition; + gint min, nat; + gint child_min, child_nat; GtkWidget *child; priv = E_SHELL_CONTENT_GET_PRIVATE (widget); - requisition->width = 0; - requisition->height = 0; + *minimum = *natural = 0; child = gtk_bin_get_child (GTK_BIN (widget)); - gtk_widget_get_preferred_size (child, requisition, NULL); + gtk_widget_get_preferred_width (child, &child_min, &child_nat); + gtk_widget_get_preferred_width (priv->alert_bar, &min, &nat); + + *minimum = MAX (min, child_min); + *natural = MAX (nat, child_nat); + + if (priv->searchbar == NULL) + return; + + gtk_widget_get_preferred_width (priv->searchbar, &min, &nat); + *minimum = MAX (*minimum, min); + *natural = MAX (*natural, nat); +} - gtk_widget_get_preferred_size (priv->alert_bar, &child_requisition, NULL); - requisition->width = MAX (requisition->width, child_requisition.width); - requisition->height += child_requisition.height; +static void +shell_content_get_preferred_height (GtkWidget *widget, + gint *minimum, + gint *natural) +{ + EShellContentPrivate *priv; + gint min, nat; + GtkWidget *child; + + priv = E_SHELL_CONTENT_GET_PRIVATE (widget); + + child = gtk_bin_get_child (GTK_BIN (widget)); + gtk_widget_get_preferred_height (child, minimum, natural); if (priv->searchbar == NULL) return; - gtk_widget_get_preferred_size (priv->searchbar, &child_requisition, NULL); - requisition->width = MAX (requisition->width, child_requisition.width); - requisition->height += child_requisition.height; + gtk_widget_get_preferred_height (priv->searchbar, &min, &nat); + *minimum += min; + *natural += nat; } static void @@ -398,7 +421,8 @@ e_shell_content_class_init (EShellContentClass *class) object_class->constructed = shell_content_constructed; widget_class = GTK_WIDGET_CLASS (class); - widget_class->size_request = shell_content_size_request; + widget_class->get_preferred_width = shell_content_get_preferred_width; + widget_class->get_preferred_height = shell_content_get_preferred_height; widget_class->size_allocate = shell_content_size_allocate; container_class = GTK_CONTAINER_CLASS (class); diff --git a/shell/e-shell-meego.c b/shell/e-shell-meego.c index 29c7f293fd..51a2da9cf1 100644 --- a/shell/e-shell-meego.c +++ b/shell/e-shell-meego.c @@ -106,7 +106,7 @@ e_shell_detect_meego (gboolean *is_meego, &dummy_t, &dummy_i, &dummy_l, &dummy_l, &moblin_string); - gdk_error_trap_pop (); + gdk_error_trap_pop_ignored (); } if (moblin_string) { diff --git a/shell/e-shell-sidebar.c b/shell/e-shell-sidebar.c index 5aa16e019d..618910a600 100644 --- a/shell/e-shell-sidebar.c +++ b/shell/e-shell-sidebar.c @@ -220,25 +220,44 @@ shell_sidebar_constructed (GObject *object) } static void -shell_sidebar_size_request (GtkWidget *widget, - GtkRequisition *requisition) +shell_sidebar_get_preferred_width (GtkWidget *widget, + gint *minimum, + gint *natural) { EShellSidebarPrivate *priv; - GtkRequisition child_requisition; + gint child_min, child_nat; GtkWidget *child; priv = E_SHELL_SIDEBAR_GET_PRIVATE (widget); - requisition->width = 0; - requisition->height = 0; + child = gtk_bin_get_child (GTK_BIN (widget)); + gtk_widget_get_preferred_width (child, minimum, natural); + + child = priv->event_box; + gtk_widget_get_preferred_width (child, &child_min, &child_nat); + *minimum = MAX (*minimum, child_min); + *natural = MAX (*natural, child_nat); +} + +static void +shell_sidebar_get_preferred_height (GtkWidget *widget, + gint *minimum, + gint *natural) +{ + EShellSidebarPrivate *priv; + gint child_min, child_nat; + GtkWidget *child; + + priv = E_SHELL_SIDEBAR_GET_PRIVATE (widget); child = gtk_bin_get_child (GTK_BIN (widget)); - gtk_widget_get_preferred_size (child, requisition, NULL); + gtk_widget_get_preferred_height (child, minimum, natural); child = priv->event_box; - gtk_widget_get_preferred_size (child, &child_requisition, NULL); - requisition->width = MAX (requisition->width, child_requisition.width); - requisition->height += child_requisition.height; + gtk_widget_get_preferred_height (child, &child_min, &child_nat); + + *minimum += child_min; + *natural += child_nat; } static void @@ -283,7 +302,7 @@ shell_sidebar_forall (GtkContainer *container, priv = E_SHELL_SIDEBAR_GET_PRIVATE (container); - if (include_internals) + if (include_internals && callback_data) callback (priv->event_box, callback_data); /* Chain up to parent's forall() method. */ @@ -308,7 +327,8 @@ e_shell_sidebar_class_init (EShellSidebarClass *class) object_class->constructed = shell_sidebar_constructed; widget_class = GTK_WIDGET_CLASS (class); - widget_class->size_request = shell_sidebar_size_request; + widget_class->get_preferred_width = shell_sidebar_get_preferred_width; + widget_class->get_preferred_height = shell_sidebar_get_preferred_height; widget_class->size_allocate = shell_sidebar_size_allocate; container_class = GTK_CONTAINER_CLASS (class); diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c index 2d2d13c153..f785054c08 100644 --- a/shell/e-shell-switcher.c +++ b/shell/e-shell-switcher.c @@ -247,8 +247,9 @@ shell_switcher_dispose (GObject *object) } static void -shell_switcher_size_request (GtkWidget *widget, - GtkRequisition *requisition) +shell_switcher_get_preferred_width (GtkWidget *widget, + gint *minimum, + gint *natural) { EShellSwitcherPrivate *priv; GtkWidget *child; @@ -256,28 +257,62 @@ shell_switcher_size_request (GtkWidget *widget, priv = E_SHELL_SWITCHER_GET_PRIVATE (widget); - requisition->width = 0; - requisition->height = 0; + *minimum = *natural = 0; child = gtk_bin_get_child (GTK_BIN (widget)); if (child != NULL) - gtk_widget_get_preferred_size (child, requisition, NULL); + gtk_widget_get_preferred_width (child, minimum, natural); + + if (!priv->toolbar_visible) + return; + + for (iter = priv->proxies; iter != NULL; iter = iter->next) { + GtkWidget *widget_proxy = iter->data; + gint child_min, child_nat; + + gtk_widget_get_preferred_width ( + widget_proxy, &child_min, &child_nat); + + child_min += H_PADDING; + child_nat += H_PADDING; + + *minimum = MAX (*minimum, child_min); + *natural = MAX (*natural, child_nat); + } +} + +static void +shell_switcher_get_preferred_height (GtkWidget *widget, + gint *minimum, + gint *natural) +{ + EShellSwitcherPrivate *priv; + GtkWidget *child; + GList *iter; + + priv = E_SHELL_SWITCHER_GET_PRIVATE (widget); + + *minimum = *natural = 0; + + child = gtk_bin_get_child (GTK_BIN (widget)); + if (child != NULL) + gtk_widget_get_preferred_height (child, minimum, natural); if (!priv->toolbar_visible) return; for (iter = priv->proxies; iter != NULL; iter = iter->next) { GtkWidget *widget = iter->data; - GtkRequisition child_requisition; + gint child_min, child_nat; - gtk_widget_get_preferred_size (widget, &child_requisition, NULL); + gtk_widget_get_preferred_height ( + widget, &child_min, &child_nat); - child_requisition.width += H_PADDING; - child_requisition.height += V_PADDING; + child_min += V_PADDING; + child_nat += V_PADDING; - requisition->width = MAX ( - requisition->width, child_requisition.width); - requisition->height += child_requisition.height; + *minimum += child_min; + *natural += child_nat; } } @@ -451,7 +486,8 @@ e_shell_switcher_class_init (EShellSwitcherClass *class) object_class->dispose = shell_switcher_dispose; widget_class = GTK_WIDGET_CLASS (class); - widget_class->size_request = shell_switcher_size_request; + widget_class->get_preferred_width = shell_switcher_get_preferred_width; + widget_class->get_preferred_height = shell_switcher_get_preferred_height; widget_class->size_allocate = shell_switcher_size_allocate; widget_class->screen_changed = shell_switcher_screen_changed; |