X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkiconfactory.h;h=fabf9288e08e657220fd1251409483e0947f024f;hb=e3cd958e369395c45d18ba1a3673dfb2d5247d95;hp=1f26abb823f285a2cfebc83ae7699a4362acdee6;hpb=f88d35bba7cd95b43728df771754e8d0d14a4456;p=~andy%2Fgtk diff --git a/gtk/gtkiconfactory.h b/gtk/gtkiconfactory.h index 1f26abb82..fabf9288e 100644 --- a/gtk/gtkiconfactory.h +++ b/gtk/gtkiconfactory.h @@ -12,29 +12,29 @@ * 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 . */ /* * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS * file for a list of people on the GTK+ Team. See the ChangeLog * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ #ifndef __GTK_ICON_FACTORY_H__ #define __GTK_ICON_FACTORY_H__ +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include -#include +#include +#include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +G_BEGIN_DECLS -typedef struct _GtkIconFactoryClass GtkIconFactoryClass; #define GTK_TYPE_ICON_FACTORY (gtk_icon_factory_get_type ()) #define GTK_ICON_FACTORY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GTK_TYPE_ICON_FACTORY, GtkIconFactory)) @@ -42,22 +42,33 @@ typedef struct _GtkIconFactoryClass GtkIconFactoryClass; #define GTK_IS_ICON_FACTORY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GTK_TYPE_ICON_FACTORY)) #define GTK_IS_ICON_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ICON_FACTORY)) #define GTK_ICON_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ICON_FACTORY, GtkIconFactoryClass)) +#define GTK_TYPE_ICON_SET (gtk_icon_set_get_type ()) +#define GTK_TYPE_ICON_SOURCE (gtk_icon_source_get_type ()) + +typedef struct _GtkIconFactory GtkIconFactory; +typedef struct _GtkIconFactoryPrivate GtkIconFactoryPrivate; +typedef struct _GtkIconFactoryClass GtkIconFactoryClass; struct _GtkIconFactory { GObject parent_instance; - GHashTable *icons; + /*< private >*/ + GtkIconFactoryPrivate *priv; }; struct _GtkIconFactoryClass { GObjectClass parent_class; - + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); }; -GType gtk_icon_factory_get_type (void); +GType gtk_icon_factory_get_type (void) G_GNUC_CONST; GtkIconFactory* gtk_icon_factory_new (void); void gtk_icon_factory_add (GtkIconFactory *factory, const gchar *stock_id, @@ -82,26 +93,27 @@ GtkIconSet* gtk_icon_factory_lookup_default (const gchar *stock_id); * size from the rendered pixbuf, not from here. */ -gboolean gtk_icon_size_lookup (const gchar *alias, - gint *width, - gint *height); -void gtk_icon_size_register (const gchar *alias, - gint width, - gint height); -void gtk_icon_size_register_alias (const gchar *alias, - const gchar *target); - - -/* Standard sizes */ - -#define GTK_ICON_SIZE_MENU "gtk-menu" -#define GTK_ICON_SIZE_SMALL_TOOLBAR "gtk-small-toolbar" -#define GTK_ICON_SIZE_LARGE_TOOLBAR "gtk-large-toolbar" -#define GTK_ICON_SIZE_BUTTON "gtk-button" -#define GTK_ICON_SIZE_DIALOG "gtk-dialog" +#ifndef GDK_MULTIHEAD_SAFE +gboolean gtk_icon_size_lookup (GtkIconSize size, + gint *width, + gint *height); +#endif /* GDK_MULTIHEAD_SAFE */ +gboolean gtk_icon_size_lookup_for_settings (GtkSettings *settings, + GtkIconSize size, + gint *width, + gint *height); + +GtkIconSize gtk_icon_size_register (const gchar *name, + gint width, + gint height); +void gtk_icon_size_register_alias (const gchar *alias, + GtkIconSize target); +GtkIconSize gtk_icon_size_from_name (const gchar *name); +const gchar* gtk_icon_size_get_name (GtkIconSize size); /* Icon sets */ +GType gtk_icon_set_get_type (void) G_GNUC_CONST; GtkIconSet* gtk_icon_set_new (void); GtkIconSet* gtk_icon_set_new_from_pixbuf (GdkPixbuf *pixbuf); @@ -109,52 +121,63 @@ GtkIconSet* gtk_icon_set_ref (GtkIconSet *icon_set); void gtk_icon_set_unref (GtkIconSet *icon_set); GtkIconSet* gtk_icon_set_copy (GtkIconSet *icon_set); -/* Get one of the icon variants in the set, creating the variant if - * necessary. - */ +GDK_DEPRECATED_IN_3_0_FOR(gtk_icon_set_render_icon_pixbuf) GdkPixbuf* gtk_icon_set_render_icon (GtkIconSet *icon_set, GtkStyle *style, GtkTextDirection direction, GtkStateType state, - const gchar *size, + GtkIconSize size, GtkWidget *widget, - const char *detail); - + const gchar *detail); void gtk_icon_set_add_source (GtkIconSet *icon_set, const GtkIconSource *source); -/* INTERNAL */ +void gtk_icon_set_get_sizes (GtkIconSet *icon_set, + GtkIconSize **sizes, + gint *n_sizes); + +GType gtk_icon_source_get_type (void) G_GNUC_CONST; +GtkIconSource* gtk_icon_source_new (void); +GtkIconSource* gtk_icon_source_copy (const GtkIconSource *source); +void gtk_icon_source_free (GtkIconSource *source); + +void gtk_icon_source_set_filename (GtkIconSource *source, + const gchar *filename); +void gtk_icon_source_set_icon_name (GtkIconSource *source, + const gchar *icon_name); +void gtk_icon_source_set_pixbuf (GtkIconSource *source, + GdkPixbuf *pixbuf); + +const gchar * gtk_icon_source_get_filename (const GtkIconSource *source); +const gchar * gtk_icon_source_get_icon_name (const GtkIconSource *source); +GdkPixbuf* gtk_icon_source_get_pixbuf (const GtkIconSource *source); + +void gtk_icon_source_set_direction_wildcarded (GtkIconSource *source, + gboolean setting); +void gtk_icon_source_set_state_wildcarded (GtkIconSource *source, + gboolean setting); +void gtk_icon_source_set_size_wildcarded (GtkIconSource *source, + gboolean setting); +gboolean gtk_icon_source_get_size_wildcarded (const GtkIconSource *source); +gboolean gtk_icon_source_get_state_wildcarded (const GtkIconSource *source); +gboolean gtk_icon_source_get_direction_wildcarded (const GtkIconSource *source); +void gtk_icon_source_set_direction (GtkIconSource *source, + GtkTextDirection direction); +void gtk_icon_source_set_state (GtkIconSource *source, + GtkStateType state); +void gtk_icon_source_set_size (GtkIconSource *source, + GtkIconSize size); +GtkTextDirection gtk_icon_source_get_direction (const GtkIconSource *source); +GtkStateType gtk_icon_source_get_state (const GtkIconSource *source); +GtkIconSize gtk_icon_source_get_size (const GtkIconSource *source); + + +/* ignore this */ void _gtk_icon_set_invalidate_caches (void); +GList* _gtk_icon_factory_list_ids (void); +void _gtk_icon_factory_ensure_default_icons (void); -struct _GtkIconSource -{ - /* Either filename or pixbuf can be NULL. If both are non-NULL, - * the pixbuf is assumed to be the already-loaded contents of the - * file. - */ - gchar *filename; - GdkPixbuf *pixbuf; - - GtkTextDirection direction; - GtkStateType state; - gchar *size; - - /* If TRUE, then the parameter is wildcarded, and the above - * fields should be ignored. If FALSE, the parameter is - * specified, and the above fields should be valid. - */ - guint any_direction : 1; - guint any_state : 1; - guint any_size : 1; -}; - - -GtkIconSource* gtk_icon_source_copy (const GtkIconSource *source); -void gtk_icon_source_free (GtkIconSource *source); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +G_END_DECLS #endif /* __GTK_ICON_FACTORY_H__ */