|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21585/root/usr/share/gtk-doc/html/gdk/ |
Upload File : |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Event Structures</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="index.html" title="GDK Reference Manual">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="gdk-Events.html" title="Events">
<link rel="next" href="gdk-Keyboard-Handling.html" title="Key Values">
<meta name="generator" content="GTK-Doc V1.6 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="reference" href="reference.html" title="API Reference">
<link rel="index" href="ix01.html" title="Index">
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
<link rel="index" href="ix07.html" title="Index of new symbols in 2.10">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="gdk-Events.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GDK Reference Manual</th>
<td><a accesskey="n" href="gdk-Keyboard-Handling.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id3077068" class="shortcut">Top</a>
 | 
<a href="#id3077330" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="gdk-Event-Structures"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2>
<a name="id3077068"></a><span class="refentrytitle">Event Structures</span>
</h2>
<p>Event Structures — Data structures specific to each type of event</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">
#include <gdk/gdk.h>
union <a href="gdk-Event-Structures.html#GdkEvent">GdkEvent</a>;
<a href="gdk-Event-Structures.html#GdkEventAny">GdkEventAny</a>;
<a href="gdk-Event-Structures.html#GdkEventKey">GdkEventKey</a>;
<a href="gdk-Event-Structures.html#GdkEventButton">GdkEventButton</a>;
<a href="gdk-Event-Structures.html#GdkEventScroll">GdkEventScroll</a>;
<a href="gdk-Event-Structures.html#GdkEventMotion">GdkEventMotion</a>;
<a href="gdk-Event-Structures.html#GdkEventExpose">GdkEventExpose</a>;
<a href="gdk-Event-Structures.html#GdkEventVisibility">GdkEventVisibility</a>;
<a href="gdk-Event-Structures.html#GdkEventCrossing">GdkEventCrossing</a>;
<a href="gdk-Event-Structures.html#GdkEventFocus">GdkEventFocus</a>;
<a href="gdk-Event-Structures.html#GdkEventConfigure">GdkEventConfigure</a>;
<a href="gdk-Event-Structures.html#GdkEventProperty">GdkEventProperty</a>;
<a href="gdk-Event-Structures.html#GdkEventSelection">GdkEventSelection</a>;
typedef <a href="gdk-Event-Structures.html#GdkNativeWindow">GdkNativeWindow</a>;
<a href="gdk-Event-Structures.html#GdkEventDND">GdkEventDND</a>;
<a href="gdk-Event-Structures.html#GdkEventProximity">GdkEventProximity</a>;
<a href="gdk-Event-Structures.html#GdkEventClient">GdkEventClient</a>;
<a href="gdk-Event-Structures.html#GdkEventNoExpose">GdkEventNoExpose</a>;
<a href="gdk-Event-Structures.html#GdkEventWindowState">GdkEventWindowState</a>;
<a href="gdk-Event-Structures.html#GdkEventSetting">GdkEventSetting</a>;
<a href="gdk-Event-Structures.html#GdkEventOwnerChange">GdkEventOwnerChange</a>;
<a href="gdk-Event-Structures.html#GdkEventGrabBroken">GdkEventGrabBroken</a>;
enum <a href="gdk-Event-Structures.html#GdkScrollDirection">GdkScrollDirection</a>;
enum <a href="gdk-Event-Structures.html#GdkVisibilityState">GdkVisibilityState</a>;
enum <a href="gdk-Event-Structures.html#GdkCrossingMode">GdkCrossingMode</a>;
enum <a href="gdk-Event-Structures.html#GdkNotifyType">GdkNotifyType</a>;
enum <a href="gdk-Event-Structures.html#GdkPropertyState">GdkPropertyState</a>;
enum <a href="gdk-Event-Structures.html#GdkWindowState">GdkWindowState</a>;
enum <a href="gdk-Event-Structures.html#GdkSettingAction">GdkSettingAction</a>;
enum <a href="gdk-Event-Structures.html#GdkOwnerChange">GdkOwnerChange</a>;
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id3077330"></a><h2>Description</h2>
<p>
The event structs contain data specific to each type of event in GDK.
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
A common mistake is to forget to set the event mask of a widget so that the
required events are received. See <a
href="../gtk/GtkWidget.html#gtk-widget-set-events"
><code class="function">gtk_widget_set_events()</code></a>.
</p>
</div>
</div>
<div class="refsect1" lang="en">
<a name="id3077366"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id3077377"></a><h3>
<a name="GdkEvent"></a>union GdkEvent</h3>
<a class="indexterm" name="id3077389"></a><pre class="programlisting">union GdkEvent
{
GdkEventType type;
GdkEventAny any;
GdkEventExpose expose;
GdkEventNoExpose no_expose;
GdkEventVisibility visibility;
GdkEventMotion motion;
GdkEventButton button;
GdkEventScroll scroll;
GdkEventKey key;
GdkEventCrossing crossing;
GdkEventFocus focus_change;
GdkEventConfigure configure;
GdkEventProperty property;
GdkEventSelection selection;
GdkEventOwnerChange owner_change;
GdkEventProximity proximity;
GdkEventClient client;
GdkEventDND dnd;
GdkEventWindowState window_state;
GdkEventSetting setting;
GdkEventGrabBroken grab_broken;
};
</pre>
<p>
The <a href="gdk-Event-Structures.html#GdkEvent"><span class="type">GdkEvent</span></a> struct contains a union of all of the event structs,
and allows access to the data fields in a number of ways.
</p>
<p>
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:
</p>
<div class="informalexample"><pre class="programlisting">
GdkEvent *event;
GdkEventType type;
type = event->type;
</pre></div>
<p>
</p>
<p>
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 <a href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a> then the x coordinate
of the button press can be accessed with:
</p>
<div class="informalexample"><pre class="programlisting">
GdkEvent *event;
gdouble x;
x = ((GdkEventButton*)event)->x;
</pre></div>
<p>
or:
</p>
<div class="informalexample"><pre class="programlisting">
GdkEvent *event;
gdouble x;
x = event->button.x;
</pre></div>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3077481"></a><h3>
<a name="GdkEventAny"></a>GdkEventAny</h3>
<a class="indexterm" name="id3077493"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
} GdkEventAny;
</pre>
<p>
Contains the fields which are common to all event structs.
Any event pointer can safely be cast to a pointer to a <a href="gdk-Event-Structures.html#GdkEventAny"><span class="type">GdkEventAny</span></a> to access
these fields.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3077602"></a><h3>
<a name="GdkEventKey"></a>GdkEventKey</h3>
<a class="indexterm" name="id3077614"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
guint32 time;
guint state;
guint keyval;
gint length;
gchar *string;
guint16 hardware_keycode;
guint8 group;
guint is_modifier : 1;
} GdkEventKey;
</pre>
<p>
Describes a key press or key release event.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-KEY-PRESS:CAPS"><code class="literal">GDK_KEY_PRESS</code></a> or <a href="gdk-Events.html#GDK-KEY-RELEASE:CAPS"><code class="literal">GDK_KEY_RELEASE</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the time of the event in milliseconds.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>state</code></em>;</span></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a href="gdk-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>keyval</code></em>;</span></td>
<td>the key that was pressed or released. See the
<code class="filename"><gdk/gdkkeysyms.h></code>
header file for a complete list of GDK key codes.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> <em class="structfield"><code>length</code></em>;</span></td>
<td>the length of <em class="parameter"><code>string</code></em>.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gchar"
>gchar</a> *<em class="structfield"><code>string</code></em>;</span></td>
<td>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 <a
href="../gtk/GtkIMContext.html"
><span class="type">GtkIMContext</span></a>), so this
field is deprecated and should never be used.
(<a href="gdk-Keyboard-Handling.html#gdk-unicode-to-keyval"><code class="function">gdk_unicode_to_keyval()</code></a> 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 <em class="parameter"><code>length</code></em> is necessary to distinguish
it from the an empty translation.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint16"
>guint16</a> <em class="structfield"><code>hardware_keycode</code></em>;</span></td>
<td>the raw code of the key that was pressed or released.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint8"
>guint8</a> <em class="structfield"><code>group</code></em>;</span></td>
<td>the keyboard group.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>is_modifier</code></em> : 1;</span></td>
<td>a flag that indicates if <em class="parameter"><code>hardware_keycode</code></em> is mapped to a
modifier. Since 2.10
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3077973"></a><h3>
<a name="GdkEventButton"></a>GdkEventButton</h3>
<a class="indexterm" name="id3077985"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
guint32 time;
gdouble x;
gdouble y;
gdouble *axes;
guint state;
guint button;
GdkDevice *device;
gdouble x_root, y_root;
} GdkEventButton;
</pre>
<p>
Used for button press and button release events. The
<em class="structfield"><code>type</code></em> field will be one of <a href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a>,
<a href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a>, <a href="gdk-Events.html#GDK-3BUTTON-PRESS:CAPS"><code class="literal">GDK_3BUTTON_PRESS</code></a>, and <a href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a>.
</p>
<p>
Double and triple-clicks result in a sequence of events being received.
For double-clicks the order of events will be:
</p>
<div class="orderedlist"><ol type="1">
<li><p><a href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
</ol></div>
<p>
Note that the first click is received just like a normal
button press, while the second click results in a <a href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a> being
received just after the <a href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a>.
</p>
<p>
Triple-clicks are very similar to double-clicks, except that <a href="gdk-Events.html#GDK-3BUTTON-PRESS:CAPS"><code class="literal">GDK_3BUTTON_PRESS</code></a>
is inserted after the third click. The order of the events is:
</p>
<div class="orderedlist"><ol type="1">
<li><p><a href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-3BUTTON-PRESS:CAPS"><code class="literal">GDK_3BUTTON_PRESS</code></a></p></li>
<li><p><a href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
</ol></div>
<p>
</p>
<p>
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.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a>, <a href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a>,
<a href="gdk-Events.html#GDK-3BUTTON-PRESS:CAPS"><code class="literal">GDK_3BUTTON_PRESS</code></a> or <a href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the time of the event in milliseconds.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>x</code></em>;</span></td>
<td>the x coordinate of the pointer relative to the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>y</code></em>;</span></td>
<td>the y coordinate of the pointer relative to the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> *<em class="structfield"><code>axes</code></em>;</span></td>
<td>
<em class="parameter"><code>x</code></em>, <em class="parameter"><code>y</code></em> translated to the axes of <em class="parameter"><code>device</code></em>, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> if <em class="parameter"><code>device</code></em> is
the mouse.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>state</code></em>;</span></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a href="gdk-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>button</code></em>;</span></td>
<td>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.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Input-Devices.html#GdkDevice">GdkDevice</a> *<em class="structfield"><code>device</code></em>;</span></td>
<td>the device where the event originated.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>x_root</code></em>;</span></td>
<td>the x coordinate of the pointer relative to the root of the screen.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>y_root</code></em>;</span></td>
<td>the y coordinate of the pointer relative to the root of the screen.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3078646"></a><h3>
<a name="GdkEventScroll"></a>GdkEventScroll</h3>
<a class="indexterm" name="id3078659"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
guint32 time;
gdouble x;
gdouble y;
guint state;
GdkScrollDirection direction;
GdkDevice *device;
gdouble x_root, y_root;
} GdkEventScroll;
</pre>
<p>
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.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-SCROLL:CAPS"><code class="literal">GDK_SCROLL</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the time of the event in milliseconds.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>x</code></em>;</span></td>
<td>the x coordinate of the pointer relative to the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>y</code></em>;</span></td>
<td>the y coordinate of the pointer relative to the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>state</code></em>;</span></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a href="gdk-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkScrollDirection">GdkScrollDirection</a> <em class="structfield"><code>direction</code></em>;</span></td>
<td>the direction to scroll to (one of <a href="gdk-Event-Structures.html#GDK-SCROLL-UP:CAPS"><code class="literal">GDK_SCROLL_UP</code></a>,
<a href="gdk-Event-Structures.html#GDK-SCROLL-DOWN:CAPS"><code class="literal">GDK_SCROLL_DOWN</code></a>, <a href="gdk-Event-Structures.html#GDK-SCROLL-LEFT:CAPS"><code class="literal">GDK_SCROLL_LEFT</code></a> and <a href="gdk-Event-Structures.html#GDK-SCROLL-RIGHT:CAPS"><code class="literal">GDK_SCROLL_RIGHT</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Input-Devices.html#GdkDevice">GdkDevice</a> *<em class="structfield"><code>device</code></em>;</span></td>
<td>the device where the event originated.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>x_root</code></em>;</span></td>
<td>the x coordinate of the pointer relative to the root of the screen.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>y_root</code></em>;</span></td>
<td>the y coordinate of the pointer relative to the root of the screen.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3079000"></a><h3>
<a name="GdkEventMotion"></a>GdkEventMotion</h3>
<a class="indexterm" name="id3079013"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
guint32 time;
gdouble x;
gdouble y;
gdouble *axes;
guint state;
gint16 is_hint;
GdkDevice *device;
gdouble x_root, y_root;
} GdkEventMotion;
</pre>
<p>
Generated when the pointer moves.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the time of the event in milliseconds.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>x</code></em>;</span></td>
<td>the x coordinate of the pointer relative to the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>y</code></em>;</span></td>
<td>the y coordinate of the pointer relative to the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> *<em class="structfield"><code>axes</code></em>;</span></td>
<td>
<em class="parameter"><code>x</code></em>, <em class="parameter"><code>y</code></em> translated to the axes of <em class="parameter"><code>device</code></em>, or <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a> if <em class="parameter"><code>device</code></em> is
the mouse.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>state</code></em>;</span></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a href="gdk-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint16"
>gint16</a> <em class="structfield"><code>is_hint</code></em>;</span></td>
<td>set to 1 if this event is just a hint, see the <a href="gdk-Events.html#GDK-POINTER-MOTION-HINT-MASK:CAPS"><code class="literal">GDK_POINTER_MOTION_HINT_MASK</code></a>
value of <a href="gdk-Events.html#GdkEventMask"><span class="type">GdkEventMask</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Input-Devices.html#GdkDevice">GdkDevice</a> *<em class="structfield"><code>device</code></em>;</span></td>
<td>the device where the event originated.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>x_root</code></em>;</span></td>
<td>the x coordinate of the pointer relative to the root of the screen.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>y_root</code></em>;</span></td>
<td>the y coordinate of the pointer relative to the root of the screen.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3079365"></a><h3>
<a name="GdkEventExpose"></a>GdkEventExpose</h3>
<a class="indexterm" name="id3079378"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkRectangle area;
GdkRegion *region;
gint count; /* If non-zero, how many more events follow. */
} GdkEventExpose;
</pre>
<p>
Generated when all or part of a window becomes visible and needs to be
redrawn.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-EXPOSE:CAPS"><code class="literal">GDK_EXPOSE</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Points-Rectangles-and-Regions.html#GdkRectangle">GdkRectangle</a> <em class="structfield"><code>area</code></em>;</span></td>
<td>bounding box of <em class="parameter"><code>region</code></em>.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Points-Rectangles-and-Regions.html#GdkRegion">GdkRegion</a> *<em class="structfield"><code>region</code></em>;</span></td>
<td>the region that needs to be redrawn.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> <em class="structfield"><code>count</code></em>;</span></td>
<td>the number of contiguous <a href="gdk-Events.html#GDK-EXPOSE:CAPS"><code class="literal">GDK_EXPOSE</code></a> events following this one.
The only use for this is "exposure compression", i.e. handling all contiguous
<a href="gdk-Events.html#GDK-EXPOSE:CAPS"><code class="literal">GDK_EXPOSE</code></a> events in one go, though GDK performs some exposure compression
so this is not normally needed.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3079583"></a><h3>
<a name="GdkEventVisibility"></a>GdkEventVisibility</h3>
<a class="indexterm" name="id3079596"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkVisibilityState state;
} GdkEventVisibility;
</pre>
<p>
Generated when the window visibility status has changed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-VISIBILITY-NOTIFY:CAPS"><code class="literal">GDK_VISIBILITY_NOTIFY</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkVisibilityState">GdkVisibilityState</a> <em class="structfield"><code>state</code></em>;</span></td>
<td>the new visibility state (<a href="gdk-Event-Structures.html#GDK-VISIBILITY-FULLY-OBSCURED:CAPS"><code class="literal">GDK_VISIBILITY_FULLY_OBSCURED</code></a>,
<a href="gdk-Event-Structures.html#GDK-VISIBILITY-PARTIAL:CAPS"><code class="literal">GDK_VISIBILITY_PARTIAL</code></a> or <a href="gdk-Event-Structures.html#GDK-VISIBILITY-UNOBSCURED:CAPS"><code class="literal">GDK_VISIBILITY_UNOBSCURED</code></a>).
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3079767"></a><h3>
<a name="GdkEventCrossing"></a>GdkEventCrossing</h3>
<a class="indexterm" name="id3079780"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkWindow *subwindow;
guint32 time;
gdouble x;
gdouble y;
gdouble x_root;
gdouble y_root;
GdkCrossingMode mode;
GdkNotifyType detail;
gboolean focus;
guint state;
} GdkEventCrossing;
</pre>
<p>
Generated when the pointer enters or leaves a window.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-ENTER-NOTIFY:CAPS"><code class="literal">GDK_ENTER_NOTIFY</code></a> or <a href="gdk-Events.html#GDK-LEAVE-NOTIFY:CAPS"><code class="literal">GDK_LEAVE_NOTIFY</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>subwindow</code></em>;</span></td>
<td>the window that was entered or left.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the time of the event in milliseconds.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>x</code></em>;</span></td>
<td>the x coordinate of the pointer relative to the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>y</code></em>;</span></td>
<td>the y coordinate of the pointer relative to the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>x_root</code></em>;</span></td>
<td>the x coordinate of the pointer relative to the root of the screen.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gdouble"
>gdouble</a> <em class="structfield"><code>y_root</code></em>;</span></td>
<td>the y coordinate of the pointer relative to the root of the screen.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkCrossingMode">GdkCrossingMode</a> <em class="structfield"><code>mode</code></em>;</span></td>
<td>the crossing mode (<a href="gdk-Event-Structures.html#GDK-CROSSING-NORMAL:CAPS"><code class="literal">GDK_CROSSING_NORMAL</code></a>, <a href="gdk-Event-Structures.html#GDK-CROSSING-GRAB:CAPS"><code class="literal">GDK_CROSSING_GRAB</code></a> or
<a href="gdk-Event-Structures.html#GDK-CROSSING-UNGRAB:CAPS"><code class="literal">GDK_CROSSING_UNGRAB</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkNotifyType">GdkNotifyType</a> <em class="structfield"><code>detail</code></em>;</span></td>
<td>the kind of crossing that happened (<a href="gdk-Event-Structures.html#GDK-NOTIFY-INFERIOR:CAPS"><code class="literal">GDK_NOTIFY_INFERIOR</code></a>,
<a href="gdk-Event-Structures.html#GDK-NOTIFY-ANCESTOR:CAPS"><code class="literal">GDK_NOTIFY_ANCESTOR</code></a>, <a href="gdk-Event-Structures.html#GDK-NOTIFY-VIRTUAL:CAPS"><code class="literal">GDK_NOTIFY_VIRTUAL</code></a>, <a href="gdk-Event-Structures.html#GDK-NOTIFY-NONLINEAR:CAPS"><code class="literal">GDK_NOTIFY_NONLINEAR</code></a> or
<a href="gdk-Event-Structures.html#GDK-NOTIFY-NONLINEAR-VIRTUAL:CAPS"><code class="literal">GDK_NOTIFY_NONLINEAR_VIRTUAL</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <em class="structfield"><code>focus</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if <em class="parameter"><code>window</code></em> is the focus window or an inferior.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>state</code></em>;</span></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a href="gdk-Windows.html#GdkModifierType"><span class="type">GdkModifierType</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3080237"></a><h3>
<a name="GdkEventFocus"></a>GdkEventFocus</h3>
<a class="indexterm" name="id3080250"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
gint16 in;
} GdkEventFocus;
</pre>
<p>
Describes a change of keyboard focus.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-FOCUS-CHANGE:CAPS"><code class="literal">GDK_FOCUS_CHANGE</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint16"
>gint16</a> <em class="structfield"><code>in</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the window has gained the keyboard focus, <a
href="../glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> if it has lost
the focus.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3080402"></a><h3>
<a name="GdkEventConfigure"></a>GdkEventConfigure</h3>
<a class="indexterm" name="id3080414"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
gint x, y;
gint width;
gint height;
} GdkEventConfigure;
</pre>
<p>
Generated when a window size or position has changed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-CONFIGURE:CAPS"><code class="literal">GDK_CONFIGURE</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> <em class="structfield"><code>x</code></em>;</span></td>
<td>the new x coordinate of the window, relative to its parent.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> <em class="structfield"><code>y</code></em>;</span></td>
<td>the new y coordinate of the window, relative to its parent.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> <em class="structfield"><code>width</code></em>;</span></td>
<td>the new width of the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint"
>gint</a> <em class="structfield"><code>height</code></em>;</span></td>
<td>the new height of the window.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3080609"></a><h3>
<a name="GdkEventProperty"></a>GdkEventProperty</h3>
<a class="indexterm" name="id3080622"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkAtom atom;
guint32 time;
guint state;
} GdkEventProperty;
</pre>
<p>
Describes a property change on a window.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-PROPERTY-NOTIFY:CAPS"><code class="literal">GDK_PROPERTY_NOTIFY</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Properties-and-Atoms.html#GdkAtom">GdkAtom</a> <em class="structfield"><code>atom</code></em>;</span></td>
<td>the property that was changed.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the time of the event in milliseconds.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>state</code></em>;</span></td>
<td>whether the property was changed (<a href="gdk-Event-Structures.html#GDK-PROPERTY-NEW-VALUE:CAPS"><code class="literal">GDK_PROPERTY_NEW_VALUE</code></a>) or
deleted (<a href="gdk-Event-Structures.html#GDK-PROPERTY-DELETE:CAPS"><code class="literal">GDK_PROPERTY_DELETE</code></a>).
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3080821"></a><h3>
<a name="GdkEventSelection"></a>GdkEventSelection</h3>
<a class="indexterm" name="id3080833"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkAtom selection;
GdkAtom target;
GdkAtom property;
guint32 time;
GdkNativeWindow requestor;
} GdkEventSelection;
</pre>
<p>
Generated when a selection is requested or ownership of a selection
is taken over by another client application.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-SELECTION-CLEAR:CAPS"><code class="literal">GDK_SELECTION_CLEAR</code></a>, <a href="gdk-Events.html#GDK-SELECTION-NOTIFY:CAPS"><code class="literal">GDK_SELECTION_NOTIFY</code></a> or
<a href="gdk-Events.html#GDK-SELECTION-REQUEST:CAPS"><code class="literal">GDK_SELECTION_REQUEST</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Properties-and-Atoms.html#GdkAtom">GdkAtom</a> <em class="structfield"><code>selection</code></em>;</span></td>
<td>the selection.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Properties-and-Atoms.html#GdkAtom">GdkAtom</a> <em class="structfield"><code>target</code></em>;</span></td>
<td>the target to which the selection should be converted.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Properties-and-Atoms.html#GdkAtom">GdkAtom</a> <em class="structfield"><code>property</code></em>;</span></td>
<td>the property in which to place the result of the conversion.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the time of the event in milliseconds.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkNativeWindow">GdkNativeWindow</a> <em class="structfield"><code>requestor</code></em>;</span></td>
<td>the native window on which to place <em class="parameter"><code>property</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3081082"></a><h3>
<a name="GdkNativeWindow"></a>GdkNativeWindow</h3>
<a class="indexterm" name="id3081094"></a><p>
Used to represent native windows (<span class="type">Window</span>s for the X11 backend,
<span class="type">HWND</span>s for Win32).
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3081112"></a><h3>
<a name="GdkEventDND"></a>GdkEventDND</h3>
<a class="indexterm" name="id3081125"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkDragContext *context;
guint32 time;
gshort x_root, y_root;
} GdkEventDND;
</pre>
<p>
Generated during DND operations.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-DRAG-ENTER:CAPS"><code class="literal">GDK_DRAG_ENTER</code></a>, <a href="gdk-Events.html#GDK-DRAG-LEAVE:CAPS"><code class="literal">GDK_DRAG_LEAVE</code></a>,
<a href="gdk-Events.html#GDK-DRAG-MOTION:CAPS"><code class="literal">GDK_DRAG_MOTION</code></a>, <a href="gdk-Events.html#GDK-DRAG-STATUS:CAPS"><code class="literal">GDK_DRAG_STATUS</code></a>, <a href="gdk-Events.html#GDK-DROP-START:CAPS"><code class="literal">GDK_DROP_START</code></a> or <a href="gdk-Events.html#GDK-DROP-FINISHED:CAPS"><code class="literal">GDK_DROP_FINISHED</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Drag-and-Drop.html#GdkDragContext">GdkDragContext</a> *<em class="structfield"><code>context</code></em>;</span></td>
<td>the <a href="gdk-Drag-and-Drop.html#GdkDragContext"><span class="type">GdkDragContext</span></a> for the current DND operation.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the time of the event in milliseconds.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gshort"
>gshort</a> <em class="structfield"><code>x_root</code></em>;</span></td>
<td>the x coordinate of the pointer relative to the root of the screen,
only set for <a href="gdk-Events.html#GDK-DRAG-MOTION:CAPS"><code class="literal">GDK_DRAG_MOTION</code></a> and <a href="gdk-Events.html#GDK-DROP-START:CAPS"><code class="literal">GDK_DROP_START</code></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gshort"
>gshort</a> <em class="structfield"><code>y_root</code></em>;</span></td>
<td>the y coordinate of the pointer relative to the root of the screen,
only set for <a href="gdk-Events.html#GDK-DRAG-MOTION:CAPS"><code class="literal">GDK_DRAG_MOTION</code></a> and <a href="gdk-Events.html#GDK-DROP-START:CAPS"><code class="literal">GDK_DROP_START</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3081433"></a><h3>
<a name="GdkEventProximity"></a>GdkEventProximity</h3>
<a class="indexterm" name="id3081445"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
guint32 time;
GdkDevice *device;
} GdkEventProximity;
</pre>
<p>
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.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-PROXIMITY-IN:CAPS"><code class="literal">GDK_PROXIMITY_IN</code></a> or <a href="gdk-Events.html#GDK-PROXIMITY-OUT:CAPS"><code class="literal">GDK_PROXIMITY_OUT</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the time of the event in milliseconds.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Input-Devices.html#GdkDevice">GdkDevice</a> *<em class="structfield"><code>device</code></em>;</span></td>
<td>the device where the event originated.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3081616"></a><h3>
<a name="GdkEventClient"></a>GdkEventClient</h3>
<a class="indexterm" name="id3081629"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkAtom message_type;
gushort data_format;
union {
char b[20];
short s[10];
long l[5];
} data;
} GdkEventClient;
</pre>
<p>
An event sent by another client application.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-CLIENT-EVENT:CAPS"><code class="literal">GDK_CLIENT_EVENT</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Properties-and-Atoms.html#GdkAtom">GdkAtom</a> <em class="structfield"><code>message_type</code></em>;</span></td>
<td>the type of the message, which can be defined by the
application.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gushort"
>gushort</a> <em class="structfield"><code>data_format</code></em>;</span></td>
<td>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.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3081788"></a><h3>
<a name="GdkEventNoExpose"></a>GdkEventNoExpose</h3>
<a class="indexterm" name="id3081800"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
} GdkEventNoExpose;
</pre>
<p>
Generated when the area of a <a href="gdk-Drawing-Primitives.html#GdkDrawable"><span class="type">GdkDrawable</span></a> being copied, with <a href="gdk-Drawing-Primitives.html#gdk-draw-drawable"><code class="function">gdk_draw_drawable()</code></a>
or <a href="gdk-Windows.html#gdk-window-copy-area"><code class="function">gdk_window_copy_area()</code></a>, was completely available.
</p>
<p>
FIXME: add more here.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-NO-EXPOSE:CAPS"><code class="literal">GDK_NO_EXPOSE</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3081945"></a><h3>
<a name="GdkEventWindowState"></a>GdkEventWindowState</h3>
<a class="indexterm" name="id3081958"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkWindowState changed_mask;
GdkWindowState new_window_state;
} GdkEventWindowState;
</pre>
<p>
Generated when the state of a toplevel window changes.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-WINDOW-STATE:CAPS"><code class="literal">GDK_WINDOW_STATE</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkWindowState">GdkWindowState</a> <em class="structfield"><code>changed_mask</code></em>;</span></td>
<td>mask specifying what flags have changed.
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkWindowState">GdkWindowState</a> <em class="structfield"><code>new_window_state</code></em>;</span></td>
<td>the new window state, a combination of <a href="gdk-Event-Structures.html#GdkWindowState"><span class="type">GdkWindowState</span></a> bits.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3082121"></a><h3>
<a name="GdkEventSetting"></a>GdkEventSetting</h3>
<a class="indexterm" name="id3082134"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkSettingAction action;
char *name;
} GdkEventSetting;
</pre>
<p>
Generated when a setting is modified.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-SETTING:CAPS"><code class="literal">GDK_SETTING</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event.
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkSettingAction">GdkSettingAction</a> <em class="structfield"><code>action</code></em>;</span></td>
<td>what happened to the setting (<a href="gdk-Event-Structures.html#GDK-SETTING-ACTION-NEW:CAPS"><code class="literal">GDK_SETTING_ACTION_NEW</code></a>,
<a href="gdk-Event-Structures.html#GDK-SETTING-ACTION-CHANGED:CAPS"><code class="literal">GDK_SETTING_ACTION_CHANGED</code></a> or <a href="gdk-Event-Structures.html#GDK-SETTING-ACTION-DELETED:CAPS"><code class="literal">GDK_SETTING_ACTION_DELETED</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term">char *<em class="structfield"><code>name</code></em>;</span></td>
<td>the name of the setting.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3082325"></a><h3>
<a name="GdkEventOwnerChange"></a>GdkEventOwnerChange</h3>
<a class="indexterm" name="id3082340"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkNativeWindow owner;
GdkOwnerChange reason;
GdkAtom selection;
guint32 time;
guint32 selection_time;
} GdkEventOwnerChange;
</pre>
<p>
Generated when the owner of a selection changes. On X11, this information is
only available if the X server supports the XFIXES extension.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-OWNER-CHANGE:CAPS"><code class="literal">GDK_OWNER_CHANGE</code></a>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkNativeWindow">GdkNativeWindow</a> <em class="structfield"><code>owner</code></em>;</span></td>
<td>the new owner of the selection
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Event-Structures.html#GdkOwnerChange">GdkOwnerChange</a> <em class="structfield"><code>reason</code></em>;</span></td>
<td>the reason for the ownership change as a <a href="gdk-Event-Structures.html#GdkOwnerChange"><span class="type">GdkOwnerChange</span></a> value
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Properties-and-Atoms.html#GdkAtom">GdkAtom</a> <em class="structfield"><code>selection</code></em>;</span></td>
<td>the atom identifying the selection
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>time</code></em>;</span></td>
<td>the timestamp of the event
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#guint32"
>guint32</a> <em class="structfield"><code>selection_time</code></em>;</span></td>
<td>the time at which the selection ownership was taken over
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3082571"></a><h3>
<a name="GdkEventGrabBroken"></a>GdkEventGrabBroken</h3>
<a class="indexterm" name="id3082586"></a><pre class="programlisting">typedef struct {
GdkEventType type;
GdkWindow *window;
gint8 send_event;
gboolean keyboard;
gboolean implicit;
GdkWindow *grab_window;
} GdkEventGrabBroken;
</pre>
<p>
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 <a href="gdk-Event-Structures.html#GdkEventGrabBroken"><span class="type">GdkEventGrabBroken</span></a> events.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a href="gdk-Events.html#GdkEventType">GdkEventType</a> <em class="structfield"><code>type</code></em>;</span></td>
<td>the type of the event (<a href="gdk-Events.html#GDK-GRAB-BROKEN:CAPS"><code class="literal">GDK_GRAB_BROKEN</code></a>)
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>window</code></em>;</span></td>
<td>the window which received the event, i.e. the window
that previously owned the grab
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gint8"
>gint8</a> <em class="structfield"><code>send_event</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <em class="structfield"><code>keyboard</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if a keyboard grab was broken, <a
href="../glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> if a pointer
grab was broken
</td>
</tr>
<tr>
<td>
<span class="term"><a
href="../glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <em class="structfield"><code>implicit</code></em>;</span></td>
<td>
<a
href="../glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the broken grab was implicit
</td>
</tr>
<tr>
<td>
<span class="term"><a href="gdk-Windows.html#GdkWindow">GdkWindow</a> *<em class="structfield"><code>grab_window</code></em>;</span></td>
<td>If this event is caused by another grab in the same
application, <em class="parameter"><code>grab_window</code></em> contains the new grab window. Otherwise
<em class="parameter"><code>grab_window</code></em> id <a
href="../glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
</tbody>
</table></div>
<p>Since 2.8
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3082830"></a><h3>
<a name="GdkScrollDirection"></a>enum GdkScrollDirection</h3>
<a class="indexterm" name="id3082843"></a><pre class="programlisting">typedef enum
{
GDK_SCROLL_UP,
GDK_SCROLL_DOWN,
GDK_SCROLL_LEFT,
GDK_SCROLL_RIGHT
} GdkScrollDirection;
</pre>
<p>
Specifies the direction for <a href="gdk-Event-Structures.html#GdkEventScroll"><span class="type">GdkEventScroll</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a name="GDK-SCROLL-UP:CAPS"></a><code class="literal">GDK_SCROLL_UP</code></span></td>
<td>the window is scrolled up.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-SCROLL-DOWN:CAPS"></a><code class="literal">GDK_SCROLL_DOWN</code></span></td>
<td>the window is scrolled down.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-SCROLL-LEFT:CAPS"></a><code class="literal">GDK_SCROLL_LEFT</code></span></td>
<td>the window is scrolled to the left.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-SCROLL-RIGHT:CAPS"></a><code class="literal">GDK_SCROLL_RIGHT</code></span></td>
<td>the window is scrolled to the right.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3082963"></a><h3>
<a name="GdkVisibilityState"></a>enum GdkVisibilityState</h3>
<a class="indexterm" name="id3082976"></a><pre class="programlisting">typedef enum
{
GDK_VISIBILITY_UNOBSCURED,
GDK_VISIBILITY_PARTIAL,
GDK_VISIBILITY_FULLY_OBSCURED
} GdkVisibilityState;
</pre>
<p>
Specifies the visiblity status of a window for a <a href="gdk-Event-Structures.html#GdkEventVisibility"><span class="type">GdkEventVisibility</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a name="GDK-VISIBILITY-UNOBSCURED:CAPS"></a><code class="literal">GDK_VISIBILITY_UNOBSCURED</code></span></td>
<td>the window is completely visible.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-VISIBILITY-PARTIAL:CAPS"></a><code class="literal">GDK_VISIBILITY_PARTIAL</code></span></td>
<td>the window is partially visible.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-VISIBILITY-FULLY-OBSCURED:CAPS"></a><code class="literal">GDK_VISIBILITY_FULLY_OBSCURED</code></span></td>
<td>the window is not visible at all.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3083075"></a><h3>
<a name="GdkCrossingMode"></a>enum GdkCrossingMode</h3>
<a class="indexterm" name="id3083088"></a><pre class="programlisting">typedef enum
{
GDK_CROSSING_NORMAL,
GDK_CROSSING_GRAB,
GDK_CROSSING_UNGRAB
} GdkCrossingMode;
</pre>
<p>
Specifies the crossing mode for <a href="gdk-Event-Structures.html#GdkEventCrossing"><span class="type">GdkEventCrossing</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a name="GDK-CROSSING-NORMAL:CAPS"></a><code class="literal">GDK_CROSSING_NORMAL</code></span></td>
<td>crossing because of pointer motion.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-CROSSING-GRAB:CAPS"></a><code class="literal">GDK_CROSSING_GRAB</code></span></td>
<td>crossing because a grab is activated.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-CROSSING-UNGRAB:CAPS"></a><code class="literal">GDK_CROSSING_UNGRAB</code></span></td>
<td>crossing because a grab is deactivated.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3083186"></a><h3>
<a name="GdkNotifyType"></a>enum GdkNotifyType</h3>
<a class="indexterm" name="id3083199"></a><pre class="programlisting">typedef enum
{
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
} GdkNotifyType;
</pre>
<p>
Specifies the kind of crossing for <a href="gdk-Event-Structures.html#GdkEventCrossing"><span class="type">GdkEventCrossing</span></a>.
</p>
<p>
See the X11 protocol specification of <span class="type">LeaveNotify</span> for
full details of crossing event generation.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a name="GDK-NOTIFY-ANCESTOR:CAPS"></a><code class="literal">GDK_NOTIFY_ANCESTOR</code></span></td>
<td>the window is entered from an ancestor or
left towards an ancestor.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-NOTIFY-VIRTUAL:CAPS"></a><code class="literal">GDK_NOTIFY_VIRTUAL</code></span></td>
<td>the pointer moves between an ancestor and an
inferior of the window.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-NOTIFY-INFERIOR:CAPS"></a><code class="literal">GDK_NOTIFY_INFERIOR</code></span></td>
<td>the window is entered from an inferior or
left towards an inferior.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-NOTIFY-NONLINEAR:CAPS"></a><code class="literal">GDK_NOTIFY_NONLINEAR</code></span></td>
<td> the window is entered from or left towards
a window which is neither an ancestor nor an inferior.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-NOTIFY-NONLINEAR-VIRTUAL:CAPS"></a><code class="literal">GDK_NOTIFY_NONLINEAR_VIRTUAL</code></span></td>
<td>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.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-NOTIFY-UNKNOWN:CAPS"></a><code class="literal">GDK_NOTIFY_UNKNOWN</code></span></td>
<td>an unknown type of enter/leave event occurred.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3083382"></a><h3>
<a name="GdkPropertyState"></a>enum GdkPropertyState</h3>
<a class="indexterm" name="id3083395"></a><pre class="programlisting">typedef enum
{
GDK_PROPERTY_NEW_VALUE,
GDK_PROPERTY_DELETE
} GdkPropertyState;
</pre>
<p>
Specifies the type of a property change for a <a href="gdk-Event-Structures.html#GdkEventProperty"><span class="type">GdkEventProperty</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a name="GDK-PROPERTY-NEW-VALUE:CAPS"></a><code class="literal">GDK_PROPERTY_NEW_VALUE</code></span></td>
<td>the property value was changed.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-PROPERTY-DELETE:CAPS"></a><code class="literal">GDK_PROPERTY_DELETE</code></span></td>
<td>the property was deleted.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3083469"></a><h3>
<a name="GdkWindowState"></a>enum GdkWindowState</h3>
<a class="indexterm" name="id3083482"></a><pre class="programlisting">typedef enum
{
GDK_WINDOW_STATE_WITHDRAWN = 1 << 0,
GDK_WINDOW_STATE_ICONIFIED = 1 << 1,
GDK_WINDOW_STATE_MAXIMIZED = 1 << 2,
GDK_WINDOW_STATE_STICKY = 1 << 3,
GDK_WINDOW_STATE_FULLSCREEN = 1 << 4,
GDK_WINDOW_STATE_ABOVE = 1 << 5,
GDK_WINDOW_STATE_BELOW = 1 << 6
} GdkWindowState;
</pre>
<p>
Specifies the state of a toplevel window.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a name="GDK-WINDOW-STATE-WITHDRAWN:CAPS"></a><code class="literal">GDK_WINDOW_STATE_WITHDRAWN</code></span></td>
<td>the window is not shown.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-WINDOW-STATE-ICONIFIED:CAPS"></a><code class="literal">GDK_WINDOW_STATE_ICONIFIED</code></span></td>
<td>the window is minimized.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-WINDOW-STATE-MAXIMIZED:CAPS"></a><code class="literal">GDK_WINDOW_STATE_MAXIMIZED</code></span></td>
<td>the window is maximized.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-WINDOW-STATE-STICKY:CAPS"></a><code class="literal">GDK_WINDOW_STATE_STICKY</code></span></td>
<td>the window is sticky.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-WINDOW-STATE-FULLSCREEN:CAPS"></a><code class="literal">GDK_WINDOW_STATE_FULLSCREEN</code></span></td>
<td>the window is maximized without decorations.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-WINDOW-STATE-ABOVE:CAPS"></a><code class="literal">GDK_WINDOW_STATE_ABOVE</code></span></td>
<td>the window is kept above other windows.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-WINDOW-STATE-BELOW:CAPS"></a><code class="literal">GDK_WINDOW_STATE_BELOW</code></span></td>
<td>the window is kept below other windows.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3083675"></a><h3>
<a name="GdkSettingAction"></a>enum GdkSettingAction</h3>
<a class="indexterm" name="id3083689"></a><pre class="programlisting">typedef enum
{
GDK_SETTING_ACTION_NEW,
GDK_SETTING_ACTION_CHANGED,
GDK_SETTING_ACTION_DELETED
} GdkSettingAction;
</pre>
<p>
Specifies the kind of modification applied to a setting in a <a href="gdk-Event-Structures.html#GdkEventSetting"><span class="type">GdkEventSetting</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a name="GDK-SETTING-ACTION-NEW:CAPS"></a><code class="literal">GDK_SETTING_ACTION_NEW</code></span></td>
<td>a setting was added.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-SETTING-ACTION-CHANGED:CAPS"></a><code class="literal">GDK_SETTING_ACTION_CHANGED</code></span></td>
<td>a setting was changed.
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-SETTING-ACTION-DELETED:CAPS"></a><code class="literal">GDK_SETTING_ACTION_DELETED</code></span></td>
<td>a setting was deleted.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id3083787"></a><h3>
<a name="GdkOwnerChange"></a>enum GdkOwnerChange</h3>
<a class="indexterm" name="id3083800"></a><pre class="programlisting">typedef enum
{
GDK_OWNER_CHANGE_NEW_OWNER,
GDK_OWNER_CHANGE_DESTROY,
GDK_OWNER_CHANGE_CLOSE
} GdkOwnerChange;
</pre>
<p>
Specifies why a selection ownership was changed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><a name="GDK-OWNER-CHANGE-NEW-OWNER:CAPS"></a><code class="literal">GDK_OWNER_CHANGE_NEW_OWNER</code></span></td>
<td>some other app claimed the ownership
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-OWNER-CHANGE-DESTROY:CAPS"></a><code class="literal">GDK_OWNER_CHANGE_DESTROY</code></span></td>
<td>the window was destroyed
</td>
</tr>
<tr>
<td>
<span class="term"><a name="GDK-OWNER-CHANGE-CLOSE:CAPS"></a><code class="literal">GDK_OWNER_CHANGE_CLOSE</code></span></td>
<td>the client was closed
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</body>
</html>