Patch: remove hard-coded indicator size (revised)




Patch submitted for inclusion into GTK+ CVS:

This patch allows the default size of check/radio indicators in menu items
to be modified via Gtk{Check,Radio}MenuItemClass, following the same
convention for modifying the size of Gtk{Check,Radio}Button indicators.

Currently, these are hard-coded (bad!) to 8x8 size. I am writing a theme
engine which requires them to be 12x12. This patch gives theme engines this
flexibility, while taking care to retain a default size of 8x8. 


This patch supersedes an earlier one I submitted (gtk-skunk-000628-0),  
which I found to contain some errors. (My workstation setup is such that
it is difficult to compile the CVS version of GTK+)


--Straker


                       //,,    //,,
//=================// //////  ////// //==================================\\
 Straker Skunk     / //////  ////// /      Skunks are such wonderful
 <skunk@mit.edu>  / //////  ////// /     creatures... soft, and cuddly,
 -- -- -- -- -- --\ \\\\\\  \\\\\\ \      and if you annoy them they
 Daniel Richard G. \ \\\\\\  \\\\\\ \      make you stink like hell
 ========--====--==-\ \\\\\\  \\\\\\ \---------------=--==--====--========
 //mit.edu/straker  / //////  ////// / Furry|Course VI-3|MIT Class of 2001
 //skunk.mit.edu   / //////  ////// / 80% Beaver 90% Penguin 100% SKUNK!!!
\\===============// //////  ////// //====================================//
                     ''//    ''//
Index: gtk/gtkcheckmenuitem.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcheckmenuitem.c,v
retrieving revision 1.21
diff -u -r1.21 gtkcheckmenuitem.c
--- gtk/gtkcheckmenuitem.c	2000/06/20 21:04:31	1.21
+++ gtk/gtkcheckmenuitem.c	2000/07/07 03:37:43
@@ -98,6 +98,7 @@
   menu_item_class->toggle_size = 12;
   menu_item_class->hide_on_activate = FALSE;
   
+  klass->indicator_size = 8;
   klass->toggled = NULL;
   klass->draw_indicator = gtk_real_check_menu_item_draw_indicator;
 
@@ -244,8 +245,8 @@
     {
       widget = GTK_WIDGET (check_menu_item);
 
-      width = 8;
-      height = 8;
+      width = GTK_CHECK_MENU_ITEM_CLASS (GTK_OBJECT (check_menu_item)->klass)->indicator_size;
+      height = width;
       x = (GTK_CONTAINER (check_menu_item)->border_width +
 	   widget->style->xthickness + 2);
       y = (widget->allocation.height - height) / 2;
Index: gtk/gtkcheckmenuitem.h
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkcheckmenuitem.h,v
retrieving revision 1.8
diff -u -r1.8 gtkcheckmenuitem.h
--- gtk/gtkcheckmenuitem.h	2000/02/13 08:16:47	1.8
+++ gtk/gtkcheckmenuitem.h	2000/07/07 03:37:43
@@ -59,6 +59,8 @@
 struct _GtkCheckMenuItemClass
 {
   GtkMenuItemClass parent_class;
+
+  guint16 indicator_size;
   
   void (* toggled)	  (GtkCheckMenuItem *check_menu_item);
   void (* draw_indicator) (GtkCheckMenuItem *check_menu_item,
Index: gtk/gtkradiomenuitem.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkradiomenuitem.c,v
retrieving revision 1.16
diff -u -r1.16 gtkradiomenuitem.c
--- gtk/gtkradiomenuitem.c	2000/06/20 21:04:38	1.16
+++ gtk/gtkradiomenuitem.c	2000/07/07 03:37:43
@@ -281,8 +281,8 @@
     {
       widget = GTK_WIDGET (check_menu_item);
 
-      width = 8;
-      height = 8;
+      width = GTK_CHECK_MENU_ITEM_CLASS (GTK_OBJECT (check_menu_item)->klass)->indicator_size;
+      height = width;
       x = (GTK_CONTAINER (check_menu_item)->border_width +
 	   widget->style->xthickness + 2);
       y = (widget->allocation.height - height) / 2;


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