static void gtk_image_menu_item_recalculate (GtkImageMenuItem *image_menu_item) { GtkImageMenuItemPrivate *priv = image_menu_item->priv; GtkStockItem stock_item; GtkWidget *image; const gchar *resolved_label = priv->label; if (priv->use_stock && priv->label) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS; if (!priv->image) { image = gtk_image_new_from_stock (priv->label, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (image_menu_item, image); } if (gtk_stock_lookup (priv->label, &stock_item)) resolved_label = stock_item.label; gtk_menu_item_set_use_underline (GTK_MENU_ITEM (image_menu_item), TRUE); G_GNUC_END_IGNORE_DEPRECATIONS; } GTK_MENU_ITEM_CLASS (gtk_image_menu_item_parent_class)->set_label (GTK_MENU_ITEM (image_menu_item), resolved_label); }
static void gtk_radio_menu_item_class_init (GtkRadioMenuItemClass *klass) { GObjectClass *gobject_class; GtkWidgetClass *widget_class; GtkMenuItemClass *menu_item_class; gobject_class = G_OBJECT_CLASS (klass); widget_class = GTK_WIDGET_CLASS (klass); menu_item_class = GTK_MENU_ITEM_CLASS (klass); gobject_class->set_property = gtk_radio_menu_item_set_property; gobject_class->get_property = gtk_radio_menu_item_get_property; widget_class->destroy = gtk_radio_menu_item_destroy; gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE); menu_item_class->activate = gtk_radio_menu_item_activate; /** * GtkRadioMenuItem:group: * * The radio menu item whose group this widget belongs to. * * Since: 2.8 */ g_object_class_install_property (gobject_class, PROP_GROUP, g_param_spec_object ("group", P_("Group"), P_("The radio menu item whose group this widget belongs to."), GTK_TYPE_RADIO_MENU_ITEM, GTK_PARAM_WRITABLE)); /** * GtkStyle::group-changed: * @style: the object which received the signal * * Emitted when the group of radio menu items that a radio menu item belongs * to changes. This is emitted when a radio menu item switches from * being alone to being part of a group of 2 or more menu items, or * vice-versa, and when a button is moved from one group of 2 or * more menu items ton a different one, but not when the composition * of the group that a menu item belongs to changes. * * Since: 2.4 */ group_changed_signal = g_signal_new (I_("group-changed"), G_OBJECT_CLASS_TYPE (gobject_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GtkRadioMenuItemClass, group_changed), NULL, NULL, _gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); }
static void gtk_check_menu_item_activate (GtkMenuItem *menu_item) { GtkCheckMenuItemPrivate *priv; GtkCheckMenuItem *check_menu_item = GTK_CHECK_MENU_ITEM (menu_item); priv = check_menu_item->priv; priv->active = !priv->active; gtk_check_menu_item_toggled (check_menu_item); gtk_widget_queue_draw (GTK_WIDGET (check_menu_item)); GTK_MENU_ITEM_CLASS (gtk_check_menu_item_parent_class)->activate (menu_item); g_object_notify (G_OBJECT (check_menu_item), "active"); }
static void gtk_service_class_init(GtkServiceClass *klass) { GObjectClass *object_class; GtkWidgetClass *widget_class; GtkMenuItemClass *menu_item_class; object_class = G_OBJECT_CLASS(klass); widget_class = GTK_WIDGET_CLASS(klass); menu_item_class = GTK_MENU_ITEM_CLASS(klass); object_class->dispose = gtk_service_dispose; widget_class->destroy = gtk_service_destroy; widget_class->button_release_event = gtk_service_button_release_event; menu_item_class->hide_on_activate = FALSE; g_type_class_add_private(object_class, sizeof(GtkServicePrivate)); }