[gtk+/wip/baedert/stack-size-interpolate: 2/11] popover: Expand buttons over entire width



commit 1ea75bf8fbd4c19eea0f3b880b7c73d0432d91c9
Author: Timm Bäder <mail baedert org>
Date:   Sat Mar 14 21:50:00 2015 +0100

    popover: Expand buttons over entire width

 gtk/gtkmenusectionbox.c             |   29 +++++++++++++++--------------
 gtk/gtkmodelbutton.c                |   25 ++++++++++++++-----------
 gtk/theme/Adwaita/gtk-contained.css |    6 +++++-
 3 files changed, 34 insertions(+), 26 deletions(-)
---
diff --git a/gtk/gtkmenusectionbox.c b/gtk/gtkmenusectionbox.c
index 1f38e1b..6bd117a 100644
--- a/gtk/gtkmenusectionbox.c
+++ b/gtk/gtkmenusectionbox.c
@@ -405,7 +405,10 @@ gtk_menu_section_box_new_toplevel (GtkStack    *stack,
 {
   GtkMenuSectionBox *box;
 
-  box = g_object_new (GTK_TYPE_MENU_SECTION_BOX, "margin", 10,  NULL);
+  box = g_object_new (GTK_TYPE_MENU_SECTION_BOX,
+                      "margin-top", 12,
+                      "margin-bottom", 12,
+                      NULL);
   gtk_stack_add_named (stack, GTK_WIDGET (box), "main");
 
   box->tracker = gtk_menu_tracker_new (GTK_ACTION_OBSERVABLE (_gtk_widget_get_action_muxer (GTK_WIDGET 
(box), TRUE)),
@@ -428,7 +431,10 @@ gtk_menu_section_box_new_submenu (GtkMenuTrackerItem *item,
   GtkMenuSectionBox *box;
   GtkWidget *button;
 
-  box = g_object_new (GTK_TYPE_MENU_SECTION_BOX, "margin", 10, NULL);
+  box = g_object_new (GTK_TYPE_MENU_SECTION_BOX,
+                      "margin-top", 12,
+                      "margin-bottom", 12,
+                      NULL);
 
   button = g_object_new (GTK_TYPE_MODEL_BUTTON,
                          "menu-name", name,
@@ -480,6 +486,8 @@ gtk_menu_section_box_new_section (GtkMenuTrackerItem *item,
       gtk_orientable_set_orientation (GTK_ORIENTABLE (box->item_box), GTK_ORIENTATION_HORIZONTAL);
       gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (box->item_box)), 
GTK_STYLE_CLASS_LINKED);
       box->iconic = TRUE;
+      gtk_widget_set_margin_start (GTK_WIDGET (box->item_box), 12);
+      gtk_widget_set_margin_end (GTK_WIDGET (box->item_box), 12);
     }
 
   if (label != NULL)
@@ -494,12 +502,6 @@ gtk_menu_section_box_new_section (GtkMenuTrackerItem *item,
       box->separator = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       g_object_ref_sink (box->separator);
 
-      g_object_set (box->separator,
-                    "margin-start", 12,
-                    "margin-end", 12,
-                    "margin-top", 6,
-                    "margin-bottom", 3,
-                    NULL);
       gtk_container_add (GTK_CONTAINER (box->separator), title);
       gtk_container_add (GTK_CONTAINER (box->separator), separator);
       gtk_widget_show_all (box->separator);
@@ -509,14 +511,13 @@ gtk_menu_section_box_new_section (GtkMenuTrackerItem *item,
       box->separator = separator;
       g_object_ref_sink (box->separator);
 
-      g_object_set (box->separator,
-                    "margin-start", 12,
-                    "margin-end", 12,
-                    "margin-top", 3,
-                    "margin-bottom", 3,
-                    NULL);
       gtk_widget_show (box->separator);
     }
+    g_object_set (box->separator,
+                  "margin-top", 4,
+                  "margin-bottom", 4,
+                  NULL);
+
 
   box->tracker = gtk_menu_tracker_new_for_item_link (item, G_MENU_LINK_SECTION, FALSE, FALSE,
                                                      gtk_menu_section_box_insert_func,
diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c
index a3c62bc..6a16b00 100644
--- a/gtk/gtkmodelbutton.c
+++ b/gtk/gtkmodelbutton.c
@@ -35,6 +35,8 @@
 #include "gtkpopover.h"
 #include "gtkintl.h"
 
+#define INDICATOR_MARGIN 24
+
 /**
  * SECTION:gtkmodelbutton
  * @Short_description: A button that uses a GAction as model
@@ -293,6 +295,7 @@ gtk_model_button_set_iconic (GtkModelButton *button,
       gtk_style_context_remove_class (context, GTK_STYLE_CLASS_MENUITEM);
       gtk_style_context_add_class (context, "image-button");
       gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NORMAL);
+      g_object_set (G_OBJECT (button->box), "margin", 4, NULL);
     }
   else
     {
@@ -415,7 +418,7 @@ gtk_model_button_get_full_border (GtkModelButton *button,
   border_width = gtk_container_get_border_width (GTK_CONTAINER (button));
 
   gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &indicator_size, NULL);
-  indicator_spacing = indicator_size / 8;
+  indicator_spacing = indicator_size / 2;
 
   border->left = border_width;
   border->right = border_width;
@@ -425,7 +428,7 @@ gtk_model_button_get_full_border (GtkModelButton *button,
   if (button->iconic)
     *indicator = 0;
   else
-    *indicator = indicator_size + 2 * indicator_spacing;
+    *indicator = indicator_size + indicator_spacing;
 }
 
 static gboolean
@@ -634,7 +637,7 @@ indicator_is_left (GtkWidget *widget)
 
   return ((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL && !button->inverted) ||
           (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR && button->inverted));
-   
+
 }
 
 static void
@@ -660,7 +663,7 @@ gtk_model_button_size_allocate (GtkWidget     *widget,
     {
       GtkBorder border;
       gint indicator;
-          
+
       gtk_model_button_get_full_border (button, &border, &indicator);
 
       if (button->centered)
@@ -722,7 +725,7 @@ gtk_model_button_draw (GtkWidget *widget,
   gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &indicator_size, NULL);
   indicator_spacing = indicator_size / 8;
 
-  x = width - border_width - indicator_spacing - indicator_size;
+  x = width - border_width - INDICATOR_MARGIN - indicator_size;
 
   if (indicator_is_left (widget))
     x = width - (indicator_size + x);
@@ -777,7 +780,7 @@ gtk_model_button_draw (GtkWidget *widget,
   if (gtk_widget_has_visible_focus (widget))
     {
       GtkBorder border;
- 
+
       gtk_style_context_get_border (context, gtk_style_context_get_state (context), &border);
 
       gtk_render_focus (context, cr,
@@ -861,7 +864,7 @@ gtk_model_button_class_init (GtkModelButtonClass *class)
    *
    * Since: 3.16
    */
-  properties[PROP_ICON] = 
+  properties[PROP_ICON] =
     g_param_spec_object ("icon",
                          P_("Icon"),
                          P_("The icon"),
@@ -968,10 +971,10 @@ gtk_model_button_init (GtkModelButton *button)
 {
   gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
   button->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
-  gtk_widget_set_margin_start (button->box, 12);
-  gtk_widget_set_margin_end (button->box, 12);
-  gtk_widget_set_margin_top (button->box, 3);
-  gtk_widget_set_margin_bottom (button->box, 3);
+  gtk_widget_set_margin_start (button->box, 24);
+  gtk_widget_set_margin_end (button->box, 24);
+  gtk_widget_set_margin_top (button->box, 4);
+  gtk_widget_set_margin_bottom (button->box, 4);
   gtk_widget_set_halign (button->box, GTK_ALIGN_FILL);
   gtk_widget_show (button->box);
   button->image = gtk_image_new ();
diff --git a/gtk/theme/Adwaita/gtk-contained.css b/gtk/theme/Adwaita/gtk-contained.css
index 8074dc9..071e710 100644
--- a/gtk/theme/Adwaita/gtk-contained.css
+++ b/gtk/theme/Adwaita/gtk-contained.css
@@ -2057,8 +2057,12 @@ column-header .titlebar .button.titlebutton,
 /***************
  * Popovers   *
  ***************/
+
+.popover .menuitem.button {
+  border-radius: 0px;
+}
+
 .popover {
-  padding: 2px;
   border: 1px solid #a1a1a1;
   border-radius: 5px;
   background-color: #f6f6f6;


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