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