From 2485ba3936c9fdd4e185393d49c34dae7ba1f49d Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 13 Jan 2011 10:54:58 -0500 Subject: Fudge gtk_widget_get_preferred_size() for gtk2. Easy enough to fake gtk_widget_get_preferred_size() in gtk2 using gtk_widget_size_request(). Reduces diff noise with gtk3 branch. --- shell/e-shell-switcher.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'shell/e-shell-switcher.c') diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c index fec943c021..6dbcc86fb1 100644 --- a/shell/e-shell-switcher.c +++ b/shell/e-shell-switcher.c @@ -30,6 +30,9 @@ #include #include +/* backward-compatibility cruft */ +#include "e-util/gtk-compat.h" + #define E_SHELL_SWITCHER_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ ((obj), E_TYPE_SHELL_SWITCHER, EShellSwitcherPrivate)) @@ -100,7 +103,7 @@ shell_switcher_layout_actions (EShellSwitcher *switcher) GtkWidget *widget = p->data; GtkRequisition requisition; - gtk_widget_size_request (widget, &requisition); + gtk_widget_get_preferred_size (widget, &requisition, NULL); max_height = MAX (max_height, requisition.height); max_width = MAX (max_width, requisition.width); } @@ -261,7 +264,7 @@ shell_switcher_size_request (GtkWidget *widget, child = gtk_bin_get_child (GTK_BIN (widget)); if (child != NULL) - gtk_widget_size_request (child, requisition); + gtk_widget_get_preferred_size (child, requisition, NULL); if (!priv->toolbar_visible) return; @@ -270,7 +273,7 @@ shell_switcher_size_request (GtkWidget *widget, GtkWidget *widget = iter->data; GtkRequisition child_requisition; - gtk_widget_size_request (widget, &child_requisition); + gtk_widget_get_preferred_size (widget, &child_requisition, NULL); child_requisition.width += H_PADDING; child_requisition.height += V_PADDING; -- cgit v1.2.3 From a3ba231fcc2746e664a67c85d88eb49a64813989 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 9 Nov 2010 08:48:33 -0500 Subject: Drop backward-compatibility cruft. --- shell/e-shell-switcher.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'shell/e-shell-switcher.c') diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c index 6dbcc86fb1..2d2d13c153 100644 --- a/shell/e-shell-switcher.c +++ b/shell/e-shell-switcher.c @@ -30,9 +30,6 @@ #include #include -/* backward-compatibility cruft */ -#include "e-util/gtk-compat.h" - #define E_SHELL_SWITCHER_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ ((obj), E_TYPE_SHELL_SWITCHER, EShellSwitcherPrivate)) -- cgit v1.2.3 From b5aba428f4d7daca78a6b079e1766d9fba5a8bc3 Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Fri, 10 Dec 2010 13:15:27 +0100 Subject: Adapt size_request vfuncs to latest gtk+-3.0 API. --- shell/e-shell-switcher.c | 62 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 13 deletions(-) (limited to 'shell/e-shell-switcher.c') 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; -- cgit v1.2.3 From c003c99a75587ba39a45d164272760c33f9666b5 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 25 Feb 2011 16:20:41 +0100 Subject: Bug #614480 - Avoid using G_TYPE_INSTANCE_GET_PRIVATE repeatedly --- shell/e-shell-switcher.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'shell/e-shell-switcher.c') diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c index f785054c08..b1d896dee0 100644 --- a/shell/e-shell-switcher.c +++ b/shell/e-shell-switcher.c @@ -30,10 +30,6 @@ #include #include -#define E_SHELL_SWITCHER_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE \ - ((obj), E_TYPE_SHELL_SWITCHER, EShellSwitcherPrivate)) - #define H_PADDING 6 #define V_PADDING 6 @@ -235,7 +231,7 @@ shell_switcher_dispose (GObject *object) { EShellSwitcherPrivate *priv; - priv = E_SHELL_SWITCHER_GET_PRIVATE (object); + priv = E_SHELL_SWITCHER (object)->priv; while (priv->proxies != NULL) { GtkWidget *widget = priv->proxies->data; @@ -255,7 +251,7 @@ shell_switcher_get_preferred_width (GtkWidget *widget, GtkWidget *child; GList *iter; - priv = E_SHELL_SWITCHER_GET_PRIVATE (widget); + priv = E_SHELL_SWITCHER (widget)->priv; *minimum = *natural = 0; @@ -290,7 +286,7 @@ shell_switcher_get_preferred_height (GtkWidget *widget, GtkWidget *child; GList *iter; - priv = E_SHELL_SWITCHER_GET_PRIVATE (widget); + priv = E_SHELL_SWITCHER (widget)->priv; *minimum = *natural = 0; @@ -351,7 +347,7 @@ shell_switcher_screen_changed (GtkWidget *widget, EShellSwitcherPrivate *priv; GtkSettings *settings; - priv = E_SHELL_SWITCHER_GET_PRIVATE (widget); + priv = E_SHELL_SWITCHER (widget)->priv; if (gtk_widget_has_screen (widget)) settings = gtk_widget_get_settings (widget); @@ -386,7 +382,7 @@ shell_switcher_remove (GtkContainer *container, EShellSwitcherPrivate *priv; GList *link; - priv = E_SHELL_SWITCHER_GET_PRIVATE (container); + priv = E_SHELL_SWITCHER (container)->priv; /* Look in the internal widgets first. */ @@ -413,7 +409,7 @@ shell_switcher_forall (GtkContainer *container, { EShellSwitcherPrivate *priv; - priv = E_SHELL_SWITCHER_GET_PRIVATE (container); + priv = E_SHELL_SWITCHER (container)->priv; if (include_internals) g_list_foreach ( @@ -551,7 +547,7 @@ e_shell_switcher_class_init (EShellSwitcherClass *class) static void e_shell_switcher_init (EShellSwitcher *switcher) { - switcher->priv = E_SHELL_SWITCHER_GET_PRIVATE (switcher); + switcher->priv = G_TYPE_INSTANCE_GET_PRIVATE (switcher, E_TYPE_SHELL_SWITCHER, EShellSwitcherPrivate); gtk_widget_set_has_window (GTK_WIDGET (switcher), FALSE); -- cgit v1.2.3 From 7aacf983b32ecac26bc9707697da622b3ef164a3 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 5 Mar 2011 12:33:49 -0500 Subject: Coding style and whitespace cleanup. --- shell/e-shell-switcher.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'shell/e-shell-switcher.c') diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c index b1d896dee0..594862df8a 100644 --- a/shell/e-shell-switcher.c +++ b/shell/e-shell-switcher.c @@ -547,7 +547,8 @@ e_shell_switcher_class_init (EShellSwitcherClass *class) static void e_shell_switcher_init (EShellSwitcher *switcher) { - switcher->priv = G_TYPE_INSTANCE_GET_PRIVATE (switcher, E_TYPE_SHELL_SWITCHER, EShellSwitcherPrivate); + switcher->priv = G_TYPE_INSTANCE_GET_PRIVATE ( + switcher, E_TYPE_SHELL_SWITCHER, EShellSwitcherPrivate); gtk_widget_set_has_window (GTK_WIDGET (switcher), FALSE); -- cgit v1.2.3 From c24038c4f62f37b89d1bda9542ca5ccc843d4ea0 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 27 May 2011 15:23:07 +0200 Subject: Bug #646109 - Fix use of include to make sure translations work --- shell/e-shell-switcher.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'shell/e-shell-switcher.c') diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c index 594862df8a..f70697b8bc 100644 --- a/shell/e-shell-switcher.c +++ b/shell/e-shell-switcher.c @@ -25,6 +25,10 @@ * @include: shell/e-shell-switcher.h **/ +#ifdef HAVE_CONFIG_H +#include +#endif + #include "e-shell-switcher.h" #include -- cgit v1.2.3 From 777c1cbd40eb63365f2c28e38f6a93beb2d1c9d1 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 16 Aug 2011 11:25:56 -0400 Subject: Coding style and whitespace cleanup. --- shell/e-shell-switcher.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'shell/e-shell-switcher.c') diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c index f70697b8bc..1bfe01ef25 100644 --- a/shell/e-shell-switcher.c +++ b/shell/e-shell-switcher.c @@ -248,8 +248,8 @@ shell_switcher_dispose (GObject *object) static void shell_switcher_get_preferred_width (GtkWidget *widget, - gint *minimum, - gint *natural) + gint *minimum, + gint *natural) { EShellSwitcherPrivate *priv; GtkWidget *child; @@ -283,8 +283,8 @@ shell_switcher_get_preferred_width (GtkWidget *widget, static void shell_switcher_get_preferred_height (GtkWidget *widget, - gint *minimum, - gint *natural) + gint *minimum, + gint *natural) { EShellSwitcherPrivate *priv; GtkWidget *child; @@ -601,9 +601,9 @@ tool_item_get_button (GtkWidget *widget) } static gboolean -tool_item_button_cb (GtkWidget *internal_widget, - GdkEventButton *event, - GtkAction *action) +tool_item_button_cb (GtkWidget *internal_widget, + GdkEventButton *event, + GtkAction *action) { g_return_val_if_fail (GTK_IS_ACTION (action), FALSE); @@ -629,8 +629,8 @@ tool_item_button_cb (GtkWidget *internal_widget, **/ void e_shell_switcher_add_action (EShellSwitcher *switcher, - GtkAction *switch_action, - GtkAction *new_window_action) + GtkAction *switch_action, + GtkAction *new_window_action) { GtkWidget *widget; GtkButton *button; -- cgit v1.2.3 From e64d6fe05c30c2cc1d7625a202afba3ba2da07cd Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 22 Nov 2011 18:22:14 -0500 Subject: Miscellaneous cleanups. --- shell/e-shell-switcher.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'shell/e-shell-switcher.c') diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c index 77c1fd2929..3a72851f97 100644 --- a/shell/e-shell-switcher.c +++ b/shell/e-shell-switcher.c @@ -34,6 +34,10 @@ #include #include +#define E_SHELL_SWITCHER_GET_PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE \ + ((obj), E_TYPE_SHELL_SWITCHER, EShellSwitcherPrivate)) + #define H_PADDING 6 #define V_PADDING 6 @@ -235,7 +239,7 @@ shell_switcher_dispose (GObject *object) { EShellSwitcherPrivate *priv; - priv = E_SHELL_SWITCHER (object)->priv; + priv = E_SHELL_SWITCHER_GET_PRIVATE (object); while (priv->proxies != NULL) { GtkWidget *widget = priv->proxies->data; @@ -255,7 +259,7 @@ shell_switcher_get_preferred_width (GtkWidget *widget, GtkWidget *child; GList *iter; - priv = E_SHELL_SWITCHER (widget)->priv; + priv = E_SHELL_SWITCHER_GET_PRIVATE (widget); *minimum = *natural = 0; @@ -290,7 +294,7 @@ shell_switcher_get_preferred_height (GtkWidget *widget, GtkWidget *child; GList *iter; - priv = E_SHELL_SWITCHER (widget)->priv; + priv = E_SHELL_SWITCHER_GET_PRIVATE (widget); *minimum = *natural = 0; @@ -351,7 +355,7 @@ shell_switcher_screen_changed (GtkWidget *widget, EShellSwitcherPrivate *priv; GtkSettings *settings; - priv = E_SHELL_SWITCHER (widget)->priv; + priv = E_SHELL_SWITCHER_GET_PRIVATE (widget); if (gtk_widget_has_screen (widget)) settings = gtk_widget_get_settings (widget); @@ -386,7 +390,7 @@ shell_switcher_remove (GtkContainer *container, EShellSwitcherPrivate *priv; GList *link; - priv = E_SHELL_SWITCHER (container)->priv; + priv = E_SHELL_SWITCHER_GET_PRIVATE (container); /* Look in the internal widgets first. */ @@ -413,7 +417,7 @@ shell_switcher_forall (GtkContainer *container, { EShellSwitcherPrivate *priv; - priv = E_SHELL_SWITCHER (container)->priv; + priv = E_SHELL_SWITCHER_GET_PRIVATE (container); if (include_internals) g_list_foreach ( @@ -551,8 +555,7 @@ e_shell_switcher_class_init (EShellSwitcherClass *class) static void e_shell_switcher_init (EShellSwitcher *switcher) { - switcher->priv = G_TYPE_INSTANCE_GET_PRIVATE ( - switcher, E_TYPE_SHELL_SWITCHER, EShellSwitcherPrivate); + switcher->priv = E_SHELL_SWITCHER_GET_PRIVATE (switcher); gtk_widget_set_has_window (GTK_WIDGET (switcher), FALSE); -- cgit v1.2.3