summaryrefslogtreecommitdiff
path: root/gtk/gtkcheckmenuitem.c
diff options
context:
space:
mode:
authorSoeren Sandmann <sandmann@daimi.au.dk>2003-07-06 13:14:28 +0000
committerSøren Sandmann Pedersen <ssp@src.gnome.org>2003-07-06 13:14:28 +0000
commitc8515b2f8d22c9856fc58f71398eea9e13695fb1 (patch)
tree717fed71a7377b7729c73a610f1eb16463bd130d /gtk/gtkcheckmenuitem.c
parentba999da1d8528afdb7cf810e626bd1ab3946ff17 (diff)
downloadgtk+-c8515b2f8d22c9856fc58f71398eea9e13695fb1.tar.gz
add vertical_padding style property.
Sat Jul 5 10:34:00 2003 Soeren Sandmann <sandmann@daimi.au.dk> * gtk/gtkmenu.c: add vertical_padding style property. * gtk/gtkmenuitem.c: add style properties toggle_spacing, arrow_spacing and horizontal_padding. Also center separators and make them a bit taller. * gtk/*menuitem.c: use new style properties. * docs/widget_geometry.txt: Add note about GtkMenuItem * gtk/gtkstyle.c (gtk_default_draw_vline, gtk_default_draw_hline): fix +/-1 errors. (gtk_default_draw_shadow): draw a black border around menus. * gtk/gtkvseparator, gtk/gtkhseparator.c, gtk/gtkmenuitem.c: fix calls to gtk_paint_hline() and gtk_paint_vline() (they take x1, x2 and y1, y2 respectively, not x, width and y, height).
Diffstat (limited to 'gtk/gtkcheckmenuitem.c')
-rw-r--r--gtk/gtkcheckmenuitem.c42
1 files changed, 35 insertions, 7 deletions
diff --git a/gtk/gtkcheckmenuitem.c b/gtk/gtkcheckmenuitem.c
index 269b1efe88..26f1b2a46b 100644
--- a/gtk/gtkcheckmenuitem.c
+++ b/gtk/gtkcheckmenuitem.c
@@ -231,9 +231,15 @@ static void
gtk_check_menu_item_toggle_size_request (GtkMenuItem *menu_item,
gint *requisition)
{
+ guint toggle_spacing;
+
g_return_if_fail (GTK_IS_CHECK_MENU_ITEM (menu_item));
-
- *requisition = CHECK_TOGGLE_SIZE;
+
+ gtk_widget_style_get (GTK_WIDGET (menu_item),
+ "toggle_spacing", &toggle_spacing,
+ NULL);
+
+ *requisition = CHECK_TOGGLE_SIZE + toggle_spacing;
}
void
@@ -348,20 +354,42 @@ gtk_real_check_menu_item_draw_indicator (GtkCheckMenuItem *check_menu_item,
GtkShadowType shadow_type;
gint width, height;
gint x, y;
- gint offset;
if (GTK_WIDGET_DRAWABLE (check_menu_item))
{
+ guint offset;
+ guint toggle_size;
+ guint toggle_spacing;
+ guint horizontal_padding;
+
widget = GTK_WIDGET (check_menu_item);
+ gtk_widget_style_get (GTK_WIDGET (check_menu_item),
+ "toggle_spacing", &toggle_spacing,
+ "horizontal_padding", &horizontal_padding,
+ NULL);
+
width = 8;
height = 8;
+
+ toggle_size = GTK_MENU_ITEM (check_menu_item)->toggle_size;
+ offset = GTK_CONTAINER (check_menu_item)->border_width + widget->style->xthickness;
+
offset = GTK_CONTAINER (check_menu_item)->border_width +
- widget->style->xthickness + 2;
- if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
- x = widget->allocation.x + offset;
+ widget->style->xthickness + 2;
+
+ if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
+ {
+ x = widget->allocation.x + offset + horizontal_padding +
+ (toggle_size - toggle_spacing - width) / 2;
+ }
else
- x = widget->allocation.x + widget->allocation.width - width - offset;
+ {
+ x = widget->allocation.x + widget->allocation.width -
+ offset - horizontal_padding - toggle_size + toggle_spacing +
+ (toggle_size - toggle_spacing - width) / 2;
+ }
+
y = widget->allocation.y + (widget->allocation.height - height) / 2;
if (check_menu_item->active ||