Themeable Stock Images

## Themeable Stock Images Themeable Stock Images — Manipulating stock icons |

## Includes

    #include <gtk/gtk.h>

## Description

Browse the available stock icons in the list of stock IDs found here. You can also use the gtk-demo application for this purpose.

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_add_default()` and `gtk_icon_factory_remove_default()`. 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_lookup_icon_set()` on the widget that will display the icon, or the convenience function `gtk_widget_render_icon()`. These functions take the theme into account when looking up the icon to use for a given stock ID.

### GtkIconFactory as GtkBuildable

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.

Example 3. A GtkIconFactory UI definition fragment.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <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>

## Functions

## Types and Values