summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/reference/gtk/tmpl/.gitignore1
-rw-r--r--docs/reference/gtk/tmpl/gtkicontheme.sgml502
-rw-r--r--gtk/gtkicontheme.c86
-rw-r--r--gtk/gtkicontheme.h22
4 files changed, 109 insertions, 502 deletions
diff --git a/docs/reference/gtk/tmpl/.gitignore b/docs/reference/gtk/tmpl/.gitignore
index 6ad4cb70bd..8c5ba90135 100644
--- a/docs/reference/gtk/tmpl/.gitignore
+++ b/docs/reference/gtk/tmpl/.gitignore
@@ -53,6 +53,7 @@ gtkhscale.sgml
gtkhscrollbar.sgml
gtkhseparator.sgml
gtkiconfactory.sgml
+gtkicontheme.sgml
gtkiconview.sgml
gtkimagemenuitem.sgml
gtkimcontext.sgml
diff --git a/docs/reference/gtk/tmpl/gtkicontheme.sgml b/docs/reference/gtk/tmpl/gtkicontheme.sgml
deleted file mode 100644
index 0bcae211fa..0000000000
--- a/docs/reference/gtk/tmpl/gtkicontheme.sgml
+++ /dev/null
@@ -1,502 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-GtkIconTheme
-
-<!-- ##### SECTION Short_Description ##### -->
-Looking up icons by name
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-#GtkIconTheme provides a facility for looking up icons by name
-and size. The main reason for using a name rather than simply
-providing a filename is to allow different icons to be used
-depending on what <firstterm>icon theme</firstterm> is selected
-by the user. The operation of icon themes on Linux and Unix
-follows the <ulink
-url="http://www.freedesktop.org/Standards/icon-theme-spec">Icon
-Theme Specification</ulink>. There is a default icon theme,
-named <literal>hicolor</literal> where applications should install
-their icons, but more additional application themes can be
-installed as operating system vendors and users choose.
-</para>
-<para>
-Named icons are similar to the <xref linkend="gtk3-Themeable-Stock-Images"/>
-facility, and the distinction between the two may be a bit confusing.
-A few things to keep in mind:
-</para>
-<itemizedlist>
-<listitem>
-<para>
-Stock images usually are used in conjunction with
-<xref linkend="gtk3-Stock-Items"/>., such as %GTK_STOCK_OK or
-%GTK_STOCK_OPEN. Named icons are easier to set up and therefore
-are more useful for new icons that an application wants to
-add, such as application icons or window icons.
-</para>
-</listitem>
-<listitem>
-<para>
-Stock images can only be loaded at the symbolic sizes defined
-by the #GtkIconSize enumeration, or by custom sizes defined
-by gtk_icon_size_register(), while named icons are more flexible
-and any pixel size can be specified.
-</para>
-</listitem>
-<listitem>
-<para>
-Because stock images are closely tied to stock items, and thus
-to actions in the user interface, stock images may come in
-multiple variants for different widget states or writing
-directions.
-</para>
-</listitem>
-</itemizedlist>
-<para>
-A good rule of thumb is that if there is a stock image for what
-you want to use, use it, otherwise use a named icon. It turns
-out that internally stock images are generally defined in
-terms of one or more named icons. (An example of the
-more than one case is icons that depend on writing direction;
-GTK_STOCK_GO_FORWARD uses the two themed icons
-"gtk-stock-go-forward-ltr" and "gtk-stock-go-forward-rtl".)
-</para>
-<para>
-In many cases, named themes are used indirectly, via #GtkImage
-or stock items, rather than directly, but looking up icons
-directly is also simple. The #GtkIconTheme object acts
-as a database of all the icons in the current theme. You
-can create new #GtkIconTheme objects, but its much more
-efficient to use the standard icon theme for the #GdkScreen
-so that the icon information is shared with other people
-looking up icons. In the case where the default screen is
-being used, looking up an icon can be as simple as:
-</para>
-<informalexample>
-<programlisting>
-GError *error = NULL;
-GtkIconTheme *icon_theme;
-GdkPixbuf *pixbuf;
-
-icon_theme = gtk_icon_theme_get_default ();
-pixbuf = gtk_icon_theme_load_icon (icon_theme,
- "my-icon-name", /* icon name */
- 48, /* size */
- 0, /* flags */
- &amp;error);
-if (!pixbuf)
- {
- g_warning ("Couldn't load icon: &percnt;s", error-&gt;message);
- g_error_free (error);
- }
-else
- {
- /* Use the pixbuf */
- g_object_unref (pixbuf);
- }
-</programlisting>
-</informalexample>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GtkIconInfo ##### -->
-<para>
-Contains information found when looking up an icon in
-an icon theme.
-</para>
-
-
-<!-- ##### STRUCT GtkIconTheme ##### -->
-<para>
-Acts as a database of information about an icon theme.
-Normally, you retrieve the icon theme for a particular
-screen using gtk_icon_theme_get_for_screen() and it
-will contain information about current icon theme for
-that screen, but you can also create a new #GtkIconTheme
-object and set the icon theme name explicitely using
-gtk_icon_theme_set_custom_theme().
-</para>
-
-
-<!-- ##### SIGNAL GtkIconTheme::changed ##### -->
-<para>
-
-</para>
-
-@icontheme: the object which received the signal.
-
-<!-- ##### ENUM GtkIconLookupFlags ##### -->
-<para>
-
-</para>
-
-@GTK_ICON_LOOKUP_NO_SVG:
-@GTK_ICON_LOOKUP_FORCE_SVG:
-@GTK_ICON_LOOKUP_USE_BUILTIN:
-@GTK_ICON_LOOKUP_GENERIC_FALLBACK:
-@GTK_ICON_LOOKUP_FORCE_SIZE:
-
-<!-- ##### MACRO GTK_ICON_THEME_ERROR ##### -->
-<para>
-The #GQuark used for #GtkIconThemeError errors.
-</para>
-
-
-
-<!-- ##### ENUM GtkIconThemeError ##### -->
-<para>
-
-</para>
-
-@GTK_ICON_THEME_NOT_FOUND:
-@GTK_ICON_THEME_FAILED:
-
-<!-- ##### FUNCTION gtk_icon_theme_new ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_get_default ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_get_for_screen ##### -->
-<para>
-
-</para>
-
-@screen:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_set_screen ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@screen:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_set_search_path ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@path:
-@n_elements:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_get_search_path ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@path:
-@n_elements:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_append_search_path ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@path:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_prepend_search_path ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@path:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_set_custom_theme ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@theme_name:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_has_icon ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@icon_name:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_lookup_icon ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@icon_name:
-@size:
-@flags:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_choose_icon ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@icon_names:
-@size:
-@flags:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_lookup_by_gicon ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@icon:
-@size:
-@flags:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_load_icon ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@icon_name:
-@size:
-@flags:
-@error:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_list_contexts ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_list_icons ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@context:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_get_icon_sizes ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@icon_name:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_get_example_icon_name ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_rescan_if_needed ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_theme_add_builtin_icon ##### -->
-<para>
-
-</para>
-
-@icon_name:
-@size:
-@pixbuf:
-
-
-<!-- ##### FUNCTION gtk_icon_info_copy ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_free ##### -->
-<para>
-
-</para>
-
-@icon_info:
-
-
-<!-- ##### FUNCTION gtk_icon_info_new_for_pixbuf ##### -->
-<para>
-
-</para>
-
-@icon_theme:
-@pixbuf:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_get_base_size ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_get_filename ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_get_builtin_pixbuf ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_load_icon ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@error:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_load_symbolic ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@fg:
-@success_color:
-@warning_color:
-@error_color:
-@was_symbolic:
-@error:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_load_symbolic_for_style ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@style:
-@state:
-@was_symbolic:
-@error:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_load_symbolic_for_context ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@context:
-@was_symbolic:
-@error:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_set_raw_coordinates ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@raw_coordinates:
-
-
-<!-- ##### FUNCTION gtk_icon_info_get_embedded_rect ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@rectangle:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_get_attach_points ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@points:
-@n_points:
-@Returns:
-
-
-<!-- ##### FUNCTION gtk_icon_info_get_display_name ##### -->
-<para>
-
-</para>
-
-@icon_info:
-@Returns:
-
-
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index db65d5171e..1845adb5ae 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -49,6 +49,92 @@
#include "gtksettings.h"
#include "gtkprivate.h"
+
+/**
+ * SECTION:gtkicontheme
+ * @Short_description: Looking up icons by name
+ * @Title: GtkIconTheme
+ *
+ * #GtkIconTheme provides a facility for looking up icons by name
+ * and size. The main reason for using a name rather than simply
+ * providing a filename is to allow different icons to be used
+ * depending on what <firstterm>icon theme</firstterm> is selected
+ * by the user. The operation of icon themes on Linux and Unix
+ * follows the <ulink
+ * url="http://www.freedesktop.org/Standards/icon-theme-spec">Icon
+ * Theme Specification</ulink>. There is a default icon theme,
+ * named <literal>hicolor</literal> where applications should install
+ * their icons, but more additional application themes can be
+ * installed as operating system vendors and users choose.
+ *
+ * Named icons are similar to the <xref linkend="gtk3-Themeable-Stock-Images"/>
+ * facility, and the distinction between the two may be a bit confusing.
+ * A few things to keep in mind:
+ * <itemizedlist>
+ * <listitem>
+ * Stock images usually are used in conjunction with
+ * <xref linkend="gtk3-Stock-Items"/>, such as %GTK_STOCK_OK or
+ * %GTK_STOCK_OPEN. Named icons are easier to set up and therefore
+ * are more useful for new icons that an application wants to
+ * add, such as application icons or window icons.
+ * </listitem>
+ * <listitem>
+ * Stock images can only be loaded at the symbolic sizes defined
+ * by the #GtkIconSize enumeration, or by custom sizes defined
+ * by gtk_icon_size_register(), while named icons are more flexible
+ * and any pixel size can be specified.
+ * </listitem>
+ * <listitem>
+ * Because stock images are closely tied to stock items, and thus
+ * to actions in the user interface, stock images may come in
+ * multiple variants for different widget states or writing
+ * directions.
+ * </listitem>
+ * </itemizedlist>
+ * A good rule of thumb is that if there is a stock image for what
+ * you want to use, use it, otherwise use a named icon. It turns
+ * out that internally stock images are generally defined in
+ * terms of one or more named icons. (An example of the
+ * more than one case is icons that depend on writing direction;
+ * %GTK_STOCK_GO_FORWARD uses the two themed icons
+ * "gtk-stock-go-forward-ltr" and "gtk-stock-go-forward-rtl".)
+ *
+ * In many cases, named themes are used indirectly, via #GtkImage
+ * or stock items, rather than directly, but looking up icons
+ * directly is also simple. The #GtkIconTheme object acts
+ * as a database of all the icons in the current theme. You
+ * can create new #GtkIconTheme objects, but its much more
+ * efficient to use the standard icon theme for the #GdkScreen
+ * so that the icon information is shared with other people
+ * looking up icons. In the case where the default screen is
+ * being used, looking up an icon can be as simple as:
+ * <informalexample>
+ * <programlisting>
+ * GError *error = NULL;
+ * GtkIconTheme *icon_theme;
+ * GdkPixbuf *pixbuf;
+ *
+ * icon_theme = gtk_icon_theme_get_default ();
+ * pixbuf = gtk_icon_theme_load_icon (icon_theme,
+ * "my-icon-name", // icon name
+ * 48, // size
+ * 0, // flags
+ * &error);
+ * if (!pixbuf)
+ * {
+ * g_warning ("Couldn't load icon: &percnt;s", error->message);
+ * g_error_free (error);
+ * }
+ * else
+ * {
+ * // Use the pixbuf
+ * g_object_unref (pixbuf);
+ * }
+ * </programlisting>
+ * </informalexample>
+ */
+
+
#define DEFAULT_THEME_NAME "hicolor"
typedef enum
diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h
index 607bdf09e4..6d3ea2d266 100644
--- a/gtk/gtkicontheme.h
+++ b/gtk/gtkicontheme.h
@@ -40,11 +40,28 @@ G_BEGIN_DECLS
#define GTK_IS_ICON_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ICON_THEME))
#define GTK_ICON_THEME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ICON_THEME, GtkIconThemeClass))
+/**
+ * GtkIconInfo:
+ *
+ * Contains information found when looking up an icon in
+ * an icon theme.
+ */
typedef struct _GtkIconInfo GtkIconInfo;
typedef struct _GtkIconTheme GtkIconTheme;
typedef struct _GtkIconThemeClass GtkIconThemeClass;
typedef struct _GtkIconThemePrivate GtkIconThemePrivate;
+/**
+ * GtkIconTheme:
+ *
+ * Acts as a database of information about an icon theme.
+ * Normally, you retrieve the icon theme for a particular
+ * screen using gtk_icon_theme_get_for_screen() and it
+ * will contain information about current icon theme for
+ * that screen, but you can also create a new #GtkIconTheme
+ * object and set the icon theme name explicitely using
+ * gtk_icon_theme_set_custom_theme().
+ */
struct _GtkIconTheme
{
/*< private >*/
@@ -94,6 +111,11 @@ typedef enum
GTK_ICON_LOOKUP_FORCE_SIZE = 1 << 4
} GtkIconLookupFlags;
+/**
+ * GTK_ICON_THEME_ERROR:
+ *
+ * The #GQuark used for #GtkIconThemeError errors.
+ */
#define GTK_ICON_THEME_ERROR gtk_icon_theme_error_quark ()
/**