Event Structures
A common mistake is to forget to set the event mask of a widget so that the
required events are received. See gtk_widget_set_events().
Contains the fields which are common to all event structs.
Any event can safely be cast to a #GdkEventAny to access these fields.
@type: the type of the event.
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@type:
@window:
@send_event:
@area:
@count:
@type:
@window:
@send_event:
@type:
@window:
@send_event:
@state:
@GDK_VISIBILITY_UNOBSCURED:
@GDK_VISIBILITY_PARTIAL:
@GDK_VISIBILITY_FULLY_OBSCURED:
@type:
@window:
@send_event:
@time:
@x:
@y:
@pressure:
@xtilt:
@ytilt:
@state:
@is_hint:
@source:
@deviceid:
@x_root:
@y_root:
Used for button press and button release events. The
type field will be one of %GDK_BUTTON_PRESS,
%GDK_2BUTTON_PRESS, %GDK_3BUTTON_PRESS, and %GDK_BUTTON_RELEASE.
Double and treble-clicks result in a sequence of events being received.
For double-clicks the order of events will be:
%GDK_BUTTON_PRESS
%GDK_BUTTON_RELEASE
%GDK_BUTTON_PRESS
%GDK_2BUTTON_PRESS
%GDK_BUTTON_RELEASE
Note that the first click is received just like a normal
button press, while the second click results in a %GDK_2BUTTON_PRESS being
received just after the %GDK_BUTTON_PRESS.
Treble-clicks are very similar to double-clicks, except that %GDK_3BUTTON_PRESS
is inserted after the third click. The order of the events is:
%GDK_BUTTON_PRESS
%GDK_BUTTON_RELEASE
%GDK_BUTTON_PRESS
%GDK_2BUTTON_PRESS
%GDK_BUTTON_RELEASE
%GDK_BUTTON_PRESS
%GDK_3BUTTON_PRESS
%GDK_BUTTON_RELEASE
@type: the type of the event.
@window: the window which received the event.
@send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent).
@time: the time of the event in milliseconds. This wraps around roughly every
50 days.
@x: the x coordinate of the mouse relative to the window.
@y: the y coordinate of the mouse relative to the window.
@pressure: the pressure of the button press, intended for input devices such
as graphics tablets. It defaults to 0.5.
@xtilt:
@ytilt:
@state:
@button:
@source:
@deviceid:
@x_root: the x coordinate of the mouse relative to the root of the screen.
@y_root: the y coordinate of the mouse relative to the root of the screen.
@type:
@window:
@send_event:
@time:
@state:
@keyval:
@length:
@string:
@type:
@window:
@send_event:
@subwindow:
@time:
@x:
@y:
@x_root:
@y_root:
@mode:
@detail:
@focus:
@state:
@GDK_CROSSING_NORMAL:
@GDK_CROSSING_GRAB:
@GDK_CROSSING_UNGRAB:
@GDK_NOTIFY_ANCESTOR:
@GDK_NOTIFY_VIRTUAL:
@GDK_NOTIFY_INFERIOR:
@GDK_NOTIFY_NONLINEAR:
@GDK_NOTIFY_NONLINEAR_VIRTUAL:
@GDK_NOTIFY_UNKNOWN:
@type:
@window:
@send_event:
@in:
@type:
@window:
@send_event:
@x:
@y:
@width:
@height:
@type:
@window:
@send_event:
@atom:
@time:
@state:
@GDK_PROPERTY_NEW_VALUE:
@GDK_PROPERTY_DELETE:
@type:
@window:
@send_event:
@selection:
@target:
@property:
@requestor:
@time:
@type:
@window:
@send_event:
@time:
@source:
@deviceid:
@type:
@window:
@send_event:
@message_type:
@data_format:
@type:
@window:
@send_event:
@context:
@time:
@x_root:
@y_root: