# Module Gdk.Tags

    module Tags: sig .. end

    type event_type = [ `BUTTON_PRESS
           | `BUTTON_RELEASE
           | `CLIENT_EVENT
           | `CONFIGURE
           | `DELETE
           | `DESTROY
           | `DRAG_ENTER
           | `DRAG_LEAVE
           | `DRAG_MOTION
           | `DRAG_STATUS
           | `DROP_FINISHED
           | `DROP_START
           | `ENTER_NOTIFY
           | `EXPOSE
           | `FOCUS_CHANGE
           | `KEY_PRESS
           | `KEY_RELEASE
           | `LEAVE_NOTIFY
           | `MAP
           | `MOTION_NOTIFY
           | `NOTHING
           | `NO_EXPOSE
           | `PROPERTY_NOTIFY
           | `PROXIMITY_IN
           | `PROXIMITY_OUT
           | `SCROLL
           | `SELECTION_CLEAR
           | `SELECTION_NOTIFY
           | `SELECTION_REQUEST
           | `SETTING
           | `THREE_BUTTON_PRESS
           | `TWO_BUTTON_PRESS
           | `UNMAP
           | `VISIBILITY_NOTIFY
           | `WINDOW_STATE ]

    type event_mask = [ `ALL_EVENTS
           | `BUTTON1_MOTION
           | `BUTTON2_MOTION
           | `BUTTON3_MOTION
           | `BUTTON_MOTION
           | `BUTTON_PRESS
           | `BUTTON_RELEASE
           | `ENTER_NOTIFY
           | `EXPOSURE
           | `FOCUS_CHANGE
           | `KEY_PRESS
           | `KEY_RELEASE
           | `LEAVE_NOTIFY
           | `POINTER_MOTION
           | `POINTER_MOTION_HINT
           | `PROPERTY_CHANGE
           | `PROXIMITY_IN
           | `PROXIMITY_OUT
           | `SCROLL
           | `STRUCTURE
           | `SUBSTRUCTURE
           | `VISIBILITY_NOTIFY ]

    type extension_mode = [ `ALL | `CURSOR | `NONE ]

    type visibility_state = [ `FULLY_OBSCURED | `PARTIAL | `UNOBSCURED ]

    type input_source = [ `CURSOR | `ERASER | `MOUSE | `PEN ]

    type scroll_direction = [ `DOWN | `LEFT | `RIGHT | `UP ]

    type notify_type = [ `ANCESTOR
           | `INFERIOR
           | `NONLINEAR
           | `NONLINEAR_VIRTUAL
           | `UNKNOWN
           | `VIRTUAL ]

    type crossing_mode = [ `GRAB | `NORMAL | `UNGRAB ]

    type setting_action = [ `CHANGED | `DELETED | `NEW ]

    type window_state = [ `ICONIFIED | `MAXIMIZED | `STICKY | `WITHDRAWN ]

    type modifier = [ `BUTTON1
           | `BUTTON2
           | `BUTTON3
           | `BUTTON4
           | `BUTTON5
           | `CONTROL
           | `HYPER
           | `LOCK
           | `META
           | `MOD1
           | `MOD2
           | `MOD3
           | `MOD4
           | `MOD5
           | `RELEASE
           | `SHIFT
           | `SUPER ]

    type drag_action = [ `ASK | `COPY | `DEFAULT | `LINK | `MOVE | `PRIVATE ]

    type rgb_dither = [ `MAX | `NONE | `NORMAL ]

    type property_state = [ `DELETE | `NEW_VALUE ]

    type property_mode = [ `APPEND | `PREPEND | `REPLACE ]

    type xdata = [ `BYTES of string | `INT32S of int32 array | `SHORTS of int array ]

    type xdata_ret = [ `BYTES of string | `INT32S of int32 array | `NONE | `SHORTS of int array ]

    type gravity = [ `CENTER
           | `EAST
           | `NORTH
           | `NORTH_EAST
           | `NORTH_WEST
           | `SOUTH
           | `SOUTH_EAST
           | `SOUTH_WEST
           | `STATIC
           | `WEST ]

    type window_type_hint = [ `DESKTOP
           | `DIALOG
           | `DOCK
           | `MENU
           | `NORMAL
           | `SPLASHSCREEN
           | `TOOLBAR
           | `UTILITY ]