GtkIconFactory

An icon factory manages a collection of #GtkIconSet; a #GtkIconSet manages a set of variants of a particular icon (i.e. a #GtkIconSet contains variants for different sizes and widget states). Icons in an icon factory are named by a stock ID, which is a simple string identifying the icon. Each #GtkStyle has a list of #GtkIconFactory derived from the current theme; those icon factories are consulted first when searching for an icon. If the theme doesn’t set a particular icon, GTK+ looks for the icon in a list of default icon factories, maintained by gtk.icon_factory.IconFactory.addDefault and gtk.icon_factory.IconFactory.removeDefault. Applications with icons should add a default icon factory with their icons, which will allow themes to override the icons for the application.

To display an icon, always use gtk.style.Style.lookupIconSet on the widget that will display the icon, or the convenience function gtk.widget.Widget.renderIcon. These functions take the theme into account when looking up the icon to use for a given stock ID.

GtkIconFactory as GtkBuildable # {#GtkIconFactory-BUILDER-UI}

GtkIconFactory supports a custom <sources> element, which can contain multiple <source> elements. The following attributes are allowed:

  • stock-id

    The stock id of the source, a string. This attribute is mandatory

  • filename

    The filename of the source, a string. This attribute is optional

  • icon-name

    The icon name for the source, a string. This attribute is optional.

  • size

    Size of the icon, a #GtkIconSize enum value. This attribute is optional.

  • direction

    Direction of the source, a #GtkTextDirection enum value. This attribute is optional.

  • state

    State of the source, a #GtkStateType enum value. This attribute is optional.

More...

Members

Variables

parentInstance
GObject parentInstance;
priv
GtkIconFactoryPrivate* priv;

Detailed Description

A #GtkIconFactory UI definition fragment. ##

<object class="GtkIconFactory" id="iconfactory1">
  <sources>
    <source stock-id="apple-red" filename="apple-red.png"/>
  </sources>
</object>
<object class="GtkWindow" id="window1">
  <child>
    <object class="GtkButton" id="apple_button">
      <property name="label">apple-red</property>
      <property name="use-stock">True</property>
    </object>
  </child>
</object>