forked from AuroraMiddleware/gtk
docs: Move documentation to inline comments: event_structs
All the GDK documentation is now moved to inline comments
This commit is contained in:
parent
e2cfecf813
commit
b204995c6d
1
docs/reference/gdk/tmpl/.gitignore
vendored
1
docs/reference/gdk/tmpl/.gitignore
vendored
@ -4,6 +4,7 @@ cursors.sgml
|
||||
dnd.sgml
|
||||
drawing.sgml
|
||||
events.sgml
|
||||
event_structs.sgml
|
||||
gdkapplaunchcontext.sgml
|
||||
gdkdisplay.sgml
|
||||
gdkdisplaymanager.sgml
|
||||
|
@ -1,548 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Event Structures
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Data structures specific to each type of event
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
The event structs contain data specific to each type of event in GDK.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
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().
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### UNION GdkEvent ##### -->
|
||||
<para>
|
||||
The #GdkEvent struct contains a union of all of the event structs,
|
||||
and allows access to the data fields in a number of ways.
|
||||
</para>
|
||||
<para>
|
||||
The event type is always the first field in all of the event structs, and
|
||||
can always be accessed with the following code, no matter what type of event
|
||||
it is:
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
GdkEvent *event;
|
||||
GdkEventType type;
|
||||
|
||||
type = event->type;
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To access other fields of the event structs, the pointer to the event can be
|
||||
cast to the appropriate event struct pointer, or the union member name can be
|
||||
used. For example if the event type is %GDK_BUTTON_PRESS then the x coordinate
|
||||
of the button press can be accessed with:
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
GdkEvent *event;
|
||||
gdouble x;
|
||||
|
||||
x = ((GdkEventButton*)event)->x;
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
or:
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
GdkEvent *event;
|
||||
gdouble x;
|
||||
|
||||
x = event->button.x;
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkEventAny ##### -->
|
||||
<para>
|
||||
Contains the fields which are common to all event structs.
|
||||
Any event pointer can safely be cast to a pointer to a #GdkEventAny to access
|
||||
these fields.
|
||||
</para>
|
||||
|
||||
@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
|
||||
<function>XSendEvent</function>).
|
||||
|
||||
<!-- ##### STRUCT GdkEventKey ##### -->
|
||||
<para>
|
||||
Describes a key press or key release event.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_KEY_PRESS or %GDK_KEY_RELEASE).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
<function>XSendEvent</function>).
|
||||
@time: the time of the event in milliseconds.
|
||||
@state: a bit-mask representing the state of the modifier keys (e.g. Control,
|
||||
Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
@keyval: the key that was pressed or released. See the
|
||||
<filename><gdk/gdkkeysyms.h></filename>
|
||||
header file for a complete list of GDK key codes.
|
||||
@length: the length of @string.
|
||||
@string: a string containing the an approximation of the text that
|
||||
would result from this keypress. The only correct way to handle text
|
||||
input of text is using input methods (see #GtkIMContext), so this
|
||||
field is deprecated and should never be used.
|
||||
(gdk_unicode_to_keyval() provides a non-deprecated way of getting
|
||||
an approximate translation for a key.) The string is encoded in the encoding
|
||||
of the current locale (Note: this for backwards compatibility:
|
||||
strings in GTK+ and GDK are typically in UTF-8.) and NUL-terminated.
|
||||
In some cases, the translation of the key code will be a single
|
||||
NUL byte, in which case looking at @length is necessary to distinguish
|
||||
it from the an empty translation.
|
||||
@hardware_keycode: the raw code of the key that was pressed or released.
|
||||
@group: the keyboard group.
|
||||
@is_modifier: a flag that indicates if @hardware_keycode is mapped to a
|
||||
modifier. Since 2.10
|
||||
|
||||
<!-- ##### STRUCT GdkEventButton ##### -->
|
||||
<para>
|
||||
Used for button press and button release events. The
|
||||
<structfield>type</structfield> field will be one of %GDK_BUTTON_PRESS,
|
||||
%GDK_2BUTTON_PRESS, %GDK_3BUTTON_PRESS, and %GDK_BUTTON_RELEASE.
|
||||
</para>
|
||||
<para>
|
||||
Double and triple-clicks result in a sequence of events being received.
|
||||
For double-clicks the order of events will be:
|
||||
<orderedlist>
|
||||
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
<listitem><para>%GDK_2BUTTON_PRESS</para></listitem>
|
||||
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
</orderedlist>
|
||||
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.
|
||||
</para>
|
||||
<para>
|
||||
Triple-clicks are very similar to double-clicks, except that %GDK_3BUTTON_PRESS
|
||||
is inserted after the third click. The order of the events is:
|
||||
<orderedlist>
|
||||
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
<listitem><para>%GDK_2BUTTON_PRESS</para></listitem>
|
||||
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
<listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
<listitem><para>%GDK_3BUTTON_PRESS</para></listitem>
|
||||
<listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
<para>
|
||||
For a double click to occur, the second button press must occur within 1/4 of
|
||||
a second of the first. For a triple click to occur, the third button press
|
||||
must also occur within 1/2 second of the first button press.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_BUTTON_PRESS, %GDK_2BUTTON_PRESS,
|
||||
%GDK_3BUTTON_PRESS or %GDK_BUTTON_RELEASE).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
<function>XSendEvent</function>).
|
||||
@time: the time of the event in milliseconds.
|
||||
@x: the x coordinate of the pointer relative to the window.
|
||||
@y: the y coordinate of the pointer relative to the window.
|
||||
@axes: @x, @y translated to the axes of @device, or %NULL if @device is
|
||||
the mouse.
|
||||
@state: a bit-mask representing the state of the modifier keys (e.g. Control,
|
||||
Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
@button: the button which was pressed or released, numbered from 1 to 5.
|
||||
Normally button 1 is the left mouse button, 2 is the middle button,
|
||||
and 3 is the right button. On 2-button mice, the middle button can often
|
||||
be simulated by pressing both mouse buttons together.
|
||||
@device: the device where the event originated.
|
||||
@x_root: the x coordinate of the pointer relative to the root of the screen.
|
||||
@y_root: the y coordinate of the pointer relative to the root of the screen.
|
||||
|
||||
<!-- ##### STRUCT GdkEventScroll ##### -->
|
||||
<para>
|
||||
Generated from button presses for the buttons 4 to 7. Wheel mice are
|
||||
usually configured to generate button press events for buttons 4 and 5
|
||||
when the wheel is turned.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_SCROLL).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
<function>XSendEvent</function>).
|
||||
@time: the time of the event in milliseconds.
|
||||
@x: the x coordinate of the pointer relative to the window.
|
||||
@y: the y coordinate of the pointer relative to the window.
|
||||
@state: a bit-mask representing the state of the modifier keys (e.g. Control,
|
||||
Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
@direction: the direction to scroll to (one of %GDK_SCROLL_UP,
|
||||
%GDK_SCROLL_DOWN, %GDK_SCROLL_LEFT and %GDK_SCROLL_RIGHT).
|
||||
@device: the device where the event originated.
|
||||
@x_root: the x coordinate of the pointer relative to the root of the screen.
|
||||
@y_root: the y coordinate of the pointer relative to the root of the screen.
|
||||
|
||||
<!-- ##### STRUCT GdkEventMotion ##### -->
|
||||
<para>
|
||||
Generated when the pointer moves.
|
||||
</para>
|
||||
|
||||
@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
|
||||
<function>XSendEvent</function>).
|
||||
@time: the time of the event in milliseconds.
|
||||
@x: the x coordinate of the pointer relative to the window.
|
||||
@y: the y coordinate of the pointer relative to the window.
|
||||
@axes: @x, @y translated to the axes of @device, or %NULL if @device is
|
||||
the mouse.
|
||||
@state: a bit-mask representing the state of the modifier keys (e.g. Control,
|
||||
Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
@is_hint: set to 1 if this event is just a hint, see the %GDK_POINTER_MOTION_HINT_MASK
|
||||
value of #GdkEventMask.
|
||||
@device: the device where the event originated.
|
||||
@x_root: the x coordinate of the pointer relative to the root of the screen.
|
||||
@y_root: the y coordinate of the pointer relative to the root of the screen.
|
||||
|
||||
<!-- ##### STRUCT GdkEventExpose ##### -->
|
||||
<para>
|
||||
Generated when all or part of a window becomes visible and needs to be
|
||||
redrawn.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_EXPOSE or %GDK_DAMAGE).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
<function>XSendEvent</function>).
|
||||
@area: bounding box of @region.
|
||||
@region: the region that needs to be redrawn.
|
||||
@count: the number of contiguous %GDK_EXPOSE events following this one.
|
||||
The only use for this is "exposure compression", i.e. handling all contiguous
|
||||
%GDK_EXPOSE events in one go, though GDK performs some exposure compression
|
||||
so this is not normally needed.
|
||||
|
||||
<!-- ##### STRUCT GdkEventVisibility ##### -->
|
||||
<para>
|
||||
Generated when the window visibility status has changed.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_VISIBILITY_NOTIFY).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
<function>XSendEvent</function>).
|
||||
@state: the new visibility state (%GDK_VISIBILITY_FULLY_OBSCURED,
|
||||
%GDK_VISIBILITY_PARTIAL or %GDK_VISIBILITY_UNOBSCURED).
|
||||
|
||||
<!-- ##### STRUCT GdkEventCrossing ##### -->
|
||||
<para>
|
||||
Generated when the pointer enters or leaves a window.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_ENTER_NOTIFY or %GDK_LEAVE_NOTIFY).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
<function>XSendEvent</function>).
|
||||
@subwindow: the window that was entered or left.
|
||||
@time: the time of the event in milliseconds.
|
||||
@x: the x coordinate of the pointer relative to the window.
|
||||
@y: the y coordinate of the pointer relative to the window.
|
||||
@x_root: the x coordinate of the pointer relative to the root of the screen.
|
||||
@y_root: the y coordinate of the pointer relative to the root of the screen.
|
||||
@mode: the crossing mode (%GDK_CROSSING_NORMAL, %GDK_CROSSING_GRAB,
|
||||
%GDK_CROSSING_UNGRAB, %GDK_CROSSING_GTK_GRAB, %GDK_CROSSING_GTK_UNGRAB or
|
||||
%GDK_CROSSING_STATE_CHANGED). %GDK_CROSSING_GTK_GRAB, %GDK_CROSSING_GTK_UNGRAB,
|
||||
and %GDK_CROSSING_STATE_CHANGED were added in 2.14 and are always synthesized,
|
||||
never native.
|
||||
@detail: the kind of crossing that happened (%GDK_NOTIFY_INFERIOR,
|
||||
%GDK_NOTIFY_ANCESTOR, %GDK_NOTIFY_VIRTUAL, %GDK_NOTIFY_NONLINEAR or
|
||||
%GDK_NOTIFY_NONLINEAR_VIRTUAL).
|
||||
@focus: %TRUE if @window is the focus window or an inferior.
|
||||
@state: a bit-mask representing the state of the modifier keys (e.g. Control,
|
||||
Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
|
||||
<!-- ##### STRUCT GdkEventFocus ##### -->
|
||||
<para>
|
||||
Describes a change of keyboard focus.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_FOCUS_CHANGE).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@in: %TRUE if the window has gained the keyboard focus, %FALSE if it has lost
|
||||
the focus.
|
||||
|
||||
<!-- ##### STRUCT GdkEventConfigure ##### -->
|
||||
<para>
|
||||
Generated when a window size or position has changed.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_CONFIGURE).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@x: the new x coordinate of the window, relative to its parent.
|
||||
@y: the new y coordinate of the window, relative to its parent.
|
||||
@width: the new width of the window.
|
||||
@height: the new height of the window.
|
||||
|
||||
<!-- ##### STRUCT GdkEventProperty ##### -->
|
||||
<para>
|
||||
Describes a property change on a window.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_PROPERTY_NOTIFY).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@atom: the property that was changed.
|
||||
@time: the time of the event in milliseconds.
|
||||
@state: whether the property was changed (%GDK_PROPERTY_NEW_VALUE) or
|
||||
deleted (%GDK_PROPERTY_DELETE).
|
||||
|
||||
<!-- ##### STRUCT GdkEventSelection ##### -->
|
||||
<para>
|
||||
Generated when a selection is requested or ownership of a selection
|
||||
is taken over by another client application.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_SELECTION_CLEAR, %GDK_SELECTION_NOTIFY or
|
||||
%GDK_SELECTION_REQUEST).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@selection: the selection.
|
||||
@target: the target to which the selection should be converted.
|
||||
@property: the property in which to place the result of the conversion.
|
||||
@time: the time of the event in milliseconds.
|
||||
@requestor: the native window on which to place @property.
|
||||
|
||||
<!-- ##### TYPEDEF GdkNativeWindow ##### -->
|
||||
<para>
|
||||
Used to represent native windows (<type>Window</type>s for the X11 backend,
|
||||
<type>HWND</type>s for Win32).
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkEventDND ##### -->
|
||||
<para>
|
||||
Generated during DND operations.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_DRAG_ENTER, %GDK_DRAG_LEAVE,
|
||||
%GDK_DRAG_MOTION, %GDK_DRAG_STATUS, %GDK_DROP_START or %GDK_DROP_FINISHED).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@context: the #GdkDragContext for the current DND operation.
|
||||
@time: the time of the event in milliseconds.
|
||||
@x_root: the x coordinate of the pointer relative to the root of the screen,
|
||||
only set for %GDK_DRAG_MOTION and %GDK_DROP_START.
|
||||
@y_root: the y coordinate of the pointer relative to the root of the screen,
|
||||
only set for %GDK_DRAG_MOTION and %GDK_DROP_START.
|
||||
|
||||
<!-- ##### STRUCT GdkEventProximity ##### -->
|
||||
<para>
|
||||
Proximity events are generated when using GDK's wrapper for the
|
||||
XInput extension. The XInput extension is an add-on for standard X
|
||||
that allows you to use nonstandard devices such as graphics tablets.
|
||||
A proximity event indicates that the stylus has moved in or out of
|
||||
contact with the tablet, or perhaps that the user's finger has moved
|
||||
in or out of contact with a touch screen.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_PROXIMITY_IN or %GDK_PROXIMITY_OUT).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@time: the time of the event in milliseconds.
|
||||
@device: the device where the event originated.
|
||||
|
||||
<!-- ##### STRUCT GdkEventClient ##### -->
|
||||
<para>
|
||||
An event sent by another client application.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_CLIENT_EVENT).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@message_type: the type of the message, which can be defined by the
|
||||
application.
|
||||
@data_format: the format of the data, given as the number of bits in each
|
||||
data element, i.e. 8, 16, or 32. 8-bit data uses the b array of the data
|
||||
union, 16-bit data uses the s array, and 32-bit data uses the l array.
|
||||
|
||||
<!-- ##### STRUCT GdkEventNoExpose ##### -->
|
||||
<para>
|
||||
Generated when the area of a #GdkDrawable being copied was completely available.
|
||||
</para>
|
||||
<para>
|
||||
FIXME: add more here.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_NO_EXPOSE).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
|
||||
<!-- ##### STRUCT GdkEventWindowState ##### -->
|
||||
<para>
|
||||
Generated when the state of a toplevel window changes.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_WINDOW_STATE).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@changed_mask: mask specifying what flags have changed.
|
||||
@new_window_state: the new window state, a combination of #GdkWindowState bits.
|
||||
|
||||
<!-- ##### STRUCT GdkEventSetting ##### -->
|
||||
<para>
|
||||
Generated when a setting is modified.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_SETTING).
|
||||
@window: the window which received the event.
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@action: what happened to the setting (%GDK_SETTING_ACTION_NEW,
|
||||
%GDK_SETTING_ACTION_CHANGED or %GDK_SETTING_ACTION_DELETED).
|
||||
@name: the name of the setting.
|
||||
|
||||
<!-- ##### STRUCT GdkEventOwnerChange ##### -->
|
||||
<para>
|
||||
Generated when the owner of a selection changes. On X11, this information is
|
||||
only available if the X server supports the XFIXES extension.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_OWNER_CHANGE).
|
||||
@window: the window which received the event
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@owner: the new owner of the selection
|
||||
@reason: the reason for the ownership change as a #GdkOwnerChange value
|
||||
@selection: the atom identifying the selection
|
||||
@time: the timestamp of the event
|
||||
@selection_time: the time at which the selection ownership was taken over
|
||||
@Since: 2.6
|
||||
|
||||
<!-- ##### STRUCT GdkEventGrabBroken ##### -->
|
||||
<para>
|
||||
Generated when a pointer or keyboard grab is broken. On X11, this happens
|
||||
when the grab window becomes unviewable (i.e. it or one of its ancestors
|
||||
is unmapped), or if the same application grabs the pointer or keyboard
|
||||
again. Note that implicit grabs (which are initiated by button presses)
|
||||
can also cause #GdkEventGrabBroken events.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_GRAB_BROKEN)
|
||||
@window: the window which received the event, i.e. the window
|
||||
that previously owned the grab
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@keyboard: %TRUE if a keyboard grab was broken, %FALSE if a pointer
|
||||
grab was broken
|
||||
@implicit: %TRUE if the broken grab was implicit
|
||||
@grab_window: If this event is caused by another grab in the same
|
||||
application, @grab_window contains the new grab window. Otherwise
|
||||
@grab_window is %NULL.
|
||||
@Since: 2.8
|
||||
|
||||
<!-- ##### ENUM GdkScrollDirection ##### -->
|
||||
<para>
|
||||
Specifies the direction for #GdkEventScroll.
|
||||
</para>
|
||||
|
||||
@GDK_SCROLL_UP: the window is scrolled up.
|
||||
@GDK_SCROLL_DOWN: the window is scrolled down.
|
||||
@GDK_SCROLL_LEFT: the window is scrolled to the left.
|
||||
@GDK_SCROLL_RIGHT: the window is scrolled to the right.
|
||||
|
||||
<!-- ##### ENUM GdkVisibilityState ##### -->
|
||||
<para>
|
||||
Specifies the visiblity status of a window for a #GdkEventVisibility.
|
||||
</para>
|
||||
|
||||
@GDK_VISIBILITY_UNOBSCURED: the window is completely visible.
|
||||
@GDK_VISIBILITY_PARTIAL: the window is partially visible.
|
||||
@GDK_VISIBILITY_FULLY_OBSCURED: the window is not visible at all.
|
||||
|
||||
<!-- ##### ENUM GdkCrossingMode ##### -->
|
||||
<para>
|
||||
Specifies the crossing mode for #GdkEventCrossing.
|
||||
</para>
|
||||
|
||||
@GDK_CROSSING_NORMAL: crossing because of pointer motion.
|
||||
@GDK_CROSSING_GRAB: crossing because a grab is activated.
|
||||
@GDK_CROSSING_UNGRAB: crossing because a grab is deactivated.
|
||||
@GDK_CROSSING_GTK_GRAB: crossing because a GTK+ grab is activated.
|
||||
@GDK_CROSSING_GTK_UNGRAB: crossing because a GTK+ grab is deactivated.
|
||||
@GDK_CROSSING_STATE_CHANGED: crossing because a GTK+ widget changed state (e.g.
|
||||
sensitivity).
|
||||
|
||||
<!-- ##### ENUM GdkNotifyType ##### -->
|
||||
<para>
|
||||
Specifies the kind of crossing for #GdkEventCrossing.
|
||||
</para>
|
||||
<para>
|
||||
See the X11 protocol specification of <type>LeaveNotify</type> for
|
||||
full details of crossing event generation.
|
||||
</para>
|
||||
|
||||
@GDK_NOTIFY_ANCESTOR: the window is entered from an ancestor or
|
||||
left towards an ancestor.
|
||||
@GDK_NOTIFY_VIRTUAL: the pointer moves between an ancestor and an
|
||||
inferior of the window.
|
||||
@GDK_NOTIFY_INFERIOR: the window is entered from an inferior or
|
||||
left towards an inferior.
|
||||
@GDK_NOTIFY_NONLINEAR: the window is entered from or left towards
|
||||
a window which is neither an ancestor nor an inferior.
|
||||
@GDK_NOTIFY_NONLINEAR_VIRTUAL: the pointer moves between two windows
|
||||
which are not ancestors of each other and the window is part of
|
||||
the ancestor chain between one of these windows and their least
|
||||
common ancestor.
|
||||
@GDK_NOTIFY_UNKNOWN: an unknown type of enter/leave event occurred.
|
||||
|
||||
<!-- ##### ENUM GdkPropertyState ##### -->
|
||||
<para>
|
||||
Specifies the type of a property change for a #GdkEventProperty.
|
||||
</para>
|
||||
|
||||
@GDK_PROPERTY_NEW_VALUE: the property value was changed.
|
||||
@GDK_PROPERTY_DELETE: the property was deleted.
|
||||
|
||||
<!-- ##### ENUM GdkWindowState ##### -->
|
||||
<para>
|
||||
Specifies the state of a toplevel window.
|
||||
</para>
|
||||
|
||||
@GDK_WINDOW_STATE_WITHDRAWN: the window is not shown.
|
||||
@GDK_WINDOW_STATE_ICONIFIED: the window is minimized.
|
||||
@GDK_WINDOW_STATE_MAXIMIZED: the window is maximized.
|
||||
@GDK_WINDOW_STATE_STICKY: the window is sticky.
|
||||
@GDK_WINDOW_STATE_FULLSCREEN: the window is maximized without decorations.
|
||||
@GDK_WINDOW_STATE_ABOVE: the window is kept above other windows.
|
||||
@GDK_WINDOW_STATE_BELOW: the window is kept below other windows.
|
||||
|
||||
<!-- ##### ENUM GdkSettingAction ##### -->
|
||||
<para>
|
||||
Specifies the kind of modification applied to a setting in a #GdkEventSetting.
|
||||
</para>
|
||||
|
||||
@GDK_SETTING_ACTION_NEW: a setting was added.
|
||||
@GDK_SETTING_ACTION_CHANGED: a setting was changed.
|
||||
@GDK_SETTING_ACTION_DELETED: a setting was deleted.
|
||||
|
||||
<!-- ##### ENUM GdkOwnerChange ##### -->
|
||||
<para>
|
||||
Specifies why a selection ownership was changed.
|
||||
</para>
|
||||
|
||||
@GDK_OWNER_CHANGE_NEW_OWNER: some other app claimed the ownership
|
||||
@GDK_OWNER_CHANGE_DESTROY: the window was destroyed
|
||||
@GDK_OWNER_CHANGE_CLOSE: the client was closed
|
||||
|
536
gdk/gdkevents.h
536
gdk/gdkevents.h
@ -38,6 +38,23 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
|
||||
/**
|
||||
* SECTION:event_structs
|
||||
* @Short_description: Data structures specific to each type of event
|
||||
* @Title: Event Structures
|
||||
*
|
||||
* The event structs contain data specific to each type of event in GDK.
|
||||
*
|
||||
* <note>
|
||||
* <para>
|
||||
* 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().
|
||||
* </para>
|
||||
* </note>
|
||||
*/
|
||||
|
||||
|
||||
#define GDK_TYPE_EVENT (gdk_event_get_type ())
|
||||
|
||||
/**
|
||||
@ -251,6 +268,14 @@ typedef enum
|
||||
GDK_EVENT_LAST /* helper variable for decls */
|
||||
} GdkEventType;
|
||||
|
||||
/**
|
||||
* GdkVisibilityState:
|
||||
* @GDK_VISIBILITY_UNOBSCURED: the window is completely visible.
|
||||
* @GDK_VISIBILITY_PARTIAL: the window is partially visible.
|
||||
* @GDK_VISIBILITY_FULLY_OBSCURED: the window is not visible at all.
|
||||
*
|
||||
* Specifies the visiblity status of a window for a #GdkEventVisibility.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GDK_VISIBILITY_UNOBSCURED,
|
||||
@ -258,6 +283,15 @@ typedef enum
|
||||
GDK_VISIBILITY_FULLY_OBSCURED
|
||||
} GdkVisibilityState;
|
||||
|
||||
/**
|
||||
* GdkScrollDirection:
|
||||
* @GDK_SCROLL_UP: the window is scrolled up.
|
||||
* @GDK_SCROLL_DOWN: the window is scrolled down.
|
||||
* @GDK_SCROLL_LEFT: the window is scrolled to the left.
|
||||
* @GDK_SCROLL_RIGHT: the window is scrolled to the right.
|
||||
*
|
||||
* Specifies the direction for #GdkEventScroll.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GDK_SCROLL_UP,
|
||||
@ -266,13 +300,26 @@ typedef enum
|
||||
GDK_SCROLL_RIGHT
|
||||
} GdkScrollDirection;
|
||||
|
||||
/* Types of enter/leave notifications.
|
||||
* Ancestor:
|
||||
* Virtual:
|
||||
* Inferior:
|
||||
* Nonlinear:
|
||||
* NonlinearVirtual:
|
||||
* Unknown: An unknown type of enter/leave event occurred.
|
||||
/**
|
||||
* GdkNotifyType:
|
||||
* @GDK_NOTIFY_ANCESTOR: the window is entered from an ancestor or
|
||||
* left towards an ancestor.
|
||||
* @GDK_NOTIFY_VIRTUAL: the pointer moves between an ancestor and an
|
||||
* inferior of the window.
|
||||
* @GDK_NOTIFY_INFERIOR: the window is entered from an inferior or
|
||||
* left towards an inferior.
|
||||
* @GDK_NOTIFY_NONLINEAR: the window is entered from or left towards
|
||||
* a window which is neither an ancestor nor an inferior.
|
||||
* @GDK_NOTIFY_NONLINEAR_VIRTUAL: the pointer moves between two windows
|
||||
* which are not ancestors of each other and the window is part of
|
||||
* the ancestor chain between one of these windows and their least
|
||||
* common ancestor.
|
||||
* @GDK_NOTIFY_UNKNOWN: an unknown type of enter/leave event occurred.
|
||||
*
|
||||
* Specifies the kind of crossing for #GdkEventCrossing.
|
||||
*
|
||||
* See the X11 protocol specification of <type>LeaveNotify</type> for
|
||||
* full details of crossing event generation.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
@ -284,10 +331,17 @@ typedef enum
|
||||
GDK_NOTIFY_UNKNOWN = 5
|
||||
} GdkNotifyType;
|
||||
|
||||
/* Enter/leave event modes.
|
||||
* NotifyNormal
|
||||
* NotifyGrab
|
||||
* NotifyUngrab
|
||||
/**
|
||||
* GdkCrossingMode:
|
||||
* @GDK_CROSSING_NORMAL: crossing because of pointer motion.
|
||||
* @GDK_CROSSING_GRAB: crossing because a grab is activated.
|
||||
* @GDK_CROSSING_UNGRAB: crossing because a grab is deactivated.
|
||||
* @GDK_CROSSING_GTK_GRAB: crossing because a GTK+ grab is activated.
|
||||
* @GDK_CROSSING_GTK_UNGRAB: crossing because a GTK+ grab is deactivated.
|
||||
* @GDK_CROSSING_STATE_CHANGED: crossing because a GTK+ widget changed
|
||||
* state (e.g. sensitivity).
|
||||
*
|
||||
* Specifies the crossing mode for #GdkEventCrossing.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
@ -299,12 +353,32 @@ typedef enum
|
||||
GDK_CROSSING_STATE_CHANGED
|
||||
} GdkCrossingMode;
|
||||
|
||||
/**
|
||||
* GdkPropertyState:
|
||||
* @GDK_PROPERTY_NEW_VALUE: the property value was changed.
|
||||
* @GDK_PROPERTY_DELETE: the property was deleted.
|
||||
*
|
||||
* Specifies the type of a property change for a #GdkEventProperty.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GDK_PROPERTY_NEW_VALUE,
|
||||
GDK_PROPERTY_DELETE
|
||||
} GdkPropertyState;
|
||||
|
||||
/**
|
||||
* GdkWindowState:
|
||||
* @GDK_WINDOW_STATE_WITHDRAWN: the window is not shown.
|
||||
* @GDK_WINDOW_STATE_ICONIFIED: the window is minimized.
|
||||
* @GDK_WINDOW_STATE_MAXIMIZED: the window is maximized.
|
||||
* @GDK_WINDOW_STATE_STICKY: the window is sticky.
|
||||
* @GDK_WINDOW_STATE_FULLSCREEN: the window is maximized without
|
||||
* decorations.
|
||||
* @GDK_WINDOW_STATE_ABOVE: the window is kept above other windows.
|
||||
* @GDK_WINDOW_STATE_BELOW: the window is kept below other windows.
|
||||
*
|
||||
* Specifies the state of a toplevel window.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GDK_WINDOW_STATE_WITHDRAWN = 1 << 0,
|
||||
@ -316,6 +390,15 @@ typedef enum
|
||||
GDK_WINDOW_STATE_BELOW = 1 << 6
|
||||
} GdkWindowState;
|
||||
|
||||
/**
|
||||
* GdkSettingAction:
|
||||
* @GDK_SETTING_ACTION_NEW: a setting was added.
|
||||
* @GDK_SETTING_ACTION_CHANGED: a setting was changed.
|
||||
* @GDK_SETTING_ACTION_DELETED: a setting was deleted.
|
||||
*
|
||||
* Specifies the kind of modification applied to a setting in a
|
||||
* #GdkEventSetting.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GDK_SETTING_ACTION_NEW,
|
||||
@ -323,6 +406,14 @@ typedef enum
|
||||
GDK_SETTING_ACTION_DELETED
|
||||
} GdkSettingAction;
|
||||
|
||||
/**
|
||||
* GdkOwnerChange:
|
||||
* @GDK_OWNER_CHANGE_NEW_OWNER: some other app claimed the ownership
|
||||
* @GDK_OWNER_CHANGE_DESTROY: the window was destroyed
|
||||
* @GDK_OWNER_CHANGE_CLOSE: the client was closed
|
||||
*
|
||||
* Specifies why a selection ownership was changed.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GDK_OWNER_CHANGE_NEW_OWNER,
|
||||
@ -330,6 +421,17 @@ typedef enum
|
||||
GDK_OWNER_CHANGE_CLOSE
|
||||
} GdkOwnerChange;
|
||||
|
||||
/**
|
||||
* GdkEventAny:
|
||||
* @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
|
||||
* <function>XSendEvent</function>).
|
||||
*
|
||||
* Contains the fields which are common to all event structs.
|
||||
* Any event pointer can safely be cast to a pointer to a #GdkEventAny to
|
||||
* access these fields.
|
||||
*/
|
||||
struct _GdkEventAny
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -337,6 +439,22 @@ struct _GdkEventAny
|
||||
gint8 send_event;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventExpose:
|
||||
* @type: the type of the event (%GDK_EXPOSE or %GDK_DAMAGE).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @area: bounding box of @region.
|
||||
* @region: the region that needs to be redrawn.
|
||||
* @count: the number of contiguous %GDK_EXPOSE events following this one.
|
||||
* The only use for this is "exposure compression", i.e. handling all
|
||||
* contiguous %GDK_EXPOSE events in one go, though GDK performs some
|
||||
* exposure compression so this is not normally needed.
|
||||
*
|
||||
* Generated when all or part of a window becomes visible and needs to be
|
||||
* redrawn.
|
||||
*/
|
||||
struct _GdkEventExpose
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -347,6 +465,16 @@ struct _GdkEventExpose
|
||||
gint count; /* If non-zero, how many more events follow. */
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventNoExpose:
|
||||
* @type: the type of the event (%GDK_NO_EXPOSE).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
*
|
||||
* Generated when the area of a #GdkDrawable being copied was completely
|
||||
* available.
|
||||
*/
|
||||
struct _GdkEventNoExpose
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -354,6 +482,17 @@ struct _GdkEventNoExpose
|
||||
gint8 send_event;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventVisibility:
|
||||
* @type: the type of the event (%GDK_VISIBILITY_NOTIFY).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @state: the new visibility state (%GDK_VISIBILITY_FULLY_OBSCURED,
|
||||
* %GDK_VISIBILITY_PARTIAL or %GDK_VISIBILITY_UNOBSCURED).
|
||||
*
|
||||
* Generated when the window visibility status has changed.
|
||||
*/
|
||||
struct _GdkEventVisibility
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -362,6 +501,29 @@ struct _GdkEventVisibility
|
||||
GdkVisibilityState state;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventMotion:
|
||||
* @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
|
||||
* <function>XSendEvent</function>).
|
||||
* @time: the time of the event in milliseconds.
|
||||
* @x: the x coordinate of the pointer relative to the window.
|
||||
* @y: the y coordinate of the pointer relative to the window.
|
||||
* @axes: @x, @y translated to the axes of @device, or %NULL if @device is
|
||||
* the mouse.
|
||||
* @state: a bit-mask representing the state of the modifier keys (e.g.
|
||||
* Control, Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
* @is_hint: set to 1 if this event is just a hint, see the
|
||||
* %GDK_POINTER_MOTION_HINT_MASK value of #GdkEventMask.
|
||||
* @device: the device where the event originated.
|
||||
* @x_root: the x coordinate of the pointer relative to the root of the
|
||||
* screen.
|
||||
* @y_root: the y coordinate of the pointer relative to the root of the
|
||||
* screen.
|
||||
*
|
||||
* Generated when the pointer moves.
|
||||
*/
|
||||
struct _GdkEventMotion
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -377,6 +539,65 @@ struct _GdkEventMotion
|
||||
gdouble x_root, y_root;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventButton:
|
||||
* @type: the type of the event (%GDK_BUTTON_PRESS, %GDK_2BUTTON_PRESS,
|
||||
* %GDK_3BUTTON_PRESS or %GDK_BUTTON_RELEASE).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @time: the time of the event in milliseconds.
|
||||
* @x: the x coordinate of the pointer relative to the window.
|
||||
* @y: the y coordinate of the pointer relative to the window.
|
||||
* @axes: @x, @y translated to the axes of @device, or %NULL if @device is
|
||||
* the mouse.
|
||||
* @state: a bit-mask representing the state of the modifier keys (e.g.
|
||||
* Control, Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
* @button: the button which was pressed or released, numbered from 1 to 5.
|
||||
* Normally button 1 is the left mouse button, 2 is the middle button,
|
||||
* and 3 is the right button. On 2-button mice, the middle button can
|
||||
* often be simulated by pressing both mouse buttons together.
|
||||
* @device: the device where the event originated.
|
||||
* @x_root: the x coordinate of the pointer relative to the root of the
|
||||
* screen.
|
||||
* @y_root: the y coordinate of the pointer relative to the root of the
|
||||
* screen.
|
||||
*
|
||||
* 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 triple-clicks result in a sequence of events being received.
|
||||
* For double-clicks the order of events will be:
|
||||
* <orderedlist>
|
||||
* <listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
* <listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
* <listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
* <listitem><para>%GDK_2BUTTON_PRESS</para></listitem>
|
||||
* <listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
* </orderedlist>
|
||||
* 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.
|
||||
*
|
||||
* Triple-clicks are very similar to double-clicks, except that
|
||||
* %GDK_3BUTTON_PRESS is inserted after the third click. The order of the
|
||||
* events is:
|
||||
* <orderedlist>
|
||||
* <listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
* <listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
* <listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
* <listitem><para>%GDK_2BUTTON_PRESS</para></listitem>
|
||||
* <listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
* <listitem><para>%GDK_BUTTON_PRESS</para></listitem>
|
||||
* <listitem><para>%GDK_3BUTTON_PRESS</para></listitem>
|
||||
* <listitem><para>%GDK_BUTTON_RELEASE</para></listitem>
|
||||
* </orderedlist>
|
||||
*
|
||||
* For a double click to occur, the second button press must occur within
|
||||
* 1/4 of a second of the first. For a triple click to occur, the third
|
||||
* button press must also occur within 1/2 second of the first button press.
|
||||
*/
|
||||
struct _GdkEventButton
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -392,6 +613,29 @@ struct _GdkEventButton
|
||||
gdouble x_root, y_root;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventScroll:
|
||||
* @type: the type of the event (%GDK_SCROLL).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @time: the time of the event in milliseconds.
|
||||
* @x: the x coordinate of the pointer relative to the window.
|
||||
* @y: the y coordinate of the pointer relative to the window.
|
||||
* @state: a bit-mask representing the state of the modifier keys (e.g.
|
||||
* Control, Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
* @direction: the direction to scroll to (one of %GDK_SCROLL_UP,
|
||||
* %GDK_SCROLL_DOWN, %GDK_SCROLL_LEFT and %GDK_SCROLL_RIGHT).
|
||||
* @device: the device where the event originated.
|
||||
* @x_root: the x coordinate of the pointer relative to the root of the
|
||||
* screen.
|
||||
* @y_root: the y coordinate of the pointer relative to the root of the
|
||||
* screen.
|
||||
*
|
||||
* Generated from button presses for the buttons 4 to 7. Wheel mice are
|
||||
* usually configured to generate button press events for buttons 4 and 5
|
||||
* when the wheel is turned.
|
||||
*/
|
||||
struct _GdkEventScroll
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -406,6 +650,37 @@ struct _GdkEventScroll
|
||||
gdouble x_root, y_root;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventKey:
|
||||
* @type: the type of the event (%GDK_KEY_PRESS or %GDK_KEY_RELEASE).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @time: the time of the event in milliseconds.
|
||||
* @state: a bit-mask representing the state of the modifier keys (e.g.
|
||||
* Control, Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
* @keyval: the key that was pressed or released. See the
|
||||
* <filename><gdk/gdkkeysyms.h></filename> header file for a
|
||||
* complete list of GDK key codes.
|
||||
* @length: the length of @string.
|
||||
* @string: a string containing the an approximation of the text that
|
||||
* would result from this keypress. The only correct way to handle text
|
||||
* input of text is using input methods (see #GtkIMContext), so this
|
||||
* field is deprecated and should never be used.
|
||||
* (gdk_unicode_to_keyval() provides a non-deprecated way of getting
|
||||
* an approximate translation for a key.) The string is encoded in the
|
||||
* encoding of the current locale (Note: this for backwards compatibility:
|
||||
* strings in GTK+ and GDK are typically in UTF-8.) and NUL-terminated.
|
||||
* In some cases, the translation of the key code will be a single
|
||||
* NUL byte, in which case looking at @length is necessary to distinguish
|
||||
* it from the an empty translation.
|
||||
* @hardware_keycode: the raw code of the key that was pressed or released.
|
||||
* @group: the keyboard group.
|
||||
* @is_modifier: a flag that indicates if @hardware_keycode is mapped to a
|
||||
* modifier. Since 2.10
|
||||
*
|
||||
* Describes a key press or key release event.
|
||||
*/
|
||||
struct _GdkEventKey
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -421,6 +696,32 @@ struct _GdkEventKey
|
||||
guint is_modifier : 1;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventCrossing:
|
||||
* @type: the type of the event (%GDK_ENTER_NOTIFY or %GDK_LEAVE_NOTIFY).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @subwindow: the window that was entered or left.
|
||||
* @time: the time of the event in milliseconds.
|
||||
* @x: the x coordinate of the pointer relative to the window.
|
||||
* @y: the y coordinate of the pointer relative to the window.
|
||||
* @x_root: the x coordinate of the pointer relative to the root of the screen.
|
||||
* @y_root: the y coordinate of the pointer relative to the root of the screen.
|
||||
* @mode: the crossing mode (%GDK_CROSSING_NORMAL, %GDK_CROSSING_GRAB,
|
||||
* %GDK_CROSSING_UNGRAB, %GDK_CROSSING_GTK_GRAB, %GDK_CROSSING_GTK_UNGRAB or
|
||||
* %GDK_CROSSING_STATE_CHANGED). %GDK_CROSSING_GTK_GRAB, %GDK_CROSSING_GTK_UNGRAB,
|
||||
* and %GDK_CROSSING_STATE_CHANGED were added in 2.14 and are always synthesized,
|
||||
* never native.
|
||||
* @detail: the kind of crossing that happened (%GDK_NOTIFY_INFERIOR,
|
||||
* %GDK_NOTIFY_ANCESTOR, %GDK_NOTIFY_VIRTUAL, %GDK_NOTIFY_NONLINEAR or
|
||||
* %GDK_NOTIFY_NONLINEAR_VIRTUAL).
|
||||
* @focus: %TRUE if @window is the focus window or an inferior.
|
||||
* @state: a bit-mask representing the state of the modifier keys (e.g. Control,
|
||||
* Shift and Alt) and the pointer buttons. See #GdkModifierType.
|
||||
*
|
||||
* Generated when the pointer enters or leaves a window.
|
||||
*/
|
||||
struct _GdkEventCrossing
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -438,6 +739,17 @@ struct _GdkEventCrossing
|
||||
guint state;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventFocus:
|
||||
* @type: the type of the event (%GDK_FOCUS_CHANGE).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @in: %TRUE if the window has gained the keyboard focus, %FALSE if
|
||||
* it has lost the focus.
|
||||
*
|
||||
* Describes a change of keyboard focus.
|
||||
*/
|
||||
struct _GdkEventFocus
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -446,6 +758,19 @@ struct _GdkEventFocus
|
||||
gint16 in;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventConfigure:
|
||||
* @type: the type of the event (%GDK_CONFIGURE).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @x: the new x coordinate of the window, relative to its parent.
|
||||
* @y: the new y coordinate of the window, relative to its parent.
|
||||
* @width: the new width of the window.
|
||||
* @height: the new height of the window.
|
||||
*
|
||||
* Generated when a window size or position has changed.
|
||||
*/
|
||||
struct _GdkEventConfigure
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -456,6 +781,19 @@ struct _GdkEventConfigure
|
||||
gint height;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventProperty:
|
||||
* @type: the type of the event (%GDK_PROPERTY_NOTIFY).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @atom: the property that was changed.
|
||||
* @time: the time of the event in milliseconds.
|
||||
* @state: whether the property was changed (%GDK_PROPERTY_NEW_VALUE) or
|
||||
* deleted (%GDK_PROPERTY_DELETE).
|
||||
*
|
||||
* Describes a property change on a window.
|
||||
*/
|
||||
struct _GdkEventProperty
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -466,6 +804,22 @@ struct _GdkEventProperty
|
||||
guint state;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventSelection:
|
||||
* @type: the type of the event (%GDK_SELECTION_CLEAR,
|
||||
* %GDK_SELECTION_NOTIFY or %GDK_SELECTION_REQUEST).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @selection: the selection.
|
||||
* @target: the target to which the selection should be converted.
|
||||
* @property: the property in which to place the result of the conversion.
|
||||
* @time: the time of the event in milliseconds.
|
||||
* @requestor: the native window on which to place @property.
|
||||
*
|
||||
* Generated when a selection is requested or ownership of a selection
|
||||
* is taken over by another client application.
|
||||
*/
|
||||
struct _GdkEventSelection
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -478,6 +832,25 @@ struct _GdkEventSelection
|
||||
GdkNativeWindow requestor;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventOwnerChange:
|
||||
* @type: the type of the event (%GDK_OWNER_CHANGE).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @owner: the new owner of the selection.
|
||||
* @reason: the reason for the ownership change as a #GdkOwnerChange value.
|
||||
* @selection: the atom identifying the selection.
|
||||
* @time: the timestamp of the event.
|
||||
* @selection_time: the time at which the selection ownership was taken
|
||||
* over.
|
||||
*
|
||||
* Generated when the owner of a selection changes. On X11, this
|
||||
* information is only available if the X server supports the XFIXES
|
||||
* extension.
|
||||
*
|
||||
* Since: 2.6
|
||||
*/
|
||||
struct _GdkEventOwnerChange
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -490,9 +863,24 @@ struct _GdkEventOwnerChange
|
||||
guint32 selection_time;
|
||||
};
|
||||
|
||||
/* This event type will be used pretty rarely. It only is important
|
||||
for XInput aware programs that are drawing their own cursor */
|
||||
|
||||
/**
|
||||
* GdkEventProximity:
|
||||
* @type: the type of the event (%GDK_PROXIMITY_IN or %GDK_PROXIMITY_OUT).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
* @time: the time of the event in milliseconds.
|
||||
* @device: the device where the event originated.
|
||||
*
|
||||
* Proximity events are generated when using GDK's wrapper for the
|
||||
* XInput extension. The XInput extension is an add-on for standard X
|
||||
* that allows you to use nonstandard devices such as graphics tablets.
|
||||
* A proximity event indicates that the stylus has moved in or out of
|
||||
* contact with the tablet, or perhaps that the user's finger has moved
|
||||
* in or out of contact with a touch screen.
|
||||
*
|
||||
* This event type will be used pretty rarely. It only is important for
|
||||
* XInput aware programs that are drawing their own cursor.
|
||||
*/
|
||||
struct _GdkEventProximity
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -502,6 +890,21 @@ struct _GdkEventProximity
|
||||
GdkDevice *device;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventClient:
|
||||
* @type: the type of the event (%GDK_CLIENT_EVENT).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @message_type: the type of the message, which can be defined by the
|
||||
* application.
|
||||
* @data_format: the format of the data, given as the number of bits in each
|
||||
* data element, i.e. 8, 16, or 32. 8-bit data uses the b array of the
|
||||
* data union, 16-bit data uses the s array, and 32-bit data uses the l
|
||||
* array.
|
||||
*
|
||||
* An event sent by another client application.
|
||||
*/
|
||||
struct _GdkEventClient
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -516,6 +919,18 @@ struct _GdkEventClient
|
||||
} data;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventSetting:
|
||||
* @type: the type of the event (%GDK_SETTING).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @action: what happened to the setting (%GDK_SETTING_ACTION_NEW,
|
||||
* %GDK_SETTING_ACTION_CHANGED or %GDK_SETTING_ACTION_DELETED).
|
||||
* @name: the name of the setting.
|
||||
*
|
||||
* Generated when a setting is modified.
|
||||
*/
|
||||
struct _GdkEventSetting
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -525,6 +940,18 @@ struct _GdkEventSetting
|
||||
char *name;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventWindowState:
|
||||
* @type: the type of the event (%GDK_WINDOW_STATE).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @changed_mask: mask specifying what flags have changed.
|
||||
* @new_window_state: the new window state, a combination of
|
||||
* #GdkWindowState bits.
|
||||
*
|
||||
* Generated when the state of a toplevel window changes.
|
||||
*/
|
||||
struct _GdkEventWindowState
|
||||
{
|
||||
GdkEventType type;
|
||||
@ -534,6 +961,28 @@ struct _GdkEventWindowState
|
||||
GdkWindowState new_window_state;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEventGrabBroken:
|
||||
* @type: the type of the event (%GDK_GRAB_BROKEN)
|
||||
* @window: the window which received the event, i.e. the window
|
||||
* that previously owned the grab
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @keyboard: %TRUE if a keyboard grab was broken, %FALSE if a pointer
|
||||
* grab was broken
|
||||
* @implicit: %TRUE if the broken grab was implicit
|
||||
* @grab_window: If this event is caused by another grab in the same
|
||||
* application, @grab_window contains the new grab window. Otherwise
|
||||
* @grab_window is %NULL.
|
||||
*
|
||||
* Generated when a pointer or keyboard grab is broken. On X11, this happens
|
||||
* when the grab window becomes unviewable (i.e. it or one of its ancestors
|
||||
* is unmapped), or if the same application grabs the pointer or keyboard
|
||||
* again. Note that implicit grabs (which are initiated by button presses)
|
||||
* can also cause #GdkEventGrabBroken events.
|
||||
*
|
||||
* Since: 2.8
|
||||
*/
|
||||
struct _GdkEventGrabBroken {
|
||||
GdkEventType type;
|
||||
GdkWindow *window;
|
||||
@ -543,8 +992,23 @@ struct _GdkEventGrabBroken {
|
||||
GdkWindow *grab_window;
|
||||
};
|
||||
|
||||
/* Event types for DND */
|
||||
|
||||
/**
|
||||
* GdkEventDND:
|
||||
* @type: the type of the event (%GDK_DRAG_ENTER, %GDK_DRAG_LEAVE,
|
||||
* %GDK_DRAG_MOTION, %GDK_DRAG_STATUS, %GDK_DROP_START or
|
||||
* %GDK_DROP_FINISHED).
|
||||
* @window: the window which received the event.
|
||||
* @send_event: %TRUE if the event was sent explicitly (e.g. using
|
||||
* <function>XSendEvent</function>).
|
||||
* @context: the #GdkDragContext for the current DND operation.
|
||||
* @time: the time of the event in milliseconds.
|
||||
* @x_root: the x coordinate of the pointer relative to the root of the
|
||||
* screen, only set for %GDK_DRAG_MOTION and %GDK_DROP_START.
|
||||
* @y_root: the y coordinate of the pointer relative to the root of the
|
||||
* screen, only set for %GDK_DRAG_MOTION and %GDK_DROP_START.
|
||||
*
|
||||
* Generated during DND operations.
|
||||
*/
|
||||
struct _GdkEventDND {
|
||||
GdkEventType type;
|
||||
GdkWindow *window;
|
||||
@ -555,6 +1019,46 @@ struct _GdkEventDND {
|
||||
gshort x_root, y_root;
|
||||
};
|
||||
|
||||
/**
|
||||
* GdkEvent:
|
||||
*
|
||||
* The #GdkEvent struct contains a union of all of the event structs,
|
||||
* and allows access to the data fields in a number of ways.
|
||||
*
|
||||
* The event type is always the first field in all of the event structs, and
|
||||
* can always be accessed with the following code, no matter what type of
|
||||
* event it is:
|
||||
* <informalexample>
|
||||
* <programlisting>
|
||||
* GdkEvent *event;
|
||||
* GdkEventType type;
|
||||
*
|
||||
* type = event->type;
|
||||
* </programlisting>
|
||||
* </informalexample>
|
||||
*
|
||||
* To access other fields of the event structs, the pointer to the event
|
||||
* can be cast to the appropriate event struct pointer, or the union member
|
||||
* name can be used. For example if the event type is %GDK_BUTTON_PRESS
|
||||
* then the x coordinate of the button press can be accessed with:
|
||||
* <informalexample>
|
||||
* <programlisting>
|
||||
* GdkEvent *event;
|
||||
* gdouble x;
|
||||
*
|
||||
* x = ((GdkEventButton*)event)->x;
|
||||
* </programlisting>
|
||||
* </informalexample>
|
||||
* or:
|
||||
* <informalexample>
|
||||
* <programlisting>
|
||||
* GdkEvent *event;
|
||||
* gdouble x;
|
||||
*
|
||||
* x = event->button.x;
|
||||
* </programlisting>
|
||||
* </informalexample>
|
||||
*/
|
||||
union _GdkEvent
|
||||
{
|
||||
GdkEventType type;
|
||||
|
@ -120,6 +120,12 @@ typedef struct _GdkAtom *GdkAtom;
|
||||
*/
|
||||
#define GDK_NONE _GDK_MAKE_ATOM (0)
|
||||
|
||||
/**
|
||||
* GdkNativeWindow:
|
||||
*
|
||||
* Used to represent native windows (<type>Window</type>s for the X11
|
||||
* backend, <type>HWND</type>s for Win32).
|
||||
*/
|
||||
#ifdef GDK_NATIVE_WINDOW_POINTER
|
||||
typedef gpointer GdkNativeWindow;
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user