X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkicontheme.h;h=0b4ee405f607073146ba022443481279e3e4baeb;hb=56bcb1933f6de613e5d8689e23420d47b65425c3;hp=7b8bef1f89e2390b34d8adad5ccba517ec8dcf94;hpb=f3da17053918abe78db5f75e7d008e4c84c09570;p=~andy%2Fgtk diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h index 7b8bef1f8..0b4ee405f 100644 --- a/gtk/gtkicontheme.h +++ b/gtk/gtkicontheme.h @@ -12,21 +12,28 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #ifndef __GTK_ICON_THEME_H__ #define __GTK_ICON_THEME_H__ -#include +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include -#include +#include +#include G_BEGIN_DECLS #define GTK_TYPE_ICON_INFO (gtk_icon_info_get_type ()) +#define GTK_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ICON_INFO, GtkIconInfo)) +#define GTK_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ICON_INFO, GtkIconInfoClass)) +#define GTK_IS_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ICON_INFO)) +#define GTK_IS_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ICON_INFO)) +#define GTK_ICON_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ICON_INFO, GtkIconInfoClass)) #define GTK_TYPE_ICON_THEME (gtk_icon_theme_get_type ()) #define GTK_ICON_THEME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ICON_THEME, GtkIconTheme)) @@ -35,11 +42,29 @@ 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 _GtkIconInfoClass GtkIconInfoClass; 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 >*/ @@ -53,6 +78,12 @@ struct _GtkIconThemeClass GObjectClass parent_class; void (* changed) (GtkIconTheme *icon_theme); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); }; /** @@ -66,16 +97,28 @@ struct _GtkIconThemeClass * gtk_icon_theme_lookup_icon() includes builtin icons * as well as files. For a builtin icon, gtk_icon_info_get_filename() * returns %NULL and you need to call gtk_icon_info_get_builtin_pixbuf(). + * @GTK_ICON_LOOKUP_GENERIC_FALLBACK: Try to shorten icon name at '-' + * characters before looking at inherited themes. For more general + * fallback, see gtk_icon_theme_choose_icon(). Since 2.12. + * @GTK_ICON_LOOKUP_FORCE_SIZE: Always return the icon scaled to the + * requested size. Since 2.14. * * Used to specify options for gtk_icon_theme_lookup_icon() **/ typedef enum { - GTK_ICON_LOOKUP_NO_SVG = 1 << 0, - GTK_ICON_LOOKUP_FORCE_SVG = 1 << 1, - GTK_ICON_LOOKUP_USE_BUILTIN = 1 << 2 + GTK_ICON_LOOKUP_NO_SVG = 1 << 0, + GTK_ICON_LOOKUP_FORCE_SVG = 1 << 1, + GTK_ICON_LOOKUP_USE_BUILTIN = 1 << 2, + GTK_ICON_LOOKUP_GENERIC_FALLBACK = 1 << 3, + 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 () /** @@ -92,15 +135,6 @@ typedef enum { GQuark gtk_icon_theme_error_quark (void); -#ifdef G_OS_WIN32 -/* Reserve old name for DLL ABI backward compatibility */ -#define gtk_icon_theme_set_search_path gtk_icon_theme_set_search_path_utf8 -#define gtk_icon_theme_get_search_path gtk_icon_theme_get_search_path_utf8 -#define gtk_icon_theme_append_search_path gtk_icon_theme_append_search_path_utf8 -#define gtk_icon_theme_prepend_search_path gtk_icon_theme_prepend_search_path_utf8 -#define gtk_icon_info_get_filename gtk_icon_info_get_filename_utf8 -#endif - GType gtk_icon_theme_get_type (void) G_GNUC_CONST; GtkIconTheme *gtk_icon_theme_new (void); @@ -131,41 +165,110 @@ GtkIconInfo * gtk_icon_theme_lookup_icon (GtkIconTheme const gchar *icon_name, gint size, GtkIconLookupFlags flags); +GtkIconInfo * gtk_icon_theme_choose_icon (GtkIconTheme *icon_theme, + const gchar *icon_names[], + gint size, + GtkIconLookupFlags flags); GdkPixbuf * gtk_icon_theme_load_icon (GtkIconTheme *icon_theme, const gchar *icon_name, gint size, GtkIconLookupFlags flags, GError **error); +GtkIconInfo * gtk_icon_theme_lookup_by_gicon (GtkIconTheme *icon_theme, + GIcon *icon, + gint size, + GtkIconLookupFlags flags); + GList * gtk_icon_theme_list_icons (GtkIconTheme *icon_theme, const gchar *context); +GList * gtk_icon_theme_list_contexts (GtkIconTheme *icon_theme); char * gtk_icon_theme_get_example_icon_name (GtkIconTheme *icon_theme); gboolean gtk_icon_theme_rescan_if_needed (GtkIconTheme *icon_theme); -void gtk_icon_theme_add_builtin_icon (const gchar *icon_name, - gint size, - GdkPixbuf *pixbuf); - -GType gtk_icon_info_get_type (void) G_GNUC_CONST; -GtkIconInfo *gtk_icon_info_copy (GtkIconInfo *icon_info); -void gtk_icon_info_free (GtkIconInfo *icon_info); - -gint gtk_icon_info_get_base_size (GtkIconInfo *icon_info); -G_CONST_RETURN gchar *gtk_icon_info_get_filename (GtkIconInfo *icon_info); -GdkPixbuf * gtk_icon_info_get_builtin_pixbuf (GtkIconInfo *icon_info); -GdkPixbuf * gtk_icon_info_load_icon (GtkIconInfo *icon_info, - GError **error); - -void gtk_icon_info_set_raw_coordinates (GtkIconInfo *icon_info, - gboolean raw_coordinates); - -gboolean gtk_icon_info_get_embedded_rect (GtkIconInfo *icon_info, - GdkRectangle *rectangle); -gboolean gtk_icon_info_get_attach_points (GtkIconInfo *icon_info, - GdkPoint **points, - gint *n_points); -G_CONST_RETURN gchar *gtk_icon_info_get_display_name (GtkIconInfo *icon_info); +void gtk_icon_theme_add_builtin_icon (const gchar *icon_name, + gint size, + GdkPixbuf *pixbuf); + +GType gtk_icon_info_get_type (void) G_GNUC_CONST; +GDK_DEPRECATED_IN_3_8_FOR(g_object_ref) +GtkIconInfo * gtk_icon_info_copy (GtkIconInfo *icon_info); +GDK_DEPRECATED_IN_3_8_FOR(g_object_unref) +void gtk_icon_info_free (GtkIconInfo *icon_info); + +GtkIconInfo * gtk_icon_info_new_for_pixbuf (GtkIconTheme *icon_theme, + GdkPixbuf *pixbuf); + +gint gtk_icon_info_get_base_size (GtkIconInfo *icon_info); +const gchar * gtk_icon_info_get_filename (GtkIconInfo *icon_info); +GdkPixbuf * gtk_icon_info_get_builtin_pixbuf (GtkIconInfo *icon_info); +GdkPixbuf * gtk_icon_info_load_icon (GtkIconInfo *icon_info, + GError **error); +GDK_AVAILABLE_IN_3_8 +void gtk_icon_info_load_icon_async (GtkIconInfo *icon_info, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDK_AVAILABLE_IN_3_8 +GdkPixbuf * gtk_icon_info_load_icon_finish (GtkIconInfo *icon_info, + GAsyncResult *res, + GError **error); +GdkPixbuf * gtk_icon_info_load_symbolic (GtkIconInfo *icon_info, + const GdkRGBA *fg, + const GdkRGBA *success_color, + const GdkRGBA *warning_color, + const GdkRGBA *error_color, + gboolean *was_symbolic, + GError **error); +GDK_AVAILABLE_IN_3_8 +void gtk_icon_info_load_symbolic_async (GtkIconInfo *icon_info, + const GdkRGBA *fg, + const GdkRGBA *success_color, + const GdkRGBA *warning_color, + const GdkRGBA *error_color, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDK_AVAILABLE_IN_3_8 +GdkPixbuf * gtk_icon_info_load_symbolic_finish (GtkIconInfo *icon_info, + GAsyncResult *res, + gboolean *was_symbolic, + GError **error); +GdkPixbuf * gtk_icon_info_load_symbolic_for_context (GtkIconInfo *icon_info, + GtkStyleContext *context, + gboolean *was_symbolic, + GError **error); +GDK_AVAILABLE_IN_3_8 +void gtk_icon_info_load_symbolic_for_context_async (GtkIconInfo *icon_info, + GtkStyleContext *context, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDK_AVAILABLE_IN_3_8 +GdkPixbuf * gtk_icon_info_load_symbolic_for_context_finish (GtkIconInfo *icon_info, + GAsyncResult *res, + gboolean *was_symbolic, + GError **error); +GDK_DEPRECATED_IN_3_0_FOR(gtk_icon_info_load_symbol_for_context) +GdkPixbuf * gtk_icon_info_load_symbolic_for_style (GtkIconInfo *icon_info, + GtkStyle *style, + GtkStateType state, + gboolean *was_symbolic, + GError **error); +void gtk_icon_info_set_raw_coordinates (GtkIconInfo *icon_info, + gboolean raw_coordinates); + +gboolean gtk_icon_info_get_embedded_rect (GtkIconInfo *icon_info, + GdkRectangle *rectangle); +gboolean gtk_icon_info_get_attach_points (GtkIconInfo *icon_info, + GdkPoint **points, + gint *n_points); +const gchar * gtk_icon_info_get_display_name (GtkIconInfo *icon_info); + +/* Non-public methods */ +void _gtk_icon_theme_check_reload (GdkDisplay *display); +void _gtk_icon_theme_ensure_builtin_cache (void); G_END_DECLS