Top | ![]() |
![]() |
![]() |
![]() |
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 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> |