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 | #ifndef __GDK_TYPES_H__ |
28 | #define __GDK_TYPES_H__ |
29 | |
30 | #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) |
31 | #error "Only <gdk/gdk.h> can be included directly." |
32 | #endif |
33 | |
34 | /* GDK uses "glib". (And so does GTK). |
35 | */ |
36 | #include <glib.h> |
37 | #include <pango/pango.h> |
38 | #include <glib-object.h> |
39 | |
40 | #ifdef G_OS_WIN32 |
41 | # ifdef GDK_COMPILATION |
42 | # define GDKVAR __declspec(dllexport) |
43 | # else |
44 | # define GDKVAR extern __declspec(dllimport) |
45 | # endif |
46 | #else |
47 | # define GDKVAR extern |
48 | #endif |
49 | |
50 | /* The system specific file gdkconfig.h contains such configuration |
51 | * settings that are needed not only when compiling GDK (or GTK) |
52 | * itself, but also occasionally when compiling programs that use GDK |
53 | * (or GTK). One such setting is what windowing API backend is in use. |
54 | */ |
55 | #include <gdkconfig.h> |
56 | |
57 | /* some common magic values */ |
58 | #define GDK_CURRENT_TIME 0L |
59 | #define GDK_PARENT_RELATIVE 1L |
60 | |
61 | |
62 | |
63 | G_BEGIN_DECLS |
64 | |
65 | |
66 | /* Type definitions for the basic structures. |
67 | */ |
68 | typedef struct _GdkPoint GdkPoint; |
69 | typedef struct _GdkRectangle GdkRectangle; |
70 | typedef struct _GdkSegment GdkSegment; |
71 | typedef struct _GdkSpan GdkSpan; |
72 | |
73 | /* |
74 | * Note that on some platforms the wchar_t type |
75 | * is not the same as GdkWChar. For instance |
76 | * on Win32, wchar_t is unsigned short. |
77 | */ |
78 | typedef guint32 GdkWChar; |
79 | |
80 | typedef struct _GdkAtom *GdkAtom; |
81 | |
82 | #define GDK_ATOM_TO_POINTER(atom) (atom) |
83 | #define GDK_POINTER_TO_ATOM(ptr) ((GdkAtom)(ptr)) |
84 | |
85 | #ifdef GDK_NATIVE_WINDOW_POINTER |
86 | #define GDK_GPOINTER_TO_NATIVE_WINDOW(p) ((GdkNativeWindow) (p)) |
87 | #else |
88 | #define GDK_GPOINTER_TO_NATIVE_WINDOW(p) GPOINTER_TO_UINT(p) |
89 | #endif |
90 | |
91 | #define _GDK_MAKE_ATOM(val) ((GdkAtom)GUINT_TO_POINTER(val)) |
92 | #define GDK_NONE _GDK_MAKE_ATOM (0) |
93 | |
94 | #ifdef GDK_NATIVE_WINDOW_POINTER |
95 | typedef gpointer GdkNativeWindow; |
96 | #else |
97 | typedef guint32 GdkNativeWindow; |
98 | #endif |
99 | |
100 | /* Forward declarations of commonly used types |
101 | */ |
102 | typedef struct _GdkColor GdkColor; |
103 | typedef struct _GdkColormap GdkColormap; |
104 | typedef struct _GdkCursor GdkCursor; |
105 | typedef struct _GdkFont GdkFont; |
106 | typedef struct _GdkGC GdkGC; |
107 | typedef struct _GdkImage GdkImage; |
108 | typedef struct _GdkRegion GdkRegion; |
109 | typedef struct _GdkVisual GdkVisual; |
110 | |
111 | typedef struct _GdkDrawable GdkDrawable; |
112 | typedef struct _GdkDrawable GdkBitmap; |
113 | typedef struct _GdkDrawable GdkPixmap; |
114 | typedef struct _GdkDrawable GdkWindow; |
115 | typedef struct _GdkDisplay GdkDisplay; |
116 | typedef struct _GdkScreen GdkScreen; |
117 | |
118 | typedef enum |
119 | { |
120 | GDK_LSB_FIRST, |
121 | GDK_MSB_FIRST |
122 | } GdkByteOrder; |
123 | |
124 | /* Types of modifiers. |
125 | */ |
126 | typedef enum |
127 | { |
128 | GDK_SHIFT_MASK = 1 << 0, |
129 | GDK_LOCK_MASK = 1 << 1, |
130 | GDK_CONTROL_MASK = 1 << 2, |
131 | GDK_MOD1_MASK = 1 << 3, |
132 | GDK_MOD2_MASK = 1 << 4, |
133 | GDK_MOD3_MASK = 1 << 5, |
134 | GDK_MOD4_MASK = 1 << 6, |
135 | GDK_MOD5_MASK = 1 << 7, |
136 | GDK_BUTTON1_MASK = 1 << 8, |
137 | GDK_BUTTON2_MASK = 1 << 9, |
138 | GDK_BUTTON3_MASK = 1 << 10, |
139 | GDK_BUTTON4_MASK = 1 << 11, |
140 | GDK_BUTTON5_MASK = 1 << 12, |
141 | |
142 | /* The next few modifiers are used by XKB, so we skip to the end. |
143 | * Bits 15 - 25 are currently unused. Bit 29 is used internally. |
144 | */ |
145 | |
146 | GDK_SUPER_MASK = 1 << 26, |
147 | GDK_HYPER_MASK = 1 << 27, |
148 | GDK_META_MASK = 1 << 28, |
149 | |
150 | GDK_RELEASE_MASK = 1 << 30, |
151 | |
152 | GDK_MODIFIER_MASK = 0x5c001fff |
153 | } GdkModifierType; |
154 | |
155 | typedef enum |
156 | { |
157 | GDK_INPUT_READ = 1 << 0, |
158 | GDK_INPUT_WRITE = 1 << 1, |
159 | GDK_INPUT_EXCEPTION = 1 << 2 |
160 | } GdkInputCondition; |
161 | |
162 | typedef enum |
163 | { |
164 | GDK_OK = 0, |
165 | GDK_ERROR = -1, |
166 | GDK_ERROR_PARAM = -2, |
167 | GDK_ERROR_FILE = -3, |
168 | GDK_ERROR_MEM = -4 |
169 | } GdkStatus; |
170 | |
171 | /* We define specific numeric values for these constants, |
172 | * since old application code may depend on them matching the X values |
173 | * We don't actually depend on the matchup ourselves. |
174 | */ |
175 | typedef enum |
176 | { |
177 | GDK_GRAB_SUCCESS = 0, |
178 | GDK_GRAB_ALREADY_GRABBED = 1, |
179 | GDK_GRAB_INVALID_TIME = 2, |
180 | GDK_GRAB_NOT_VIEWABLE = 3, |
181 | GDK_GRAB_FROZEN = 4 |
182 | } GdkGrabStatus; |
183 | |
184 | typedef void (*GdkInputFunction) (gpointer data, |
185 | gint source, |
186 | GdkInputCondition condition); |
187 | |
188 | #ifndef GDK_DISABLE_DEPRECATED |
189 | |
190 | typedef void (*GdkDestroyNotify) (gpointer data); |
191 | |
192 | #endif /* GDK_DISABLE_DEPRECATED */ |
193 | |
194 | struct _GdkPoint |
195 | { |
196 | gint x; |
197 | gint y; |
198 | }; |
199 | |
200 | struct _GdkRectangle |
201 | { |
202 | gint x; |
203 | gint y; |
204 | gint width; |
205 | gint height; |
206 | }; |
207 | |
208 | struct _GdkSegment |
209 | { |
210 | gint x1; |
211 | gint y1; |
212 | gint x2; |
213 | gint y2; |
214 | }; |
215 | |
216 | struct _GdkSpan |
217 | { |
218 | gint x; |
219 | gint y; |
220 | gint width; |
221 | }; |
222 | |
223 | G_END_DECLS |
224 | |
225 | |
226 | #endif /* __GDK_TYPES_H__ */ |
227 | |