1{
2}
3
4{****************************************************************************
5                                 Interface
6****************************************************************************}
7
8{$ifdef read_interface}
9
10   type
11     PPguchar  = Pguchar;
12     PPgchar   = ^Pgchar;
13     PPPgchar  = ^PPgchar;
14     PPgint    = ^Pgint;
15
16     PGdkWChar = ^TGdkWChar;
17     TGdkWChar = guint32;
18
19     TGdkIC = pointer;
20     PGdkIc = ^TGdkIC;
21
22     TGdkAtom = gulong;
23     PTGdkAtom = ^TGdkAtom;
24
25     PPGdkWindow = ^PGdkWindow;
26     PGdkWindow = ^TGdkWindow;
27     TGdkWindow = record
28          user_data : gpointer;
29       end;
30
31     TGdkPixmap = TGdkWindow;
32     PGdkPixmap = ^TGdkWindow;
33     PPGdkPixmap = ^PGdkPixmap;
34     TGdkBitmap = TGdkWindow;
35     PGdkBitMap = ^TGdkBitMap;
36     PPGdkBitMap = ^PGdkBitMap;
37     TGdkDrawable = TGdkWindow;
38     PGdkDrawable = ^TGdkDrawable;
39
40type
41   PGdkWindowType = ^TGdkWindowType;
42   TGdkWindowType =  Longint;
43Const
44   GDK_WINDOW_ROOT = 0;
45   GDK_WINDOW_TOPLEVEL = 1;
46   GDK_WINDOW_CHILD = 2;
47   GDK_WINDOW_DIALOG = 3;
48   GDK_WINDOW_TEMP = 4;
49   GDK_WINDOW_PIXMAP = 5;
50   GDK_WINDOW_FOREIGN = 6;
51
52type
53   PGdkWindowClass = ^TGdkWindowClass;
54   TGdkWindowClass =  Longint;
55Const
56   GDK_INPUT_OUTPUT = 0;
57   GDK_INPUT_ONLY = 1;
58
59type
60   PGdkImageType = ^TGdkImageType;
61   TGdkImageType =  Longint;
62Const
63   GDK_IMAGE_NORMAL = 0;
64   GDK_IMAGE_SHARED = 1;
65   GDK_IMAGE_FASTEST = 2;
66
67type
68   PGdkVisualType = ^TGdkVisualType;
69   TGdkVisualType =  Longint;
70Const
71     GDK_VISUAL_STATIC_GRAY = 0;
72     GDK_VISUAL_GRAYSCALE = 1;
73     GDK_VISUAL_STATIC_COLOR = 2;
74     GDK_VISUAL_PSEUDO_COLOR = 3;
75     GDK_VISUAL_TRUE_COLOR = 4;
76     GDK_VISUAL_DIRECT_COLOR = 5;
77
78type
79   PGdkFontType = ^TGdkFontType;
80   TGdkFontType =  Longint;
81Const
82     GDK_FONT_FONT = 0;
83     GDK_FONT_FONTSET = 1;
84
85type
86   PGdkWindowAttributesType = ^TGdkWindowAttributesType;
87   TGdkWindowAttributesType =  Longint;
88Const
89     GDK_WA_TITLE = (1) shl (1);
90     GDK_WA_X = (1) shl (2);
91     GDK_WA_Y = (1) shl (3);
92     GDK_WA_CURSOR = (1) shl (4);
93     GDK_WA_COLORMAP = (1) shl (5);
94     GDK_WA_VISUAL = (1) shl (6);
95     GDK_WA_WMCLASS = (1) shl (7);
96     GDK_WA_NOREDIR = (1) shl (8);
97
98type
99   PGdkWindowHints = ^TGdkWindowHints;
100   TGdkWindowHints =  Longint;
101Const
102     GDK_HINT_POS = 1 shl 0;
103     GDK_HINT_MIN_SIZE = 1 shl 1;
104     GDK_HINT_MAX_SIZE = 1 shl 2;
105     GDK_HINT_BASE_SIZE = 1 shl 3;
106     GDK_HINT_ASPECT = 1 shl 4;
107     GDK_HINT_RESIZE_INC = 1 shl 5;
108
109type
110   PGdkfunction = ^TGdkfunction;
111   TGdkfunction = Longint;
112Const
113     GDK_COPY = 0;
114     GDK_INVERT = 1;
115     GDK_XOR = 2;
116     GDK_CLEAR = 3;
117     GDK_AND = 4;
118     GDK_AND_REVERSE = 5;
119     GDK_AND_INVERT = 6;
120     GDK_NOOP = 7;
121     GDK_OR = 8;
122     GDK_EQUIV = 9;
123     GDK_OR_REVERSE = 10;
124     GDK_COPY_INVERT = 11;
125     GDK_OR_INVERT = 12;
126     GDK_NAND = 13;
127     GDK_SET = 14;
128
129type
130   PGdkFill = ^TGdkFill;
131   TGdkFill =  Longint;
132Const
133     GDK_SOLID = 0;
134     GDK_TILED = 1;
135     GDK_STIPPLED = 2;
136     GDK_OPAQUE_STIPPLED = 3;
137
138type
139   PGdkFillRule = ^TGdkFillRule;
140   TGdkFillRule =  Longint;
141Const
142     GDK_EVEN_ODD_RULE = 0;
143     GDK_WINDING_RULE = 1;
144
145type
146   PGdkLineStyle = ^TGdkLineStyle;
147   TGdkLineStyle =  Longint;
148Const
149     GDK_LINE_SOLID = 0;
150     GDK_LINE_ON_OFF_DASH = 1;
151     GDK_LINE_DOUBLE_DASH = 2;
152
153type
154   PGdkCapStyle = ^TGdkCapStyle;
155   TGdkCapStyle =  Longint;
156Const
157     GDK_CAP_NOT_LAST = 0;
158     GDK_CAP_BUTT = 1;
159     GDK_CAP_ROUND = 2;
160     GDK_CAP_PROJECTING = 3;
161
162type
163   PGdkJoinStyle = ^TGdkJoinStyle;
164   TGdkJoinStyle =  Longint;
165Const
166     GDK_JOIN_MITER = 0;
167     GDK_JOIN_ROUND = 1;
168     GDK_JOIN_BEVEL = 2;
169
170type
171   PGdkCursorType = ^TGdkCursorType;
172   TGdkCursorType =  Longint;
173
174Const
175     GDK_CURSOR_IS_PIXMAP = -1;
176     GDK_X_CURSOR = 0;
177     GDK_ARROW = 2;
178     GDK_BASED_ARROW_DOWN = 4;
179     GDK_BASED_ARROW_UP = 6;
180     GDK_BOAT = 8;
181     GDK_BOGOSITY = 10;
182     GDK_BOTTOM_LEFT_CORNER = 12;
183     GDK_BOTTOM_RIGHT_CORNER = 14;
184     GDK_BOTTOM_SIDE = 16;
185     GDK_BOTTOM_TEE = 18;
186     GDK_BOX_SPIRAL = 20;
187     GDK_CENTER_PTR = 22;
188     GDK_CIRCLE = 24;
189     GDK_CLOCK = 26;
190     GDK_COFFEE_MUG = 28;
191     GDK_CROSS = 30;
192     GDK_CROSS_REVERSE = 32;
193     GDK_CROSSHAIR = 34;
194     GDK_DIAMOND_CROSS = 36;
195     GDK_DOT = 38;
196     GDK_DOTBOX = 40;
197     GDK_DOUBLE_ARROW = 42;
198     GDK_DRAFT_LARGE = 44;
199     GDK_DRAFT_SMALL = 46;
200     GDK_DRAPED_BOX = 48;
201     GDK_EXCHANGE = 50;
202     GDK_FLEUR = 52;
203     GDK_GOBBLER = 54;
204     GDK_GUMBY = 56;
205     GDK_HAND1 = 58;
206     GDK_HAND2 = 60;
207     GDK_HEART = 62;
208     GDK_ICON = 64;
209     GDK_IRON_CROSS = 66;
210     GDK_LEFT_PTR = 68;
211     GDK_LEFT_SIDE = 70;
212     GDK_LEFT_TEE = 72;
213     GDK_LEFTBUTTON = 74;
214     GDK_LL_ANGLE = 76;
215     GDK_LR_ANGLE = 78;
216     GDK_MAN = 80;
217     GDK_MIDDLEBUTTON = 82;
218     GDK_MOUSE = 84;
219     GDK_PENCIL = 86;
220     GDK_PIRATE = 88;
221     GDK_PLUS = 90;
222     GDK_QUESTION_ARROW = 92;
223     GDK_RIGHT_PTR = 94;
224     GDK_RIGHT_SIDE = 96;
225     GDK_RIGHT_TEE = 98;
226     GDK_RIGHTBUTTON = 100;
227     GDK_RTL_LOGO = 102;
228     GDK_SAILBOAT = 104;
229     GDK_SB_DOWN_ARROW = 106;
230     GDK_SB_H_DOUBLE_ARROW = 108;
231     GDK_SB_LEFT_ARROW = 110;
232     GDK_SB_RIGHT_ARROW = 112;
233     GDK_SB_UP_ARROW = 114;
234     GDK_SB_V_DOUBLE_ARROW = 116;
235     GDK_SHUTTLE = 118;
236     GDK_SIZING = 120;
237     GDK_SPIDER = 122;
238     GDK_SPRAYCAN = 124;
239     GDK_STAR = 126;
240     GDK_TARGET = 128;
241     GDK_TCROSS = 130;
242     GDK_TOP_LEFT_ARROW = 132;
243     GDK_TOP_LEFT_CORNER = 134;
244     GDK_TOP_RIGHT_CORNER = 136;
245     GDK_TOP_SIDE = 138;
246     GDK_TOP_TEE = 140;
247     GDK_TREK = 142;
248     GDK_UL_ANGLE = 144;
249     GDK_UMBRELLA = 146;
250     GDK_UR_ANGLE = 148;
251     GDK_WATCH = 150;
252     GDK_XTERM = 152;
253     GDK_LAST_CURSOR = 153;
254     GDK_NUM_GLYPHS = 154;
255
256type
257   PGdkFilterReturn = ^TGdkFilterReturn;
258   TGdkFilterReturn =  Longint;
259Const
260     GDK_FILTER_CONTINUE = 0;
261     GDK_FILTER_TRANSLATE = 1;
262     GDK_FILTER_REMOVE = 2;
263
264type
265   PGdkVisibilityState = ^TGdkVisibilityState;
266   TGdkVisibilityState =  Longint;
267Const
268     GDK_VISIBILITY_UNOBSCURED = 0;
269     GDK_VISIBILITY_PARTIAL = 1;
270     GDK_VISIBILITY_FULLY_OBSCURED = 2;
271
272type
273   PGdkEventType = ^TGdkEventType;
274   TGdkEventType =  Longint;
275Const
276     GDK_NOTHING = -1;
277     GDK_DELETE = 0;
278     GDK_DESTROY = 1;
279     GDK_EXPOSE = 2;
280     GDK_MOTION_NOTIFY = 3;
281     GDK_BUTTON_PRESS = 4;
282     GDK_2BUTTON_PRESS = 5;
283     GDK_3BUTTON_PRESS = 6;
284     GDK_BUTTON_RELEASE = 7;
285     GDK_KEY_PRESS = 8;
286     GDK_KEY_RELEASE = 9;
287     GDK_ENTER_NOTIFY = 10;
288     GDK_LEAVE_NOTIFY = 11;
289     GDK_FOCUS_CHANGE = 12;
290     GDK_CONFIGURE = 13;
291     GDK_MAP = 14;
292     GDK_UNMAP = 15;
293     GDK_PROPERTY_NOTIFY = 16;
294     GDK_SELECTION_CLEAR = 17;
295     GDK_SELECTION_REQUEST = 18;
296     GDK_SELECTION_NOTIFY = 19;
297     GDK_PROXIMITY_IN = 20;
298     GDK_PROXIMITY_OUT = 21;
299     GDK_DRAG_ENTER = 22;
300     GDK_DRAG_LEAVE = 23;
301     GDK_DRAG_MOTION_EVENT = 24;
302     GDK_DRAG_STATUS_EVENT = 25;
303     GDK_DROP_START = 26;
304     GDK_DROP_FINISHED = 27;
305     GDK_CLIENT_EVENT = 28;
306     GDK_VISIBILITY_NOTIFY = 29;
307     GDK_NO_EXPOSE = 30;
308
309type
310   PGdkEventMask = ^TGdkEventMask;
311   TGdkEventMask =  Longint;
312Const
313     GDK_EXPOSURE_MASK = (1) shl (1);
314     GDK_POINTER_MOTION_MASK = (1) shl (2);
315     GDK_POINTER_MOTION_HINT_MASK = (1) shl (3);
316     GDK_BUTTON_MOTION_MASK = (1) shl (4);
317     GDK_BUTTON1_MOTION_MASK = (1) shl (5);
318     GDK_BUTTON2_MOTION_MASK = (1) shl (6);
319     GDK_BUTTON3_MOTION_MASK = (1) shl (7);
320     GDK_BUTTON_PRESS_MASK = (1) shl (8);
321     GDK_BUTTON_RELEASE_MASK = (1) shl (9);
322     GDK_KEY_PRESS_MASK = (1) shl (10);
323     GDK_KEY_RELEASE_MASK = (1) shl (11);
324     GDK_ENTER_NOTIFY_MASK = (1) shl (12);
325     GDK_LEAVE_NOTIFY_MASK = (1) shl (13);
326     GDK_FOCUS_CHANGE_MASK = (1) shl (14);
327     GDK_STRUCTURE_MASK = (1) shl (15);
328     GDK_PROPERTY_CHANGE_MASK = (1) shl (16);
329     GDK_VISIBILITY_NOTIFY_MASK = (1) shl (17);
330     GDK_PROXIMITY_IN_MASK = (1) shl (18);
331     GDK_PROXIMITY_OUT_MASK = (1) shl (19);
332     GDK_SUBSTRUCTURE_MASK = 1 shl 20;
333     GDK_ALL_EVENTS_MASK = $0FFFFF;
334
335type
336   PGdkNotifyType = ^TGdkNotifyType;
337   TGdkNotifyType =  Longint;
338Const
339     GDK_NOTIFY_ANCESTOR = 0;
340     GDK_NOTIFY_VIRTUAL = 1;
341     GDK_NOTIFY_INFERIOR = 2;
342     GDK_NOTIFY_NONLINEAR = 3;
343     GDK_NOTIFY_NONLINEAR_VIRTUAL = 4;
344     GDK_NOTIFY_UNKNOWN = 5;
345
346type
347     PGdkCrossingMode = ^TGdkCrossingMode;
348     TGdkCrossingMode = longint;
349const
350     GDK_CROSSING_NORMAL = 0;
351     GDK_CROSSING_GRAB = 1;
352     GDK_CROSSING_UNGRAB = 2;
353
354type
355   PGdkModifierType = ^TGdkModifierType;
356   TGdkModifierType =  Longint;
357Const
358     GDK_SHIFT_MASK = (1) shl (0);
359     GDK_LOCK_MASK = (1) shl (1);
360     GDK_CONTROL_MASK = (1) shl (2);
361     GDK_MOD1_MASK = (1) shl (3);
362     GDK_MOD2_MASK = (1) shl (4);
363     GDK_MOD3_MASK = (1) shl (5);
364     GDK_MOD4_MASK = (1) shl (6);
365     GDK_MOD5_MASK = (1) shl (7);
366     GDK_BUTTON1_MASK = (1) shl (8);
367     GDK_BUTTON2_MASK = (1) shl (9);
368     GDK_BUTTON3_MASK = (1) shl (10);
369     GDK_BUTTON4_MASK = (1) shl (11);
370     GDK_BUTTON5_MASK = (1) shl (12);
371     GDK_RELEASE_MASK = 1 shl 13;
372     GDK_MODIFIER_MASK = $3fff;
373
374type
375   PGdkSubwindowMode = ^TGdkSubwindowMode;
376   TGdkSubwindowMode =  Longint;
377Const
378     GDK_CLIP_BY_CHILDREN = 0;
379     GDK_INCLUDE_INFERIORS = 1;
380
381type
382   PGdkInputCondition = ^TGdkInputCondition;
383   TGdkInputCondition =  Longint;
384Const
385     GDK_INPUT_READ = (1) shl (0);
386     GDK_INPUT_WRITE = (1) shl (1);
387     GDK_INPUT_EXCEPTION = (1) shl (2);
388
389type
390   PGdkStatus = ^TGdkStatus;
391   TGdkStatus =  Longint;
392Const
393     GDK_OK = 0;
394     GDK_ERROR = -1;
395     GDK_ERROR_PARAM = -2;
396     GDK_ERROR_FILE = -3;
397     GDK_ERROR_MEM = -4;
398
399type
400   PGdkByteOrder = ^TGdkByteOrder;
401   TGdkByteOrder =  Longint;
402Const
403     GDK_LSB_FIRST = 0;
404     GDK_MSB_FIRST = 1;
405
406type
407   PGdkGCValuesMask = ^TGdkGCValuesMask;
408   TGdkGCValuesMask =  Longint;
409Const
410     GDK_GC_FOREGROUND = (1) shl (0);
411     GDK_GC_BACKGROUND = (1) shl (1);
412     GDK_GC_FONT = (1) shl (2);
413     GDK_GC_function = (1) shl (3);
414     GDK_GC_FILL = (1) shl (4);
415     GDK_GC_TILE = (1) shl (5);
416     GDK_GC_STIPPLE = (1) shl (6);
417     GDK_GC_CLIP_MASK = (1) shl (7);
418     GDK_GC_SUBWINDOW = (1) shl (8);
419     GDK_GC_TS_X_ORIGIN = (1) shl (9);
420     GDK_GC_TS_Y_ORIGIN = (1) shl (10);
421     GDK_GC_CLIP_X_ORIGIN = (1) shl (11);
422     GDK_GC_CLIP_Y_ORIGIN = (1) shl (12);
423     GDK_GC_EXPOSURES = (1) shl (13);
424     GDK_GC_LINE_WIDTH = (1) shl (14);
425     GDK_GC_LINE_STYLE = (1) shl (15);
426     GDK_GC_CAP_STYLE = (1) shl (16);
427     GDK_GC_JOIN_STYLE = (1) shl (17);
428
429type
430   PGdkSelection = ^TGdkSelection;
431   TGdkSelection =  Longint;
432Const
433     GDK_SELECTION_PRIMARY = 1;
434     GDK_SELECTION_SECONDARY = 2;
435
436type
437   PGdkPropertyState = ^TGdkPropertyState;
438   TGdkPropertyState =  Longint;
439Const
440     GDK_PROPERTY_NEW_VALUE = 0;
441     GDK_PROPERTY_DELETE_STATE = 1;
442
443type
444   PGdkPropMode = ^TGdkPropMode;
445   TGdkPropMode =  Longint;
446Const
447     GDK_PROP_MODE_REPLACE = 0;
448     GDK_PROP_MODE_PREPEND = 1;
449     GDK_PROP_MODE_APPEND = 2;
450
451type
452   PGdkInputSource = ^TGdkInputSource;
453   TGdkInputSource =  Longint;
454Const
455     GDK_SOURCE_MOUSE = 0;
456     GDK_SOURCE_PEN = 1;
457     GDK_SOURCE_ERASER = 2;
458     GDK_SOURCE_CURSOR = 3;
459
460type
461   PGdkInputMode = ^TGdkInputMode;
462   TGdkInputMode =  Longint;
463Const
464     GDK_MODE_DISABLED = 0;
465     GDK_MODE_SCREEN = 1;
466     GDK_MODE_WINDOW = 2;
467
468type
469   PGdkAxisUse = ^TGdkAxisUse;
470   TGdkAxisUse =  Longint;
471Const
472     GDK_AXIS_IGNORE = 0;
473     GDK_AXIS_X = 1;
474     GDK_AXIS_Y = 2;
475     GDK_AXIS_PRESSURE = 3;
476     GDK_AXIS_XTILT = 4;
477     GDK_AXIS_YTILT = 5;
478     GDK_AXIS_LAST = 6;
479
480type
481   PGdkTarget = ^TGdkTarget;
482   TGdkTarget =  Longint;
483Const
484     GDK_TARGET_BITMAP = 5;
485     GDK_TARGET_COLORMAP = 7;
486     GDK_TARGET_DRAWABLE = 17;
487     GDK_TARGET_PIXMAP = 20;
488     GDK_TARGET_STRING = 31;
489
490type
491   PGdkSelectionType = ^TGdkSelectionType;
492   TGdkSelectionType =  Longint;
493Const
494     GDK_SELECTION_TYPE_ATOM = 4;
495     GDK_SELECTION_TYPE_BITMAP = 5;
496     GDK_SELECTION_TYPE_COLORMAP = 7;
497     GDK_SELECTION_TYPE_DRAWABLE = 17;
498     GDK_SELECTION_TYPE_INTEGER = 19;
499     GDK_SELECTION_TYPE_PIXMAP = 20;
500     GDK_SELECTION_TYPE_WINDOW = 33;
501     GDK_SELECTION_TYPE_STRING = 31;
502
503type
504   PGdkExtensionMode = ^TGdkExtensionMode;
505   TGdkExtensionMode =  Longint;
506Const
507     GDK_EXTENSION_EVENTS_NONE = 0;
508     GDK_EXTENSION_EVENTS_ALL = 1;
509     GDK_EXTENSION_EVENTS_CURSOR = 2;
510
511type
512   PGdkIMStyle = ^TGdkIMStyle;
513   TGdkIMStyle =  Longint;
514Const
515     GDK_IM_PREEDIT_AREA = $0001;
516     GDK_IM_PREEDIT_CALLBACKS = $0002;
517     GDK_IM_PREEDIT_POSITION = $0004;
518     GDK_IM_PREEDIT_NOTHING = $0008;
519     GDK_IM_PREEDIT_NONE = $0010;
520     GDK_IM_PREEDIT_MASK = $001f;
521     GDK_IM_STATUS_AREA = $0100;
522     GDK_IM_STATUS_CALLBACKS = $0200;
523     GDK_IM_STATUS_NOTHING = $0400;
524     GDK_IM_STATUS_NONE = $0800;
525     GDK_IM_STATUS_MASK = $0f00;
526
527type
528     PGdkICAttributesType = ^TGdkICAttributesType;
529     TGdkICAttributesType = longint;
530const
531     GDK_IC_STYLE = 1 shl 0;
532     GDK_IC_CLIENT_WINDOW = 1 shl 1;
533       GDK_IC_ALL_REQ = 1 shl 0 + 1 shl 1;
534       GDK_IC_FOCUS_WINDOW = 1 shl 2;
535       GDK_IC_FILTER_EVENTS = 1 shl 3;
536       GDK_IC_SPOT_LOCATION = 1 shl 4;
537       GDK_IC_LINE_SPACING = 1 shl 5;
538       GDK_IC_CURSOR = 1 shl 6;
539       GDK_IC_PREEDIT_FONTSET = 1 shl 10;
540       GDK_IC_PREEDIT_AREA = 1 shl 11;
541       GDK_IC_PREEDIT_AREA_NEEDED = 1 shl 12;
542       GDK_IC_PREEDIT_FOREGROUND = 1 shl 13;
543       GDK_IC_PREEDIT_BACKGROUND = 1 shl 14;
544       GDK_IC_PREEDIT_PIXMAP = 1 shl 15;
545       GDK_IC_PREEDIT_COLORMAP = 1 shl 16;
546       GDK_IC_STATUS_FONTSET = 1 shl 21;
547       GDK_IC_STATUS_AREA = 1 shl 22;
548       GDK_IC_STATUS_AREA_NEEDED = 1 shl 23;
549       GDK_IC_STATUS_FOREGROUND = 1 shl 24;
550       GDK_IC_STATUS_BACKGROUND = 1 shl 25;
551       GDK_IC_STATUS_PIXMAP = 1 shl 26;
552       GDK_IC_STATUS_COLORMAP = 1 shl 27;
553       GDK_IC_PREEDIT_AREA_REQ = ((1 shl 11) + (1 shl 10));
554       GDK_IC_PREEDIT_POSITION_REQ = (1 shl 11 + 1 shl 4 + 1 shl 10);
555       GDK_IC_STATUS_AREA_REQ = (1 shl 22 or 1 shl 21);
556
557type
558   PGdkWMDecoration = ^TGdkWMDecoration;
559   TGdkWMDecoration =  Longint;
560Const
561     GDK_DECOR_ALL = (1) shl (0);
562     GDK_DECOR_BORDER = (1) shl (1);
563     GDK_DECOR_RESIZEH = (1) shl (2);
564     GDK_DECOR_TITLE = (1) shl (3);
565     GDK_DECOR_MENU = (1) shl (4);
566     GDK_DECOR_MINIMIZE = (1) shl (5);
567     GDK_DECOR_MAXIMIZE = (1) shl (6);
568
569type
570   PGdkWMfunction = ^TGdkWMfunction;
571   TGdkWMfunction = Longint;
572Const
573     GDK_FUNC_ALL = (1) shl (0);
574     GDK_FUNC_RESIZE = (1) shl (1);
575     GDK_FUNC_MOVE = (1) shl (2);
576     GDK_FUNC_MINIMIZE = (1) shl (3);
577     GDK_FUNC_MAXIMIZE = (1) shl (4);
578     GDK_FUNC_CLOSE = (1) shl (5);
579
580type
581     PGdkInputfunction = ^TGdkInputfunction;
582     TGdkInputfunction = procedure (data:gpointer; source:gint; condition:TGdkInputCondition);cdecl;
583
584     PGdkDestroyNotify = ^TGdkDestroyNotify;
585     TGdkDestroyNotify = procedure (data:gpointer);cdecl;
586
587type
588     PGdkColorContextMode = ^TGdkColorContextMode;
589     TGdkColorContextMode = longint;
590Const
591     GDK_CC_MODE_UNDEFINED = 0;
592     GDK_CC_MODE_BW = 1;
593     GDK_CC_MODE_STD_CMAP = 2;
594     GDK_CC_MODE_TRUE = 3;
595     GDK_CC_MODE_MY_GRAY = 4;
596     GDK_CC_MODE_PALETTE = 5;
597
598type
599   PGdkOverlapType = ^TGdkOverlapType;
600   TGdkOverlapType =  Longint;
601Const
602     GDK_OVERLAP_RECTANGLE_IN = 0;
603     GDK_OVERLAP_RECTANGLE_OUT = 1;
604     GDK_OVERLAP_RECTANGLE_PART = 2;
605
606type
607     PGdkDragAction = ^TGdkDragAction;
608     TGdkDragAction = longint;
609const
610     GDK_ACTION_DEFAULT = 1 shl 0;
611     GDK_ACTION_COPY = 1 shl 1;
612     GDK_ACTION_MOVE = 1 shl 2;
613     GDK_ACTION_LINK = 1 shl 3;
614     GDK_ACTION_PRIVATE = 1 shl 4;
615     GDK_ACTION_ASK = 1 shl 5;
616
617type
618     PGdkDragProtocol = ^TGdkDragProtocol;
619     TGdkDragProtocol = longint;
620const
621     GDK_DRAG_PROTO_MOTIF = 0;
622     GDK_DRAG_PROTO_XDND = 1;
623     GDK_DRAG_PROTO_ROOTWIN = 2;
624     GDK_DRAG_PROTO_NONE = 3;
625
626type
627     PGdkColor = ^TGdkColor;
628     TGdkColor = record
629          pixel : gulong;
630          red : gushort;
631          green : gushort;
632          blue : gushort;
633       end;
634
635     PGdkColormap = ^TGdkColormap;
636     TGdkColormap = record
637          size : gint;
638          colors : PGdkColor;
639       end;
640
641     PGdkVisual = ^TGdkVisual;
642     TGdkVisual = record
643          thetype : TGdkVisualType;
644          depth : gint;
645          byte_order : TGdkByteOrder;
646          colormap_size : gint;
647          bits_per_rgb : gint;
648          red_mask : guint32;
649          red_shift : gint;
650          red_prec : gint;
651          green_mask : guint32;
652          green_shift : gint;
653          green_prec : gint;
654          blue_mask : guint32;
655          blue_shift : gint;
656          blue_prec : gint;
657       end;
658
659     PGdkCursor = ^TGdkCursor;
660
661     PGdkWindowAttr = ^TGdkWindowAttr;
662     TGdkWindowAttr = record
663          title : ^gchar;
664          event_mask : gint;
665          x : gint16;
666          y : gint16;
667          width : gint16;
668          height : gint16;
669          wclass : TGdkWindowClass;
670          visual : PGdkVisual;
671          colormap : PGdkColormap;
672          window_type : TGdkWindowType;
673          cursor : PGdkCursor;
674          wmclass_name : ^gchar;
675          wmclass_class : ^gchar;
676          override_redirect : gboolean;
677       end;
678
679     PGdkGeometry = ^TGdkGeometry;
680     TGdkGeometry = record
681          min_width : gint;
682          min_height : gint;
683          max_width : gint;
684          max_height : gint;
685          base_width : gint;
686          base_height : gint;
687          width_inc : gint;
688          height_inc : gint;
689          min_aspect : gdouble;
690          max_aspect : gdouble;
691       end;
692
693     PGdkImage = ^TGdkImage;
694     PPGdkImage = ^PGdkImage;
695     TGdkImage = record
696          thetype : TGdkImageType;
697          visual : PGdkVisual;
698          byte_order : TGdkByteOrder;
699          width : guint16;
700          height : guint16;
701          depth : guint16;
702          bpp : guint16;
703          bpl : guint16;
704          mem : gpointer;
705       end;
706
707     PGdkFont = ^TGdkFont;
708     TGdkFont = record
709          thetype : TGdkFontType;
710          ascent : gint;
711          descent : gint;
712       end;
713
714     PGdkGCValues = ^TGdkGCValues;
715     TGdkGCValues = record
716          foreground : TGdkColor;
717          background : TGdkColor;
718          font : PGdkFont;
719          thefunction : TGdkfunction;
720          fill : TGdkFill;
721          tile : PGdkPixmap;
722          stipple : PGdkPixmap;
723          clip_mask : PGdkPixmap;
724          subwindow_mode : TGdkSubwindowMode;
725          ts_x_origin : gint;
726          ts_y_origin : gint;
727          clip_x_origin : gint;
728          clip_y_origin : gint;
729          graphics_exposures : gint;
730          line_width : gint;
731          line_style : TGdkLineStyle;
732          cap_style : TGdkCapStyle;
733          join_style : TGdkJoinStyle;
734       end;
735
736     PGdkGC = ^TGdkGC;
737     TGdkGC = record
738          dummy_var : gint;
739       end;
740
741     PGdkPoint = ^TGdkPoint;
742     TGdkPoint = record
743          x : gint16;
744          y : gint16;
745       end;
746
747     PGdkRectangle = ^TGdkRectangle;
748     TGdkRectangle = record
749          x : gint16;
750          y : gint16;
751          width : guint16;
752          height : guint16;
753       end;
754
755     PGdkSegment = ^TGdkSegment;
756     TGdkSegment = record
757          x1 : gint16;
758          y1 : gint16;
759          x2 : gint16;
760          y2 : gint16;
761       end;
762
763     TGdkCursor = record
764          thetype : TGdkCursorType;
765       end;
766
767     PGdkColorContextDither = ^TGdkColorContextDither;
768     TGdkColorContextDither = record
769          fast_rgb : array[0..31] of array[0..31] of array[0..31] of gint;
770          fast_err : array[0..31] of array[0..31] of array[0..31] of gint;
771          fast_erg : array[0..31] of array[0..31] of array[0..31] of gint;
772          fast_erb : array[0..31] of array[0..31] of array[0..31] of gint;
773       end;
774
775     PGdkColorContext = ^TGdkColorContext;
776     TGdkColorContext = record
777          visual : PGdkVisual;
778          colormap : PGdkColormap;
779          num_colors : gint;
780          max_colors : gint;
781          num_allocated : gint;
782          mode : TGdkColorContextMode;
783          need_to_free_colormap : gint;
784          std_cmap_atom : TGdkAtom;
785          clut : Pgulong;
786          cmap : PGdkColor;
787          color_hash : PGHashTable;
788          palette : PGdkColor;
789          num_palette : gint;
790          fast_dither : PGdkColorContextDither;
791          shifts : record
792               red : gint;
793               green : gint;
794               blue : gint;
795            end;
796          masks : record
797               red : gulong;
798               green : gulong;
799               blue : gulong;
800            end;
801          bits : record
802               red : gint;
803               green : gint;
804               blue : gint;
805            end;
806          max_entry : gulong;
807          black_pixel : gulong;
808          white_pixel : gulong;
809       end;
810
811     PGdkDeviceKey = ^TGdkDeviceKey;
812     TGdkDeviceKey = record
813          keyval : guint;
814          modifiers : TGdkModifierType;
815       end;
816
817     PGdkDeviceInfo = ^TGdkDeviceInfo;
818     TGdkDeviceInfo = record
819          deviceid : guint32;
820          name : ^gchar;
821          source : TGdkInputSource;
822          mode : TGdkInputMode;
823          has_cursor : gint;
824          num_axes : gint;
825          axes : ^TGdkAxisUse;
826          num_keys : gint;
827          keys : PGdkDeviceKey;
828       end;
829
830     PGdkTimeCoord = ^TGdkTimeCoord;
831     TGdkTimeCoord = record
832          time : guint32;
833          x : gdouble;
834          y : gdouble;
835          pressure : gdouble;
836          xtilt : gdouble;
837          ytilt : gdouble;
838       end;
839
840     PGdkDragContext = ^TGdkDragContext;
841     TGdkDragContext = record
842          protocol : TGdkDragProtocol;
843          is_source : gboolean;
844          source_window : PGdkWindow;
845          dest_window : PGdkWindow;
846          targets : PGList;
847          actions : TGdkDragAction;
848          suggested_action : TGdkDragAction;
849          action : TGdkDragAction;
850          start_time : guint32;
851       end;
852
853     TGdkXEvent = pointer;
854     PGdkXEvent = ^TGdkXEvent;
855
856     PGdkEvent = ^TGdkEvent;
857
858     TGdkEventFunc = procedure(event:PGdkEvent;data:gpointer);cdecl;
859     TGdkFilterFunc = function (xevent:PGdkXEvent; event:PGdkEvent; data:gpointer):TGdkFilterReturn;cdecl;
860
861     PGdkEventAny = ^TGdkEventAny;
862     TGdkEventAny = record
863          thetype : TGdkEventType;
864          window : PGdkWindow;
865          send_event : gint8;
866       end;
867
868     PGdkEventExpose = ^TGdkEventExpose;
869     TGdkEventExpose = record
870          thetype : TGdkEventType;
871          window : PGdkWindow;
872          send_event : gint8;
873          area : TGdkRectangle;
874          count : gint;
875       end;
876
877     PGdkEventNoExpose = ^TGdkEventNoExpose;
878     TGdkEventNoExpose = record
879          thetype : TGdkEventType;
880          window : PGdkWindow;
881          send_event : gint8;
882       end;
883
884     PGdkEventVisibility = ^TGdkEventVisibility;
885     TGdkEventVisibility = record
886          thetype : TGdkEventType;
887          window : PGdkWindow;
888          send_event : gint8;
889          state : TGdkVisibilityState;
890       end;
891
892     PGdkEventMotion = ^TGdkEventMotion;
893     TGdkEventMotion = record
894          thetype : TGdkEventType;
895          window : PGdkWindow;
896          send_event : gint8;
897          time : guint32;
898          x : gdouble;
899          y : gdouble;
900          pressure : gdouble;
901          xtilt : gdouble;
902          ytilt : gdouble;
903          state : guint;
904          is_hint : gint16;
905          source : TGdkInputSource;
906          deviceid : guint32;
907          x_root : gdouble;
908          y_root : gdouble;
909       end;
910
911     PGdkEventButton = ^TGdkEventButton;
912     TGdkEventButton = record
913          thetype : TGdkEventType;
914          window : PGdkWindow;
915          send_event : gint8;
916          time : guint32;
917          x : gdouble;
918          y : gdouble;
919          pressure : gdouble;
920          xtilt : gdouble;
921          ytilt : gdouble;
922          state : guint;
923          button : guint;
924          source : TGdkInputSource;
925          deviceid : guint32;
926          x_root : gdouble;
927          y_root : gdouble;
928       end;
929
930     PGdkEventKey = ^TGdkEventKey;
931     TGdkEventKey = record
932          thetype : TGdkEventType;
933          window : PGdkWindow;
934          send_event : gint8;
935          time : guint32;
936          state : guint;
937          keyval : guint;
938          length : gint;
939          thestring : Pgchar;
940       end;
941
942     PGdkEventCrossing = ^TGdkEventCrossing;
943     TGdkEventCrossing = record
944          thetype : TGdkEventType;
945          window : PGdkWindow;
946          send_event : gint8;
947          subwindow : PGdkWindow;
948          time : guint32;
949          x : gdouble;
950          y : gdouble;
951          x_root : gdouble;
952          y_root : gdouble;
953          mode : TGdkCrossingMode;
954          detail : TGdkNotifyType;
955          focus : gboolean;
956          state : guint;
957       end;
958
959     PGdkEventFocus = ^TGdkEventFocus;
960     TGdkEventFocus = record
961          thetype : TGdkEventType;
962          window : PGdkWindow;
963          send_event : gint8;
964          thein : gint16;
965       end;
966
967     PGdkEventConfigure = ^TGdkEventConfigure;
968     TGdkEventConfigure = record
969          thetype : TGdkEventType;
970          window : PGdkWindow;
971          send_event : gint8;
972          x : gint16;
973          y : gint16;
974          width : gint16;
975          height : gint16;
976       end;
977
978     PGdkEventProperty = ^TGdkEventProperty;
979     TGdkEventProperty = record
980          thetype : TGdkEventType;
981          window : PGdkWindow;
982          send_event : gint8;
983          atom : TGdkAtom;
984          time : guint32;
985          state : guint;
986       end;
987
988     PGdkEventSelection = ^TGdkEventSelection;
989     TGdkEventSelection = record
990          thetype : TGdkEventType;
991          window : PGdkWindow;
992          send_event : gint8;
993          selection : TGdkAtom;
994          target : TGdkAtom;
995          theproperty : TGdkAtom;
996          requestor : guint32;
997          time : guint32;
998       end;
999
1000     PGdkEventProximity = ^TGdkEventProximity;
1001     TGdkEventProximity = record
1002          thetype : TGdkEventType;
1003          window : PGdkWindow;
1004          send_event : gint8;
1005          time : guint32;
1006          source : TGdkInputSource;
1007          deviceid : guint32;
1008       end;
1009
1010     PGdkEventClient = ^TGdkEventClient;
1011     TGdkEventClient = record
1012          thetype : TGdkEventType;
1013          window : PGdkWindow;
1014          send_event : gint8;
1015          message_type : TGdkAtom;
1016          data_format : gushort;
1017          dummy : gushort;
1018          data : record
1019              case longint of
1020                 0 : ( b : array[0..19] of char );
1021                 1 : ( s : array[0..9] of system.integer );
1022                 2 : ( l : array[0..4] of longint );
1023              end;
1024       end;
1025
1026     PGdkEventDND = ^TGdkEventDND;
1027     TGdkEventDND = record
1028          thetype : TGdkEventType;
1029          window : PGdkWindow;
1030          send_event : gint8;
1031          context : PGdkDragContext;
1032          time : guint32;
1033          x_root : gshort;
1034          y_root : gshort;
1035       end;
1036
1037     TGdkEvent = record
1038         case longint of
1039            0 : ( thetype : TGdkEventType );
1040            1 : ( any : TGdkEventAny );
1041            2 : ( expose : TGdkEventExpose );
1042            3 : ( no_expose : TGdkEventNoExpose );
1043            4 : ( visibility : TGdkEventVisibility );
1044            5 : ( motion : TGdkEventMotion );
1045            6 : ( button : TGdkEventButton );
1046            7 : ( key : TGdkEventKey );
1047            8 : ( crossing : TGdkEventCrossing );
1048            9 : ( focus_change : TGdkEventFocus );
1049            10 : ( configure : TGdkEventConfigure );
1050            11 : ( theproperty : TGdkEventProperty );
1051            12 : ( selection : TGdkEventSelection );
1052            13 : ( proximity : TGdkEventProximity );
1053            14 : ( client : TGdkEventClient );
1054            15 : ( dnd : TGdkEventDND );
1055         end;
1056
1057     PGdkRegion = ^TGdkRegion;
1058     TGdkRegion = record
1059          user_data : gpointer;
1060       end;
1061
1062     PGdkICAttr = ^TGdkICAttr;
1063     TGdkICAttr = record
1064          style : TGdkIMStyle;
1065          client_window : PGdkWindow;
1066          focus_window : PGdkWindow;
1067          filter_events : TGdkEventMask;
1068          spot_location : TGdkPoint;
1069          line_spacing : gint;
1070          cursor : PGdkCursor;
1071          preedit_fontset : PGdkFont;
1072          preedit_area : TGdkRectangle;
1073          preedit_area_needed : TGdkRectangle;
1074          preedit_foreground : TGdkColor;
1075          preedit_background : TGdkColor;
1076          preedit_pixmap : PGdkPixmap;
1077          preedit_colormap : PGdkColormap;
1078          status_fontset : PGdkFont;
1079          status_area : TGdkRectangle;
1080          status_area_needed : TGdkRectangle;
1081          status_foreground : TGdkColor;
1082          status_background : TGdkColor;
1083          status_pixmap : PGdkPixmap;
1084          status_colormap : PGdkColormap;
1085       end;
1086
1087{$endif read_interface}
1088
1089