]> Pileus Git - ~andy/gtk/blob - gdk/gdkimage.h
Revert name change
[~andy/gtk] / gdk / gdkimage.h
1 /* GDK - The GIMP Drawing Kit
2  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19
20 /*
21  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
22  * file for a list of people on the GTK+ Team.  See the ChangeLog
23  * files for a list of changes.  These files are distributed with
24  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
25  */
26
27 #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
28 #error "Only <gdk/gdk.h> can be included directly."
29 #endif
30
31 #ifndef __GDK_IMAGE_H__
32 #define __GDK_IMAGE_H__
33
34 #include <gdk/gdktypes.h>
35
36 G_BEGIN_DECLS
37
38 /* Types of images.
39  *   Normal: Normal X image type. These are slow as they involve passing
40  *           the entire image through the X connection each time a draw
41  *           request is required. On Win32, a bitmap.
42  *   Shared: Shared memory X image type. These are fast as the X server
43  *           and the program actually use the same piece of memory. They
44  *           should be used with care though as there is the possibility
45  *           for both the X server and the program to be reading/writing
46  *           the image simultaneously and producing undesired results.
47  *           On Win32, also a bitmap.
48  */
49 typedef enum
50 {
51   GDK_IMAGE_NORMAL,
52   GDK_IMAGE_SHARED,
53   GDK_IMAGE_FASTEST
54 } GdkImageType;
55
56 typedef struct _GdkImageClass GdkImageClass;
57
58 #define GDK_TYPE_IMAGE              (gdk_image_get_type ())
59 #define GDK_IMAGE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_IMAGE, GdkImage))
60 #define GDK_IMAGE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_IMAGE, GdkImageClass))
61 #define GDK_IS_IMAGE(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_IMAGE))
62 #define GDK_IS_IMAGE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_IMAGE))
63 #define GDK_IMAGE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_IMAGE, GdkImageClass))
64
65 struct _GdkImage
66 {
67   GObject parent_instance;
68
69   /*< public >*/
70   
71   GdkImageType  type; /* read only. */
72   GdkVisual    *visual;     /* read only. visual used to create the image */
73   GdkByteOrder  byte_order; /* read only. */
74   gint          width; /* read only. */
75   gint          height; /* read only. */
76   guint16       depth; /* read only. */
77   guint16       bpp;            /* read only. bytes per pixel */
78   guint16       bpl;            /* read only. bytes per line */
79   guint16       bits_per_pixel; /* read only. bits per pixel */
80   gpointer      mem;
81
82   GdkColormap  *colormap; /* read only. */
83
84   /*< private >*/
85   gpointer windowing_data; /* read only. */
86 };
87
88 struct _GdkImageClass
89 {
90   GObjectClass parent_class;
91 };
92
93 GType     gdk_image_get_type   (void) G_GNUC_CONST;
94
95 GdkImage*  gdk_image_new       (GdkImageType  type,
96                                 GdkVisual    *visual,
97                                 gint          width,
98                                 gint          height);
99
100 #ifndef GDK_DISABLE_DEPRECATED
101 GdkImage*  gdk_image_get       (GdkDrawable  *drawable,
102                                 gint          x,
103                                 gint          y,
104                                 gint          width,
105                                 gint          height);
106
107 GdkImage * gdk_image_ref       (GdkImage     *image);
108 void       gdk_image_unref     (GdkImage     *image);
109 #endif
110
111 void       gdk_image_put_pixel (GdkImage     *image,
112                                 gint          x,
113                                 gint          y,
114                                 guint32       pixel);
115 guint32    gdk_image_get_pixel (GdkImage     *image,
116                                 gint          x,
117                                 gint          y);
118
119 void       gdk_image_set_colormap (GdkImage    *image,
120                                    GdkColormap *colormap);
121 GdkColormap* gdk_image_get_colormap (GdkImage    *image);
122
123
124 #ifdef GDK_ENABLE_BROKEN
125 GdkImage* gdk_image_new_bitmap (GdkVisual     *visual,
126                                 gpointer      data,
127                                 gint          width,
128                                 gint          height);
129 #endif /* GDK_ENABLE_BROKEN */
130
131 #ifndef GDK_DISABLE_DEPRECATED
132 #define gdk_image_destroy              gdk_image_unref
133 #endif /* GDK_DISABLE_DEPRECATED */
134
135 G_END_DECLS
136
137 #endif /* __GDK_IMAGE_H__ */