diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2002-10-03 22:39:51 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2002-10-03 22:39:51 +0000 |
commit | 45f7541f42d696d02464973e74b2684f690a0cdd (patch) | |
tree | 5e36f77bb56a48f9f68fdd84c1c21f682a803108 /gdk-pixbuf/gdk-pixbuf-io.h | |
parent | 71277f4075d53cc1eea6e7e4f20c187c79f1172d (diff) | |
download | gtk+-45f7541f42d696d02464973e74b2684f690a0cdd.tar.gz |
Support for separately installed loaders. (#77486)
* Makefile.am gdk-pixbuf-animation.c gdk-pixbuf-data.c
gdk-pixbuf-io.c gdk-pixbuf-io.h gdk-pixbuf-loader.c
gdk-pixbuf-loader.h gdk-pixbuf-private.h gdk-pixbuf.h
gdk-pixdata.c io-ani-animation.h io-ani.c io-bmp.c
io-gif-animation.c io-gif-animation.h io-gif.c io-ico.c
io-jpeg.c io-png.c io-pnm.c io-ras.c io-tga.c io-tiff.c
io-wbmp.c io-xbm.c io-xpm.c pixbufloader_ani.def
pixbufloader_bmp.def pixbufloader_gif.def pixbufloader_ico.def
pixbufloader_jpeg.def pixbufloader_png.def
pixbufloader_pnm.def pixbufloader_ras.def pixbufloader_tga.def
pixbufloader_tiff.def pixbufloader_wbmp.def
pixbufloader_xbm.def pixbufloader_xpm.def test-gdk-pixbuf.c
gdk-pixbuf-animation.h queryloaders.c: Support for separately
installed loaders. (#77486)
Diffstat (limited to 'gdk-pixbuf/gdk-pixbuf-io.h')
-rw-r--r-- | gdk-pixbuf/gdk-pixbuf-io.h | 101 |
1 files changed, 66 insertions, 35 deletions
diff --git a/gdk-pixbuf/gdk-pixbuf-io.h b/gdk-pixbuf/gdk-pixbuf-io.h index b0db1a2487..aeb8e99537 100644 --- a/gdk-pixbuf/gdk-pixbuf-io.h +++ b/gdk-pixbuf/gdk-pixbuf-io.h @@ -1,5 +1,6 @@ -/* GdkPixbuf library - Io handling. This is an internal header for gdk-pixbuf. - * You should never use it unless you are doing developement for gdkpixbuf itself. +/* GdkPixbuf library - Io handling. This is an internal header for + * GdkPixbuf. You should never use it unless you are doing development for + * GdkPixbuf itself. * * Copyright (C) 1999 The Free Software Foundation * @@ -28,43 +29,53 @@ #ifndef GDK_PIXBUF_IO_H #define GDK_PIXBUF_IO_H +#include "gdk-pixbuf/gdk-pixbuf.h" #include <gmodule.h> #include <stdio.h> -#include "gdk-pixbuf.h" -#include "gdk-pixbuf-i18n.h" G_BEGIN_DECLS - +#ifdef GDK_PIXBUF_ENABLE_BACKEND -typedef void (* ModuleSizeFunc) (gint *width, - gint *height, - gpointer user_data); + -typedef void (* ModulePreparedNotifyFunc) (GdkPixbuf *pixbuf, - GdkPixbufAnimation *anim, - gpointer user_data); -typedef void (* ModuleUpdatedNotifyFunc) (GdkPixbuf *pixbuf, - int x, - int y, - int width, - int height, - gpointer user_data); +typedef void (* GdkPixbufModuleSizeFunc) (gint *width, + gint *height, + gpointer user_data); + +typedef void (* GdkPixbufModulePreparedFunc) (GdkPixbuf *pixbuf, + GdkPixbufAnimation *anim, + gpointer user_data); +typedef void (* GdkPixbufModuleUpdatedFunc) (GdkPixbuf *pixbuf, + int x, + int y, + int width, + int height, + gpointer user_data); + +typedef struct _GdkPixbufModulePattern GdkPixbufModulePattern; +struct _GdkPixbufModulePattern { + unsigned char *prefix; + unsigned char *mask; + int relevance; +}; typedef struct _GdkPixbufModule GdkPixbufModule; struct _GdkPixbufModule { char *module_name; - gboolean (* format_check) (guchar *buffer, int size); + char *module_path; GModule *module; + GdkPixbufFormat *info; + GdkPixbuf *(* load) (FILE *f, GError **error); GdkPixbuf *(* load_xpm_data) (const char **data); /* Incremental loading */ - gpointer (* begin_load) (ModuleSizeFunc size_func, - ModulePreparedNotifyFunc prepare_func, - ModuleUpdatedNotifyFunc update_func, + gpointer (* begin_load) (GdkPixbufModuleSizeFunc size_func, + GdkPixbufModulePreparedFunc prepare_func, + GdkPixbufModuleUpdatedFunc update_func, gpointer user_data, GError **error); gboolean (* stop_load) (gpointer context, @@ -83,24 +94,44 @@ struct _GdkPixbufModule { gchar **param_keys, gchar **param_values, GError **error); -}; + + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); + void (*_reserved5) (void); + void (*_reserved6) (void); -typedef void (* ModuleFillVtableFunc) (GdkPixbufModule *module); +}; -GdkPixbufModule *_gdk_pixbuf_get_module (guchar *buffer, guint size, - const gchar *filename, - GError **error); -GdkPixbufModule *_gdk_pixbuf_get_named_module (const char *name, - GError **error); -gboolean _gdk_pixbuf_load_module (GdkPixbufModule *image_module, - GError **error); +typedef void (* GdkPixbufModuleFillVtableFunc) (GdkPixbufModule *module); +typedef void (* GdkPixbufModuleFillInfoFunc) (GdkPixbufFormat *info); +typedef const GdkPixbufModulePattern *(* GdkPixbufModuleGetSignatureFunc) (void); + +/* key/value pairs that can be attached by the pixbuf loader */ + +gboolean gdk_pixbuf_set_option (GdkPixbuf *pixbuf, + const gchar *key, + const gchar *value); + +typedef enum /*< skip >*/ +{ + GDK_PIXBUF_FORMAT_WRITABLE = 1 << 0 +} GdkPixbufFormatFlags; + +struct _GdkPixbufFormat { + gchar *name; + GdkPixbufModulePattern *signature; + gchar *domain; + gchar *description; + gchar **mime_types; + gchar **extensions; + guint32 flags; +}; -GdkPixbuf *_gdk_pixbuf_generic_image_load (GdkPixbufModule *image_module, - FILE *f, - GError **error); - +#endif /* GDK_PIXBUF_ENABLE_BACKEND */ G_END_DECLS -#endif +#endif /* GDK_PIXBUF_IO_H */ |