1 /* GDK - The GIMP Drawing Kit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library 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.
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 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library 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.
19 #ifndef __GDK_TYPES_H__
20 #define __GDK_TYPES_H__
23 /* GDK uses "glib". (And so does GTK).
29 #define GDK_CURRENT_TIME 0L
30 #define GDK_PARENT_RELATIVE 1L
32 /* special deviceid for core pointer events */
33 #define GDK_CORE_POINTER 0xfedc
38 #endif /* __cplusplus */
41 /* Type definitions for the basic structures.
44 typedef gulong GdkAtom;
45 typedef struct _GdkColor GdkColor;
46 typedef struct _GdkColormap GdkColormap;
47 typedef struct _GdkVisual GdkVisual;
48 typedef struct _GdkWindowAttr GdkWindowAttr;
49 typedef struct _GdkWindow GdkWindow;
50 typedef struct _GdkWindow GdkPixmap;
51 typedef struct _GdkWindow GdkBitmap;
52 typedef struct _GdkWindow GdkDrawable;
53 typedef struct _GdkGeometry GdkGeometry;
54 typedef struct _GdkImage GdkImage;
55 typedef struct _GdkGCValues GdkGCValues;
56 typedef struct _GdkGC GdkGC;
57 typedef struct _GdkPoint GdkPoint;
58 typedef struct _GdkRectangle GdkRectangle;
59 typedef struct _GdkSegment GdkSegment;
60 typedef struct _GdkFont GdkFont;
61 typedef struct _GdkCursor GdkCursor;
62 typedef struct _GdkColorContextDither GdkColorContextDither;
63 typedef struct _GdkColorContext GdkColorContext;
64 typedef struct _GdkDragContext GdkDragContext;
66 typedef struct _GdkEventAny GdkEventAny;
67 typedef struct _GdkEventExpose GdkEventExpose;
68 typedef struct _GdkEventNoExpose GdkEventNoExpose;
69 typedef struct _GdkEventVisibility GdkEventVisibility;
70 typedef struct _GdkEventMotion GdkEventMotion;
71 typedef struct _GdkEventButton GdkEventButton;
72 typedef struct _GdkEventKey GdkEventKey;
73 typedef struct _GdkEventFocus GdkEventFocus;
74 typedef struct _GdkEventCrossing GdkEventCrossing;
75 typedef struct _GdkEventConfigure GdkEventConfigure;
76 typedef struct _GdkEventProperty GdkEventProperty;
77 typedef struct _GdkEventSelection GdkEventSelection;
78 typedef struct _GdkEventProximity GdkEventProximity;
79 typedef struct _GdkEventClient GdkEventClient;
81 typedef struct _GdkEventDND GdkEventDND;
83 typedef union _GdkEvent GdkEvent;
85 typedef struct _GdkDeviceKey GdkDeviceKey;
86 typedef struct _GdkDeviceInfo GdkDeviceInfo;
87 typedef struct _GdkTimeCoord GdkTimeCoord;
88 typedef struct _GdkRegion GdkRegion;
89 typedef void (*GdkEventFunc) (GdkEvent *event,
92 typedef struct _GdkIC GdkIC;
93 typedef struct _GdkICAttr GdkICAttr;
95 typedef guint32 GdkWChar;
99 * Root: There is only 1 root window and it is initialized
100 * at startup. Creating a window of type GDK_WINDOW_ROOT
102 * Toplevel: Windows which interact with the window manager.
103 * Child: Windows which are children of some other type of window.
104 * (Any other type of window). Most windows are child windows.
105 * Dialog: A special kind of toplevel window which interacts with
106 * the window manager slightly differently than a regular
107 * toplevel window. Dialog windows should be used for any
109 * Pixmap: Pixmaps are really just another kind of window which
110 * doesn't actually appear on the screen. It can't have
111 * children, either and is really just a convenience so
112 * that the drawing functions can work on both windows
113 * and pixmaps transparently. (ie. You shouldn't pass a
114 * pixmap to any procedure which accepts a window with the
115 * exception of the drawing functions).
116 * Foreign: A window that actually belongs to another application
129 /* Classes of windows.
130 * InputOutput: Almost every window should be of this type. Such windows
131 * receive events and are also displayed on screen.
132 * InputOnly: Used only in special circumstances when events need to be
133 * stolen from another window or windows. Input only windows
134 * have no visible output, so they are handy for placing over
135 * top of a group of windows in order to grab the events (or
136 * filter the events) from those windows.
145 * Normal: Normal X image type. These are slow as they involve passing
146 * the entire image through the X connection each time a draw
147 * request is required.
148 * Shared: Shared memory X image type. These are fast as the X server
149 * and the program actually use the same piece of memory. They
150 * should be used with care though as there is the possibility
151 * for both the X server and the program to be reading/writing
152 * the image simultaneously and producing undesired results.
171 GDK_VISUAL_STATIC_GRAY,
172 GDK_VISUAL_GRAYSCALE,
173 GDK_VISUAL_STATIC_COLOR,
174 GDK_VISUAL_PSEUDO_COLOR,
175 GDK_VISUAL_TRUE_COLOR,
176 GDK_VISUAL_DIRECT_COLOR
180 * GDK_FONT_FONT: the font is an XFontStruct.
181 * GDK_FONT_FONTSET: the font is an XFontSet used for I18N.
189 /* Window attribute mask values.
190 * GDK_WA_TITLE: The "title" field is valid.
191 * GDK_WA_X: The "x" field is valid.
192 * GDK_WA_Y: The "y" field is valid.
193 * GDK_WA_CURSOR: The "cursor" field is valid.
194 * GDK_WA_COLORMAP: The "colormap" field is valid.
195 * GDK_WA_VISUAL: The "visual" field is valid.
199 GDK_WA_TITLE = 1 << 1,
202 GDK_WA_CURSOR = 1 << 4,
203 GDK_WA_COLORMAP = 1 << 5,
204 GDK_WA_VISUAL = 1 << 6,
205 GDK_WA_WMCLASS = 1 << 7,
206 GDK_WA_NOREDIR = 1 << 8
207 } GdkWindowAttributesType;
209 /* Size restriction enumeration.
213 GDK_HINT_POS = 1 << 0,
214 GDK_HINT_MIN_SIZE = 1 << 1,
215 GDK_HINT_MAX_SIZE = 1 << 2,
216 GDK_HINT_BASE_SIZE = 1 << 3,
217 GDK_HINT_ASPECT = 1 << 4,
218 GDK_HINT_RESIZE_INC = 1 << 5
221 /* GC function types.
222 * Copy: Overwrites destination pixels with the source pixels.
223 * Invert: Inverts the destination pixels.
224 * Xor: Xor's the destination pixels with the source pixels.
225 * Clear: set pixels to 0
226 * And: source AND destination
227 * And Reverse: source AND (NOT destination)
228 * And Invert: (NOT source) AND destination
230 * Or: source OR destination
231 * Nor: (NOT source) AND (NOT destination)
232 * Equiv: (NOT source) XOR destination
233 * Xor Reverse: source OR (NOT destination)
234 * Copy Inverted: NOT source
235 * Xor Inverted: (NOT source) OR destination
236 * Nand: (NOT source) OR (NOT destination)
237 * Set: set pixels to 1
272 /* GC fill rule for polygons
290 GDK_LINE_ON_OFF_DASH,
324 #include <gdk/gdkcursors.h>
326 GDK_CURSOR_IS_PIXMAP = -1
330 GDK_FILTER_CONTINUE, /* Event not handled, continue processesing */
331 GDK_FILTER_TRANSLATE, /* Translated event stored */
332 GDK_FILTER_REMOVE /* Terminate processing, removing event */
336 GDK_VISIBILITY_UNOBSCURED,
337 GDK_VISIBILITY_PARTIAL,
338 GDK_VISIBILITY_FULLY_OBSCURED
339 } GdkVisibilityState;
342 * Nothing: No event occurred.
343 * Delete: A window delete event was sent by the window manager.
344 * The specified window should be deleted.
345 * Destroy: A window has been destroyed.
346 * Expose: Part of a window has been uncovered.
347 * NoExpose: Same as expose, but no expose event was generated.
348 * VisibilityNotify: A window has become fully/partially/not obscured.
349 * MotionNotify: The mouse has moved.
350 * ButtonPress: A mouse button was pressed.
351 * ButtonRelease: A mouse button was release.
352 * KeyPress: A key was pressed.
353 * KeyRelease: A key was released.
354 * EnterNotify: A window was entered.
355 * LeaveNotify: A window was exited.
356 * FocusChange: The focus window has changed. (The focus window gets
358 * Resize: A window has been resized.
359 * Map: A window has been mapped. (It is now visible on the screen).
360 * Unmap: A window has been unmapped. (It is no longer visible on
369 GDK_MOTION_NOTIFY = 3,
370 GDK_BUTTON_PRESS = 4,
371 GDK_2BUTTON_PRESS = 5,
372 GDK_3BUTTON_PRESS = 6,
373 GDK_BUTTON_RELEASE = 7,
376 GDK_ENTER_NOTIFY = 10,
377 GDK_LEAVE_NOTIFY = 11,
378 GDK_FOCUS_CHANGE = 12,
382 GDK_PROPERTY_NOTIFY = 16,
383 GDK_SELECTION_CLEAR = 17,
384 GDK_SELECTION_REQUEST = 18,
385 GDK_SELECTION_NOTIFY = 19,
386 GDK_PROXIMITY_IN = 20,
387 GDK_PROXIMITY_OUT = 21,
390 GDK_DRAG_MOTION = 24,
391 GDK_DRAG_STATUS = 25,
393 GDK_DROP_FINISHED = 27,
394 GDK_CLIENT_EVENT = 28,
395 GDK_VISIBILITY_NOTIFY = 29,
399 /* Event masks. (Used to select what types of events a window
404 GDK_EXPOSURE_MASK = 1 << 1,
405 GDK_POINTER_MOTION_MASK = 1 << 2,
406 GDK_POINTER_MOTION_HINT_MASK = 1 << 3,
407 GDK_BUTTON_MOTION_MASK = 1 << 4,
408 GDK_BUTTON1_MOTION_MASK = 1 << 5,
409 GDK_BUTTON2_MOTION_MASK = 1 << 6,
410 GDK_BUTTON3_MOTION_MASK = 1 << 7,
411 GDK_BUTTON_PRESS_MASK = 1 << 8,
412 GDK_BUTTON_RELEASE_MASK = 1 << 9,
413 GDK_KEY_PRESS_MASK = 1 << 10,
414 GDK_KEY_RELEASE_MASK = 1 << 11,
415 GDK_ENTER_NOTIFY_MASK = 1 << 12,
416 GDK_LEAVE_NOTIFY_MASK = 1 << 13,
417 GDK_FOCUS_CHANGE_MASK = 1 << 14,
418 GDK_STRUCTURE_MASK = 1 << 15,
419 GDK_PROPERTY_CHANGE_MASK = 1 << 16,
420 GDK_VISIBILITY_NOTIFY_MASK = 1 << 17,
421 GDK_PROXIMITY_IN_MASK = 1 << 18,
422 GDK_PROXIMITY_OUT_MASK = 1 << 19,
423 GDK_SUBSTRUCTURE_MASK = 1 << 20,
424 GDK_ALL_EVENTS_MASK = 0x0FFFFF
427 /* Types of enter/leave notifications.
433 * Unknown: An unknown type of enter/leave event occurred.
437 GDK_NOTIFY_ANCESTOR = 0,
438 GDK_NOTIFY_VIRTUAL = 1,
439 GDK_NOTIFY_INFERIOR = 2,
440 GDK_NOTIFY_NONLINEAR = 3,
441 GDK_NOTIFY_NONLINEAR_VIRTUAL = 4,
442 GDK_NOTIFY_UNKNOWN = 5
445 /* Enter/leave event modes.
457 /* Types of modifiers.
461 GDK_SHIFT_MASK = 1 << 0,
462 GDK_LOCK_MASK = 1 << 1,
463 GDK_CONTROL_MASK = 1 << 2,
464 GDK_MOD1_MASK = 1 << 3,
465 GDK_MOD2_MASK = 1 << 4,
466 GDK_MOD3_MASK = 1 << 5,
467 GDK_MOD4_MASK = 1 << 6,
468 GDK_MOD5_MASK = 1 << 7,
469 GDK_BUTTON1_MASK = 1 << 8,
470 GDK_BUTTON2_MASK = 1 << 9,
471 GDK_BUTTON3_MASK = 1 << 10,
472 GDK_BUTTON4_MASK = 1 << 11,
473 GDK_BUTTON5_MASK = 1 << 12,
474 GDK_RELEASE_MASK = 1 << 13,
475 GDK_MODIFIER_MASK = 0x3fff
480 GDK_CLIP_BY_CHILDREN = 0,
481 GDK_INCLUDE_INFERIORS = 1
486 GDK_INPUT_READ = 1 << 0,
487 GDK_INPUT_WRITE = 1 << 1,
488 GDK_INPUT_EXCEPTION = 1 << 2
495 GDK_ERROR_PARAM = -2,
508 GDK_GC_FOREGROUND = 1 << 0,
509 GDK_GC_BACKGROUND = 1 << 1,
510 GDK_GC_FONT = 1 << 2,
511 GDK_GC_FUNCTION = 1 << 3,
512 GDK_GC_FILL = 1 << 4,
513 GDK_GC_TILE = 1 << 5,
514 GDK_GC_STIPPLE = 1 << 6,
515 GDK_GC_CLIP_MASK = 1 << 7,
516 GDK_GC_SUBWINDOW = 1 << 8,
517 GDK_GC_TS_X_ORIGIN = 1 << 9,
518 GDK_GC_TS_Y_ORIGIN = 1 << 10,
519 GDK_GC_CLIP_X_ORIGIN = 1 << 11,
520 GDK_GC_CLIP_Y_ORIGIN = 1 << 12,
521 GDK_GC_EXPOSURES = 1 << 13,
522 GDK_GC_LINE_WIDTH = 1 << 14,
523 GDK_GC_LINE_STYLE = 1 << 15,
524 GDK_GC_CAP_STYLE = 1 << 16,
525 GDK_GC_JOIN_STYLE = 1 << 17
530 GDK_SELECTION_PRIMARY = 1,
531 GDK_SELECTION_SECONDARY = 2
536 GDK_PROPERTY_NEW_VALUE,
542 GDK_PROP_MODE_REPLACE,
543 GDK_PROP_MODE_PREPEND,
547 /* Enums for XInput support */
575 /* The next two types define enums for predefined atoms relating
576 to selections. In general, one will need to use gdk_intern_atom */
580 GDK_TARGET_BITMAP = 5,
581 GDK_TARGET_COLORMAP = 7,
582 GDK_TARGET_DRAWABLE = 17,
583 GDK_TARGET_PIXMAP = 20,
584 GDK_TARGET_STRING = 31
589 GDK_SELECTION_TYPE_ATOM = 4,
590 GDK_SELECTION_TYPE_BITMAP = 5,
591 GDK_SELECTION_TYPE_COLORMAP = 7,
592 GDK_SELECTION_TYPE_DRAWABLE = 17,
593 GDK_SELECTION_TYPE_INTEGER = 19,
594 GDK_SELECTION_TYPE_PIXMAP = 20,
595 GDK_SELECTION_TYPE_WINDOW = 33,
596 GDK_SELECTION_TYPE_STRING = 31
601 GDK_EXTENSION_EVENTS_NONE,
602 GDK_EXTENSION_EVENTS_ALL,
603 GDK_EXTENSION_EVENTS_CURSOR
606 typedef enum /*< flags >*/
608 GDK_IM_PREEDIT_AREA = 0x0001,
609 GDK_IM_PREEDIT_CALLBACKS = 0x0002,
610 GDK_IM_PREEDIT_POSITION = 0x0004,
611 GDK_IM_PREEDIT_NOTHING = 0x0008,
612 GDK_IM_PREEDIT_NONE = 0x0010,
613 GDK_IM_PREEDIT_MASK = 0x001f,
615 GDK_IM_STATUS_AREA = 0x0100,
616 GDK_IM_STATUS_CALLBACKS = 0x0200,
617 GDK_IM_STATUS_NOTHING = 0x0400,
618 GDK_IM_STATUS_NONE = 0x0800,
619 GDK_IM_STATUS_MASK = 0x0f00
624 GDK_IC_STYLE = 1 << 0,
625 GDK_IC_CLIENT_WINDOW = 1 << 1,
626 GDK_IC_FOCUS_WINDOW = 1 << 2,
627 GDK_IC_FILTER_EVENTS = 1 << 3,
628 GDK_IC_SPOT_LOCATION = 1 << 4,
629 GDK_IC_LINE_SPACING = 1 << 5,
630 GDK_IC_CURSOR = 1 << 6,
632 GDK_IC_PREEDIT_FONTSET = 1 << 10,
633 GDK_IC_PREEDIT_AREA = 1 << 11,
634 GDK_IC_PREEDIT_AREA_NEEDED = 1 << 12,
635 GDK_IC_PREEDIT_FOREGROUND = 1 << 13,
636 GDK_IC_PREEDIT_BACKGROUND = 1 << 14,
637 GDK_IC_PREEDIT_PIXMAP = 1 << 15,
638 GDK_IC_PREEDIT_COLORMAP = 1 << 16,
640 GDK_IC_STATUS_FONTSET = 1 << 21,
641 GDK_IC_STATUS_AREA = 1 << 22,
642 GDK_IC_STATUS_AREA_NEEDED = 1 << 23,
643 GDK_IC_STATUS_FOREGROUND = 1 << 24,
644 GDK_IC_STATUS_BACKGROUND = 1 << 25,
645 GDK_IC_STATUS_PIXMAP = 1 << 26,
646 GDK_IC_STATUS_COLORMAP = 1 << 27,
648 GDK_IC_ALL_REQ = GDK_IC_STYLE |
649 GDK_IC_CLIENT_WINDOW,
651 GDK_IC_PREEDIT_AREA_REQ = GDK_IC_PREEDIT_AREA |
652 GDK_IC_PREEDIT_FONTSET,
653 GDK_IC_PREEDIT_POSITION_REQ = GDK_IC_PREEDIT_AREA | GDK_IC_SPOT_LOCATION |
654 GDK_IC_PREEDIT_FONTSET,
656 GDK_IC_STATUS_AREA_REQ = GDK_IC_STATUS_AREA |
657 GDK_IC_STATUS_FONTSET
658 } GdkICAttributesType;
660 /* The next two enumeration values current match the
661 * Motif constants. If this is changed, the implementation
662 * of gdk_window_set_decorations/gdk_window_set_functions
663 * will need to change as well.
667 GDK_DECOR_ALL = 1 << 0,
668 GDK_DECOR_BORDER = 1 << 1,
669 GDK_DECOR_RESIZEH = 1 << 2,
670 GDK_DECOR_TITLE = 1 << 3,
671 GDK_DECOR_MENU = 1 << 4,
672 GDK_DECOR_MINIMIZE = 1 << 5,
673 GDK_DECOR_MAXIMIZE = 1 << 6
678 GDK_FUNC_ALL = 1 << 0,
679 GDK_FUNC_RESIZE = 1 << 1,
680 GDK_FUNC_MOVE = 1 << 2,
681 GDK_FUNC_MINIMIZE = 1 << 3,
682 GDK_FUNC_MAXIMIZE = 1 << 4,
683 GDK_FUNC_CLOSE = 1 << 5
686 typedef void (*GdkInputFunction) (gpointer data,
688 GdkInputCondition condition);
690 typedef void (*GdkDestroyNotify) (gpointer data);
692 /* Color Context modes.
694 * GDK_CC_MODE_UNDEFINED - unknown
695 * GDK_CC_MODE_BW - default B/W
696 * GDK_CC_MODE_STD_CMAP - has a standard colormap
697 * GDK_CC_MODE_TRUE - is a TrueColor/DirectColor visual
698 * GDK_CC_MODE_MY_GRAY - my grayramp
699 * GDK_CC_MODE_PALETTE - has a pre-allocated palette
704 GDK_CC_MODE_UNDEFINED,
706 GDK_CC_MODE_STD_CMAP,
710 } GdkColorContextMode;
712 /* Types of overlapping between a rectangle and a region
713 * GDK_OVERLAP_RECTANGLE_IN: rectangle is in region
714 * GDK_OVERLAP_RECTANGLE_OUT: rectangle in not in region
715 * GDK_OVERLAP_RECTANGLE_PART: rectangle in partially in region
720 GDK_OVERLAP_RECTANGLE_IN,
721 GDK_OVERLAP_RECTANGLE_OUT,
722 GDK_OVERLAP_RECTANGLE_PART
726 GDK_ACTION_DEFAULT = 1 << 0,
727 GDK_ACTION_COPY = 1 << 1,
728 GDK_ACTION_MOVE = 1 << 2,
729 GDK_ACTION_LINK = 1 << 3,
730 GDK_ACTION_PRIVATE = 1 << 4,
731 GDK_ACTION_ASK = 1 << 5
735 GDK_DRAG_PROTO_MOTIF,
737 GDK_DRAG_PROTO_ROOTWIN /* A root window with nobody claiming
742 * A color consists of red, green and blue values in the
743 * range 0-65535 and a pixel value. The pixel value is highly
744 * dependent on the depth and colormap which this color will
745 * be used to draw into. Therefore, sharing colors between
746 * colormaps is a bad idea.
756 /* The colormap type.
757 * Colormaps consist of 256 colors.
766 * "type" is the type of visual this is (PseudoColor, TrueColor, etc).
767 * "depth" is the bit depth of this visual.
768 * "colormap_size" is the size of a colormap for this visual.
769 * "bits_per_rgb" is the number of significant bits per red, green and blue.
770 * The red, green and blue masks, shifts and precisions refer
771 * to value needed to calculate pixel values in TrueColor and DirectColor
772 * visuals. The "mask" is the significant bits within the pixel. The
773 * "shift" is the number of bits left we must shift a primary for it
774 * to be in position (according to the "mask"). "prec" refers to how
775 * much precision the pixel value contains for a particular primary.
781 GdkByteOrder byte_order;
798 struct _GdkWindowAttr
805 GdkWindowClass wclass;
807 GdkColormap *colormap;
808 GdkWindowType window_type;
811 gchar *wmclass_class;
812 gboolean override_redirect;
820 struct _GdkGeometry {
831 /* GdkGravity gravity; */
837 GdkVisual *visual; /* visual used to create the image */
838 GdkByteOrder byte_order;
842 guint16 bpp; /* bytes per pixel */
843 guint16 bpl; /* bytes per line */
852 GdkFunction function;
856 GdkPixmap *clip_mask;
857 GdkSubwindowMode subwindow_mode;
862 gint graphics_exposures;
864 GdkLineStyle line_style;
865 GdkCapStyle cap_style;
866 GdkJoinStyle join_style;
909 struct _GdkColorContextDither
911 gint fast_rgb[32][32][32]; /* quick look-up table for faster rendering */
912 gint fast_err[32][32][32]; /* internal RGB error information */
913 gint fast_erg[32][32][32];
914 gint fast_erb[32][32][32];
917 struct _GdkColorContext
920 GdkColormap *colormap;
922 gint num_colors; /* available no. of colors in colormap */
923 gint max_colors; /* maximum no. of colors */
924 gint num_allocated; /* no. of allocated colors */
926 GdkColorContextMode mode;
927 gint need_to_free_colormap;
928 GdkAtom std_cmap_atom;
930 gulong *clut; /* color look-up table */
931 GdkColor *cmap; /* colormap */
933 GHashTable *color_hash; /* hash table of allocated colors */
934 GdkColor *palette; /* preallocated palette */
935 gint num_palette; /* size of palette */
937 GdkColorContextDither *fast_dither; /* fast dither matrix */
966 /* Types for XInput support */
971 GdkModifierType modifiers;
974 struct _GdkDeviceInfo
978 GdkInputSource source;
980 gint has_cursor; /* TRUE if the X pointer follows device motion */
982 GdkAxisUse *axes; /* Specifies use for each axis */
997 /* Structure that holds information about a drag in progress.
998 * this is used on both source and destination sides.
1000 struct _GdkDragContext {
1001 GdkDragProtocol protocol;
1005 GdkWindow *source_window;
1006 GdkWindow *dest_window;
1009 GdkDragAction actions;
1010 GdkDragAction suggested_action;
1011 GdkDragAction action;
1016 /* Event filtering */
1018 typedef void GdkXEvent; /* Can be cast to XEvent */
1020 typedef GdkFilterReturn (*GdkFilterFunc) (GdkXEvent *xevent,
1031 struct _GdkEventExpose
1037 gint count; /* If non-zero, how many more events follow. */
1040 struct _GdkEventNoExpose
1045 /* XXX: does anyone need the X major_code or minor_code fields? */
1048 struct _GdkEventVisibility
1053 GdkVisibilityState state;
1056 struct _GdkEventMotion
1069 GdkInputSource source;
1071 gdouble x_root, y_root;
1074 struct _GdkEventButton
1087 GdkInputSource source;
1089 gdouble x_root, y_root;
1104 struct _GdkEventCrossing
1109 GdkWindow *subwindow;
1115 GdkCrossingMode mode;
1116 GdkNotifyType detail;
1121 struct _GdkEventFocus
1129 struct _GdkEventConfigure
1139 struct _GdkEventProperty
1149 struct _GdkEventSelection
1161 /* This event type will be used pretty rarely. It only is important
1162 for XInput aware programs that are drawing their own cursor */
1164 struct _GdkEventProximity
1170 GdkInputSource source;
1174 struct _GdkEventClient
1179 GdkAtom message_type;
1180 gushort data_format;
1188 /* Event types for DND */
1190 struct _GdkEventDND {
1194 GdkDragContext *context;
1197 gshort x_root, y_root;
1204 GdkEventExpose expose;
1205 GdkEventNoExpose no_expose;
1206 GdkEventVisibility visibility;
1207 GdkEventMotion motion;
1208 GdkEventButton button;
1210 GdkEventCrossing crossing;
1211 GdkEventFocus focus_change;
1212 GdkEventConfigure configure;
1213 GdkEventProperty property;
1214 GdkEventSelection selection;
1215 GdkEventProximity proximity;
1216 GdkEventClient client;
1228 GdkWindow *client_window;
1229 GdkWindow *focus_window;
1230 GdkEventMask filter_events;
1231 GdkPoint spot_location;
1235 GdkFont *preedit_fontset;
1236 GdkRectangle preedit_area;
1237 GdkRectangle preedit_area_needed;
1238 GdkColor preedit_foreground;
1239 GdkColor preedit_background;
1240 GdkPixmap *preedit_pixmap;
1241 GdkColormap *preedit_colormap;
1243 GdkFont *status_fontset;
1244 GdkRectangle status_area;
1245 GdkRectangle status_area_needed;
1246 GdkColor status_foreground;
1247 GdkColor status_background;
1248 GdkPixmap *status_pixmap;
1249 GdkColormap *status_colormap;
1254 #endif /* __cplusplus */
1257 #endif /* __GDK_TYPES_H__ */