[gnome-calendar] Stolen code for making toolbar buttons square.



commit 9d83840f96a51fb2c81034b57de779d5398ccd04
Author: Erick PÃrez Castellanos <erick red gmail com>
Date:   Wed Nov 28 19:11:37 2012 -0500

    Stolen code for making toolbar buttons square.
    
    The code is extracted from Cosimo's libgd.
    Eventually I might migrated my toolbar and notifications
    to use libgd instead of my own copy.

 src/gcal-toolbar.c |   31 +++++++++++++++++++++++--------
 1 files changed, 23 insertions(+), 8 deletions(-)
---
diff --git a/src/gcal-toolbar.c b/src/gcal-toolbar.c
index 8cfe4d4..264d4c5 100644
--- a/src/gcal-toolbar.c
+++ b/src/gcal-toolbar.c
@@ -22,6 +22,8 @@
 
 #include <glib/gi18n.h>
 
+#include <math.h>
+
 struct _GcalToolbarPrivate
 {
   GtkWidget           *widget;
@@ -91,6 +93,8 @@ static void gcal_toolbar_back_clicked           (GtkWidget    *button,
 static void gcal_toolbar_event_edited           (GtkWidget    *button,
                                                  gpointer      user_data);
 
+static gint get_icon_margin                     (void);
+
 G_DEFINE_TYPE (GcalToolbar, gcal_toolbar, GTK_CLUTTER_TYPE_ACTOR);
 
 static void
@@ -404,6 +408,7 @@ gcal_toolbar_set_overview_mode (GcalToolbar *toolbar)
   /* right_box */
   if (priv->right_box == NULL)
     {
+      GtkWidget *child;
       priv->right_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       g_object_ref_sink (priv->right_box);
       gtk_widget_set_hexpand (priv->right_box, TRUE);
@@ -411,10 +416,10 @@ gcal_toolbar_set_overview_mode (GcalToolbar *toolbar)
 
       /* sources_button */
       priv->sources_button = gtk_toggle_button_new ();
-      gtk_container_add (
-          GTK_CONTAINER (priv->sources_button),
-          gtk_image_new_from_icon_name ("x-office-calendar-symbolic",
-                                        GTK_ICON_SIZE_MENU));
+      child = gtk_image_new_from_icon_name ("x-office-calendar-symbolic",
+                                            GTK_ICON_SIZE_MENU);
+      g_object_set (child, "margin", get_icon_margin (), NULL);
+      gtk_container_add (GTK_CONTAINER (priv->sources_button), child);
 
       context = gtk_widget_get_style_context (priv->sources_button);
       gtk_style_context_add_class (context, "raised");
@@ -429,10 +434,10 @@ gcal_toolbar_set_overview_mode (GcalToolbar *toolbar)
 
       /* search_button */
       priv->search_button = gtk_button_new ();
-      gtk_container_add (
-          GTK_CONTAINER (priv->search_button),
-          gtk_image_new_from_icon_name ("folder-saved-search-symbolic",
-                                        GTK_ICON_SIZE_MENU));
+      child = gtk_image_new_from_icon_name ("folder-saved-search-symbolic",
+                                            GTK_ICON_SIZE_MENU);
+      g_object_set (child, "margin", get_icon_margin (), NULL);
+      gtk_container_add (GTK_CONTAINER (priv->search_button), child);
 
       context = gtk_widget_get_style_context (priv->search_button);
       gtk_style_context_add_class (context, "raised");
@@ -616,6 +621,16 @@ gcal_toolbar_event_edited (GtkWidget *button,
     }
 }
 
+static gint
+get_icon_margin (void)
+{
+  gint toolbar_size, menu_size;
+
+  gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &menu_size, NULL);
+  gtk_icon_size_lookup (GTK_ICON_SIZE_LARGE_TOOLBAR, &toolbar_size, NULL);
+  return (gint) floor ((toolbar_size - menu_size) / 2.0);
+}
+
 /* Public API */
 ClutterActor*
 gcal_toolbar_new (void)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]