]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkicontheme.h
filechooserbutton: Don't duplicate tests for GTK_RESPONSE_DELETE_EVENT
[~andy/gtk] / gtk / gtkicontheme.h
index f1c20a23e1ca67537860097c5b34813144f87bb0..0b4ee405f607073146ba022443481279e3e4baeb 100644 (file)
  * 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 <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __GTK_ICON_THEME_H__
 #define __GTK_ICON_THEME_H__
 
-#include <glib-object.h>
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gdk/gdk.h>
+#include <gtk/gtkstylecontext.h>
 
 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);
 };
 
 /**
@@ -69,17 +100,25 @@ struct _GtkIconThemeClass
  * @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_GENERIC_FALLBACK = 1 << 3
+  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 ()
 
 /**
@@ -96,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);
@@ -145,6 +175,11 @@ GdkPixbuf *   gtk_icon_theme_load_icon             (GtkIconTheme
                                                    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);
@@ -152,29 +187,84 @@ char *        gtk_icon_theme_get_example_icon_name (GtkIconTheme
 
 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);