1/* GdkPixbuf library - Progressive loader object
2 *
3 * Copyright (C) 1999 The Free Software Foundation
4 *
5 * Authors: Mark Crichton <crichton@gimp.org>
6 * Miguel de Icaza <miguel@gnu.org>
7 * Federico Mena-Quintero <federico@gimp.org>
8 * Jonathan Blandford <jrb@redhat.com>
9 *
10 * This library is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
14 *
15 * This library is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public
21 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
22 */
23
24#ifndef GDK_PIXBUF_LOADER_H
25#define GDK_PIXBUF_LOADER_H
26
27#if defined(GDK_PIXBUF_DISABLE_SINGLE_INCLUDES) && !defined (GDK_PIXBUF_H_INSIDE) && !defined (GDK_PIXBUF_COMPILATION)
28#error "Only <gdk-pixbuf/gdk-pixbuf.h> can be included directly."
29#endif
30
31#include <glib.h>
32#include <glib-object.h>
33#include <gdk-pixbuf/gdk-pixbuf-core.h>
34#include <gdk-pixbuf/gdk-pixbuf-animation.h>
35#include <gdk-pixbuf/gdk-pixbuf-io.h>
36
37G_BEGIN_DECLS
38
39#define GDK_TYPE_PIXBUF_LOADER (gdk_pixbuf_loader_get_type ())
40#define GDK_PIXBUF_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_PIXBUF_LOADER, GdkPixbufLoader))
41#define GDK_PIXBUF_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_PIXBUF_LOADER, GdkPixbufLoaderClass))
42#define GDK_IS_PIXBUF_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_PIXBUF_LOADER))
43#define GDK_IS_PIXBUF_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_PIXBUF_LOADER))
44#define GDK_PIXBUF_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_PIXBUF_LOADER, GdkPixbufLoaderClass))
45
46typedef struct _GdkPixbufLoader GdkPixbufLoader;
47struct _GdkPixbufLoader
48{
49 /*< private >*/
50 GObject parent_instance;
51
52 gpointer priv;
53};
54
55typedef struct _GdkPixbufLoaderClass GdkPixbufLoaderClass;
56struct _GdkPixbufLoaderClass
57{
58 GObjectClass parent_class;
59
60 void (*size_prepared) (GdkPixbufLoader *loader,
61 int width,
62 int height);
63
64 void (*area_prepared) (GdkPixbufLoader *loader);
65
66 /* Last known frame needs a redraw for x, y, width, height */
67 void (*area_updated) (GdkPixbufLoader *loader,
68 int x,
69 int y,
70 int width,
71 int height);
72
73 void (*closed) (GdkPixbufLoader *loader);
74};
75
76GDK_PIXBUF_AVAILABLE_IN_ALL
77GType gdk_pixbuf_loader_get_type (void) G_GNUC_CONST;
78GDK_PIXBUF_AVAILABLE_IN_ALL
79GdkPixbufLoader * gdk_pixbuf_loader_new (void);
80GDK_PIXBUF_AVAILABLE_IN_ALL
81GdkPixbufLoader * gdk_pixbuf_loader_new_with_type (const char *image_type,
82 GError **error);
83GDK_PIXBUF_AVAILABLE_IN_2_4
84GdkPixbufLoader * gdk_pixbuf_loader_new_with_mime_type (const char *mime_type,
85 GError **error);
86GDK_PIXBUF_AVAILABLE_IN_2_2
87void gdk_pixbuf_loader_set_size (GdkPixbufLoader *loader,
88 int width,
89 int height);
90GDK_PIXBUF_AVAILABLE_IN_ALL
91gboolean gdk_pixbuf_loader_write (GdkPixbufLoader *loader,
92 const guchar *buf,
93 gsize count,
94 GError **error);
95GDK_PIXBUF_AVAILABLE_IN_2_30
96gboolean gdk_pixbuf_loader_write_bytes (GdkPixbufLoader *loader,
97 GBytes *buffer,
98 GError **error);
99GDK_PIXBUF_AVAILABLE_IN_ALL
100GdkPixbuf * gdk_pixbuf_loader_get_pixbuf (GdkPixbufLoader *loader);
101GDK_PIXBUF_AVAILABLE_IN_ALL
102GdkPixbufAnimation * gdk_pixbuf_loader_get_animation (GdkPixbufLoader *loader);
103GDK_PIXBUF_AVAILABLE_IN_ALL
104gboolean gdk_pixbuf_loader_close (GdkPixbufLoader *loader,
105 GError **error);
106GDK_PIXBUF_AVAILABLE_IN_2_2
107GdkPixbufFormat *gdk_pixbuf_loader_get_format (GdkPixbufLoader *loader);
108
109G_END_DECLS
110
111#endif
112
113
114

source code of gtk/subprojects/gdk-pixbuf/gdk-pixbuf/gdk-pixbuf-loader.h