+ g_signal_new (I_("toggled"),
+ G_OBJECT_CLASS_TYPE (gobject_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GtkCheckMenuItemClass, toggled),
+ NULL, NULL,
+ _gtk_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ g_type_class_add_private (klass, sizeof (GtkCheckMenuItemPrivate));
+}
+
+static void
+gtk_check_menu_item_activatable_interface_init (GtkActivatableIface *iface)
+{
+ parent_activatable_iface = g_type_interface_peek_parent (iface);
+ iface->update = gtk_check_menu_item_update;
+ iface->sync_action_properties = gtk_check_menu_item_sync_action_properties;
+}
+
+static void
+gtk_check_menu_item_update (GtkActivatable *activatable,
+ GtkAction *action,
+ const gchar *property_name)
+{
+ GtkCheckMenuItem *check_menu_item;
+
+ check_menu_item = GTK_CHECK_MENU_ITEM (activatable);
+
+ parent_activatable_iface->update (activatable, action, property_name);
+
+ if (strcmp (property_name, "active") == 0)
+ {
+ gtk_action_block_activate (action);
+ gtk_check_menu_item_set_active (check_menu_item, gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)));
+ gtk_action_unblock_activate (action);
+ }
+
+ if (!gtk_activatable_get_use_action_appearance (activatable))
+ return;
+
+ if (strcmp (property_name, "draw-as-radio") == 0)
+ gtk_check_menu_item_set_draw_as_radio (check_menu_item,
+ gtk_toggle_action_get_draw_as_radio (GTK_TOGGLE_ACTION (action)));
+}
+
+static void
+gtk_check_menu_item_sync_action_properties (GtkActivatable *activatable,
+ GtkAction *action)
+{
+ GtkCheckMenuItem *check_menu_item;
+
+ check_menu_item = GTK_CHECK_MENU_ITEM (activatable);
+
+ parent_activatable_iface->sync_action_properties (activatable, action);
+
+ if (!GTK_IS_TOGGLE_ACTION (action))
+ return;
+
+ gtk_action_block_activate (action);
+ gtk_check_menu_item_set_active (check_menu_item, gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)));
+ gtk_action_unblock_activate (action);
+
+ if (!gtk_activatable_get_use_action_appearance (activatable))
+ return;
+
+ gtk_check_menu_item_set_draw_as_radio (check_menu_item,
+ gtk_toggle_action_get_draw_as_radio (GTK_TOGGLE_ACTION (action)));