import "glib/glib" import "glib/glib-object" import "gdktypes" import "gdkdrawable" import "gdkwindow" import "gdkdnd" struct GdkDevice; dummy: int; end struct pgdouble; l: dword; h: dword; end typedef gdouble = local pgdouble public [name="c"] typedef GdkEventFunc = {GdkEvent, gpointer} void enum GdkEventType GDK_NOTHING = -1 GDK_DELETE = 0 GDK_DESTROY = 1 GDK_EXPOSE = 2 GDK_MOTION_NOTIFY = 3 GDK_BUTTON_PRESS = 4 GDK_2BUTTON_PRESS = 5 GDK_3BUTTON_PRESS = 6 GDK_BUTTON_RELEASE = 7 GDK_KEY_PRESS = 8 GDK_KEY_RELEASE = 9 GDK_ENTER_NOTIFY = 10 GDK_LEAVE_NOTIFY = 11 GDK_FOCUS_CHANGE = 12 GDK_CONFIGURE = 13 GDK_MAP = 14 GDK_UNMAP = 15 GDK_PROPERTY_NOTIFY = 16 GDK_SELECTION_CLEAR = 17 GDK_SELECTION_REQUEST = 18 GDK_SELECTION_NOTIFY = 19 GDK_PROXIMITY_IN = 20 GDK_PROXIMITY_OUT = 21 GDK_DRAG_ENTER = 22 GDK_DRAG_LEAVE = 23 GDK_DRAG_MOTION = 24 GDK_DRAG_STATUS = 25 GDK_DROP_START = 26 GDK_DROP_FINISHED = 27 GDK_CLIENT_EVENT = 28 GDK_VISIBILITY_NOTIFY = 29 GDK_NO_EXPOSE = 30 GDK_SCROLL = 31 GDK_WINDOW_STATE = 32 GDK_SETTING = 33 end enum GdkEventMask GDK_EXPOSURE_MASK = 1 << 1 GDK_POINTER_MOTION_MASK = 1 << 2 GDK_POINTER_MOTION_HINT_MASK = 1 << 3 GDK_BUTTON_MOTION_MASK = 1 << 4 GDK_BUTTON1_MOTION_MASK = 1 << 5 GDK_BUTTON2_MOTION_MASK = 1 << 6 GDK_BUTTON3_MOTION_MASK = 1 << 7 GDK_BUTTON_PRESS_MASK = 1 << 8 GDK_BUTTON_RELEASE_MASK = 1 << 9 GDK_KEY_PRESS_MASK = 1 << 10 GDK_KEY_RELEASE_MASK = 1 << 11 GDK_ENTER_NOTIFY_MASK = 1 << 12 GDK_LEAVE_NOTIFY_MASK = 1 << 13 GDK_FOCUS_CHANGE_MASK = 1 << 14 GDK_STRUCTURE_MASK = 1 << 15 GDK_PROPERTY_CHANGE_MASK = 1 << 16 GDK_VISIBILITY_NOTIFY_MASK = 1 << 17 GDK_PROXIMITY_IN_MASK = 1 << 18 GDK_PROXIMITY_OUT_MASK = 1 << 19 GDK_SUBSTRUCTURE_MASK = 1 << 20 GDK_SCROLL_MASK = 1 << 21 GDK_ALL_EVENTS_MASK = 0x3FFFFE end enum GdkVisibilityState GDK_VISIBILITY_UNOBSCURED GDK_VISIBILITY_PARTIAL GDK_VISIBILITY_FULLY_OBSCURED end enum GdkScrollDirection GDK_SCROLL_UP GDK_SCROLL_DOWN GDK_SCROLL_LEFT GDK_SCROLL_RIGHT end enum GdkNotifyType GDK_NOTIFY_ANCESTOR = 0 GDK_NOTIFY_VIRTUAL = 1 GDK_NOTIFY_INFERIOR = 2 GDK_NOTIFY_NONLINEAR = 3 GDK_NOTIFY_NONLINEAR_VIRTUAL = 4 GDK_NOTIFY_UNKNOWN = 5 end enum GdkCrossingMode GDK_CROSSING_NORMAL GDK_CROSSING_GRAB GDK_CROSSING_UNGRAB end enum GdkPropertyState GDK_PROPERTY_NEW_VALUE GDK_PROPERTY_DELETE end enum GdkWindowState GDK_WINDOW_STATE_WITHDRAWN = 1 << 0 GDK_WINDOW_STATE_ICONIFIED = 1 << 1 GDK_WINDOW_STATE_MAXIMIZED = 1 << 2 GDK_WINDOW_STATE_STICKY = 1 << 3 end enum GdkSettingAction GDK_SETTING_ACTION_NEW GDK_SETTING_ACTION_CHANGED GDK_SETTING_ACTION_DELETED end // The GdkEvent extensions does not inherits from GdkEvent because of // structure alignment struct GdkEvent type: GdkEventType window: GdkWindow send_event: gint8 end struct GdkEventAny type: GdkEventType window: GdkWindow send_event: gint8 end struct GdkEventExpose type: GdkEventType window: GdkWindow send_event: gint8 area: local GdkRectangle region: GdkRegion count: gint end struct GdkEventNoExpose type: GdkEventType window: GdkWindow send_event: gint8 end struct GdkEventVisibility type: GdkEventType window: GdkWindow send_event: gint8 state: GdkVisibilityState end struct GdkEventMotion type: GdkEventType window: GdkWindow send_event: gint8 time: guint32 x: gdouble y: gdouble axes: gdouble state: guint is_hint: gint16 device: GdkDevice //x_root: gdouble //y_root: gdouble end struct GdkEventButton type: GdkEventType window: GdkWindow send_event: gint8 time: guint32 x: gdouble y: gdouble axes: [] gdouble state: guint button: guint device: GdkDevice //x_root: gdouble //y_root: gdouble end struct GdkEventScroll type: GdkEventType window: GdkWindow send_event: gint8 time: guint32 x: gdouble y: gdouble state: guint direction: GdkScrollDirection device: GdkDevice //x_root: gdouble //y_root: gdouble end struct GdkEventKey type: GdkEventType window: GdkWindow send_event: gint8 time: guint32 state: guint keyval: guint length: gint string: [] gchar hardware_keycode: guint16 group: guint8 end struct GdkEventCrossing type: GdkEventType window: GdkWindow send_event: gint8 subwindow: GdkWindow time: guint32 x: gdouble y: gdouble x_root: gdouble y_root: gdouble mode: GdkCrossingMode detail: GdkNotifyType focus: gboolean state: guint end struct GdkEventFocus type: GdkEventType window: GdkWindow send_event: gint8 in: gint16 end struct GdkEventConfigure type: GdkEventType window: GdkWindow send_event: gint8 x: gint y: gint width: gint height: gint end struct GdkEventProperty type: GdkEventType window: GdkWindow send_event: gint8 atom: GdkAtom time: guint32 state: guint end struct GdkEventSelection type: GdkEventType window: GdkWindow send_event: gint8 selection: GdkAtom target: GdkAtom property: GdkAtom time: guint32 //requestor: GdkNativeWindow end struct GdkEventProximity type: GdkEventType window: GdkWindow send_event: gint8 time: guint32 device: GdkDevice end struct GdkEventClient type: GdkEventType window: GdkWindow send_event: gint8 message_type: GdkAtom data_format: gushort data: union b: [20] char s: [10] short l: [5] int end end struct GdkEventSetting type: GdkEventType window: GdkWindow send_event: gint8 action: GdkSettingAction name: [] char end struct GdkEventWindowState type: GdkEventType window: GdkWindow send_event: gint8 changed_mask: GdkWindowState new_window_state: GdkWindowState end struct GdkEventDND type: GdkEventType window: GdkWindow send_event: gint8 context: GdkDragContext time: guint32 x_root: gshort y_root: gshort end import func gdk_event_get_type: GType import func gdk_events_pending: gboolean import func gdk_event_get: GdkEvent import func gdk_event_peek: GdkEvent import func gdk_event_get_graphics_expose (GdkWindow): GdkEvent import func gdk_event_put (GdkEvent) import func gdk_event_copy (GdkEvent): GdkEvent import func gdk_event_free (GdkEvent) import func gdk_event_get_time (GdkEvent): guint32 import func gdk_event_get_state (GdkEvent,GdkModifierType): gboolean import func gdk_event_get_coords (GdkEvent,[] gdouble,[] gdouble): gboolean import func gdk_event_get_root_coords (GdkEvent,[] gdouble,[] gdouble): gboolean //import func gdk_event_get_axis (GdkEvent,GdkAxisUse,[] gdouble): gboolean import func gdk_event_handler_set (GdkEventFunc,gpointer,GDestroyNotify) import func gdk_set_show_events (gboolean) import func gdk_get_show_events: gboolean import func gdk_event_button_button (GdkEventButton): guint import func gdk_event_button_get_x (GdkEventButton): int import func gdk_event_button_get_y (GdkEventButton): int import func gdk_event_motion_get_x (GdkEventMotion): int import func gdk_event_motion_get_y (GdkEventMotion): int import func gdk_event_scroll_get_x (GdkEventScroll): int import func gdk_event_scroll_get_y (GdkEventScroll): int end