Description

This section describes functions dealing with events from the window system.

In GTK+ applications the events are handled automatically in
gtk_main_do_event() and passed on to the appropriate widgets, so these
functions are rarely needed. Though some of the fields in the
Event Structures are useful.

Do not confuse these events with the signals that GTK+ widgets emit.
Although many of these events result in corresponding signals being emitted,
the events are often transformed or filtered along the way.

GDK_NOTHING

a special code to indicate a null event.

GDK_DELETE

the window manager has requested that the toplevel window be
hidden or destroyed, usually when the user clicks on a special icon in the
title bar.

GDK_DESTROY

the window has been destroyed.

GDK_EXPOSE

all or part of the window has become visible and needs to be
redrawn.

GDK_MOTION_NOTIFY

the pointer (usually a mouse) has moved.

GDK_BUTTON_PRESS

a mouse button has been pressed.

GDK_2BUTTON_PRESS

a mouse button has been double-clicked (clicked twice
within a short period of time). Note that each click also generates a
GDK_BUTTON_PRESS event.

GDK_3BUTTON_PRESS

a mouse button has been clicked 3 times in a short period
of time. Note that each click also generates a GDK_BUTTON_PRESS event.

GDK_BUTTON_RELEASE

a mouse button has been released.

GDK_KEY_PRESS

a key has been pressed.

GDK_KEY_RELEASE

a key has been released.

GDK_ENTER_NOTIFY

the pointer has entered the window.

GDK_LEAVE_NOTIFY

the pointer has left the window.

GDK_FOCUS_CHANGE

the keyboard focus has entered or left the window.

GDK_CONFIGURE

the size, position or stacking order of the window has changed.
Note that GTK+ discards these events for GDK_WINDOW_CHILD windows.

GDK_MAP

the window has been mapped.

GDK_UNMAP

the window has been unmapped.

GDK_PROPERTY_NOTIFY

a property on the window has been changed or deleted.

GDK_SELECTION_CLEAR

the application has lost ownership of a selection.

GDK_SELECTION_REQUEST

another application has requested a selection.

GDK_SELECTION_NOTIFY

a selection has been received.

GDK_PROXIMITY_IN

an input device has moved into contact with a sensing
surface (e.g. a touchscreen or graphics tablet).

GDK_PROXIMITY_OUT

an input device has moved out of contact with a sensing
surface.

GDK_DRAG_ENTER

the mouse has entered the window while a drag is in progress.

GDK_DRAG_LEAVE

the mouse has left the window while a drag is in progress.

GDK_DRAG_MOTION

the mouse has moved in the window while a drag is in
progress.

GDK_DRAG_STATUS

the status of the drag operation initiated by the window
has changed.

GDK_DROP_START

a drop operation onto the window has started.

GDK_DROP_FINISHED

the drop operation initiated by the window has completed.

GDK_CLIENT_EVENT

a message has been received from another application.

GDK_VISIBILITY_NOTIFY

the window visibility status has changed.

GDK_NO_EXPOSE

indicates that the source region was completely available
when parts of a drawable were copied. This is not very useful.

GDK_SCROLL

the scroll wheel was turned

GDK_WINDOW_STATE

the state of a window has changed. See GdkWindowState
for the possible window states

GDK_SETTING

a setting has been modified.

GDK_OWNER_CHANGE

the owner of a selection has changed. This event type
was added in 2.6

GDK_GRAB_BROKEN

a pointer or keyboard grab was broken. This event type
was added in 2.8.

GDK_DAMAGE

the content of the window has been changed. This event type
was added in 2.14.

gdk_event_get_graphics_expose ()

Waits for a GraphicsExpose or NoExpose event from the X server.
This is used in the GtkText and GtkCList widgets in GTK+ to make sure any
GraphicsExpose events are handled before the widget is scrolled.

gdk_event_get_state ()

If the event contains a "state" field, puts that field in state. Otherwise
stores an empty state (0). Returns TRUE if there was a state field
in the event. event may be NULL, in which case it's treated
as if the event had no state field.

gdk_event_request_motions ()

Request more motion notifies if event is a motion notify hint event.
This function should be used instead of gdk_window_get_pointer() to
request further motion notifies, because it also works for extension
events where motion notifies are provided for devices other than the
core pointer. Coordinate extraction, processing and requesting more
motion events from a GDK_MOTION_NOTIFY event usually works like this:

gdk_event_handler_set ()

Note that GTK+ uses this to install its own event handler, so it is
usually not useful for GTK+ applications. (Although an application
can call this function then call gtk_main_do_event() to pass
events to GTK+.)

func :

the function to call to handle events from GDK.

data :

user data to pass to the function.

notify :

the function to call when the handler function is removed, i.e. when
gdk_event_handler_set() is called with another event handler.

gdk_event_send_client_message ()

Sends an X ClientMessage event to a given window (which must be
on the default GdkDisplay.)
This could be used for communicating between different applications,
though the amount of data is limited to 20 bytes.

gdk_event_send_clientmessage_toall ()

Sends an X ClientMessage event to all toplevel windows on the default
GdkScreen.

Toplevel windows are determined by checking for the WM_STATE property, as
described in the Inter-Client Communication Conventions Manual (ICCCM).
If no windows are found with the WM_STATE property set, the message is sent
to all children of the root window.

gdk_event_get_screen ()

Returns the screen for the event. The screen is
typically the screen for event->any.window, but
for events such as mouse events, it is the screen
where the pointer was when the event occurs -
that is, the screen which has the root window
to which event->motion.x_root and
event->motion.y_root are relative.