]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcheckmenuitem.c
Adapt cast macros to standard.
[~andy/gtk] / gtk / gtkcheckmenuitem.c
index c21050c269b90dcce5a712585636b66b2b5d9d2b..852a7ba0e22809667463be569ae4e04926c7c2d3 100644 (file)
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+
+/*
+ * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
+ * file for a list of people on the GTK+ Team.  See the ChangeLog
+ * files for a list of changes.  These files are distributed with
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
+ */
+
 #include "gtkcheckmenuitem.h"
 #include "gtkaccellabel.h"
 #include "gtksignal.h"
@@ -54,7 +62,7 @@ gtk_check_menu_item_get_type (void)
 
   if (!check_menu_item_type)
     {
-      GtkTypeInfo check_menu_item_info =
+      static const GtkTypeInfo check_menu_item_info =
       {
         "GtkCheckMenuItem",
         sizeof (GtkCheckMenuItem),
@@ -66,16 +74,49 @@ gtk_check_menu_item_get_type (void)
         (GtkClassInitFunc) NULL,
       };
 
-      check_menu_item_type = gtk_type_unique (gtk_menu_item_get_type (), &check_menu_item_info);
+      check_menu_item_type = gtk_type_unique (GTK_TYPE_MENU_ITEM, &check_menu_item_info);
     }
 
   return check_menu_item_type;
 }
 
+static void
+gtk_check_menu_item_class_init (GtkCheckMenuItemClass *klass)
+{
+  GtkObjectClass *object_class;
+  GtkWidgetClass *widget_class;
+  GtkMenuItemClass *menu_item_class;
+  
+  object_class = (GtkObjectClass*) klass;
+  widget_class = (GtkWidgetClass*) klass;
+  menu_item_class = (GtkMenuItemClass*) klass;
+  
+  parent_class = gtk_type_class (GTK_TYPE_MENU_ITEM);
+  
+  widget_class->draw = gtk_check_menu_item_draw;
+  widget_class->expose_event = gtk_check_menu_item_expose;
+  
+  menu_item_class->activate = gtk_check_menu_item_activate;
+  menu_item_class->toggle_size = 12;
+  menu_item_class->hide_on_activate = FALSE;
+  
+  klass->toggled = NULL;
+  klass->draw_indicator = gtk_real_check_menu_item_draw_indicator;
+
+  check_menu_item_signals[TOGGLED] =
+    gtk_signal_new ("toggled",
+                    GTK_RUN_FIRST,
+                    object_class->type,
+                    GTK_SIGNAL_OFFSET (GtkCheckMenuItemClass, toggled),
+                    gtk_marshal_NONE__NONE,
+                   GTK_TYPE_NONE, 0);
+  gtk_object_class_add_signals (object_class, check_menu_item_signals, LAST_SIGNAL);
+}
+
 GtkWidget*
 gtk_check_menu_item_new (void)
 {
-  return GTK_WIDGET (gtk_type_new (gtk_check_menu_item_get_type ()));
+  return GTK_WIDGET (gtk_type_new (GTK_TYPE_CHECK_MENU_ITEM));
 }
 
 GtkWidget*
@@ -96,13 +137,15 @@ gtk_check_menu_item_new_with_label (const gchar *label)
 }
 
 void
-gtk_check_menu_item_set_state (GtkCheckMenuItem *check_menu_item,
-                              gint              state)
+gtk_check_menu_item_set_active (GtkCheckMenuItem *check_menu_item,
+                               gboolean          is_active)
 {
   g_return_if_fail (check_menu_item != NULL);
   g_return_if_fail (GTK_IS_CHECK_MENU_ITEM (check_menu_item));
 
-  if (check_menu_item->active != (state != 0))
+  is_active = is_active != 0;
+
+  if (check_menu_item->active != is_active)
     gtk_menu_item_activate (GTK_MENU_ITEM (check_menu_item));
 }
 
@@ -122,41 +165,6 @@ gtk_check_menu_item_toggled (GtkCheckMenuItem *check_menu_item)
   gtk_signal_emit (GTK_OBJECT (check_menu_item), check_menu_item_signals[TOGGLED]);
 }
 
-static void
-gtk_check_menu_item_class_init (GtkCheckMenuItemClass *klass)
-{
-  GtkObjectClass *object_class;
-  GtkWidgetClass *widget_class;
-  GtkMenuItemClass *menu_item_class;
-
-  object_class = (GtkObjectClass*) klass;
-  widget_class = (GtkWidgetClass*) klass;
-  menu_item_class = (GtkMenuItemClass*) klass;
-
-  parent_class = gtk_type_class (gtk_menu_item_get_type ());
-
-  check_menu_item_signals[TOGGLED] =
-    gtk_signal_new ("toggled",
-                    GTK_RUN_FIRST,
-                    object_class->type,
-                    GTK_SIGNAL_OFFSET (GtkCheckMenuItemClass, toggled),
-                    gtk_marshal_NONE__NONE,
-                   GTK_TYPE_NONE, 0);
-
-  gtk_object_class_add_signals (object_class, check_menu_item_signals, LAST_SIGNAL);
-
-  widget_class->draw = gtk_check_menu_item_draw;
-  widget_class->expose_event = gtk_check_menu_item_expose;
-
-  menu_item_class->activate = gtk_check_menu_item_activate;
-  menu_item_class->toggle_size = 12;
-
-  menu_item_class->hide_on_activate = FALSE;
-
-  klass->toggled = NULL;
-  klass->draw_indicator = gtk_real_check_menu_item_draw_indicator;
-}
-
 static void
 gtk_check_menu_item_init (GtkCheckMenuItem *check_menu_item)
 {
@@ -244,8 +252,6 @@ gtk_real_check_menu_item_draw_indicator (GtkCheckMenuItem *check_menu_item,
           widget->style->klass->xthickness + 2);
       y = (widget->allocation.height - height) / 2;
 
-      gdk_window_clear_area (widget->window, x, y, width, height);
-
       if (check_menu_item->active ||
          check_menu_item->always_show_toggle ||
          (GTK_WIDGET_STATE (check_menu_item) == GTK_STATE_PRELIGHT))
@@ -266,11 +272,9 @@ gtk_real_check_menu_item_draw_indicator (GtkCheckMenuItem *check_menu_item,
                shadow_type = GTK_SHADOW_OUT;
            }
          
-         gdk_draw_rectangle (widget->window,
-                             widget->style->bg_gc[state_type],
-                             TRUE, x, y, width, height);
-         gtk_draw_shadow (widget->style, widget->window,
+         gtk_paint_check (widget->style, widget->window,
                           state_type, shadow_type,
+                          area, widget, "check",
                           x, y, width, height);
        }
     }