r3768: Updated years.
[rox-filer.git] / ROX-Filer / src / gtkicontheme.h
blobb5e6e99eeba4082cb860fca296fd85fc2ae3a388
1 /* RoxIconTheme - a loader for icon themes
2 * gtk-icon-loader.h Copyright (C) 2002, 2003 Red Hat, Inc.
4 * This was LGPL; it's now GPL, as allowed by the LGPL. It's also very
5 * stripped down. GTK 2.4 will have this stuff built-in.
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the Free
9 * Software Foundation; either version 2 of the License, or (at your option)
10 * any later version.
13 #ifndef __ROX_ICON_THEME_H__
14 #define __ROX_ICON_THEME_H__
16 #include <glib-object.h>
17 #include <gdk-pixbuf/gdk-pixbuf.h>
18 #include <gdk/gdkscreen.h>
20 G_BEGIN_DECLS
22 #define ROX_TYPE_ICON_INFO (rox_icon_info_get_type)
24 #define ROX_TYPE_ICON_THEME (rox_icon_theme_get_type ())
25 #define ROX_ICON_THEME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ROX_TYPE_ICON_THEME, RoxIconTheme))
26 #define ROX_ICON_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ROX_TYPE_ICON_THEME, RoxIconThemeClass))
27 #define ROX_IS_ICON_THEME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ROX_TYPE_ICON_THEME))
28 #define ROX_IS_ICON_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ROX_TYPE_ICON_THEME))
29 #define ROX_ICON_THEME_GET_CLASS(obj) (G_TYPE_CHECK_GET_CLASS ((obj), ROX_TYPE_ICON_THEME, RoxIconThemeClass))
31 typedef struct _RoxIconInfo RoxIconInfo;
32 typedef struct _RoxIconTheme RoxIconTheme;
33 typedef struct _RoxIconThemeClass RoxIconThemeClass;
34 typedef struct _RoxIconThemePrivate RoxIconThemePrivate;
37 struct _RoxIconTheme
39 /*< private >*/
40 GObject parent_instance;
42 RoxIconThemePrivate *priv;
45 struct _RoxIconThemeClass
47 GObjectClass parent_class;
49 void (* changed) (RoxIconTheme *icon_theme);
52 typedef enum
54 ROX_ICON_LOOKUP_NO_SVG = 0 << 0,
55 ROX_ICON_LOOKUP_FORCE_SVG = 0 << 1,
56 ROX_ICON_LOOKUP_USE_BUILTIN = 0 << 2
57 } RoxIconLookupFlags;
59 #define ROX_ICON_THEME_ERROR rox_icon_theme_error_quark ()
61 typedef enum {
62 ROX_ICON_THEME_NOT_FOUND,
63 ROX_ICON_THEME_FAILED
64 } RoxIconThemeError;
66 GQuark rox_icon_theme_error_quark (void) G_GNUC_CONST;
68 GType rox_icon_theme_get_type (void) G_GNUC_CONST;
70 RoxIconTheme *rox_icon_theme_new (void);
71 void rox_icon_theme_get_search_path (RoxIconTheme *icon_theme,
72 gchar **path[],
73 gint *n_elements);
74 void rox_icon_theme_set_custom_theme (RoxIconTheme *icon_theme,
75 const gchar *theme_name);
77 RoxIconInfo * rox_icon_theme_lookup_icon (RoxIconTheme *icon_theme,
78 const gchar *icon_name,
79 gint size,
80 RoxIconLookupFlags flags);
81 GdkPixbuf * rox_icon_theme_load_icon (RoxIconTheme *icon_theme,
82 const gchar *icon_name,
83 gint size,
84 RoxIconLookupFlags flags,
85 GError **error);
87 gboolean rox_icon_theme_rescan_if_needed (RoxIconTheme *icon_theme);
89 GType rox_icon_info_get_type (void);
90 RoxIconInfo *rox_icon_info_copy (RoxIconInfo *icon_info);
91 void rox_icon_info_free (RoxIconInfo *icon_info);
94 G_END_DECLS
96 #endif /* __ROX_ICON_THEME_H__ */