Example #1
0
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);

}
Example #2
0
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);
}
Example #3
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");
}
Example #4
0
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));
}