Files
archived-gir-files/Gdk-4.0.gir
2022-04-26 17:18:10 +08:00

19127 lines
925 KiB
XML

<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<include name="GdkPixbuf" version="2.0"/>
<include name="Gio" version="2.0"/>
<include name="Pango" version="1.0"/>
<include name="PangoCairo" version="1.0"/>
<include name="cairo" version="1.0"/>
<package name="gtk4"/>
<c:include name="gdk/gdk.h"/>
<namespace name="Gdk" version="4.0" shared-library="libgtk-4.so.1" c:identifier-prefixes="Gdk" c:symbol-prefixes="gdk">
<constant name="ACTION_ALL" value="7" c:type="GDK_ACTION_ALL">
<doc xml:space="preserve">Defines all possible DND actions.
This can be used in [method@Gdk.Drop.status] messages when any drop
can be accepted or a more specific drop method is not yet known.</doc>
<type name="gint" c:type="gint"/>
</constant>
<function-macro name="APP_LAUNCH_CONTEXT" c:identifier="GDK_APP_LAUNCH_CONTEXT" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<bitfield name="AnchorHints" glib:type-name="GdkAnchorHints" glib:get-type="gdk_anchor_hints_get_type" c:type="GdkAnchorHints">
<doc xml:space="preserve">Positioning hints for aligning a surface relative to a rectangle.
These hints determine how the surface should be positioned in the case that
the surface would fall off-screen if placed in its ideal position.
For example, %GDK_ANCHOR_FLIP_X will replace %GDK_GRAVITY_NORTH_WEST with
%GDK_GRAVITY_NORTH_EAST and vice versa if the surface extends beyond the left
or right edges of the monitor.
If %GDK_ANCHOR_SLIDE_X is set, the surface can be shifted horizontally to fit
on-screen. If %GDK_ANCHOR_RESIZE_X is set, the surface can be shrunken
horizontally to fit.
In general, when multiple flags are set, flipping should take precedence over
sliding, which should take precedence over resizing.</doc>
<member name="flip_x" value="1" c:identifier="GDK_ANCHOR_FLIP_X" glib:nick="flip-x" glib:name="GDK_ANCHOR_FLIP_X">
<doc xml:space="preserve">allow flipping anchors horizontally</doc>
</member>
<member name="flip_y" value="2" c:identifier="GDK_ANCHOR_FLIP_Y" glib:nick="flip-y" glib:name="GDK_ANCHOR_FLIP_Y">
<doc xml:space="preserve">allow flipping anchors vertically</doc>
</member>
<member name="slide_x" value="4" c:identifier="GDK_ANCHOR_SLIDE_X" glib:nick="slide-x" glib:name="GDK_ANCHOR_SLIDE_X">
<doc xml:space="preserve">allow sliding surface horizontally</doc>
</member>
<member name="slide_y" value="8" c:identifier="GDK_ANCHOR_SLIDE_Y" glib:nick="slide-y" glib:name="GDK_ANCHOR_SLIDE_Y">
<doc xml:space="preserve">allow sliding surface vertically</doc>
</member>
<member name="resize_x" value="16" c:identifier="GDK_ANCHOR_RESIZE_X" glib:nick="resize-x" glib:name="GDK_ANCHOR_RESIZE_X">
<doc xml:space="preserve">allow resizing surface horizontally</doc>
</member>
<member name="resize_y" value="32" c:identifier="GDK_ANCHOR_RESIZE_Y" glib:nick="resize-y" glib:name="GDK_ANCHOR_RESIZE_Y">
<doc xml:space="preserve">allow resizing surface vertically</doc>
</member>
<member name="flip" value="3" c:identifier="GDK_ANCHOR_FLIP" glib:nick="flip" glib:name="GDK_ANCHOR_FLIP">
<doc xml:space="preserve">allow flipping anchors on both axes</doc>
</member>
<member name="slide" value="12" c:identifier="GDK_ANCHOR_SLIDE" glib:nick="slide" glib:name="GDK_ANCHOR_SLIDE">
<doc xml:space="preserve">allow sliding surface on both axes</doc>
</member>
<member name="resize" value="48" c:identifier="GDK_ANCHOR_RESIZE" glib:nick="resize" glib:name="GDK_ANCHOR_RESIZE">
<doc xml:space="preserve">allow resizing surface on both axes</doc>
</member>
</bitfield>
<class name="AppLaunchContext" c:symbol-prefix="app_launch_context" c:type="GdkAppLaunchContext" parent="Gio.AppLaunchContext" glib:type-name="GdkAppLaunchContext" glib:get-type="gdk_app_launch_context_get_type">
<doc xml:space="preserve">`GdkAppLaunchContext` handles launching an application in a graphical context.
It is an implementation of `GAppLaunchContext` that provides startup
notification and allows to launch applications on a specific workspace.
## Launching an application
```c
GdkAppLaunchContext *context;
context = gdk_display_get_app_launch_context (display);
gdk_app_launch_context_set_timestamp (gdk_event_get_time (event));
if (!g_app_info_launch_default_for_uri ("http://www.gtk.org", context, &amp;error))
g_warning ("Launching failed: %s\n", error-&gt;message);
g_object_unref (context);
```</doc>
<method name="get_display" c:identifier="gdk_app_launch_context_get_display" glib:get-property="display">
<attribute name="org.gtk.Method.get_property" value="display"/>
<doc xml:space="preserve">Gets the `GdkDisplay` that @context is for.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the display of @context</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkAppLaunchContext`</doc>
<type name="AppLaunchContext" c:type="GdkAppLaunchContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_desktop" c:identifier="gdk_app_launch_context_set_desktop">
<doc xml:space="preserve">Sets the workspace on which applications will be launched.
This only works when running under a window manager that
supports multiple workspaces, as described in the
[Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec).
Specifically this sets the `_NET_WM_DESKTOP` property described
in that spec.
This only works when using the X11 backend.
When the workspace is not specified or @desktop is set to -1,
it is up to the window manager to pick one, typically it will
be the current workspace.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkAppLaunchContext`</doc>
<type name="AppLaunchContext" c:type="GdkAppLaunchContext*"/>
</instance-parameter>
<parameter name="desktop" transfer-ownership="none">
<doc xml:space="preserve">the number of a workspace, or -1</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="set_icon" c:identifier="gdk_app_launch_context_set_icon">
<doc xml:space="preserve">Sets the icon for applications that are launched with this
context.
Window Managers can use this information when displaying startup
notification.
See also [method@Gdk.AppLaunchContext.set_icon_name].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkAppLaunchContext`</doc>
<type name="AppLaunchContext" c:type="GdkAppLaunchContext*"/>
</instance-parameter>
<parameter name="icon" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">a `GIcon`</doc>
<type name="Gio.Icon" c:type="GIcon*"/>
</parameter>
</parameters>
</method>
<method name="set_icon_name" c:identifier="gdk_app_launch_context_set_icon_name">
<doc xml:space="preserve">Sets the icon for applications that are launched with this context.
The @icon_name will be interpreted in the same way as the Icon field
in desktop files. See also [method@Gdk.AppLaunchContext.set_icon].
If both @icon and @icon_name are set, the @icon_name takes priority.
If neither @icon or @icon_name is set, the icon is taken from either
the file that is passed to launched application or from the `GAppInfo`
for the launched application itself.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkAppLaunchContext`</doc>
<type name="AppLaunchContext" c:type="GdkAppLaunchContext*"/>
</instance-parameter>
<parameter name="icon_name" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">an icon name</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="set_timestamp" c:identifier="gdk_app_launch_context_set_timestamp">
<doc xml:space="preserve">Sets the timestamp of @context.
The timestamp should ideally be taken from the event that
triggered the launch.
Window managers can use this information to avoid moving the
focus to the newly launched application when the user is busy
typing in another window. This is also known as 'focus stealing
prevention'.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkAppLaunchContext`</doc>
<type name="AppLaunchContext" c:type="GdkAppLaunchContext*"/>
</instance-parameter>
<parameter name="timestamp" transfer-ownership="none">
<doc xml:space="preserve">a timestamp</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</method>
<property name="display" writable="1" construct-only="1" transfer-ownership="none" getter="get_display">
<attribute name="org.gtk.Property.get" value="gdk_app_launch_context_get_display"/>
<doc xml:space="preserve">The display that the `GdkAppLaunchContext` is on.</doc>
<type name="Display"/>
</property>
</class>
<bitfield name="AxisFlags" glib:type-name="GdkAxisFlags" glib:get-type="gdk_axis_flags_get_type" c:type="GdkAxisFlags">
<doc xml:space="preserve">Flags describing the current capabilities of a device/tool.</doc>
<member name="x" value="2" c:identifier="GDK_AXIS_FLAG_X" glib:nick="x" glib:name="GDK_AXIS_FLAG_X">
<doc xml:space="preserve">X axis is present</doc>
</member>
<member name="y" value="4" c:identifier="GDK_AXIS_FLAG_Y" glib:nick="y" glib:name="GDK_AXIS_FLAG_Y">
<doc xml:space="preserve">Y axis is present</doc>
</member>
<member name="delta_x" value="8" c:identifier="GDK_AXIS_FLAG_DELTA_X" glib:nick="delta-x" glib:name="GDK_AXIS_FLAG_DELTA_X">
<doc xml:space="preserve">Scroll X delta axis is present</doc>
</member>
<member name="delta_y" value="16" c:identifier="GDK_AXIS_FLAG_DELTA_Y" glib:nick="delta-y" glib:name="GDK_AXIS_FLAG_DELTA_Y">
<doc xml:space="preserve">Scroll Y delta axis is present</doc>
</member>
<member name="pressure" value="32" c:identifier="GDK_AXIS_FLAG_PRESSURE" glib:nick="pressure" glib:name="GDK_AXIS_FLAG_PRESSURE">
<doc xml:space="preserve">Pressure axis is present</doc>
</member>
<member name="xtilt" value="64" c:identifier="GDK_AXIS_FLAG_XTILT" glib:nick="xtilt" glib:name="GDK_AXIS_FLAG_XTILT">
<doc xml:space="preserve">X tilt axis is present</doc>
</member>
<member name="ytilt" value="128" c:identifier="GDK_AXIS_FLAG_YTILT" glib:nick="ytilt" glib:name="GDK_AXIS_FLAG_YTILT">
<doc xml:space="preserve">Y tilt axis is present</doc>
</member>
<member name="wheel" value="256" c:identifier="GDK_AXIS_FLAG_WHEEL" glib:nick="wheel" glib:name="GDK_AXIS_FLAG_WHEEL">
<doc xml:space="preserve">Wheel axis is present</doc>
</member>
<member name="distance" value="512" c:identifier="GDK_AXIS_FLAG_DISTANCE" glib:nick="distance" glib:name="GDK_AXIS_FLAG_DISTANCE">
<doc xml:space="preserve">Distance axis is present</doc>
</member>
<member name="rotation" value="1024" c:identifier="GDK_AXIS_FLAG_ROTATION" glib:nick="rotation" glib:name="GDK_AXIS_FLAG_ROTATION">
<doc xml:space="preserve">Z-axis rotation is present</doc>
</member>
<member name="slider" value="2048" c:identifier="GDK_AXIS_FLAG_SLIDER" glib:nick="slider" glib:name="GDK_AXIS_FLAG_SLIDER">
<doc xml:space="preserve">Slider axis is present</doc>
</member>
</bitfield>
<enumeration name="AxisUse" glib:type-name="GdkAxisUse" glib:get-type="gdk_axis_use_get_type" c:type="GdkAxisUse">
<doc xml:space="preserve">Defines how device axes are interpreted by GTK.
Note that the X and Y axes are not really needed; pointer devices
report their location via the x/y members of events regardless. Whether
X and Y are present as axes depends on the GDK backend.</doc>
<member name="ignore" value="0" c:identifier="GDK_AXIS_IGNORE" glib:nick="ignore" glib:name="GDK_AXIS_IGNORE">
<doc xml:space="preserve">the axis is ignored.</doc>
</member>
<member name="x" value="1" c:identifier="GDK_AXIS_X" glib:nick="x" glib:name="GDK_AXIS_X">
<doc xml:space="preserve">the axis is used as the x axis.</doc>
</member>
<member name="y" value="2" c:identifier="GDK_AXIS_Y" glib:nick="y" glib:name="GDK_AXIS_Y">
<doc xml:space="preserve">the axis is used as the y axis.</doc>
</member>
<member name="delta_x" value="3" c:identifier="GDK_AXIS_DELTA_X" glib:nick="delta-x" glib:name="GDK_AXIS_DELTA_X">
<doc xml:space="preserve">the axis is used as the scroll x delta</doc>
</member>
<member name="delta_y" value="4" c:identifier="GDK_AXIS_DELTA_Y" glib:nick="delta-y" glib:name="GDK_AXIS_DELTA_Y">
<doc xml:space="preserve">the axis is used as the scroll y delta</doc>
</member>
<member name="pressure" value="5" c:identifier="GDK_AXIS_PRESSURE" glib:nick="pressure" glib:name="GDK_AXIS_PRESSURE">
<doc xml:space="preserve">the axis is used for pressure information.</doc>
</member>
<member name="xtilt" value="6" c:identifier="GDK_AXIS_XTILT" glib:nick="xtilt" glib:name="GDK_AXIS_XTILT">
<doc xml:space="preserve">the axis is used for x tilt information.</doc>
</member>
<member name="ytilt" value="7" c:identifier="GDK_AXIS_YTILT" glib:nick="ytilt" glib:name="GDK_AXIS_YTILT">
<doc xml:space="preserve">the axis is used for y tilt information.</doc>
</member>
<member name="wheel" value="8" c:identifier="GDK_AXIS_WHEEL" glib:nick="wheel" glib:name="GDK_AXIS_WHEEL">
<doc xml:space="preserve">the axis is used for wheel information.</doc>
</member>
<member name="distance" value="9" c:identifier="GDK_AXIS_DISTANCE" glib:nick="distance" glib:name="GDK_AXIS_DISTANCE">
<doc xml:space="preserve">the axis is used for pen/tablet distance information</doc>
</member>
<member name="rotation" value="10" c:identifier="GDK_AXIS_ROTATION" glib:nick="rotation" glib:name="GDK_AXIS_ROTATION">
<doc xml:space="preserve">the axis is used for pen rotation information</doc>
</member>
<member name="slider" value="11" c:identifier="GDK_AXIS_SLIDER" glib:nick="slider" glib:name="GDK_AXIS_SLIDER">
<doc xml:space="preserve">the axis is used for pen slider information</doc>
</member>
<member name="last" value="12" c:identifier="GDK_AXIS_LAST" glib:nick="last" glib:name="GDK_AXIS_LAST">
<doc xml:space="preserve">a constant equal to the numerically highest axis value.</doc>
</member>
</enumeration>
<constant name="BUTTON_MIDDLE" value="2" c:type="GDK_BUTTON_MIDDLE">
<doc xml:space="preserve">The middle button.</doc>
<type name="gint" c:type="gint"/>
</constant>
<constant name="BUTTON_PRIMARY" value="1" c:type="GDK_BUTTON_PRIMARY">
<doc xml:space="preserve">The primary button. This is typically the left mouse button, or the
right button in a left-handed setup.</doc>
<type name="gint" c:type="gint"/>
</constant>
<constant name="BUTTON_SECONDARY" value="3" c:type="GDK_BUTTON_SECONDARY">
<doc xml:space="preserve">The secondary button. This is typically the right mouse button, or the
left button in a left-handed setup.</doc>
<type name="gint" c:type="gint"/>
</constant>
<class name="ButtonEvent" c:symbol-prefix="button_event" c:type="GdkButtonEvent" parent="Event" glib:type-name="GdkButtonEvent" glib:get-type="gdk_button_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to a button on a pointer device.</doc>
<method name="get_button" c:identifier="gdk_button_event_get_button">
<doc xml:space="preserve">Extract the button number from a button event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the button of @event</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a button event</doc>
<type name="ButtonEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
</class>
<function-macro name="CAIRO_CONTEXT" c:identifier="GDK_CAIRO_CONTEXT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="CLIPBOARD" c:identifier="GDK_CLIPBOARD" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="CONTENT_DESERIALIZER" c:identifier="GDK_CONTENT_DESERIALIZER" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="CONTENT_PROVIDER" c:identifier="GDK_CONTENT_PROVIDER" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="CONTENT_PROVIDER_CLASS" c:identifier="GDK_CONTENT_PROVIDER_CLASS" introspectable="0">
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="CONTENT_PROVIDER_GET_CLASS" c:identifier="GDK_CONTENT_PROVIDER_GET_CLASS" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="CONTENT_SERIALIZER" c:identifier="GDK_CONTENT_SERIALIZER" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<constant name="CURRENT_TIME" value="0" c:type="GDK_CURRENT_TIME">
<doc xml:space="preserve">Represents the current time, and can be used anywhere a time is expected.</doc>
<type name="gint" c:type="gint"/>
</constant>
<function-macro name="CURSOR" c:identifier="GDK_CURSOR" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<class name="CairoContext" c:symbol-prefix="cairo_context" c:type="GdkCairoContext" parent="DrawContext" abstract="1" glib:type-name="GdkCairoContext" glib:get-type="gdk_cairo_context_get_type">
<doc xml:space="preserve">`GdkCairoContext` is an object representing the platform-specific
draw context.
`GdkCairoContext`s are created for a surface using
[method@Gdk.Surface.create_cairo_context], and the context
can then be used to draw on that surface.</doc>
<method name="cairo_create" c:identifier="gdk_cairo_context_cairo_create">
<doc xml:space="preserve">Retrieves a Cairo context to be used to draw on the `GdkSurface`
of @context.
A call to [method@Gdk.DrawContext.begin_frame] with this
@context must have been done or this function will return %NULL.
The returned context is guaranteed to be valid until
[method@Gdk.DrawContext.end_frame] is called.</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a Cairo context
to draw on `GdkSurface</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkCairoContext` that is currently drawing</doc>
<type name="CairoContext" c:type="GdkCairoContext*"/>
</instance-parameter>
</parameters>
</method>
</class>
<class name="Clipboard" c:symbol-prefix="clipboard" c:type="GdkClipboard" parent="GObject.Object" glib:type-name="GdkClipboard" glib:get-type="gdk_clipboard_get_type">
<doc xml:space="preserve">The `GdkClipboard` object represents data shared between applications or
inside an application.
To get a `GdkClipboard` object, use [method@Gdk.Display.get_clipboard] or
[method@Gdk.Display.get_primary_clipboard]. You can find out about the data
that is currently available in a clipboard using
[method@Gdk.Clipboard.get_formats].
To make text or image data available in a clipboard, use
[method@Gdk.Clipboard.set_text] or [method@Gdk.Clipboard.set_texture].
For other data, you can use [method@Gdk.Clipboard.set_content], which
takes a [class@Gdk.ContentProvider] object.
To read textual or image data from a clipboard, use
[method@Gdk.Clipboard.read_text_async] or
[method@Gdk.Clipboard.read_texture_async]. For other data, use
[method@Gdk.Clipboard.read_async], which provides a `GInputStream` object.</doc>
<method name="get_content" c:identifier="gdk_clipboard_get_content" glib:get-property="content">
<attribute name="org.gtk.Method.get_property" value="content"/>
<doc xml:space="preserve">Returns the `GdkContentProvider` currently set on @clipboard.
If the @clipboard is empty or its contents are not owned by the
current process, %NULL will be returned.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">The content of a clipboard
if the clipboard does not maintain any content</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_clipboard_get_display" glib:get-property="display">
<attribute name="org.gtk.Method.get_property" value="display"/>
<doc xml:space="preserve">Gets the `GdkDisplay` that the clipboard was created for.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_formats" c:identifier="gdk_clipboard_get_formats" glib:get-property="formats">
<attribute name="org.gtk.Method.get_property" value="formats"/>
<doc xml:space="preserve">Gets the formats that the clipboard can provide its current contents in.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The formats of the clipboard</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_local" c:identifier="gdk_clipboard_is_local">
<attribute name="org.gtk.Method.get_property" value="local"/>
<doc xml:space="preserve">Returns if the clipboard is local.
A clipboard is considered local if it was last claimed
by the running application.
Note that [method@Gdk.Clipboard.get_content] may return %NULL
even on a local clipboard. In this case the clipboard is empty.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the clipboard is local</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
</parameters>
</method>
<method name="read_async" c:identifier="gdk_clipboard_read_async">
<doc xml:space="preserve">Asynchronously requests an input stream to read the @clipboard's
contents from.
When the operation is finished @callback will be called. You must then
call [method@Gdk.Clipboard.read_finish] to get the result of the operation.
The clipboard will choose the most suitable mime type from the given list
to fulfill the request, preferring the ones listed first.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="mime_types" transfer-ownership="none">
<doc xml:space="preserve">a %NULL-terminated array of mime types to choose from</doc>
<array c:type="const char**">
<type name="utf8" c:type="char*"/>
</array>
</parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">the I/O priority of the request</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="4">
<doc xml:space="preserve">callback to call when the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the data to pass to callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="read_finish" c:identifier="gdk_clipboard_read_finish" throws="1">
<doc xml:space="preserve">Finishes an asynchronous clipboard read.
See [method@Gdk.Clipboard.read_async].</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a `GInputStream`</doc>
<type name="Gio.InputStream" c:type="GInputStream*"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
<parameter name="out_mime_type" direction="out" caller-allocates="0" transfer-ownership="none" optional="1" allow-none="1">
<doc xml:space="preserve">location to store
the chosen mime type</doc>
<type name="utf8" c:type="const char**"/>
</parameter>
</parameters>
</method>
<method name="read_text_async" c:identifier="gdk_clipboard_read_text_async">
<doc xml:space="preserve">Asynchronously request the @clipboard contents converted to a string.
When the operation is finished @callback will be called. You must then
call [method@Gdk.Clipboard.read_text_finish] to get the result.
This is a simple wrapper around [method@Gdk.Clipboard.read_value_async].
Use that function or [method@Gdk.Clipboard.read_async] directly if you
need more control over the operation.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="2">
<doc xml:space="preserve">callback to call when the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the data to pass to callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="read_text_finish" c:identifier="gdk_clipboard_read_text_finish" throws="1">
<doc xml:space="preserve">Finishes an asynchronous clipboard read.
See [method@Gdk.Clipboard.read_text_async].</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a new string</doc>
<type name="utf8" c:type="char*"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
</method>
<method name="read_texture_async" c:identifier="gdk_clipboard_read_texture_async">
<doc xml:space="preserve">Asynchronously request the @clipboard contents converted to a `GdkPixbuf`.
When the operation is finished @callback will be called. You must then
call [method@Gdk.Clipboard.read_texture_finish] to get the result.
This is a simple wrapper around [method@Gdk.Clipboard.read_value_async].
Use that function or [method@Gdk.Clipboard.read_async] directly if you
need more control over the operation.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object, %NULL to ignore.</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="2">
<doc xml:space="preserve">callback to call when the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the data to pass to callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="read_texture_finish" c:identifier="gdk_clipboard_read_texture_finish" throws="1">
<doc xml:space="preserve">Finishes an asynchronous clipboard read.
See [method@Gdk.Clipboard.read_texture_async].</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a new `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
</method>
<method name="read_value_async" c:identifier="gdk_clipboard_read_value_async">
<doc xml:space="preserve">Asynchronously request the @clipboard contents converted to the given
@type.
When the operation is finished @callback will be called. You must then call
[method@Gdk.Clipboard.read_value_finish] to get the resulting `GValue`.
For local clipboard contents that are available in the given `GType`,
the value will be copied directly. Otherwise, GDK will try to use
[func@content_deserialize_async] to convert the clipboard's data.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">a `GType` to read</doc>
<type name="GType" c:type="GType"/>
</parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">the I/O priority of the request</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="4">
<doc xml:space="preserve">callback to call when the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the data to pass to callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="read_value_finish" c:identifier="gdk_clipboard_read_value_finish" throws="1">
<doc xml:space="preserve">Finishes an asynchronous clipboard read.
See [method@Gdk.Clipboard.read_value_async].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GValue` containing the result.</doc>
<type name="GObject.Value" c:type="const GValue*"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
</method>
<method name="set" c:identifier="gdk_clipboard_set" shadowed-by="set_value" introspectable="0">
<doc xml:space="preserve">Sets the clipboard to contain the value collected from the given varargs.
Values should be passed the same way they are passed to other value
collecting APIs, such as [`method@GObject.Object.set`] or
[`func@GObject.signal_emit`].
```c
gdk_clipboard_set (clipboard, GTK_TYPE_STRING, "Hello World");
gdk_clipboard_set (clipboard, GDK_TYPE_TEXTURE, some_texture);
```</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">type of value to set</doc>
<type name="GType" c:type="GType"/>
</parameter>
<parameter name="..." transfer-ownership="none">
<doc xml:space="preserve">value contents conforming to @type</doc>
<varargs/>
</parameter>
</parameters>
</method>
<method name="set_content" c:identifier="gdk_clipboard_set_content">
<doc xml:space="preserve">Sets a new content provider on @clipboard.
The clipboard will claim the `GdkDisplay`'s resources and advertise
these new contents to other applications.
In the rare case of a failure, this function will return %FALSE. The
clipboard will then continue reporting its old contents and ignore
@provider.
If the contents are read by either an external application or the
@clipboard's read functions, @clipboard will select the best format to
transfer the contents and then request that format from @provider.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if setting the clipboard succeeded</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="provider" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the new contents of @clipboard
or %NULL to clear the clipboard</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
</parameters>
</method>
<method name="set_text" c:identifier="gdk_clipboard_set_text" introspectable="0">
<doc xml:space="preserve">Puts the given @text into the clipboard.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="text" transfer-ownership="none">
<doc xml:space="preserve">Text to put into the clipboard</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="set_texture" c:identifier="gdk_clipboard_set_texture" introspectable="0">
<doc xml:space="preserve">Puts the given @texture into the clipboard.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture` to put into the clipboard</doc>
<type name="Texture" c:type="GdkTexture*"/>
</parameter>
</parameters>
</method>
<method name="set_valist" c:identifier="gdk_clipboard_set_valist" introspectable="0">
<doc xml:space="preserve">Sets the clipboard to contain the value collected from the given @args.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">type of value to set</doc>
<type name="GType" c:type="GType"/>
</parameter>
<parameter name="args" transfer-ownership="none">
<doc xml:space="preserve">varargs containing the value of @type</doc>
<type name="va_list" c:type="va_list"/>
</parameter>
</parameters>
</method>
<method name="set_value" c:identifier="gdk_clipboard_set_value" shadows="set">
<doc xml:space="preserve">Sets the @clipboard to contain the given @value.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="value" transfer-ownership="none">
<doc xml:space="preserve">a `GValue` to set</doc>
<type name="GObject.Value" c:type="const GValue*"/>
</parameter>
</parameters>
</method>
<method name="store_async" c:identifier="gdk_clipboard_store_async">
<doc xml:space="preserve">Asynchronously instructs the @clipboard to store its contents remotely.
If the clipboard is not local, this function does nothing but report success.
The @callback must call [method@Gdk.Clipboard.store_finish].
The purpose of this call is to preserve clipboard contents beyond the
lifetime of an application, so this function is typically called on
exit. Depending on the platform, the functionality may not be available
unless a "clipboard manager" is running.
This function is called automatically when a [class@Gtk.Application] is
shut down, so you likely don't need to call it.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">the I/O priority of the request</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="3">
<doc xml:space="preserve">callback to call when the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the data to pass to callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="store_finish" c:identifier="gdk_clipboard_store_finish" throws="1">
<doc xml:space="preserve">Finishes an asynchronous clipboard store.
See [method@Gdk.Clipboard.store_async].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if storing was successful.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="clipboard" transfer-ownership="none">
<doc xml:space="preserve">a `GdkClipboard`</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</instance-parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
</method>
<property name="content" transfer-ownership="none" getter="get_content">
<attribute name="org.gtk.Property.get" value="gdk_clipboard_get_content"/>
<doc xml:space="preserve">The `GdkContentProvider` or %NULL if the clipboard is empty or contents are
provided otherwise.</doc>
<type name="ContentProvider"/>
</property>
<property name="display" writable="1" construct-only="1" transfer-ownership="none" getter="get_display">
<attribute name="org.gtk.Property.get" value="gdk_clipboard_get_display"/>
<doc xml:space="preserve">The `GdkDisplay` that the clipboard belongs to.</doc>
<type name="Display"/>
</property>
<property name="formats" transfer-ownership="none" getter="get_formats">
<attribute name="org.gtk.Property.get" value="gdk_clipboard_get_formats"/>
<doc xml:space="preserve">The possible formats that the clipboard can provide its data in.</doc>
<type name="ContentFormats"/>
</property>
<property name="local" transfer-ownership="none">
<attribute name="org.gtk.Property.get" value="gdk_clipboard_is_local"/>
<doc xml:space="preserve">%TRUE if the contents of the clipboard are owned by this process.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<glib:signal name="changed" when="last">
<doc xml:space="preserve">Emitted when the clipboard changes ownership.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
</class>
<callback name="ContentDeserializeFunc" c:type="GdkContentDeserializeFunc">
<doc xml:space="preserve">The type of a function that can be registered with gdk_content_register_deserializer().
When the function gets called to operate on content, it can call functions on the
@deserializer object to obtain the mime type, input stream, user data, etc. for its
operation.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</parameter>
</parameters>
</callback>
<class name="ContentDeserializer" c:symbol-prefix="content_deserializer" c:type="GdkContentDeserializer" parent="GObject.Object" glib:type-name="GdkContentDeserializer" glib:get-type="gdk_content_deserializer_get_type">
<doc xml:space="preserve">A `GdkContentDeserializer` is used to deserialize content received via
inter-application data transfers.
The `GdkContentDeserializer` transforms serialized content that is
identified by a mime type into an object identified by a GType.
GTK provides serializers and deserializers for common data types
such as text, colors, images or file lists. To register your own
deserialization functions, use [func@content_register_deserializer].
Also see [class@Gdk.ContentSerializer].</doc>
<implements name="Gio.AsyncResult"/>
<method name="get_cancellable" c:identifier="gdk_content_deserializer_get_cancellable">
<doc xml:space="preserve">Gets the cancellable for the current operation.
This is the `GCancellable` that was passed to [func@Gdk.content_deserialize_async].</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the cancellable for the current operation</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_gtype" c:identifier="gdk_content_deserializer_get_gtype">
<doc xml:space="preserve">Gets the `GType` to create an instance of.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the `GType` for the current operation</doc>
<type name="GType" c:type="GType"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_input_stream" c:identifier="gdk_content_deserializer_get_input_stream">
<doc xml:space="preserve">Gets the input stream for the current operation.
This is the stream that was passed to [func@Gdk.content_deserialize_async].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the input stream for the current operation</doc>
<type name="Gio.InputStream" c:type="GInputStream*"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_mime_type" c:identifier="gdk_content_deserializer_get_mime_type">
<doc xml:space="preserve">Gets the mime type to deserialize from.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the mime type for the current operation</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_priority" c:identifier="gdk_content_deserializer_get_priority">
<doc xml:space="preserve">Gets the I/O priority for the current operation.
This is the priority that was passed to [func@Gdk.content_deserialize_async].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the I/O priority for the current operation</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_task_data" c:identifier="gdk_content_deserializer_get_task_data">
<doc xml:space="preserve">Gets the data that was associated with the current operation.
See [method@Gdk.ContentDeserializer.set_task_data].</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the task data for @deserializer</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_user_data" c:identifier="gdk_content_deserializer_get_user_data">
<doc xml:space="preserve">Gets the user data that was passed when the deserializer was registered.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the user data for this deserializer</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_value" c:identifier="gdk_content_deserializer_get_value">
<doc xml:space="preserve">Gets the `GValue` to store the deserialized object in.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the `GValue` for the current operation</doc>
<type name="GObject.Value" c:type="GValue*"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="return_error" c:identifier="gdk_content_deserializer_return_error">
<doc xml:space="preserve">Indicate that the deserialization has ended with an error.
This function consumes @error.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
<parameter name="error" transfer-ownership="full">
<doc xml:space="preserve">a `GError`</doc>
<type name="GLib.Error" c:type="GError*"/>
</parameter>
</parameters>
</method>
<method name="return_success" c:identifier="gdk_content_deserializer_return_success">
<doc xml:space="preserve">Indicate that the deserialization has been successfully completed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_task_data" c:identifier="gdk_content_deserializer_set_task_data">
<doc xml:space="preserve">Associate data with the current deserialization operation.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="deserializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentDeserializer`</doc>
<type name="ContentDeserializer" c:type="GdkContentDeserializer*"/>
</instance-parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">data to associate with this operation</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<doc xml:space="preserve">destroy notify for @data</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</method>
</class>
<record name="ContentFormats" c:type="GdkContentFormats" glib:type-name="GdkContentFormats" glib:get-type="gdk_content_formats_get_type" c:symbol-prefix="content_formats">
<doc xml:space="preserve">The `GdkContentFormats` structure is used to advertise and negotiate the
format of content.
You will encounter `GdkContentFormats` when interacting with objects
controlling operations that pass data between different widgets, window
or application, like [class@Gdk.Drag], [class@Gdk.Drop],
[class@Gdk.Clipboard] or [class@Gdk.ContentProvider].
GDK supports content in 2 forms: `GType` and mime type.
Using `GTypes` is meant only for in-process content transfers. Mime types
are meant to be used for data passing both in-process and out-of-process.
The details of how data is passed is described in the documentation of
the actual implementations. To transform between the two forms,
[class@Gdk.ContentSerializer] and [class@Gdk.ContentDeserializer] are used.
A `GdkContentFormats` describes a set of possible formats content can be
exchanged in. It is assumed that this set is ordered. `GTypes` are more
important than mime types. Order between different `GTypes` or mime types
is the order they were added in, most important first. Functions that
care about order, such as [method@Gdk.ContentFormats.union], will describe
in their documentation how they interpret that order, though in general the
order of the first argument is considered the primary order of the result,
followed by the order of further arguments.
For debugging purposes, the function [method@Gdk.ContentFormats.to_string]
exists. It will print a comma-separated list of formats from most important
to least important.
`GdkContentFormats` is an immutable struct. After creation, you cannot change
the types it represents. Instead, new `GdkContentFormats` have to be created.
The [struct@Gdk.ContentFormatsBuilder] structure is meant to help in this
endeavor.</doc>
<constructor name="new" c:identifier="gdk_content_formats_new">
<doc xml:space="preserve">Creates a new `GdkContentFormats` from an array of mime types.
The mime types must be valid and different from each other or the
behavior of the return value is undefined. If you cannot guarantee
this, use [struct@Gdk.ContentFormatsBuilder] instead.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the new `GdkContentFormats`.</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<parameter name="mime_types" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">Pointer to an
array of mime types</doc>
<array length="1" zero-terminated="0" c:type="const char**">
<type name="utf8" c:type="char*"/>
</array>
</parameter>
<parameter name="n_mime_types" transfer-ownership="none">
<doc xml:space="preserve">number of entries in @mime_types.</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_for_gtype" c:identifier="gdk_content_formats_new_for_gtype">
<doc xml:space="preserve">Creates a new `GdkContentFormats` for a given `GType`.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">a `GType`</doc>
<type name="GType" c:type="GType"/>
</parameter>
</parameters>
</constructor>
<method name="contain_gtype" c:identifier="gdk_content_formats_contain_gtype">
<doc xml:space="preserve">Checks if a given `GType` is part of the given @formats.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the `GType` was found</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</instance-parameter>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">the `GType` to search for</doc>
<type name="GType" c:type="GType"/>
</parameter>
</parameters>
</method>
<method name="contain_mime_type" c:identifier="gdk_content_formats_contain_mime_type">
<doc xml:space="preserve">Checks if a given mime type is part of the given @formats.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the mime_type was found</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</instance-parameter>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">the mime type to search for</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="get_gtypes" c:identifier="gdk_content_formats_get_gtypes">
<doc xml:space="preserve">Gets the `GType`s included in @formats.
Note that @formats may not contain any `GType`s, in particular when
they are empty. In that case %NULL will be returned.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">
%G_TYPE_INVALID-terminated array of types included in @formats</doc>
<array length="0" zero-terminated="1" c:type="const GType*">
<type name="GType" c:type="GType"/>
</array>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</instance-parameter>
<parameter name="n_gtypes" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">optional pointer to take the
number of `GType`s contained in the return value</doc>
<type name="gsize" c:type="gsize*"/>
</parameter>
</parameters>
</method>
<method name="get_mime_types" c:identifier="gdk_content_formats_get_mime_types">
<doc xml:space="preserve">Gets the mime types included in @formats.
Note that @formats may not contain any mime types, in particular
when they are empty. In that case %NULL will be returned.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">
%NULL-terminated array of interned strings of mime types included
in @formats</doc>
<array length="0" zero-terminated="1" c:type="const char* const*">
<type name="utf8"/>
</array>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</instance-parameter>
<parameter name="n_mime_types" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">optional pointer to take the
number of mime types contained in the return value</doc>
<type name="gsize" c:type="gsize*"/>
</parameter>
</parameters>
</method>
<method name="match" c:identifier="gdk_content_formats_match">
<doc xml:space="preserve">Checks if @first and @second have any matching formats.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if a matching format was found.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="first" transfer-ownership="none">
<doc xml:space="preserve">the primary `GdkContentFormats` to intersect</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</instance-parameter>
<parameter name="second" transfer-ownership="none">
<doc xml:space="preserve">the `GdkContentFormats` to intersect with</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</parameter>
</parameters>
</method>
<method name="match_gtype" c:identifier="gdk_content_formats_match_gtype">
<doc xml:space="preserve">Finds the first `GType` from @first that is also contained
in @second.
If no matching `GType` is found, %G_TYPE_INVALID is returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The first common `GType` or %G_TYPE_INVALID if none.</doc>
<type name="GType" c:type="GType"/>
</return-value>
<parameters>
<instance-parameter name="first" transfer-ownership="none">
<doc xml:space="preserve">the primary `GdkContentFormats` to intersect</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</instance-parameter>
<parameter name="second" transfer-ownership="none">
<doc xml:space="preserve">the `GdkContentFormats` to intersect with</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</parameter>
</parameters>
</method>
<method name="match_mime_type" c:identifier="gdk_content_formats_match_mime_type">
<doc xml:space="preserve">Finds the first mime type from @first that is also contained
in @second.
If no matching mime type is found, %NULL is returned.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">The first common mime type or %NULL if none</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="first" transfer-ownership="none">
<doc xml:space="preserve">the primary `GdkContentFormats` to intersect</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</instance-parameter>
<parameter name="second" transfer-ownership="none">
<doc xml:space="preserve">the `GdkContentFormats` to intersect with</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</parameter>
</parameters>
</method>
<method name="print" c:identifier="gdk_content_formats_print">
<doc xml:space="preserve">Prints the given @formats into a string for human consumption.
The result of this function can later be parsed with
[func@Gdk.ContentFormats.parse].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</instance-parameter>
<parameter name="string" transfer-ownership="none">
<doc xml:space="preserve">a `GString` to print into</doc>
<type name="GLib.String" c:type="GString*"/>
</parameter>
</parameters>
</method>
<method name="ref" c:identifier="gdk_content_formats_ref">
<doc xml:space="preserve">Increases the reference count of a `GdkContentFormats` by one.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the passed in `GdkContentFormats`.</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</instance-parameter>
</parameters>
</method>
<method name="to_string" c:identifier="gdk_content_formats_to_string">
<doc xml:space="preserve">Prints the given @formats into a human-readable string.
The resulting string can be parsed with [func@Gdk.ContentFormats.parse].
This is a small wrapper around [method@Gdk.ContentFormats.print]
to help when debugging.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new string</doc>
<type name="utf8" c:type="char*"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</instance-parameter>
</parameters>
</method>
<method name="union" c:identifier="gdk_content_formats_union">
<doc xml:space="preserve">Append all missing types from @second to @first, in the order
they had in @second.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="first" transfer-ownership="full">
<doc xml:space="preserve">the `GdkContentFormats` to merge into</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</instance-parameter>
<parameter name="second" transfer-ownership="none">
<doc xml:space="preserve">the `GdkContentFormats` to merge from</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</parameter>
</parameters>
</method>
<method name="union_deserialize_gtypes" c:identifier="gdk_content_formats_union_deserialize_gtypes">
<doc xml:space="preserve">Add GTypes for mime types in @formats for which deserializers are
registered.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="full">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</instance-parameter>
</parameters>
</method>
<method name="union_deserialize_mime_types" c:identifier="gdk_content_formats_union_deserialize_mime_types">
<doc xml:space="preserve">Add mime types for GTypes in @formats for which deserializers are
registered.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="full">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</instance-parameter>
</parameters>
</method>
<method name="union_serialize_gtypes" c:identifier="gdk_content_formats_union_serialize_gtypes">
<doc xml:space="preserve">Add GTypes for the mime types in @formats for which serializers are
registered.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="full">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</instance-parameter>
</parameters>
</method>
<method name="union_serialize_mime_types" c:identifier="gdk_content_formats_union_serialize_mime_types">
<doc xml:space="preserve">Add mime types for GTypes in @formats for which serializers are
registered.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="full">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</instance-parameter>
</parameters>
</method>
<method name="unref" c:identifier="gdk_content_formats_unref">
<doc xml:space="preserve">Decreases the reference count of a `GdkContentFormats` by one.
If the resulting reference count is zero, frees the formats.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="formats" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</instance-parameter>
</parameters>
</method>
<function name="parse" c:identifier="gdk_content_formats_parse" version="4.4">
<doc xml:space="preserve">Parses the given @string into `GdkContentFormats` and
returns the formats.
Strings printed via [method@Gdk.ContentFormats.to_string]
can be read in again successfully using this function.
If @string does not describe valid content formats, %NULL
is returned.</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">the content formats if @string is valid</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<parameter name="string" transfer-ownership="none">
<doc xml:space="preserve">the string to parse</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</function>
</record>
<record name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder" glib:type-name="GdkContentFormatsBuilder" glib:get-type="gdk_content_formats_builder_get_type" c:symbol-prefix="content_formats_builder">
<doc xml:space="preserve">A `GdkContentFormatsBuilder` is an auxiliary struct used to create
new `GdkContentFormats`, and should not be kept around.</doc>
<constructor name="new" c:identifier="gdk_content_formats_builder_new">
<doc xml:space="preserve">Create a new `GdkContentFormatsBuilder` object.
The resulting builder would create an empty `GdkContentFormats`.
Use addition functions to add types to it.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentFormatsBuilder`</doc>
<type name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder*"/>
</return-value>
</constructor>
<method name="add_formats" c:identifier="gdk_content_formats_builder_add_formats">
<doc xml:space="preserve">Appends all formats from @formats to @builder, skipping those that
already exist.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="builder" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormatsBuilder`</doc>
<type name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder*"/>
</instance-parameter>
<parameter name="formats" transfer-ownership="none">
<doc xml:space="preserve">the formats to add</doc>
<type name="ContentFormats" c:type="const GdkContentFormats*"/>
</parameter>
</parameters>
</method>
<method name="add_gtype" c:identifier="gdk_content_formats_builder_add_gtype">
<doc xml:space="preserve">Appends @type to @builder if it has not already been added.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="builder" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`Builder</doc>
<type name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder*"/>
</instance-parameter>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">a `GType`</doc>
<type name="GType" c:type="GType"/>
</parameter>
</parameters>
</method>
<method name="add_mime_type" c:identifier="gdk_content_formats_builder_add_mime_type">
<doc xml:space="preserve">Appends @mime_type to @builder if it has not already been added.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="builder" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormatsBuilder`</doc>
<type name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder*"/>
</instance-parameter>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">a mime type</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="free_to_formats" c:identifier="gdk_content_formats_builder_free_to_formats" introspectable="0">
<doc xml:space="preserve">Creates a new `GdkContentFormats` from the current state of the
given @builder, and frees the @builder instance.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created `GdkContentFormats`
with all the formats added to @builder</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="builder" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormatsBuilder`</doc>
<type name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder*"/>
</instance-parameter>
</parameters>
</method>
<method name="ref" c:identifier="gdk_content_formats_builder_ref">
<doc xml:space="preserve">Acquires a reference on the given @builder.
This function is intended primarily for bindings.
`GdkContentFormatsBuilder` objects should not be kept around.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the given `GdkContentFormatsBuilder`
with its reference count increased</doc>
<type name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder*"/>
</return-value>
<parameters>
<instance-parameter name="builder" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormatsBuilder`</doc>
<type name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder*"/>
</instance-parameter>
</parameters>
</method>
<method name="to_formats" c:identifier="gdk_content_formats_builder_to_formats">
<doc xml:space="preserve">Creates a new `GdkContentFormats` from the given @builder.
The given `GdkContentFormatsBuilder` is reset once this function returns;
you cannot call this function multiple times on the same @builder instance.
This function is intended primarily for bindings. C code should use
[method@Gdk.ContentFormatsBuilder.free_to_formats].</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created `GdkContentFormats`
with all the formats added to @builder</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="builder" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`Builder</doc>
<type name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder*"/>
</instance-parameter>
</parameters>
</method>
<method name="unref" c:identifier="gdk_content_formats_builder_unref">
<doc xml:space="preserve">Releases a reference on the given @builder.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="builder" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormatsBuilder`</doc>
<type name="ContentFormatsBuilder" c:type="GdkContentFormatsBuilder*"/>
</instance-parameter>
</parameters>
</method>
</record>
<class name="ContentProvider" c:symbol-prefix="content_provider" c:type="GdkContentProvider" parent="GObject.Object" glib:type-name="GdkContentProvider" glib:get-type="gdk_content_provider_get_type" glib:type-struct="ContentProviderClass">
<doc xml:space="preserve">A `GdkContentProvider` is used to provide content for the clipboard or
for drag-and-drop operations in a number of formats.
To create a `GdkContentProvider`, use [ctor@Gdk.ContentProvider.new_for_value]
or [ctor@Gdk.ContentProvider.new_for_bytes].
GDK knows how to handle common text and image formats out-of-the-box. See
[class@Gdk.ContentSerializer] and [class@Gdk.ContentDeserializer] if you want
to add support for application-specific data formats.</doc>
<constructor name="new_for_bytes" c:identifier="gdk_content_provider_new_for_bytes">
<doc xml:space="preserve">Create a content provider that provides the given @bytes as data for
the given @mime_type.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</return-value>
<parameters>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">the mime type</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="bytes" transfer-ownership="none">
<doc xml:space="preserve">a `GBytes` with the data for @mime_type</doc>
<type name="GLib.Bytes" c:type="GBytes*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_for_value" c:identifier="gdk_content_provider_new_for_value">
<doc xml:space="preserve">Create a content provider that provides the given @value.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</return-value>
<parameters>
<parameter name="value" transfer-ownership="none">
<doc xml:space="preserve">a `GValue`</doc>
<type name="GObject.Value" c:type="const GValue*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_typed" c:identifier="gdk_content_provider_new_typed" introspectable="0">
<doc xml:space="preserve">Create a content provider that provides the value of the given
@type.
The value is provided using G_VALUE_COLLECT(), so the same rules
apply as when calling g_object_new() or g_object_set().</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</return-value>
<parameters>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">Type of value to follow</doc>
<type name="GType" c:type="GType"/>
</parameter>
<parameter name="..." transfer-ownership="none">
<doc xml:space="preserve">value</doc>
<varargs/>
</parameter>
</parameters>
</constructor>
<constructor name="new_union" c:identifier="gdk_content_provider_new_union">
<doc xml:space="preserve">Creates a content provider that represents all the given @providers.
Whenever data needs to be written, the union provider will try the given
@providers in the given order and the first one supporting a format will
be chosen to provide it.
This allows an easy way to support providing data in different formats.
For example, an image may be provided by its file and by the image
contents with a call such as
```c
gdk_content_provider_new_union ((GdkContentProvider *[2]) {
gdk_content_provider_new_typed (G_TYPE_FILE, file),
gdk_content_provider_new_typed (G_TYPE_TEXTURE, texture)
}, 2);
```</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</return-value>
<parameters>
<parameter name="providers" transfer-ownership="full" nullable="1" allow-none="1">
<doc xml:space="preserve">
The `GdkContentProvider`s to present the union of</doc>
<array length="1" zero-terminated="0" c:type="GdkContentProvider**">
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</array>
</parameter>
<parameter name="n_providers" transfer-ownership="none">
<doc xml:space="preserve">the number of providers</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</constructor>
<virtual-method name="attach_clipboard">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
<parameter name="clipboard" transfer-ownership="none">
<type name="Clipboard" c:type="GdkClipboard*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="content_changed" invoker="content_changed">
<doc xml:space="preserve">Emits the ::content-changed signal.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="detach_clipboard">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
<parameter name="clipboard" transfer-ownership="none">
<type name="Clipboard" c:type="GdkClipboard*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="get_value" invoker="get_value" throws="1">
<doc xml:space="preserve">Gets the contents of @provider stored in @value.
The @value will have been initialized to the `GType` the value should be
provided in. This given `GType` does not need to be listed in the formats
returned by [method@Gdk.ContentProvider.ref_formats]. However, if the
given `GType` is not supported, this operation can fail and
`G_IO_ERROR_NOT_SUPPORTED` will be reported.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the value was set successfully. Otherwise
@error will be set to describe the failure.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
<parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve">the `GValue` to fill</doc>
<type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="ref_formats" invoker="ref_formats">
<attribute name="org.gtk.Method.get_property" value="formats"/>
<doc xml:space="preserve">Gets the formats that the provider can provide its current contents in.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">The formats of the provider</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="ref_storable_formats" invoker="ref_storable_formats">
<attribute name="org.gtk.Method.get_property" value="storable-formats"/>
<doc xml:space="preserve">Gets the formats that the provider suggests other applications to store
the data in.
An example of such an application would be a clipboard manager.
This can be assumed to be a subset of [method@Gdk.ContentProvider.ref_formats].</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">The storable formats of the provider</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="write_mime_type_async" invoker="write_mime_type_async">
<doc xml:space="preserve">Asynchronously writes the contents of @provider to @stream in the given
@mime_type.
When the operation is finished @callback will be called. You must then call
[method@Gdk.ContentProvider.write_mime_type_finish] to get the result
of the operation.
The given mime type does not need to be listed in the formats returned by
[method@Gdk.ContentProvider.ref_formats]. However, if the given `GType` is
not supported, `G_IO_ERROR_NOT_SUPPORTED` will be reported.
The given @stream will not be closed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">the mime type to provide the data in</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="stream" transfer-ownership="none">
<doc xml:space="preserve">the `GOutputStream` to write to</doc>
<type name="Gio.OutputStream" c:type="GOutputStream*"/>
</parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">I/O priority of the request.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object, %NULL to ignore.</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="5">
<doc xml:space="preserve">callback to call when the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="5">
<doc xml:space="preserve">the data to pass to callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="write_mime_type_finish" invoker="write_mime_type_finish" throws="1">
<doc xml:space="preserve">Finishes an asynchronous write operation.
See [method@Gdk.ContentProvider.write_mime_type_async].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the operation was completed successfully. Otherwise
@error will be set to describe the failure.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
</virtual-method>
<method name="content_changed" c:identifier="gdk_content_provider_content_changed">
<doc xml:space="preserve">Emits the ::content-changed signal.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_value" c:identifier="gdk_content_provider_get_value" throws="1">
<doc xml:space="preserve">Gets the contents of @provider stored in @value.
The @value will have been initialized to the `GType` the value should be
provided in. This given `GType` does not need to be listed in the formats
returned by [method@Gdk.ContentProvider.ref_formats]. However, if the
given `GType` is not supported, this operation can fail and
`G_IO_ERROR_NOT_SUPPORTED` will be reported.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the value was set successfully. Otherwise
@error will be set to describe the failure.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
<parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve">the `GValue` to fill</doc>
<type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
</method>
<method name="ref_formats" c:identifier="gdk_content_provider_ref_formats">
<attribute name="org.gtk.Method.get_property" value="formats"/>
<doc xml:space="preserve">Gets the formats that the provider can provide its current contents in.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">The formats of the provider</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
</parameters>
</method>
<method name="ref_storable_formats" c:identifier="gdk_content_provider_ref_storable_formats">
<attribute name="org.gtk.Method.get_property" value="storable-formats"/>
<doc xml:space="preserve">Gets the formats that the provider suggests other applications to store
the data in.
An example of such an application would be a clipboard manager.
This can be assumed to be a subset of [method@Gdk.ContentProvider.ref_formats].</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">The storable formats of the provider</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
</parameters>
</method>
<method name="write_mime_type_async" c:identifier="gdk_content_provider_write_mime_type_async">
<doc xml:space="preserve">Asynchronously writes the contents of @provider to @stream in the given
@mime_type.
When the operation is finished @callback will be called. You must then call
[method@Gdk.ContentProvider.write_mime_type_finish] to get the result
of the operation.
The given mime type does not need to be listed in the formats returned by
[method@Gdk.ContentProvider.ref_formats]. However, if the given `GType` is
not supported, `G_IO_ERROR_NOT_SUPPORTED` will be reported.
The given @stream will not be closed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">the mime type to provide the data in</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="stream" transfer-ownership="none">
<doc xml:space="preserve">the `GOutputStream` to write to</doc>
<type name="Gio.OutputStream" c:type="GOutputStream*"/>
</parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">I/O priority of the request.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object, %NULL to ignore.</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="5">
<doc xml:space="preserve">callback to call when the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the data to pass to callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="write_mime_type_finish" c:identifier="gdk_content_provider_write_mime_type_finish" throws="1">
<doc xml:space="preserve">Finishes an asynchronous write operation.
See [method@Gdk.ContentProvider.write_mime_type_async].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the operation was completed successfully. Otherwise
@error will be set to describe the failure.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</instance-parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
</method>
<property name="formats" transfer-ownership="none">
<attribute name="org.gtk.Property.get" value="gdk_content_provider_ref_formats"/>
<doc xml:space="preserve">The possible formats that the provider can provide its data in.</doc>
<type name="ContentFormats"/>
</property>
<property name="storable-formats" transfer-ownership="none">
<attribute name="org.gtk.Property.get" value="gdk_content_provider_ref_storable_formats"/>
<doc xml:space="preserve">The subset of formats that clipboard managers should store this provider's data in.</doc>
<type name="ContentFormats"/>
</property>
<field name="parent">
<type name="GObject.Object" c:type="GObject"/>
</field>
<glib:signal name="content-changed" when="last">
<doc xml:space="preserve">Emitted whenever the content provided by this provider has changed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
</class>
<record name="ContentProviderClass" c:type="GdkContentProviderClass" glib:is-gtype-struct-for="ContentProvider">
<doc xml:space="preserve">Class structure for `GdkContentProvider`.</doc>
<field name="parent_class">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
<field name="content_changed">
<callback name="content_changed">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="attach_clipboard">
<callback name="attach_clipboard">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="provider" transfer-ownership="none">
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
<parameter name="clipboard" transfer-ownership="none">
<type name="Clipboard" c:type="GdkClipboard*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="detach_clipboard">
<callback name="detach_clipboard">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="provider" transfer-ownership="none">
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
<parameter name="clipboard" transfer-ownership="none">
<type name="Clipboard" c:type="GdkClipboard*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="ref_formats">
<callback name="ref_formats">
<return-value transfer-ownership="full">
<doc xml:space="preserve">The formats of the provider</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="ref_storable_formats">
<callback name="ref_storable_formats">
<return-value transfer-ownership="full">
<doc xml:space="preserve">The storable formats of the provider</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="write_mime_type_async">
<callback name="write_mime_type_async">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">the mime type to provide the data in</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="stream" transfer-ownership="none">
<doc xml:space="preserve">the `GOutputStream` to write to</doc>
<type name="Gio.OutputStream" c:type="GOutputStream*"/>
</parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">I/O priority of the request.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object, %NULL to ignore.</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="6">
<doc xml:space="preserve">callback to call when the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="6">
<doc xml:space="preserve">the data to pass to callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
</field>
<field name="write_mime_type_finish">
<callback name="write_mime_type_finish" throws="1">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the operation was completed successfully. Otherwise
@error will be set to describe the failure.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_value">
<callback name="get_value" throws="1">
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the value was set successfully. Otherwise
@error will be set to describe the failure.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="provider" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentProvider`</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
<parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve">the `GValue` to fill</doc>
<type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="padding" readable="0" private="1">
<array zero-terminated="0" fixed-size="8">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<callback name="ContentSerializeFunc" c:type="GdkContentSerializeFunc">
<doc xml:space="preserve">The type of a function that can be registered with gdk_content_register_serializer().
When the function gets called to operate on content, it can call functions on the
@serializer object to obtain the mime type, output stream, user data, etc. for its
operation.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</parameter>
</parameters>
</callback>
<class name="ContentSerializer" c:symbol-prefix="content_serializer" c:type="GdkContentSerializer" parent="GObject.Object" glib:type-name="GdkContentSerializer" glib:get-type="gdk_content_serializer_get_type">
<doc xml:space="preserve">A `GdkContentSerializer` is used to serialize content for
inter-application data transfers.
The `GdkContentSerializer` transforms an object that is identified
by a GType into a serialized form (i.e. a byte stream) that is
identified by a mime type.
GTK provides serializers and deserializers for common data types
such as text, colors, images or file lists. To register your own
serialization functions, use [func@Gdk.content_register_serializer].
Also see [class@Gdk.ContentDeserializer].</doc>
<implements name="Gio.AsyncResult"/>
<method name="get_cancellable" c:identifier="gdk_content_serializer_get_cancellable">
<doc xml:space="preserve">Gets the cancellable for the current operation.
This is the `GCancellable` that was passed to [func@content_serialize_async].</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the cancellable for the current operation</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_gtype" c:identifier="gdk_content_serializer_get_gtype">
<doc xml:space="preserve">Gets the `GType` to of the object to serialize.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the `GType` for the current operation</doc>
<type name="GType" c:type="GType"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_mime_type" c:identifier="gdk_content_serializer_get_mime_type">
<doc xml:space="preserve">Gets the mime type to serialize to.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the mime type for the current operation</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_output_stream" c:identifier="gdk_content_serializer_get_output_stream">
<doc xml:space="preserve">Gets the output stream for the current operation.
This is the stream that was passed to [func@content_serialize_async].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the output stream for the current operation</doc>
<type name="Gio.OutputStream" c:type="GOutputStream*"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_priority" c:identifier="gdk_content_serializer_get_priority">
<doc xml:space="preserve">Gets the I/O priority for the current operation.
This is the priority that was passed to [func@content_serialize_async].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the I/O priority for the current operation</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_task_data" c:identifier="gdk_content_serializer_get_task_data">
<doc xml:space="preserve">Gets the data that was associated with the current operation.
See [method@Gdk.ContentSerializer.set_task_data].</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the task data for @serializer</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_user_data" c:identifier="gdk_content_serializer_get_user_data">
<doc xml:space="preserve">Gets the user data that was passed when the serializer was registered.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the user data for this serializer</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_value" c:identifier="gdk_content_serializer_get_value">
<doc xml:space="preserve">Gets the `GValue` to read the object to serialize from.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the `GValue` for the current operation</doc>
<type name="GObject.Value" c:type="const GValue*"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="return_error" c:identifier="gdk_content_serializer_return_error">
<doc xml:space="preserve">Indicate that the serialization has ended with an error.
This function consumes @error.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
<parameter name="error" transfer-ownership="full">
<doc xml:space="preserve">a `GError`</doc>
<type name="GLib.Error" c:type="GError*"/>
</parameter>
</parameters>
</method>
<method name="return_success" c:identifier="gdk_content_serializer_return_success">
<doc xml:space="preserve">Indicate that the serialization has been successfully completed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_task_data" c:identifier="gdk_content_serializer_set_task_data">
<doc xml:space="preserve">Associate data with the current serialization operation.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="serializer" transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentSerializer`</doc>
<type name="ContentSerializer" c:type="GdkContentSerializer*"/>
</instance-parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">data to associate with this operation</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<doc xml:space="preserve">destroy notify for @data</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</method>
</class>
<class name="CrossingEvent" c:symbol-prefix="crossing_event" c:type="GdkCrossingEvent" parent="Event" glib:type-name="GdkCrossingEvent" glib:get-type="gdk_crossing_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event caused by a pointing device moving between surfaces.</doc>
<method name="get_detail" c:identifier="gdk_crossing_event_get_detail">
<doc xml:space="preserve">Extracts the notify detail from a crossing event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the notify detail of @event</doc>
<type name="NotifyType" c:type="GdkNotifyType"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a crossing event</doc>
<type name="CrossingEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_focus" c:identifier="gdk_crossing_event_get_focus">
<doc xml:space="preserve">Checks if the @event surface is the focus surface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the surface is the focus surface</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a crossing event</doc>
<type name="CrossingEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_mode" c:identifier="gdk_crossing_event_get_mode">
<doc xml:space="preserve">Extracts the crossing mode from a crossing event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the mode of @event</doc>
<type name="CrossingMode" c:type="GdkCrossingMode"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a crossing event</doc>
<type name="CrossingEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
</class>
<enumeration name="CrossingMode" glib:type-name="GdkCrossingMode" glib:get-type="gdk_crossing_mode_get_type" c:type="GdkCrossingMode">
<doc xml:space="preserve">Specifies the crossing mode for enter and leave events.</doc>
<member name="normal" value="0" c:identifier="GDK_CROSSING_NORMAL" glib:nick="normal" glib:name="GDK_CROSSING_NORMAL">
<doc xml:space="preserve">crossing because of pointer motion.</doc>
</member>
<member name="grab" value="1" c:identifier="GDK_CROSSING_GRAB" glib:nick="grab" glib:name="GDK_CROSSING_GRAB">
<doc xml:space="preserve">crossing because a grab is activated.</doc>
</member>
<member name="ungrab" value="2" c:identifier="GDK_CROSSING_UNGRAB" glib:nick="ungrab" glib:name="GDK_CROSSING_UNGRAB">
<doc xml:space="preserve">crossing because a grab is deactivated.</doc>
</member>
<member name="gtk_grab" value="3" c:identifier="GDK_CROSSING_GTK_GRAB" glib:nick="gtk-grab" glib:name="GDK_CROSSING_GTK_GRAB">
<doc xml:space="preserve">crossing because a GTK grab is activated.</doc>
</member>
<member name="gtk_ungrab" value="4" c:identifier="GDK_CROSSING_GTK_UNGRAB" glib:nick="gtk-ungrab" glib:name="GDK_CROSSING_GTK_UNGRAB">
<doc xml:space="preserve">crossing because a GTK grab is deactivated.</doc>
</member>
<member name="state_changed" value="5" c:identifier="GDK_CROSSING_STATE_CHANGED" glib:nick="state-changed" glib:name="GDK_CROSSING_STATE_CHANGED">
<doc xml:space="preserve">crossing because a GTK widget changed
state (e.g. sensitivity).</doc>
</member>
<member name="touch_begin" value="6" c:identifier="GDK_CROSSING_TOUCH_BEGIN" glib:nick="touch-begin" glib:name="GDK_CROSSING_TOUCH_BEGIN">
<doc xml:space="preserve">crossing because a touch sequence has begun,
this event is synthetic as the pointer might have not left the surface.</doc>
</member>
<member name="touch_end" value="7" c:identifier="GDK_CROSSING_TOUCH_END" glib:nick="touch-end" glib:name="GDK_CROSSING_TOUCH_END">
<doc xml:space="preserve">crossing because a touch sequence has ended,
this event is synthetic as the pointer might have not left the surface.</doc>
</member>
<member name="device_switch" value="8" c:identifier="GDK_CROSSING_DEVICE_SWITCH" glib:nick="device-switch" glib:name="GDK_CROSSING_DEVICE_SWITCH">
<doc xml:space="preserve">crossing because of a device switch (i.e.
a mouse taking control of the pointer after a touch device), this event
is synthetic as the pointer didn&#x2019;t leave the surface.</doc>
</member>
</enumeration>
<class name="Cursor" c:symbol-prefix="cursor" c:type="GdkCursor" parent="GObject.Object" glib:type-name="GdkCursor" glib:get-type="gdk_cursor_get_type">
<doc xml:space="preserve">`GdkCursor` is used to create and destroy cursors.
Cursors are immutable objects, so once you created them, there is no way
to modify them later. You should create a new cursor when you want to change
something about it.
Cursors by themselves are not very interesting: they must be bound to a
window for users to see them. This is done with [method@Gdk.Surface.set_cursor]
or [method@Gdk.Surface.set_device_cursor]. Applications will typically
use higher-level GTK functions such as [method@Gtk.Widget.set_cursor] instead.
Cursors are not bound to a given [class@Gdk.Display], so they can be shared.
However, the appearance of cursors may vary when used on different
platforms.
## Named and texture cursors
There are multiple ways to create cursors. The platform's own cursors
can be created with [ctor@Gdk.Cursor.new_from_name]. That function lists
the commonly available names that are shared with the CSS specification.
Other names may be available, depending on the platform in use. On some
platforms, what images are used for named cursors may be influenced by
the cursor theme.
Another option to create a cursor is to use [ctor@Gdk.Cursor.new_from_texture]
and provide an image to use for the cursor.
To ease work with unsupported cursors, a fallback cursor can be provided.
If a [class@Gdk.Surface] cannot use a cursor because of the reasons mentioned
above, it will try the fallback cursor. Fallback cursors can themselves have
fallback cursors again, so it is possible to provide a chain of progressively
easier to support cursors. If none of the provided cursors can be supported,
the default cursor will be the ultimate fallback.</doc>
<constructor name="new_from_name" c:identifier="gdk_cursor_new_from_name">
<doc xml:space="preserve">Creates a new cursor by looking up @name in the current cursor
theme.
A recommended set of cursor names that will work across different
platforms can be found in the CSS specification:
| | | | |
| --- | --- | ---- | --- |
| "none" | ![](default_cursor.png) "default" | ![](help_cursor.png) "help" | ![](pointer_cursor.png) "pointer" |
| ![](context_menu_cursor.png) "context-menu" | ![](progress_cursor.png) "progress" | ![](wait_cursor.png) "wait" | ![](cell_cursor.png) "cell" |
| ![](crosshair_cursor.png) "crosshair" | ![](text_cursor.png) "text" | ![](vertical_text_cursor.png) "vertical-text" | ![](alias_cursor.png) "alias" |
| ![](copy_cursor.png) "copy" | ![](no_drop_cursor.png) "no-drop" | ![](move_cursor.png) "move" | ![](not_allowed_cursor.png) "not-allowed" |
| ![](grab_cursor.png) "grab" | ![](grabbing_cursor.png) "grabbing" | ![](all_scroll_cursor.png) "all-scroll" | ![](col_resize_cursor.png) "col-resize" |
| ![](row_resize_cursor.png) "row-resize" | ![](n_resize_cursor.png) "n-resize" | ![](e_resize_cursor.png) "e-resize" | ![](s_resize_cursor.png) "s-resize" |
| ![](w_resize_cursor.png) "w-resize" | ![](ne_resize_cursor.png) "ne-resize" | ![](nw_resize_cursor.png) "nw-resize" | ![](sw_resize_cursor.png) "sw-resize" |
| ![](se_resize_cursor.png) "se-resize" | ![](ew_resize_cursor.png) "ew-resize" | ![](ns_resize_cursor.png) "ns-resize" | ![](nesw_resize_cursor.png) "nesw-resize" |
| ![](nwse_resize_cursor.png) "nwse-resize" | ![](zoom_in_cursor.png) "zoom-in" | ![](zoom_out_cursor.png) "zoom-out" | |</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a new `GdkCursor`, or %NULL if there is no
cursor with the given name</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</return-value>
<parameters>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve">the name of the cursor</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="fallback" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">%NULL or the `GdkCursor` to fall back to when
this one cannot be supported</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_from_texture" c:identifier="gdk_cursor_new_from_texture">
<doc xml:space="preserve">Creates a new cursor from a `GdkTexture`.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</return-value>
<parameters>
<parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">the texture providing the pixel data</doc>
<type name="Texture" c:type="GdkTexture*"/>
</parameter>
<parameter name="hotspot_x" transfer-ownership="none">
<doc xml:space="preserve">the horizontal offset of the &#x201C;hotspot&#x201D; of the cursor</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="hotspot_y" transfer-ownership="none">
<doc xml:space="preserve">the vertical offset of the &#x201C;hotspot&#x201D; of the cursor</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="fallback" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the `GdkCursor` to fall back to when
this one cannot be supported</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</parameter>
</parameters>
</constructor>
<method name="get_fallback" c:identifier="gdk_cursor_get_fallback" glib:get-property="fallback">
<attribute name="org.gtk.Method.get_property" value="fallback"/>
<doc xml:space="preserve">Returns the fallback for this @cursor.
The fallback will be used if this cursor is not available on a given
`GdkDisplay`. For named cursors, this can happen when using nonstandard
names or when using an incomplete cursor theme. For textured cursors,
this can happen when the texture is too large or when the `GdkDisplay`
it is used on does not support textured cursors.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the fallback of the cursor or %NULL
to use the default cursor as fallback</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</return-value>
<parameters>
<instance-parameter name="cursor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_hotspot_x" c:identifier="gdk_cursor_get_hotspot_x" glib:get-property="hotspot-x">
<attribute name="org.gtk.Method.get_property" value="hotspot-x"/>
<doc xml:space="preserve">Returns the horizontal offset of the hotspot.
The hotspot indicates the pixel that will be directly above the cursor.
Note that named cursors may have a nonzero hotspot, but this function
will only return the hotspot position for cursors created with
[ctor@Gdk.Cursor.new_from_texture].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the horizontal offset of the hotspot or 0 for named cursors</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="cursor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_hotspot_y" c:identifier="gdk_cursor_get_hotspot_y" glib:get-property="hotspot-y">
<attribute name="org.gtk.Method.get_property" value="hotspot-y"/>
<doc xml:space="preserve">Returns the vertical offset of the hotspot.
The hotspot indicates the pixel that will be directly above the cursor.
Note that named cursors may have a nonzero hotspot, but this function
will only return the hotspot position for cursors created with
[ctor@Gdk.Cursor.new_from_texture].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the vertical offset of the hotspot or 0 for named cursors</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="cursor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_name" c:identifier="gdk_cursor_get_name" glib:get-property="name">
<attribute name="org.gtk.Method.get_property" value="name"/>
<doc xml:space="preserve">Returns the name of the cursor.
If the cursor is not a named cursor, %NULL will be returned.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the name of the cursor or %NULL
if it is not a named cursor</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="cursor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_texture" c:identifier="gdk_cursor_get_texture" glib:get-property="texture">
<doc xml:space="preserve">Returns the texture for the cursor.
If the cursor is a named cursor, %NULL will be returned.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the texture for cursor or %NULL
if it is a named cursor</doc>
<type name="Texture" c:type="GdkTexture*"/>
</return-value>
<parameters>
<instance-parameter name="cursor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</instance-parameter>
</parameters>
</method>
<property name="fallback" writable="1" construct-only="1" transfer-ownership="none" getter="get_fallback">
<attribute name="org.gtk.Property.get" value="gdk_cursor_get_fallback"/>
<doc xml:space="preserve">Cursor to fall back to if this cursor cannot be displayed.</doc>
<type name="Cursor"/>
</property>
<property name="hotspot-x" writable="1" construct-only="1" transfer-ownership="none" getter="get_hotspot_x">
<attribute name="org.gtk.Property.get" value="gdk_cursor_get_hotspot_x"/>
<doc xml:space="preserve">X position of the cursor hotspot in the cursor image.</doc>
<type name="gint" c:type="gint"/>
</property>
<property name="hotspot-y" writable="1" construct-only="1" transfer-ownership="none" getter="get_hotspot_y">
<attribute name="org.gtk.Property.get" value="gdk_cursor_get_hotspot_y"/>
<doc xml:space="preserve">Y position of the cursor hotspot in the cursor image.</doc>
<type name="gint" c:type="gint"/>
</property>
<property name="name" writable="1" construct-only="1" transfer-ownership="none" getter="get_name">
<attribute name="org.gtk.Property.get" value="gdk_cursor_get_name"/>
<doc xml:space="preserve">Name of this this cursor.
The name will be %NULL if the cursor was created from a texture.</doc>
<type name="utf8" c:type="gchar*"/>
</property>
<property name="texture" writable="1" construct-only="1" transfer-ownership="none" getter="get_texture">
<doc xml:space="preserve">The texture displayed by this cursor.
The texture will be %NULL if the cursor was created from a name.</doc>
<type name="Texture"/>
</property>
</class>
<function-macro name="DECLARE_INTERNAL_TYPE" c:identifier="GDK_DECLARE_INTERNAL_TYPE" introspectable="0">
<parameters>
<parameter name="ModuleObjName">
</parameter>
<parameter name="module_obj_name">
</parameter>
<parameter name="MODULE">
</parameter>
<parameter name="OBJ_NAME">
</parameter>
<parameter name="ParentName">
</parameter>
</parameters>
</function-macro>
<function-macro name="DEVICE" c:identifier="GDK_DEVICE" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="DEVICE_PAD" c:identifier="GDK_DEVICE_PAD" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="DEVICE_TOOL" c:identifier="GDK_DEVICE_TOOL" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="DISPLAY" c:identifier="GDK_DISPLAY" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="DISPLAY_MANAGER" c:identifier="GDK_DISPLAY_MANAGER" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<class name="DNDEvent" c:symbol-prefix="dnd_event" c:type="GdkDNDEvent" parent="Event" glib:type-name="GdkDNDEvent" glib:get-type="gdk_dnd_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to drag and drop operations.</doc>
<method name="get_drop" c:identifier="gdk_dnd_event_get_drop">
<doc xml:space="preserve">Gets the `GdkDrop` object from a DND event.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the drop</doc>
<type name="Drop" c:type="GdkDrop*"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a DND event</doc>
<type name="DNDEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
</class>
<function-macro name="DRAG" c:identifier="GDK_DRAG" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="DRAW_CONTEXT" c:identifier="GDK_DRAW_CONTEXT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="DROP" c:identifier="GDK_DROP" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<class name="DeleteEvent" c:symbol-prefix="delete_event" c:type="GdkDeleteEvent" parent="Event" glib:type-name="GdkDeleteEvent" glib:get-type="gdk_delete_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to closing a top-level surface.</doc>
</class>
<class name="Device" c:symbol-prefix="device" c:type="GdkDevice" parent="GObject.Object" abstract="1" glib:type-name="GdkDevice" glib:get-type="gdk_device_get_type">
<doc xml:space="preserve">The `GdkDevice` object represents an input device, such
as a keyboard, a mouse, or a touchpad.
See the [class@Gdk.Seat] documentation for more information
about the various kinds of devices, and their relationships.</doc>
<method name="get_caps_lock_state" c:identifier="gdk_device_get_caps_lock_state" glib:get-property="caps-lock-state">
<attribute name="org.gtk.Method.get_property" value="caps-lock-state"/>
<doc xml:space="preserve">Retrieves whether the Caps Lock modifier of the keyboard is locked.
This is only relevant for keyboard devices.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if Caps Lock is on for @device</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_device_tool" c:identifier="gdk_device_get_device_tool">
<attribute name="org.gtk.Method.get_property" value="tool"/>
<doc xml:space="preserve">Retrieves the current tool for @device.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the `GdkDeviceTool`</doc>
<type name="DeviceTool" c:type="GdkDeviceTool*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_direction" c:identifier="gdk_device_get_direction" glib:get-property="direction">
<attribute name="org.gtk.Method.get_property" value="direction"/>
<doc xml:space="preserve">Returns the direction of effective layout of the keyboard.
This is only relevant for keyboard devices.
The direction of a layout is the direction of the majority
of its symbols. See [func@Pango.unichar_direction].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%PANGO_DIRECTION_LTR or %PANGO_DIRECTION_RTL
if it can determine the direction. %PANGO_DIRECTION_NEUTRAL
otherwise</doc>
<type name="Pango.Direction" c:type="PangoDirection"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_device_get_display" glib:get-property="display">
<attribute name="org.gtk.Method.get_property" value="display"/>
<doc xml:space="preserve">Returns the `GdkDisplay` to which @device pertains.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_has_cursor" c:identifier="gdk_device_get_has_cursor" glib:get-property="has-cursor">
<attribute name="org.gtk.Method.get_property" value="has-cursor"/>
<doc xml:space="preserve">Determines whether the pointer follows device motion.
This is not meaningful for keyboard devices, which
don't have a pointer.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the pointer follows device motion</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_modifier_state" c:identifier="gdk_device_get_modifier_state" glib:get-property="modifier-state">
<attribute name="org.gtk.Method.get_property" value="modifier-state"/>
<doc xml:space="preserve">Retrieves the current modifier state of the keyboard.
This is only relevant for keyboard devices.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the current modifier state</doc>
<type name="ModifierType" c:type="GdkModifierType"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_name" c:identifier="gdk_device_get_name" glib:get-property="name">
<doc xml:space="preserve">The name of the device, suitable for showing in a user interface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a name</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_num_lock_state" c:identifier="gdk_device_get_num_lock_state" glib:get-property="num-lock-state">
<attribute name="org.gtk.Method.get_property" value="num-lock-state"/>
<doc xml:space="preserve">Retrieves whether the Num Lock modifier of the keyboard is locked.
This is only relevant for keyboard devices.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if Num Lock is on for @device</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a ``GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_num_touches" c:identifier="gdk_device_get_num_touches" glib:get-property="num-touches">
<doc xml:space="preserve">Retrieves the number of touch points associated to @device.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the number of touch points</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_product_id" c:identifier="gdk_device_get_product_id" glib:get-property="product-id">
<attribute name="org.gtk.Method.get_property" value="product-id"/>
<doc xml:space="preserve">Returns the product ID of this device.
This ID is retrieved from the device, and does not change.
See [method@Gdk.Device.get_vendor_id] for more information.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the product ID</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a physical `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_scroll_lock_state" c:identifier="gdk_device_get_scroll_lock_state" glib:get-property="scroll-lock-state">
<attribute name="org.gtk.Method.get_property" value="scroll-lock-state"/>
<doc xml:space="preserve">Retrieves whether the Scroll Lock modifier of the keyboard is locked.
This is only relevant for keyboard devices.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if Scroll Lock is on for @device</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_seat" c:identifier="gdk_device_get_seat" glib:get-property="seat">
<attribute name="org.gtk.Method.get_property" value="seat"/>
<doc xml:space="preserve">Returns the `GdkSeat` the device belongs to.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkSeat`</doc>
<type name="Seat" c:type="GdkSeat*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">A `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_source" c:identifier="gdk_device_get_source" glib:get-property="source">
<attribute name="org.gtk.Method.get_property" value="source"/>
<doc xml:space="preserve">Determines the type of the device.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkInputSource`</doc>
<type name="InputSource" c:type="GdkInputSource"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_surface_at_position" c:identifier="gdk_device_get_surface_at_position">
<doc xml:space="preserve">Obtains the surface underneath @device, returning the location of the
device in @win_x and @win_y.
Returns %NULL if the surface tree under @device is not known to GDK
(for example, belongs to another application).</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the `GdkSurface` under the
device position</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">pointer `GdkDevice` to query info to</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
<parameter name="win_x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for the X coordinate
of the device location relative to the surface origin</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="win_y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for the Y coordinate
of the device location relative to the surface origin</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="get_timestamp" c:identifier="gdk_device_get_timestamp" version="4.2">
<doc xml:space="preserve">Returns the timestamp of the last activity for this device.
In practice, this means the timestamp of the last event that was
received from the OS for this device. (GTK may occasionally produce
events for a device that are not received from the OS, and will not
update the timestamp).</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the timestamp of the last activity for this device</doc>
<type name="guint32" c:type="guint32"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_vendor_id" c:identifier="gdk_device_get_vendor_id" glib:get-property="vendor-id">
<attribute name="org.gtk.Method.get_property" value="vendor-id"/>
<doc xml:space="preserve">Returns the vendor ID of this device.
This ID is retrieved from the device, and does not change.
This function, together with [method@Gdk.Device.get_product_id],
can be used to eg. compose `GSettings` paths to store settings
for this device.
```c
static GSettings *
get_device_settings (GdkDevice *device)
{
const char *vendor, *product;
GSettings *settings;
GdkDevice *device;
char *path;
vendor = gdk_device_get_vendor_id (device);
product = gdk_device_get_product_id (device);
path = g_strdup_printf ("/org/example/app/devices/%s:%s/", vendor, product);
settings = g_settings_new_with_path (DEVICE_SCHEMA, path);
g_free (path);
return settings;
}
```</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the vendor ID</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a physical `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="has_bidi_layouts" c:identifier="gdk_device_has_bidi_layouts" glib:get-property="has-bidi-layouts">
<attribute name="org.gtk.Method.get_property" value="has-bidi-layouts"/>
<doc xml:space="preserve">Determines if layouts for both right-to-left and
left-to-right languages are in use on the keyboard.
This is only relevant for keyboard devices.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if there are layouts with both directions, %FALSE otherwise</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</instance-parameter>
</parameters>
</method>
<property name="caps-lock-state" transfer-ownership="none" getter="get_caps_lock_state">
<attribute name="org.gtk.Property.get" value="gdk_device_get_caps_lock_state"/>
<doc xml:space="preserve">Whether Caps Lock is on.
This is only relevant for keyboard devices.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="direction" transfer-ownership="none" getter="get_direction">
<attribute name="org.gtk.Property.get" value="gdk_device_get_direction"/>
<doc xml:space="preserve">The direction of the current layout.
This is only relevant for keyboard devices.</doc>
<type name="Pango.Direction"/>
</property>
<property name="display" writable="1" construct-only="1" transfer-ownership="none" getter="get_display">
<attribute name="org.gtk.Property.get" value="gdk_device_get_display"/>
<doc xml:space="preserve">The `GdkDisplay` the `GdkDevice` pertains to.</doc>
<type name="Display"/>
</property>
<property name="has-bidi-layouts" transfer-ownership="none" getter="has_bidi_layouts">
<attribute name="org.gtk.Property.get" value="gdk_device_has_bidi_layouts"/>
<doc xml:space="preserve">Whether the device has both right-to-left and left-to-right layouts.
This is only relevant for keyboard devices.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="has-cursor" writable="1" construct-only="1" transfer-ownership="none" getter="get_has_cursor">
<attribute name="org.gtk.Property.get" value="gdk_device_get_has_cursor"/>
<doc xml:space="preserve">Whether the device is represented by a cursor on the screen.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="modifier-state" transfer-ownership="none" getter="get_modifier_state">
<attribute name="org.gtk.Property.get" value="gdk_device_get_modifier_state"/>
<doc xml:space="preserve">The current modifier state of the device.
This is only relevant for keyboard devices.</doc>
<type name="ModifierType"/>
</property>
<property name="n-axes" transfer-ownership="none">
<doc xml:space="preserve">Number of axes in the device.</doc>
<type name="guint" c:type="guint"/>
</property>
<property name="name" writable="1" construct-only="1" transfer-ownership="none" getter="get_name">
<attribute name="org.gtk.Property.get" value="gdk_device_get_name"/>
<doc xml:space="preserve">The device name.</doc>
<type name="utf8" c:type="gchar*"/>
</property>
<property name="num-lock-state" transfer-ownership="none" getter="get_num_lock_state">
<attribute name="org.gtk.Property.get" value="gdk_device_get_num_lock_state"/>
<doc xml:space="preserve">Whether Num Lock is on.
This is only relevant for keyboard devices.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="num-touches" writable="1" construct-only="1" transfer-ownership="none" getter="get_num_touches">
<attribute name="org.gtk.Property.get" value="gdk_device_get_num_touches"/>
<doc xml:space="preserve">The maximal number of concurrent touches on a touch device.
Will be 0 if the device is not a touch device or if the number
of touches is unknown.</doc>
<type name="guint" c:type="guint"/>
</property>
<property name="product-id" writable="1" construct-only="1" transfer-ownership="none" getter="get_product_id">
<attribute name="org.gtk.Property.get" value="gdk_device_get_product_id"/>
<doc xml:space="preserve">Product ID of this device.
See [method@Gdk.Device.get_product_id].</doc>
<type name="utf8" c:type="gchar*"/>
</property>
<property name="scroll-lock-state" transfer-ownership="none" getter="get_scroll_lock_state">
<attribute name="org.gtk.Property.get" value="gdk_device_get_scroll_lock_state"/>
<doc xml:space="preserve">Whether Scroll Lock is on.
This is only relevant for keyboard devices.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="seat" writable="1" transfer-ownership="none" getter="get_seat">
<attribute name="org.gtk.Property.get" value="gdk_device_get_seat"/>
<doc xml:space="preserve">`GdkSeat` of this device.</doc>
<type name="Seat"/>
</property>
<property name="source" writable="1" construct-only="1" transfer-ownership="none" getter="get_source">
<attribute name="org.gtk.Property.get" value="gdk_device_get_source"/>
<doc xml:space="preserve">Source type for the device.</doc>
<type name="InputSource"/>
</property>
<property name="tool" transfer-ownership="none">
<attribute name="org.gtk.Property.get" value="gdk_device_get_device_tool"/>
<doc xml:space="preserve">The `GdkDeviceTool` that is currently used with this device.</doc>
<type name="DeviceTool"/>
</property>
<property name="vendor-id" writable="1" construct-only="1" transfer-ownership="none" getter="get_vendor_id">
<attribute name="org.gtk.Property.get" value="gdk_device_get_vendor_id"/>
<doc xml:space="preserve">Vendor ID of this device.
See [method@Gdk.Device.get_vendor_id].</doc>
<type name="utf8" c:type="gchar*"/>
</property>
<glib:signal name="changed" when="last">
<doc xml:space="preserve">Emitted either when the number of either axes or keys changes.
On X11 this will normally happen when the physical device
routing events through the logical device changes (for
example, user switches from the USB mouse to a tablet); in
that case the logical device will change to reflect the axes
and keys on the new physical device.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="tool-changed" when="last">
<doc xml:space="preserve">Emitted on pen/eraser devices whenever tools enter or leave proximity.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="tool" transfer-ownership="none">
<doc xml:space="preserve">The new current tool</doc>
<type name="DeviceTool"/>
</parameter>
</parameters>
</glib:signal>
</class>
<interface name="DevicePad" c:symbol-prefix="device_pad" c:type="GdkDevicePad" glib:type-name="GdkDevicePad" glib:get-type="gdk_device_pad_get_type" glib:type-struct="DevicePadInterface">
<doc xml:space="preserve">`GdkDevicePad` is an interface implemented by devices of type
%GDK_SOURCE_TABLET_PAD
It allows querying the features provided by the pad device.
Tablet pads may contain one or more groups, each containing a subset
of the buttons/rings/strips available. [method@Gdk.DevicePad.get_n_groups]
can be used to obtain the number of groups, [method@Gdk.DevicePad.get_n_features]
and [method@Gdk.DevicePad.get_feature_group] can be combined to find out
the number of buttons/rings/strips the device has, and how are they grouped.
Each of those groups have different modes, which may be used to map each
individual pad feature to multiple actions. Only one mode is effective
(current) for each given group, different groups may have different
current modes. The number of available modes in a group can be found
out through [method@Gdk.DevicePad.get_group_n_modes], and the current mode
for a given group will be notified through events of type `GDK_PAD_GROUP_MODE`.</doc>
<prerequisite name="Device"/>
<method name="get_feature_group" c:identifier="gdk_device_pad_get_feature_group">
<doc xml:space="preserve">Returns the group the given @feature and @idx belong to.
f the feature or index do not exist in @pad, -1 is returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The group number of the queried pad feature.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="pad" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevicePad`</doc>
<type name="DevicePad" c:type="GdkDevicePad*"/>
</instance-parameter>
<parameter name="feature" transfer-ownership="none">
<doc xml:space="preserve">the feature type to get the group from</doc>
<type name="DevicePadFeature" c:type="GdkDevicePadFeature"/>
</parameter>
<parameter name="feature_idx" transfer-ownership="none">
<doc xml:space="preserve">the index of the feature to get the group from</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="get_group_n_modes" c:identifier="gdk_device_pad_get_group_n_modes">
<doc xml:space="preserve">Returns the number of modes that @group may have.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The number of modes available in @group.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="pad" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevicePad`</doc>
<type name="DevicePad" c:type="GdkDevicePad*"/>
</instance-parameter>
<parameter name="group_idx" transfer-ownership="none">
<doc xml:space="preserve">group to get the number of available modes from</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="get_n_features" c:identifier="gdk_device_pad_get_n_features">
<doc xml:space="preserve">Returns the number of features a tablet pad has.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The amount of elements of type @feature that this pad has.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="pad" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevicePad`</doc>
<type name="DevicePad" c:type="GdkDevicePad*"/>
</instance-parameter>
<parameter name="feature" transfer-ownership="none">
<doc xml:space="preserve">a pad feature</doc>
<type name="DevicePadFeature" c:type="GdkDevicePadFeature"/>
</parameter>
</parameters>
</method>
<method name="get_n_groups" c:identifier="gdk_device_pad_get_n_groups">
<doc xml:space="preserve">Returns the number of groups this pad device has.
Pads have at least one group. A pad group is a subcollection of
buttons/strip/rings that is affected collectively by a same
current mode.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The number of button/ring/strip groups in the pad.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="pad" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevicePad`</doc>
<type name="DevicePad" c:type="GdkDevicePad*"/>
</instance-parameter>
</parameters>
</method>
</interface>
<enumeration name="DevicePadFeature" glib:type-name="GdkDevicePadFeature" glib:get-type="gdk_device_pad_feature_get_type" c:type="GdkDevicePadFeature">
<doc xml:space="preserve">A pad feature.</doc>
<member name="button" value="0" c:identifier="GDK_DEVICE_PAD_FEATURE_BUTTON" glib:nick="button" glib:name="GDK_DEVICE_PAD_FEATURE_BUTTON">
<doc xml:space="preserve">a button</doc>
</member>
<member name="ring" value="1" c:identifier="GDK_DEVICE_PAD_FEATURE_RING" glib:nick="ring" glib:name="GDK_DEVICE_PAD_FEATURE_RING">
<doc xml:space="preserve">a ring-shaped interactive area</doc>
</member>
<member name="strip" value="2" c:identifier="GDK_DEVICE_PAD_FEATURE_STRIP" glib:nick="strip" glib:name="GDK_DEVICE_PAD_FEATURE_STRIP">
<doc xml:space="preserve">a straight interactive area</doc>
</member>
</enumeration>
<record name="DevicePadInterface" c:type="GdkDevicePadInterface" disguised="1" glib:is-gtype-struct-for="DevicePad"/>
<class name="DeviceTool" c:symbol-prefix="device_tool" c:type="GdkDeviceTool" parent="GObject.Object" glib:type-name="GdkDeviceTool" glib:get-type="gdk_device_tool_get_type">
<doc xml:space="preserve">A physical tool associated to a `GdkDevice`.</doc>
<method name="get_axes" c:identifier="gdk_device_tool_get_axes" glib:get-property="axes">
<attribute name="org.gtk.Method.get_property" value="axes"/>
<doc xml:space="preserve">Gets the axes of the tool.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the axes of @tool</doc>
<type name="AxisFlags" c:type="GdkAxisFlags"/>
</return-value>
<parameters>
<instance-parameter name="tool" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDeviceTool`</doc>
<type name="DeviceTool" c:type="GdkDeviceTool*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_hardware_id" c:identifier="gdk_device_tool_get_hardware_id" glib:get-property="hardware-id">
<attribute name="org.gtk.Method.get_property" value="hardware-id"/>
<doc xml:space="preserve">Gets the hardware ID of this tool, or 0 if it's not known.
When non-zero, the identificator is unique for the given tool model,
meaning that two identical tools will share the same @hardware_id,
but will have different serial numbers (see
[method@Gdk.DeviceTool.get_serial]).
This is a more concrete (and device specific) method to identify
a `GdkDeviceTool` than [method@Gdk.DeviceTool.get_tool_type],
as a tablet may support multiple devices with the same
`GdkDeviceToolType`, but different hardware identificators.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The hardware identificator of this tool.</doc>
<type name="guint64" c:type="guint64"/>
</return-value>
<parameters>
<instance-parameter name="tool" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDeviceTool`</doc>
<type name="DeviceTool" c:type="GdkDeviceTool*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_serial" c:identifier="gdk_device_tool_get_serial" glib:get-property="serial">
<attribute name="org.gtk.Method.get_property" value="serial"/>
<doc xml:space="preserve">Gets the serial number of this tool.
This value can be used to identify a physical tool
(eg. a tablet pen) across program executions.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The serial ID for this tool</doc>
<type name="guint64" c:type="guint64"/>
</return-value>
<parameters>
<instance-parameter name="tool" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDeviceTool`</doc>
<type name="DeviceTool" c:type="GdkDeviceTool*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_tool_type" c:identifier="gdk_device_tool_get_tool_type" glib:get-property="tool-type">
<attribute name="org.gtk.Method.get_property" value="tool-type"/>
<doc xml:space="preserve">Gets the `GdkDeviceToolType` of the tool.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The physical type for this tool. This can be used to
figure out what sort of pen is being used, such as an airbrush
or a pencil.</doc>
<type name="DeviceToolType" c:type="GdkDeviceToolType"/>
</return-value>
<parameters>
<instance-parameter name="tool" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDeviceTool`</doc>
<type name="DeviceTool" c:type="GdkDeviceTool*"/>
</instance-parameter>
</parameters>
</method>
<property name="axes" writable="1" construct-only="1" transfer-ownership="none" getter="get_axes">
<attribute name="org.gtk.Property.get" value="gdk_device_tool_get_axes"/>
<doc xml:space="preserve">The axes of the tool.</doc>
<type name="AxisFlags"/>
</property>
<property name="hardware-id" writable="1" construct-only="1" transfer-ownership="none" getter="get_hardware_id">
<attribute name="org.gtk.Property.get" value="gdk_device_tool_get_hardware_id"/>
<doc xml:space="preserve">The hardware ID of the tool.</doc>
<type name="guint64" c:type="guint64"/>
</property>
<property name="serial" writable="1" construct-only="1" transfer-ownership="none" getter="get_serial">
<attribute name="org.gtk.Property.get" value="gdk_device_tool_get_serial"/>
<doc xml:space="preserve">The serial number of the tool.</doc>
<type name="guint64" c:type="guint64"/>
</property>
<property name="tool-type" writable="1" construct-only="1" transfer-ownership="none" getter="get_tool_type">
<attribute name="org.gtk.Property.get" value="gdk_device_tool_get_tool_type"/>
<doc xml:space="preserve">The type of the tool.</doc>
<type name="DeviceToolType"/>
</property>
</class>
<enumeration name="DeviceToolType" glib:type-name="GdkDeviceToolType" glib:get-type="gdk_device_tool_type_get_type" c:type="GdkDeviceToolType">
<doc xml:space="preserve">Indicates the specific type of tool being used being a tablet. Such as an
airbrush, pencil, etc.</doc>
<member name="unknown" value="0" c:identifier="GDK_DEVICE_TOOL_TYPE_UNKNOWN" glib:nick="unknown" glib:name="GDK_DEVICE_TOOL_TYPE_UNKNOWN">
<doc xml:space="preserve">Tool is of an unknown type.</doc>
</member>
<member name="pen" value="1" c:identifier="GDK_DEVICE_TOOL_TYPE_PEN" glib:nick="pen" glib:name="GDK_DEVICE_TOOL_TYPE_PEN">
<doc xml:space="preserve">Tool is a standard tablet stylus.</doc>
</member>
<member name="eraser" value="2" c:identifier="GDK_DEVICE_TOOL_TYPE_ERASER" glib:nick="eraser" glib:name="GDK_DEVICE_TOOL_TYPE_ERASER">
<doc xml:space="preserve">Tool is standard tablet eraser.</doc>
</member>
<member name="brush" value="3" c:identifier="GDK_DEVICE_TOOL_TYPE_BRUSH" glib:nick="brush" glib:name="GDK_DEVICE_TOOL_TYPE_BRUSH">
<doc xml:space="preserve">Tool is a brush stylus.</doc>
</member>
<member name="pencil" value="4" c:identifier="GDK_DEVICE_TOOL_TYPE_PENCIL" glib:nick="pencil" glib:name="GDK_DEVICE_TOOL_TYPE_PENCIL">
<doc xml:space="preserve">Tool is a pencil stylus.</doc>
</member>
<member name="airbrush" value="5" c:identifier="GDK_DEVICE_TOOL_TYPE_AIRBRUSH" glib:nick="airbrush" glib:name="GDK_DEVICE_TOOL_TYPE_AIRBRUSH">
<doc xml:space="preserve">Tool is an airbrush stylus.</doc>
</member>
<member name="mouse" value="6" c:identifier="GDK_DEVICE_TOOL_TYPE_MOUSE" glib:nick="mouse" glib:name="GDK_DEVICE_TOOL_TYPE_MOUSE">
<doc xml:space="preserve">Tool is a mouse.</doc>
</member>
<member name="lens" value="7" c:identifier="GDK_DEVICE_TOOL_TYPE_LENS" glib:nick="lens" glib:name="GDK_DEVICE_TOOL_TYPE_LENS">
<doc xml:space="preserve">Tool is a lens cursor.</doc>
</member>
</enumeration>
<class name="Display" c:symbol-prefix="display" c:type="GdkDisplay" parent="GObject.Object" glib:type-name="GdkDisplay" glib:get-type="gdk_display_get_type">
<doc xml:space="preserve">`GdkDisplay` objects are the GDK representation of a workstation.
Their purpose are two-fold:
- To manage and provide information about input devices (pointers, keyboards, etc)
- To manage and provide information about output devices (monitors, projectors, etc)
Most of the input device handling has been factored out into separate
[class@Gdk.Seat] objects. Every display has a one or more seats, which
can be accessed with [method@Gdk.Display.get_default_seat] and
[method@Gdk.Display.list_seats].
Output devices are represented by [class@Gdk.Monitor] objects, which can
be accessed with [method@Gdk.Display.get_monitor_at_surface] and similar APIs.</doc>
<function name="get_default" c:identifier="gdk_display_get_default">
<doc xml:space="preserve">Gets the default `GdkDisplay`.
This is a convenience function for:
gdk_display_manager_get_default_display (gdk_display_manager_get ())</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkDisplay`, or %NULL if
there is no default display</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
</function>
<function name="open" c:identifier="gdk_display_open">
<doc xml:space="preserve">Opens a display.
If opening the display fails, `NULL` is returned.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<parameter name="display_name" transfer-ownership="none">
<doc xml:space="preserve">the name of the display to open</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</function>
<method name="beep" c:identifier="gdk_display_beep">
<doc xml:space="preserve">Emits a short beep on @display</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="close" c:identifier="gdk_display_close">
<doc xml:space="preserve">Closes the connection to the windowing system for the given display.
This cleans up associated resources.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="create_gl_context" c:identifier="gdk_display_create_gl_context" version="4.6" throws="1">
<doc xml:space="preserve">Creates a new `GdkGLContext` for the `GdkDisplay`.
The context is disconnected from any particular surface or surface
and cannot be used to draw to any surface. It can only be used to
draw to non-surface framebuffers like textures.
If the creation of the `GdkGLContext` failed, @error will be set.
Before using the returned `GdkGLContext`, you will need to
call [method@Gdk.GLContext.make_current] or [method@Gdk.GLContext.realize].</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="device_is_grabbed" c:identifier="gdk_display_device_is_grabbed">
<doc xml:space="preserve">Returns %TRUE if there is an ongoing grab on @device for @display.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if there is a grab in effect for @device.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</parameter>
</parameters>
</method>
<method name="flush" c:identifier="gdk_display_flush">
<doc xml:space="preserve">Flushes any requests queued for the windowing system.
This happens automatically when the main loop blocks waiting for new events,
but if your application is drawing without returning control to the main loop,
you may need to call this function explicitly. A common case where this function
needs to be called is when an application is executing drawing commands
from a thread other than the thread where the main loop is running.
This is most useful for X11. On windowing systems where requests are
handled synchronously, this function will do nothing.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_app_launch_context" c:identifier="gdk_display_get_app_launch_context">
<doc xml:space="preserve">Returns a `GdkAppLaunchContext` suitable for launching
applications on the given display.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkAppLaunchContext` for @display</doc>
<type name="AppLaunchContext" c:type="GdkAppLaunchContext*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_clipboard" c:identifier="gdk_display_get_clipboard">
<doc xml:space="preserve">Gets the clipboard used for copy/paste operations.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the display's clipboard</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_default_seat" c:identifier="gdk_display_get_default_seat">
<doc xml:space="preserve">Returns the default `GdkSeat` for this display.
Note that a display may not have a seat. In this case,
this function will return %NULL.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the default seat.</doc>
<type name="Seat" c:type="GdkSeat*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_monitor_at_surface" c:identifier="gdk_display_get_monitor_at_surface">
<doc xml:space="preserve">Gets the monitor in which the largest area of @surface
resides.
Returns a monitor close to @surface if it is outside
of all monitors.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the monitor with the largest
overlap with @surface</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
<parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</parameter>
</parameters>
</method>
<method name="get_monitors" c:identifier="gdk_display_get_monitors">
<doc xml:space="preserve">Gets the list of monitors associated with this display.
Subsequent calls to this function will always return the
same list for the same display.
You can listen to the GListModel::items-changed signal on
this list to monitor changes to the monitor of this display.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GListModel` of `GdkMonitor`</doc>
<type name="Gio.ListModel" c:type="GListModel*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_name" c:identifier="gdk_display_get_name">
<doc xml:space="preserve">Gets the name of the display.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a string representing the display name. This string is owned
by GDK and should not be modified or freed.</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_primary_clipboard" c:identifier="gdk_display_get_primary_clipboard">
<doc xml:space="preserve">Gets the clipboard used for the primary selection.
On backends where the primary clipboard is not supported natively,
GDK emulates this clipboard locally.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the primary clipboard</doc>
<type name="Clipboard" c:type="GdkClipboard*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_setting" c:identifier="gdk_display_get_setting">
<doc xml:space="preserve">Retrieves a desktop-wide setting such as double-click time
for the @display.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the setting existed and a value was stored
in @value, %FALSE otherwise</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve">the name of the setting</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<doc xml:space="preserve">location to store the value of the setting</doc>
<type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
</method>
<method name="get_startup_notification_id" c:identifier="gdk_display_get_startup_notification_id">
<doc xml:space="preserve">Gets the startup notification ID for a Wayland display, or %NULL
if no ID has been defined.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the startup notification ID for @display</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_closed" c:identifier="gdk_display_is_closed">
<doc xml:space="preserve">Finds out if the display has been closed.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the display is closed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_composited" c:identifier="gdk_display_is_composited">
<attribute name="org.gtk.Method.get_property" value="composited"/>
<doc xml:space="preserve">Returns whether surfaces can reasonably be expected to have
their alpha channel drawn correctly on the screen.
Check [method@Gdk.Display.is_rgba] for whether the display
supports an alpha channel.
On X11 this function returns whether a compositing manager is
compositing on @display.
On modern displays, this value is always %TRUE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">Whether surfaces with RGBA visuals can reasonably
be expected to have their alpha channels drawn correctly
on the screen.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_rgba" c:identifier="gdk_display_is_rgba">
<attribute name="org.gtk.Method.get_property" value="rgba"/>
<doc xml:space="preserve">Returns whether surfaces on this @display are created with an
alpha channel.
Even if a %TRUE is returned, it is possible that the
surface&#x2019;s alpha channel won&#x2019;t be honored when displaying the
surface on the screen: in particular, for X an appropriate
windowing manager and compositing manager must be running to
provide appropriate display. Use [method@Gdk.Display.is_composited]
to check if that is the case.
On modern displays, this value is always %TRUE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if surfaces are created with an alpha channel or
%FALSE if the display does not support this functionality.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="list_seats" c:identifier="gdk_display_list_seats">
<doc xml:space="preserve">Returns the list of seats known to @display.</doc>
<return-value transfer-ownership="container">
<doc xml:space="preserve">the
list of seats known to the `GdkDisplay`</doc>
<type name="GLib.List" c:type="GList*">
<type name="Seat"/>
</type>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="map_keycode" c:identifier="gdk_display_map_keycode">
<doc xml:space="preserve">Returns the keyvals bound to @keycode.
The Nth `GdkKeymapKey` in @keys is bound to the Nth keyval in @keyvals.
When a keycode is pressed by the user, the keyval from
this list of entries is selected by considering the effective
keyboard group and level.
Free the returned arrays with g_free().</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if there were any entries</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
<parameter name="keycode" transfer-ownership="none">
<doc xml:space="preserve">a keycode</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="keys" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return
location for array of `GdkKeymapKey`</doc>
<array length="3" zero-terminated="0" c:type="GdkKeymapKey**">
<type name="KeymapKey" c:type="GdkKeymapKey*"/>
</array>
</parameter>
<parameter name="keyvals" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return
location for array of keyvals</doc>
<array length="3" zero-terminated="0" c:type="guint**">
<type name="guint" c:type="guint*"/>
</array>
</parameter>
<parameter name="n_entries" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">length of @keys and @keyvals</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
</method>
<method name="map_keyval" c:identifier="gdk_display_map_keyval">
<doc xml:space="preserve">Obtains a list of keycode/group/level combinations that will
generate @keyval.
Groups and levels are two kinds of keyboard mode; in general, the level
determines whether the top or bottom symbol on a key is used, and the
group determines whether the left or right symbol is used.
On US keyboards, the shift key changes the keyboard level, and there
are no groups. A group switch key might convert a keyboard between
Hebrew to English modes, for example.
`GdkEventKey` contains a %group field that indicates the active
keyboard group. The level is computed from the modifier mask.
The returned array should be freed with g_free().</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if keys were found and returned</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
<parameter name="keyval" transfer-ownership="none">
<doc xml:space="preserve">a keyval, such as %GDK_KEY_a, %GDK_KEY_Up, %GDK_KEY_Return, etc.</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="keys" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location
for an array of `GdkKeymapKey`</doc>
<array length="2" zero-terminated="0" c:type="GdkKeymapKey**">
<type name="KeymapKey" c:type="GdkKeymapKey*"/>
</array>
</parameter>
<parameter name="n_keys" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for number of elements in returned array</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
</method>
<method name="notify_startup_complete" c:identifier="gdk_display_notify_startup_complete">
<doc xml:space="preserve">Indicates to the GUI environment that the application has
finished loading, using a given identifier.
GTK will call this function automatically for [class@Gtk.Window]
with custom startup-notification identifier unless
[method@Gtk.Window.set_auto_startup_notification]
is called to disable that feature.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
<parameter name="startup_id" transfer-ownership="none">
<doc xml:space="preserve">a startup-notification identifier, for which
notification process should be completed</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="prepare_gl" c:identifier="gdk_display_prepare_gl" version="4.4" throws="1">
<doc xml:space="preserve">Checks that OpenGL is available for @self and ensures that it is
properly initialized.
When this fails, an @error will be set describing the error and this
function returns %FALSE.
Note that even if this function succeeds, creating a `GdkGLContext`
may still fail.
This function is idempotent. Calling it multiple times will just
return the same value or error.
You never need to call this function, GDK will call it automatically
as needed. But you can use it as a check when setting up code that
might make use of OpenGL.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the display supports OpenGL</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="put_event" c:identifier="gdk_display_put_event">
<doc xml:space="preserve">Appends the given event onto the front of the event
queue for @display.
This function is only useful in very special situations
and should not be used by applications.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
<parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
</parameters>
</method>
<method name="supports_input_shapes" c:identifier="gdk_display_supports_input_shapes">
<attribute name="org.gtk.Method.get_property" value="input-shapes"/>
<doc xml:space="preserve">Returns %TRUE if the display supports input shapes.
This means that [method@Gdk.Surface.set_input_region] can
be used to modify the input shape of surfaces on @display.
On modern displays, this value is always %TRUE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if surfaces with modified input shape are supported</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="sync" c:identifier="gdk_display_sync">
<doc xml:space="preserve">Flushes any requests queued for the windowing system and waits until all
requests have been handled.
This is often used for making sure that the display is synchronized
with the current state of the program. Calling [method@Gdk.Display.sync]
before [method@GdkX11.Display.error_trap_pop] makes sure that any errors
generated from earlier requests are handled before the error trap is removed.
This is most useful for X11. On windowing systems where requests are
handled synchronously, this function will do nothing.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="translate_key" c:identifier="gdk_display_translate_key">
<doc xml:space="preserve">Translates the contents of a `GdkEventKey` into a keyval, effective group,
and level.
Modifiers that affected the translation and are thus unavailable for
application use are returned in @consumed_modifiers.
The @effective_group is the group that was actually used for the
translation; some keys such as Enter are not affected by the active
keyboard group. The @level is derived from @state.
@consumed_modifiers gives modifiers that should be masked out
from @state when comparing this key press to a keyboard shortcut.
For instance, on a US keyboard, the `plus` symbol is shifted, so
when comparing a key press to a `&lt;Control&gt;plus` accelerator `&lt;Shift&gt;`
should be masked out.
This function should rarely be needed, since `GdkEventKey` already
contains the translated keyval. It is exported for the benefit of
virtualized test environments.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if there was a keyval bound to keycode/state/group.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</instance-parameter>
<parameter name="keycode" transfer-ownership="none">
<doc xml:space="preserve">a keycode</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="state" transfer-ownership="none">
<doc xml:space="preserve">a modifier state</doc>
<type name="ModifierType" c:type="GdkModifierType"/>
</parameter>
<parameter name="group" transfer-ownership="none">
<doc xml:space="preserve">active keyboard group</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="keyval" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for keyval</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="effective_group" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for effective group</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="level" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for level</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="consumed" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for modifiers that were used
to determine the group or level</doc>
<type name="ModifierType" c:type="GdkModifierType*"/>
</parameter>
</parameters>
</method>
<property name="composited" transfer-ownership="none">
<attribute name="org.gtk.Property.get" value="gdk_display_is_composited"/>
<doc xml:space="preserve">%TRUE if the display properly composites the alpha channel.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="input-shapes" transfer-ownership="none">
<attribute name="org.gtk.Property.get" value="gdk_display_supports_input_shapes"/>
<doc xml:space="preserve">%TRUE if the display supports input shapes.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="rgba" transfer-ownership="none">
<attribute name="org.gtk.Property.get" value="gdk_display_is_rgba"/>
<doc xml:space="preserve">%TRUE if the display supports an alpha channel.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<glib:signal name="closed" when="last">
<doc xml:space="preserve">Emitted when the connection to the windowing system for @display is closed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="is_error" transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the display was closed due to an error</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="opened" when="last">
<doc xml:space="preserve">Emitted when the connection to the windowing system for @display is opened.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="seat-added" when="last">
<doc xml:space="preserve">Emitted whenever a new seat is made known to the windowing system.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="seat" transfer-ownership="none">
<doc xml:space="preserve">the seat that was just added</doc>
<type name="Seat"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="seat-removed" when="last">
<doc xml:space="preserve">Emitted whenever a seat is removed by the windowing system.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="seat" transfer-ownership="none">
<doc xml:space="preserve">the seat that was just removed</doc>
<type name="Seat"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="setting-changed" when="last">
<doc xml:space="preserve">Emitted whenever a setting changes its value.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="setting" transfer-ownership="none">
<doc xml:space="preserve">the name of the setting that changed</doc>
<type name="utf8" c:type="gchar*"/>
</parameter>
</parameters>
</glib:signal>
</class>
<class name="DisplayManager" c:symbol-prefix="display_manager" c:type="GdkDisplayManager" parent="GObject.Object" glib:type-name="GdkDisplayManager" glib:get-type="gdk_display_manager_get_type">
<doc xml:space="preserve">A singleton object that offers notification when displays appear or
disappear.
You can use [func@Gdk.DisplayManager.get] to obtain the `GdkDisplayManager`
singleton, but that should be rarely necessary. Typically, initializing
GTK opens a display that you can work with without ever accessing the
`GdkDisplayManager`.
The GDK library can be built with support for multiple backends.
The `GdkDisplayManager` object determines which backend is used
at runtime.
In the rare case that you need to influence which of the backends
is being used, you can use [func@Gdk.set_allowed_backends]. Note
that you need to call this function before initializing GTK.
## Backend-specific code
When writing backend-specific code that is supposed to work with
multiple GDK backends, you have to consider both compile time and
runtime. At compile time, use the `GDK_WINDOWING_X11`, `GDK_WINDOWING_WIN32`
macros, etc. to find out which backends are present in the GDK library
you are building your application against. At runtime, use type-check
macros like GDK_IS_X11_DISPLAY() to find out which backend is in use:
```c
#ifdef GDK_WINDOWING_X11
if (GDK_IS_X11_DISPLAY (display))
{
// make X11-specific calls here
}
else
#endif
#ifdef GDK_WINDOWING_MACOS
if (GDK_IS_MACOS_DISPLAY (display))
{
// make Quartz-specific calls here
}
else
#endif
g_error ("Unsupported GDK backend");
```</doc>
<function name="get" c:identifier="gdk_display_manager_get">
<doc xml:space="preserve">Gets the singleton `GdkDisplayManager` object.
When called for the first time, this function consults the
`GDK_BACKEND` environment variable to find out which of the
supported GDK backends to use (in case GDK has been compiled
with multiple backends).
Applications can use [func@set_allowed_backends] to limit what
backends wil be used.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The global `GdkDisplayManager` singleton</doc>
<type name="DisplayManager" c:type="GdkDisplayManager*"/>
</return-value>
</function>
<method name="get_default_display" c:identifier="gdk_display_manager_get_default_display" glib:get-property="default-display">
<attribute name="org.gtk.Method.get_property" value="default-display"/>
<doc xml:space="preserve">Gets the default `GdkDisplay`.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="manager" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplayManager`</doc>
<type name="DisplayManager" c:type="GdkDisplayManager*"/>
</instance-parameter>
</parameters>
</method>
<method name="list_displays" c:identifier="gdk_display_manager_list_displays">
<doc xml:space="preserve">List all currently open displays.</doc>
<return-value transfer-ownership="container">
<doc xml:space="preserve">a newly
allocated `GSList` of `GdkDisplay` objects</doc>
<type name="GLib.SList" c:type="GSList*">
<type name="Display"/>
</type>
</return-value>
<parameters>
<instance-parameter name="manager" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplayManager`</doc>
<type name="DisplayManager" c:type="GdkDisplayManager*"/>
</instance-parameter>
</parameters>
</method>
<method name="open_display" c:identifier="gdk_display_manager_open_display">
<doc xml:space="preserve">Opens a display.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkDisplay`, or %NULL
if the display could not be opened</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="manager" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplayManager`</doc>
<type name="DisplayManager" c:type="GdkDisplayManager*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve">the name of the display to open</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="set_default_display" c:identifier="gdk_display_manager_set_default_display" glib:set-property="default-display">
<doc xml:space="preserve">Sets @display as the default display.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="manager" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplayManager`</doc>
<type name="DisplayManager" c:type="GdkDisplayManager*"/>
</instance-parameter>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</parameter>
</parameters>
</method>
<property name="default-display" writable="1" transfer-ownership="none" setter="set_default_display" getter="get_default_display">
<attribute name="org.gtk.Property.get" value="gdk_display_manager_get_default_display"/>
<doc xml:space="preserve">The default display.</doc>
<type name="Display"/>
</property>
<glib:signal name="display-opened" when="last">
<doc xml:space="preserve">Emitted when a display is opened.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">the opened display</doc>
<type name="Display"/>
</parameter>
</parameters>
</glib:signal>
</class>
<class name="Drag" c:symbol-prefix="drag" c:type="GdkDrag" parent="GObject.Object" abstract="1" glib:type-name="GdkDrag" glib:get-type="gdk_drag_get_type">
<doc xml:space="preserve">The `GdkDrag` object represents the source of an ongoing DND operation.
A `GdkDrag` is created when a drag is started, and stays alive for duration of
the DND operation. After a drag has been started with [func@Gdk.Drag.begin],
the caller gets informed about the status of the ongoing drag operation
with signals on the `GdkDrag` object.
GTK provides a higher level abstraction based on top of these functions,
and so they are not normally needed in GTK applications. See the
"Drag and Drop" section of the GTK documentation for more information.</doc>
<function name="begin" c:identifier="gdk_drag_begin">
<doc xml:space="preserve">Starts a drag and creates a new drag context for it.
This function is called by the drag source. After this call, you
probably want to set up the drag icon using the surface returned
by [method@Gdk.Drag.get_drag_surface].
This function returns a reference to the [class@Gdk.Drag] object,
but GTK keeps its own reference as well, as long as the DND operation
is going on.
Note: if @actions include %GDK_ACTION_MOVE, you need to listen for
the [signal@Gdk.Drag::dnd-finished] signal and delete the data at
the source if [method@Gdk.Drag.get_selected_action] returns
%GDK_ACTION_MOVE.</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a newly created `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</return-value>
<parameters>
<parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">the source surface for this drag</doc>
<type name="Surface" c:type="GdkSurface*"/>
</parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">the device that controls this drag</doc>
<type name="Device" c:type="GdkDevice*"/>
</parameter>
<parameter name="content" transfer-ownership="none">
<doc xml:space="preserve">the offered content</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</parameter>
<parameter name="actions" transfer-ownership="none">
<doc xml:space="preserve">the actions supported by this drag</doc>
<type name="DragAction" c:type="GdkDragAction"/>
</parameter>
<parameter name="dx" transfer-ownership="none">
<doc xml:space="preserve">the x offset to @device's position where the drag nominally started</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="dy" transfer-ownership="none">
<doc xml:space="preserve">the y offset to @device's position where the drag nominally started</doc>
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</function>
<method name="drop_done" c:identifier="gdk_drag_drop_done">
<doc xml:space="preserve">Informs GDK that the drop ended.
Passing %FALSE for @success may trigger a drag cancellation
animation.
This function is called by the drag source, and should be the
last call before dropping the reference to the @drag.
The `GdkDrag` will only take the first [method@Gdk.Drag.drop_done]
call as effective, if this function is called multiple times,
all subsequent calls will be ignored.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
<parameter name="success" transfer-ownership="none">
<doc xml:space="preserve">whether the drag was ultimatively successful</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="get_actions" c:identifier="gdk_drag_get_actions" glib:get-property="actions">
<attribute name="org.gtk.Method.get_property" value="actions"/>
<doc xml:space="preserve">Determines the bitmask of possible actions proposed by the source.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the `GdkDragAction` flags</doc>
<type name="DragAction" c:type="GdkDragAction"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_content" c:identifier="gdk_drag_get_content" glib:get-property="content">
<attribute name="org.gtk.Method.get_property" value="content"/>
<doc xml:space="preserve">Returns the `GdkContentProvider` associated to the `GdkDrag` object.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The `GdkContentProvider` associated to @drag.</doc>
<type name="ContentProvider" c:type="GdkContentProvider*"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_device" c:identifier="gdk_drag_get_device" glib:get-property="device">
<attribute name="org.gtk.Method.get_property" value="device"/>
<doc xml:space="preserve">Returns the `GdkDevice` associated to the `GdkDrag` object.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The `GdkDevice` associated to @drag.</doc>
<type name="Device" c:type="GdkDevice*"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_drag_get_display" glib:get-property="display">
<attribute name="org.gtk.Method.get_property" value="display"/>
<doc xml:space="preserve">Gets the `GdkDisplay` that the drag object was created for.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_drag_surface" c:identifier="gdk_drag_get_drag_surface">
<doc xml:space="preserve">Returns the surface on which the drag icon should be rendered
during the drag operation.
Note that the surface may not be available until the drag operation
has begun. GDK will move the surface in accordance with the ongoing
drag operation. The surface is owned by @drag and will be destroyed
when the drag operation is over.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the drag surface</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_formats" c:identifier="gdk_drag_get_formats" glib:get-property="formats">
<attribute name="org.gtk.Method.get_property" value="formats"/>
<doc xml:space="preserve">Retrieves the formats supported by this `GdkDrag` object.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_selected_action" c:identifier="gdk_drag_get_selected_action" glib:get-property="selected-action">
<attribute name="org.gtk.Method.get_property" value="selected-action"/>
<doc xml:space="preserve">Determines the action chosen by the drag destination.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkDragAction` value</doc>
<type name="DragAction" c:type="GdkDragAction"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_surface" c:identifier="gdk_drag_get_surface" glib:get-property="surface">
<attribute name="org.gtk.Method.get_property" value="surface"/>
<doc xml:space="preserve">Returns the `GdkSurface` where the drag originates.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The `GdkSurface` where the drag originates</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_hotspot" c:identifier="gdk_drag_set_hotspot">
<doc xml:space="preserve">Sets the position of the drag surface that will be kept
under the cursor hotspot.
Initially, the hotspot is at the top left corner of the drag surface.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="drag" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</instance-parameter>
<parameter name="hot_x" transfer-ownership="none">
<doc xml:space="preserve">x coordinate of the drag surface hotspot</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="hot_y" transfer-ownership="none">
<doc xml:space="preserve">y coordinate of the drag surface hotspot</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<property name="actions" writable="1" transfer-ownership="none" getter="get_actions">
<attribute name="org.gtk.Property.get" value="gdk_drag_get_actions"/>
<doc xml:space="preserve">The possible actions of this drag.</doc>
<type name="DragAction"/>
</property>
<property name="content" writable="1" construct-only="1" transfer-ownership="none" getter="get_content">
<attribute name="org.gtk.Property.get" value="gdk_drag_get_content"/>
<doc xml:space="preserve">The `GdkContentProvider`.</doc>
<type name="ContentProvider"/>
</property>
<property name="device" writable="1" construct-only="1" transfer-ownership="none" getter="get_device">
<attribute name="org.gtk.Property.get" value="gdk_drag_get_device"/>
<doc xml:space="preserve">The `GdkDevice` that is performing the drag.</doc>
<type name="Device"/>
</property>
<property name="display" transfer-ownership="none" getter="get_display">
<attribute name="org.gtk.Property.get" value="gdk_drag_get_display"/>
<doc xml:space="preserve">The `GdkDisplay` that the drag belongs to.</doc>
<type name="Display"/>
</property>
<property name="formats" writable="1" construct-only="1" transfer-ownership="none" getter="get_formats">
<attribute name="org.gtk.Property.get" value="gdk_drag_get_formats"/>
<doc xml:space="preserve">The possible formats that the drag can provide its data in.</doc>
<type name="ContentFormats"/>
</property>
<property name="selected-action" writable="1" transfer-ownership="none" getter="get_selected_action">
<attribute name="org.gtk.Property.get" value="gdk_drag_get_selected_action"/>
<doc xml:space="preserve">The currently selected action of the drag.</doc>
<type name="DragAction"/>
</property>
<property name="surface" writable="1" construct-only="1" transfer-ownership="none" getter="get_surface">
<attribute name="org.gtk.Property.get" value="gdk_drag_get_surface"/>
<doc xml:space="preserve">The surface where the drag originates.</doc>
<type name="Surface"/>
</property>
<glib:signal name="cancel" when="last">
<doc xml:space="preserve">Emitted when the drag operation is cancelled.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="reason" transfer-ownership="none">
<doc xml:space="preserve">The reason the drag was cancelled</doc>
<type name="DragCancelReason"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="dnd-finished" when="last">
<doc xml:space="preserve">Emitted when the destination side has finished reading all data.
The drag object can now free all miscellaneous data.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="drop-performed" when="last">
<doc xml:space="preserve">Emitted when the drop operation is performed on an accepting client.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
</class>
<bitfield name="DragAction" glib:type-name="GdkDragAction" glib:get-type="gdk_drag_action_get_type" c:type="GdkDragAction">
<doc xml:space="preserve">Used in `GdkDrop` and `GdkDrag` to indicate the actions that the
destination can and should do with the dropped data.</doc>
<member name="copy" value="1" c:identifier="GDK_ACTION_COPY" glib:nick="copy" glib:name="GDK_ACTION_COPY">
<doc xml:space="preserve">Copy the data.</doc>
</member>
<member name="move" value="2" c:identifier="GDK_ACTION_MOVE" glib:nick="move" glib:name="GDK_ACTION_MOVE">
<doc xml:space="preserve">Move the data, i.e. first copy it, then delete
it from the source using the DELETE target of the X selection protocol.</doc>
</member>
<member name="link" value="4" c:identifier="GDK_ACTION_LINK" glib:nick="link" glib:name="GDK_ACTION_LINK">
<doc xml:space="preserve">Add a link to the data. Note that this is only
useful if source and destination agree on what it means, and is not
supported on all platforms.</doc>
</member>
<member name="ask" value="8" c:identifier="GDK_ACTION_ASK" glib:nick="ask" glib:name="GDK_ACTION_ASK">
<doc xml:space="preserve">Ask the user what to do with the data.</doc>
</member>
<function name="is_unique" c:identifier="gdk_drag_action_is_unique">
<doc xml:space="preserve">Checks if @action represents a single action or includes
multiple actions.
When @action is 0 - ie no action was given, %TRUE
is returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if exactly one action was given</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="action" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDragAction`</doc>
<type name="DragAction" c:type="GdkDragAction"/>
</parameter>
</parameters>
</function>
</bitfield>
<enumeration name="DragCancelReason" glib:type-name="GdkDragCancelReason" glib:get-type="gdk_drag_cancel_reason_get_type" c:type="GdkDragCancelReason">
<doc xml:space="preserve">Used in `GdkDrag` to the reason of a cancelled DND operation.</doc>
<member name="no_target" value="0" c:identifier="GDK_DRAG_CANCEL_NO_TARGET" glib:nick="no-target" glib:name="GDK_DRAG_CANCEL_NO_TARGET">
<doc xml:space="preserve">There is no suitable drop target.</doc>
</member>
<member name="user_cancelled" value="1" c:identifier="GDK_DRAG_CANCEL_USER_CANCELLED" glib:nick="user-cancelled" glib:name="GDK_DRAG_CANCEL_USER_CANCELLED">
<doc xml:space="preserve">Drag cancelled by the user</doc>
</member>
<member name="error" value="2" c:identifier="GDK_DRAG_CANCEL_ERROR" glib:nick="error" glib:name="GDK_DRAG_CANCEL_ERROR">
<doc xml:space="preserve">Unspecified error.</doc>
</member>
</enumeration>
<interface name="DragSurface" c:symbol-prefix="drag_surface" c:type="GdkDragSurface" glib:type-name="GdkDragSurface" glib:get-type="gdk_drag_surface_get_type" glib:type-struct="DragSurfaceInterface">
<doc xml:space="preserve">A `GdkDragSurface` is an interface for surfaces used during DND.</doc>
<prerequisite name="Surface"/>
<method name="present" c:identifier="gdk_drag_surface_present">
<doc xml:space="preserve">Present @drag_surface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%FALSE if it failed to be presented, otherwise %TRUE.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="drag_surface" transfer-ownership="none">
<doc xml:space="preserve">the `GdkDragSurface` to show</doc>
<type name="DragSurface" c:type="GdkDragSurface*"/>
</instance-parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">the unconstrained drag_surface width to layout</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">the unconstrained drag_surface height to layout</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
</interface>
<record name="DragSurfaceInterface" c:type="GdkDragSurfaceInterface" disguised="1" glib:is-gtype-struct-for="DragSurface">
<doc xml:space="preserve">The `GdkDragSurfaceInterface` implementation is private to GDK.</doc>
</record>
<class name="DrawContext" c:symbol-prefix="draw_context" c:type="GdkDrawContext" parent="GObject.Object" abstract="1" glib:type-name="GdkDrawContext" glib:get-type="gdk_draw_context_get_type">
<doc xml:space="preserve">Base class for objects implementing different rendering methods.
`GdkDrawContext` is the base object used by contexts implementing different
rendering methods, such as [class@Gdk.CairoContext] or [class@Gdk.GLContext].
It provides shared functionality between those contexts.
You will always interact with one of those subclasses.
A `GdkDrawContext` is always associated with a single toplevel surface.</doc>
<method name="begin_frame" c:identifier="gdk_draw_context_begin_frame">
<doc xml:space="preserve">Indicates that you are beginning the process of redrawing @region
on the @context's surface.
Calling this function begins a drawing operation using @context on the
surface that @context was created from. The actual requirements and
guarantees for the drawing operation vary for different implementations
of drawing, so a [class@Gdk.CairoContext] and a [class@Gdk.GLContext]
need to be treated differently.
A call to this function is a requirement for drawing and must be
followed by a call to [method@Gdk.DrawContext.end_frame], which will
complete the drawing operation and ensure the contents become visible
on screen.
Note that the @region passed to this function is the minimum region that
needs to be drawn and depending on implementation, windowing system and
hardware in use, it might be necessary to draw a larger region. Drawing
implementation must use [method@Gdk.DrawContext.get_frame_region] to
query the region that must be drawn.
When using GTK, the widget system automatically places calls to
gdk_draw_context_begin_frame() and gdk_draw_context_end_frame() via the
use of [class@Gsk.Renderer]s, so application code does not need to call
these functions explicitly.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">the `GdkDrawContext` used to draw the frame. The context must
have a surface.</doc>
<type name="DrawContext" c:type="GdkDrawContext*"/>
</instance-parameter>
<parameter name="region" transfer-ownership="none">
<doc xml:space="preserve">minimum region that should be drawn</doc>
<type name="cairo.Region" c:type="const cairo_region_t*"/>
</parameter>
</parameters>
</method>
<method name="end_frame" c:identifier="gdk_draw_context_end_frame">
<doc xml:space="preserve">Ends a drawing operation started with gdk_draw_context_begin_frame().
This makes the drawing available on screen.
See [method@Gdk.DrawContext.begin_frame] for more details about drawing.
When using a [class@Gdk.GLContext], this function may call `glFlush()`
implicitly before returning; it is not recommended to call `glFlush()`
explicitly before calling this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrawContext`</doc>
<type name="DrawContext" c:type="GdkDrawContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_draw_context_get_display" glib:get-property="display">
<attribute name="org.gtk.Method.get_property" value="display"/>
<doc xml:space="preserve">Retrieves the `GdkDisplay` the @context is created for</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrawContext`</doc>
<type name="DrawContext" c:type="GdkDrawContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_frame_region" c:identifier="gdk_draw_context_get_frame_region">
<doc xml:space="preserve">Retrieves the region that is currently being repainted.
After a call to [method@Gdk.DrawContext.begin_frame] this function will
return a union of the region passed to that function and the area of the
surface that the @context determined needs to be repainted.
If @context is not in between calls to [method@Gdk.DrawContext.begin_frame]
and [method@Gdk.DrawContext.end_frame], %NULL will be returned.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a Cairo region</doc>
<type name="cairo.Region" c:type="const cairo_region_t*"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrawContext`</doc>
<type name="DrawContext" c:type="GdkDrawContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_surface" c:identifier="gdk_draw_context_get_surface" glib:get-property="surface">
<attribute name="org.gtk.Method.get_property" value="surface"/>
<doc xml:space="preserve">Retrieves the surface that @context is bound to.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrawContext`</doc>
<type name="DrawContext" c:type="GdkDrawContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_in_frame" c:identifier="gdk_draw_context_is_in_frame">
<doc xml:space="preserve">Returns %TRUE if @context is in the process of drawing to its surface.
This is the case between calls to [method@Gdk.DrawContext.begin_frame]
and [method@Gdk.DrawContext.end_frame]. In this situation, drawing commands
may be effecting the contents of the @context's surface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the context is between [method@Gdk.DrawContext.begin_frame]
and [method@Gdk.DrawContext.end_frame] calls.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrawContext`</doc>
<type name="DrawContext" c:type="GdkDrawContext*"/>
</instance-parameter>
</parameters>
</method>
<property name="display" writable="1" construct-only="1" transfer-ownership="none" getter="get_display">
<attribute name="org.gtk.Property.get" value="gdk_draw_context_get_display"/>
<doc xml:space="preserve">The `GdkDisplay` used to create the `GdkDrawContext`.</doc>
<type name="Display"/>
</property>
<property name="surface" writable="1" construct-only="1" transfer-ownership="none" getter="get_surface">
<attribute name="org.gtk.Property.get" value="gdk_draw_context_get_surface"/>
<doc xml:space="preserve">The `GdkSurface` the context is bound to.</doc>
<type name="Surface"/>
</property>
</class>
<class name="Drop" c:symbol-prefix="drop" c:type="GdkDrop" parent="GObject.Object" abstract="1" glib:type-name="GdkDrop" glib:get-type="gdk_drop_get_type">
<doc xml:space="preserve">The `GdkDrop` object represents the target of an ongoing DND operation.
Possible drop sites get informed about the status of the ongoing drag
operation with events of type %GDK_DRAG_ENTER, %GDK_DRAG_LEAVE,
%GDK_DRAG_MOTION and %GDK_DROP_START. The `GdkDrop` object can be obtained
from these [class@Gdk.Event] types using [method@Gdk.DNDEvent.get_drop].
The actual data transfer is initiated from the target side via an async
read, using one of the `GdkDrop` methods for this purpose:
[method@Gdk.Drop.read_async] or [method@Gdk.Drop.read_value_async].
GTK provides a higher level abstraction based on top of these functions,
and so they are not normally needed in GTK applications. See the
"Drag and Drop" section of the GTK documentation for more information.</doc>
<method name="finish" c:identifier="gdk_drop_finish">
<doc xml:space="preserve">Ends the drag operation after a drop.
The @action must be a single action selected from the actions
available via [method@Gdk.Drop.get_actions].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
<parameter name="action" transfer-ownership="none">
<doc xml:space="preserve">the action performed by the destination or 0 if the drop failed</doc>
<type name="DragAction" c:type="GdkDragAction"/>
</parameter>
</parameters>
</method>
<method name="get_actions" c:identifier="gdk_drop_get_actions" glib:get-property="actions">
<attribute name="org.gtk.Method.get_property" value="actions"/>
<doc xml:space="preserve">Returns the possible actions for this `GdkDrop`.
If this value contains multiple actions - i.e.
[func@Gdk.DragAction.is_unique] returns %FALSE for the result -
[method@Gdk.Drop.finish] must choose the action to use when
accepting the drop. This will only happen if you passed
%GDK_ACTION_ASK as one of the possible actions in
[method@Gdk.Drop.status]. %GDK_ACTION_ASK itself will not
be included in the actions returned by this function.
This value may change over the lifetime of the [class@Gdk.Drop]
both as a response to source side actions as well as to calls to
[method@Gdk.Drop.status] or [method@Gdk.Drop.finish]. The source
side will not change this value anymore once a drop has started.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The possible `GdkDragActions`</doc>
<type name="DragAction" c:type="GdkDragAction"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_device" c:identifier="gdk_drop_get_device" glib:get-property="device">
<attribute name="org.gtk.Method.get_property" value="device"/>
<doc xml:space="preserve">Returns the `GdkDevice` performing the drop.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The `GdkDevice` performing the drop.</doc>
<type name="Device" c:type="GdkDevice*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_drop_get_display" glib:get-property="display">
<attribute name="org.gtk.Method.get_property" value="display"/>
<doc xml:space="preserve">Gets the `GdkDisplay` that @self was created for.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_drag" c:identifier="gdk_drop_get_drag" glib:get-property="drag">
<attribute name="org.gtk.Method.get_property" value="drag"/>
<doc xml:space="preserve">If this is an in-app drag-and-drop operation, returns the `GdkDrag`
that corresponds to this drop.
If it is not, %NULL is returned.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the corresponding `GdkDrag`</doc>
<type name="Drag" c:type="GdkDrag*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_formats" c:identifier="gdk_drop_get_formats" glib:get-property="formats">
<attribute name="org.gtk.Method.get_property" value="formats"/>
<doc xml:space="preserve">Returns the `GdkContentFormats` that the drop offers the data
to be read in.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The possible `GdkContentFormats`</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_surface" c:identifier="gdk_drop_get_surface" glib:get-property="surface">
<attribute name="org.gtk.Method.get_property" value="surface"/>
<doc xml:space="preserve">Returns the `GdkSurface` performing the drop.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The `GdkSurface` performing the drop.</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
</parameters>
</method>
<method name="read_async" c:identifier="gdk_drop_read_async">
<doc xml:space="preserve">Asynchronously read the dropped data from a `GdkDrop`
in a format that complies with one of the mime types.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
<parameter name="mime_types" transfer-ownership="none">
<doc xml:space="preserve">
pointer to an array of mime types</doc>
<array c:type="const char**">
<type name="utf8"/>
</array>
</parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">the I/O priority for the read operation</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="4">
<doc xml:space="preserve">a `GAsyncReadyCallback` to call when
the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the data to pass to @callback</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="read_finish" c:identifier="gdk_drop_read_finish" throws="1">
<doc xml:space="preserve">Finishes an async drop read operation.
Note that you must not use blocking read calls on the returned stream
in the GTK thread, since some platforms might require communication with
GTK to complete the data transfer. You can use async APIs such as
g_input_stream_read_bytes_async().
See [method@Gdk.Drop.read_async].</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">the `GInputStream`</doc>
<type name="Gio.InputStream" c:type="GInputStream*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
<parameter name="out_mime_type" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the used mime type</doc>
<type name="utf8" c:type="const char**"/>
</parameter>
</parameters>
</method>
<method name="read_value_async" c:identifier="gdk_drop_read_value_async">
<doc xml:space="preserve">Asynchronously request the drag operation's contents converted
to the given @type.
When the operation is finished @callback will be called. You must
then call [method@Gdk.Drop.read_value_finish] to get the resulting
`GValue`.
For local drag-and-drop operations that are available in the given
`GType`, the value will be copied directly. Otherwise, GDK will
try to use [func@Gdk.content_deserialize_async] to convert the data.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">a `GType` to read</doc>
<type name="GType" c:type="GType"/>
</parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">the I/O priority of the request.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object, %NULL to ignore.</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="4">
<doc xml:space="preserve">callback to call when the request is satisfied</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the data to pass to callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="read_value_finish" c:identifier="gdk_drop_read_value_finish" throws="1">
<doc xml:space="preserve">Finishes an async drop read.
See [method@Gdk.Drop.read_value_async].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GValue` containing the result.</doc>
<type name="GObject.Value" c:type="const GValue*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">a `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
</method>
<method name="status" c:identifier="gdk_drop_status">
<doc xml:space="preserve">Selects all actions that are potentially supported by the destination.
When calling this function, do not restrict the passed in actions to
the ones provided by [method@Gdk.Drop.get_actions]. Those actions may
change in the future, even depending on the actions you provide here.
The @preferred action is a hint to the drag-and-drop mechanism about which
action to use when multiple actions are possible.
This function should be called by drag destinations in response to
%GDK_DRAG_ENTER or %GDK_DRAG_MOTION events. If the destination does
not yet know the exact actions it supports, it should set any possible
actions first and then later call this function again.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDrop`</doc>
<type name="Drop" c:type="GdkDrop*"/>
</instance-parameter>
<parameter name="actions" transfer-ownership="none">
<doc xml:space="preserve">Supported actions of the destination, or 0 to indicate
that a drop will not be accepted</doc>
<type name="DragAction" c:type="GdkDragAction"/>
</parameter>
<parameter name="preferred" transfer-ownership="none">
<doc xml:space="preserve">A unique action that's a member of @actions indicating the
preferred action</doc>
<type name="DragAction" c:type="GdkDragAction"/>
</parameter>
</parameters>
</method>
<property name="actions" writable="1" construct-only="1" transfer-ownership="none" getter="get_actions">
<attribute name="org.gtk.Property.get" value="gdk_drop_get_actions"/>
<doc xml:space="preserve">The possible actions for this drop</doc>
<type name="DragAction"/>
</property>
<property name="device" writable="1" construct-only="1" transfer-ownership="none" getter="get_device">
<attribute name="org.gtk.Property.get" value="gdk_drop_get_device"/>
<doc xml:space="preserve">The `GdkDevice` performing the drop</doc>
<type name="Device"/>
</property>
<property name="display" transfer-ownership="none" getter="get_display">
<attribute name="org.gtk.Property.get" value="gdk_drop_get_display"/>
<doc xml:space="preserve">The `GdkDisplay` that the drop belongs to.</doc>
<type name="Display"/>
</property>
<property name="drag" writable="1" construct-only="1" transfer-ownership="none" getter="get_drag">
<attribute name="org.gtk.Property.get" value="gdk_drop_get_drag"/>
<doc xml:space="preserve">The `GdkDrag` that initiated this drop</doc>
<type name="Drag"/>
</property>
<property name="formats" writable="1" construct-only="1" transfer-ownership="none" getter="get_formats">
<attribute name="org.gtk.Property.get" value="gdk_drop_get_formats"/>
<doc xml:space="preserve">The possible formats that the drop can provide its data in.</doc>
<type name="ContentFormats"/>
</property>
<property name="surface" writable="1" construct-only="1" transfer-ownership="none" getter="get_surface">
<attribute name="org.gtk.Property.get" value="gdk_drop_get_surface"/>
<doc xml:space="preserve">The `GdkSurface` the drop happens on</doc>
<type name="Surface"/>
</property>
</class>
<function-macro name="EVENT" c:identifier="GDK_EVENT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<constant name="EVENT_PROPAGATE" value="false" c:type="GDK_EVENT_PROPAGATE">
<doc xml:space="preserve">Use this macro as the return value for continuing the propagation of
an event handler.</doc>
<type name="gboolean" c:type="gboolean"/>
</constant>
<constant name="EVENT_STOP" value="true" c:type="GDK_EVENT_STOP">
<doc xml:space="preserve">Use this macro as the return value for stopping the propagation of
an event handler.</doc>
<type name="gboolean" c:type="gboolean"/>
</constant>
<class name="Event" c:symbol-prefix="event" c:type="GdkEvent" abstract="1" glib:type-name="GdkEvent" glib:get-type="gdk_event_get_type" glib:fundamental="1" glib:ref-func="gdk_event_ref" glib:unref-func="gdk_event_unref">
<doc xml:space="preserve">`GdkEvent`s are immutable data structures, created by GDK to
represent windowing system events.
In GTK applications the events are handled automatically by toplevel
widgets and passed on to the event controllers of appropriate widgets,
so using `GdkEvent` and its related API is rarely needed.</doc>
<method name="_get_angle" c:identifier="gdk_events_get_angle" moved-to="events_get_angle">
<doc xml:space="preserve">Returns the relative angle from @event1 to @event2.
The relative angle is the angle between the X axis and the line
through both events' positions. The rotation direction for positive
angles is from the positive X axis towards the positive Y axis.
This assumes that both events have X/Y information.
If not, this function returns %FALSE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the angle could be calculated.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event1" transfer-ownership="none">
<doc xml:space="preserve">first `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="event2" transfer-ownership="none">
<doc xml:space="preserve">second `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
<parameter name="angle" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the relative angle between both events</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="_get_center" c:identifier="gdk_events_get_center" moved-to="events_get_center">
<doc xml:space="preserve">Returns the point halfway between the events' positions.
This assumes that both events have X/Y information.
If not, this function returns %FALSE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the center could be calculated.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event1" transfer-ownership="none">
<doc xml:space="preserve">first `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="event2" transfer-ownership="none">
<doc xml:space="preserve">second `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
<parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the X coordinate of the center</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the Y coordinate of the center</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="_get_distance" c:identifier="gdk_events_get_distance" moved-to="events_get_distance">
<doc xml:space="preserve">Returns the distance between the event locations.
This assumes that both events have X/Y information.
If not, this function returns %FALSE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the distance could be calculated.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event1" transfer-ownership="none">
<doc xml:space="preserve">first `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="event2" transfer-ownership="none">
<doc xml:space="preserve">second `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
<parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the distance</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="get_axes" c:identifier="gdk_event_get_axes">
<doc xml:space="preserve">Extracts all axis values from an event.
To find out which axes are used, use [method@Gdk.DeviceTool.get_axes]
on the device tool returned by [method@Gdk.Event.get_device_tool].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE on success, otherwise %FALSE</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="axes" direction="out" caller-allocates="0" transfer-ownership="none">
<doc xml:space="preserve">the array of values for all axes</doc>
<array length="1" zero-terminated="0" c:type="double**">
<type name="gdouble" c:type="double*"/>
</array>
</parameter>
<parameter name="n_axes" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">the length of array</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</method>
<method name="get_axis" c:identifier="gdk_event_get_axis">
<doc xml:space="preserve">Extract the axis value for a particular axis use from
an event structure.
To find out which axes are used, use [method@Gdk.DeviceTool.get_axes]
on the device tool returned by [method@Gdk.Event.get_device_tool].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the specified axis was found, otherwise %FALSE</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="axis_use" transfer-ownership="none">
<doc xml:space="preserve">the axis use to look for</doc>
<type name="AxisUse" c:type="GdkAxisUse"/>
</parameter>
<parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">location to store the value found</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="get_device" c:identifier="gdk_event_get_device">
<doc xml:space="preserve">Returns the device of an event.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`.</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_device_tool" c:identifier="gdk_event_get_device_tool">
<doc xml:space="preserve">Returns a `GdkDeviceTool` representing the tool that
caused the event.
If the was not generated by a device that supports
different tools (such as a tablet), this function will
return %NULL.
Note: the `GdkDeviceTool` will be constant during
the application lifetime, if settings must be stored
persistently across runs, see [method@Gdk.DeviceTool.get_serial].</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">The current device tool</doc>
<type name="DeviceTool" c:type="GdkDeviceTool*"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_event_get_display">
<doc xml:space="preserve">Retrieves the display associated to the @event.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_event_sequence" c:identifier="gdk_event_get_event_sequence">
<doc xml:space="preserve">Retuns the event sequence to which the event belongs.
Related touch events are connected in a sequence. Other
events typically don't have event sequence information.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the event sequence that the event belongs to</doc>
<type name="EventSequence" c:type="GdkEventSequence*"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_event_type" c:identifier="gdk_event_get_event_type">
<doc xml:space="preserve">Retrieves the type of the event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`Type</doc>
<type name="EventType" c:type="GdkEventType"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_history" c:identifier="gdk_event_get_history">
<doc xml:space="preserve">Retrieves the history of the device that @event is for, as a list of
time and coordinates.
The history includes positions that are not delivered as separate events
to the application because they occurred in the same frame as @event.
Note that only motion and scroll events record history, and motion
events do it only if one of the mouse buttons is down, or the device
has a tool.</doc>
<return-value transfer-ownership="container" nullable="1">
<doc xml:space="preserve">an
array of time and coordinates</doc>
<array length="0" zero-terminated="0" c:type="GdkTimeCoord*">
<type name="TimeCoord" c:type="GdkTimeCoord"/>
</array>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a motion or scroll event</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="out_n_coords" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">Return location for the length of the returned array</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</method>
<method name="get_modifier_state" c:identifier="gdk_event_get_modifier_state">
<doc xml:space="preserve">Returns the modifier state field of an event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the modifier state of @event</doc>
<type name="ModifierType" c:type="GdkModifierType"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_pointer_emulated" c:identifier="gdk_event_get_pointer_emulated">
<doc xml:space="preserve">Returns whether this event is an 'emulated' pointer event.
Emulated pointer events typically originate from a touch events.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if this event is emulated</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_position" c:identifier="gdk_event_get_position">
<doc xml:space="preserve">Extract the event surface relative x/y coordinates from an event.</doc>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">location to put event surface x coordinate</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">location to put event surface y coordinate</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="get_seat" c:identifier="gdk_event_get_seat">
<doc xml:space="preserve">Returns the seat that originated the event.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkSeat`.</doc>
<type name="Seat" c:type="GdkSeat*"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_surface" c:identifier="gdk_event_get_surface">
<doc xml:space="preserve">Extracts the surface associated with an event.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">The `GdkSurface` associated with the event</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_time" c:identifier="gdk_event_get_time">
<doc xml:space="preserve">Returns the timestamp of @event.
Not all events have timestamps. In that case, this function
returns %GDK_CURRENT_TIME.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">timestamp field from @event</doc>
<type name="guint32" c:type="guint32"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="ref" c:identifier="gdk_event_ref">
<doc xml:space="preserve">Increase the ref count of @event.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">@event</doc>
<type name="Event" c:type="GdkEvent*"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="triggers_context_menu" c:identifier="gdk_event_triggers_context_menu">
<doc xml:space="preserve">Returns whether a `GdkEvent` should trigger a context menu,
according to platform conventions.
The right mouse button typically triggers context menus.
This function should always be used instead of simply checking for
event-&gt;button == %GDK_BUTTON_SECONDARY.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the event should trigger a context menu.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent`, currently only button events are meaningful values</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="unref" c:identifier="gdk_event_unref">
<doc xml:space="preserve">Decrease the ref count of @event.
If the last reference is dropped, the structure is freed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="full">
<doc xml:space="preserve">a `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
</class>
<record name="EventSequence" c:type="GdkEventSequence" glib:type-name="GdkEventSequence" glib:get-type="gdk_event_sequence_get_type" c:symbol-prefix="event_sequence">
<doc xml:space="preserve">`GdkEventSequence` is an opaque type representing a sequence
of related touch events.</doc>
</record>
<enumeration name="EventType" glib:type-name="GdkEventType" glib:get-type="gdk_event_type_get_type" c:type="GdkEventType">
<doc xml:space="preserve">Specifies the type of the event.</doc>
<member name="delete" value="0" c:identifier="GDK_DELETE" glib:nick="delete" glib:name="GDK_DELETE">
<doc xml:space="preserve">the window manager has requested that the toplevel surface be
hidden or destroyed, usually when the user clicks on a special icon in the
title bar.</doc>
</member>
<member name="motion_notify" value="1" c:identifier="GDK_MOTION_NOTIFY" glib:nick="motion-notify" glib:name="GDK_MOTION_NOTIFY">
<doc xml:space="preserve">the pointer (usually a mouse) has moved.</doc>
</member>
<member name="button_press" value="2" c:identifier="GDK_BUTTON_PRESS" glib:nick="button-press" glib:name="GDK_BUTTON_PRESS">
<doc xml:space="preserve">a mouse button has been pressed.</doc>
</member>
<member name="button_release" value="3" c:identifier="GDK_BUTTON_RELEASE" glib:nick="button-release" glib:name="GDK_BUTTON_RELEASE">
<doc xml:space="preserve">a mouse button has been released.</doc>
</member>
<member name="key_press" value="4" c:identifier="GDK_KEY_PRESS" glib:nick="key-press" glib:name="GDK_KEY_PRESS">
<doc xml:space="preserve">a key has been pressed.</doc>
</member>
<member name="key_release" value="5" c:identifier="GDK_KEY_RELEASE" glib:nick="key-release" glib:name="GDK_KEY_RELEASE">
<doc xml:space="preserve">a key has been released.</doc>
</member>
<member name="enter_notify" value="6" c:identifier="GDK_ENTER_NOTIFY" glib:nick="enter-notify" glib:name="GDK_ENTER_NOTIFY">
<doc xml:space="preserve">the pointer has entered the surface.</doc>
</member>
<member name="leave_notify" value="7" c:identifier="GDK_LEAVE_NOTIFY" glib:nick="leave-notify" glib:name="GDK_LEAVE_NOTIFY">
<doc xml:space="preserve">the pointer has left the surface.</doc>
</member>
<member name="focus_change" value="8" c:identifier="GDK_FOCUS_CHANGE" glib:nick="focus-change" glib:name="GDK_FOCUS_CHANGE">
<doc xml:space="preserve">the keyboard focus has entered or left the surface.</doc>
</member>
<member name="proximity_in" value="9" c:identifier="GDK_PROXIMITY_IN" glib:nick="proximity-in" glib:name="GDK_PROXIMITY_IN">
<doc xml:space="preserve">an input device has moved into contact with a sensing
surface (e.g. a touchscreen or graphics tablet).</doc>
</member>
<member name="proximity_out" value="10" c:identifier="GDK_PROXIMITY_OUT" glib:nick="proximity-out" glib:name="GDK_PROXIMITY_OUT">
<doc xml:space="preserve">an input device has moved out of contact with a sensing
surface.</doc>
</member>
<member name="drag_enter" value="11" c:identifier="GDK_DRAG_ENTER" glib:nick="drag-enter" glib:name="GDK_DRAG_ENTER">
<doc xml:space="preserve">the mouse has entered the surface while a drag is in progress.</doc>
</member>
<member name="drag_leave" value="12" c:identifier="GDK_DRAG_LEAVE" glib:nick="drag-leave" glib:name="GDK_DRAG_LEAVE">
<doc xml:space="preserve">the mouse has left the surface while a drag is in progress.</doc>
</member>
<member name="drag_motion" value="13" c:identifier="GDK_DRAG_MOTION" glib:nick="drag-motion" glib:name="GDK_DRAG_MOTION">
<doc xml:space="preserve">the mouse has moved in the surface while a drag is in
progress.</doc>
</member>
<member name="drop_start" value="14" c:identifier="GDK_DROP_START" glib:nick="drop-start" glib:name="GDK_DROP_START">
<doc xml:space="preserve">a drop operation onto the surface has started.</doc>
</member>
<member name="scroll" value="15" c:identifier="GDK_SCROLL" glib:nick="scroll" glib:name="GDK_SCROLL">
<doc xml:space="preserve">the scroll wheel was turned</doc>
</member>
<member name="grab_broken" value="16" c:identifier="GDK_GRAB_BROKEN" glib:nick="grab-broken" glib:name="GDK_GRAB_BROKEN">
<doc xml:space="preserve">a pointer or keyboard grab was broken.</doc>
</member>
<member name="touch_begin" value="17" c:identifier="GDK_TOUCH_BEGIN" glib:nick="touch-begin" glib:name="GDK_TOUCH_BEGIN">
<doc xml:space="preserve">A new touch event sequence has just started.</doc>
</member>
<member name="touch_update" value="18" c:identifier="GDK_TOUCH_UPDATE" glib:nick="touch-update" glib:name="GDK_TOUCH_UPDATE">
<doc xml:space="preserve">A touch event sequence has been updated.</doc>
</member>
<member name="touch_end" value="19" c:identifier="GDK_TOUCH_END" glib:nick="touch-end" glib:name="GDK_TOUCH_END">
<doc xml:space="preserve">A touch event sequence has finished.</doc>
</member>
<member name="touch_cancel" value="20" c:identifier="GDK_TOUCH_CANCEL" glib:nick="touch-cancel" glib:name="GDK_TOUCH_CANCEL">
<doc xml:space="preserve">A touch event sequence has been canceled.</doc>
</member>
<member name="touchpad_swipe" value="21" c:identifier="GDK_TOUCHPAD_SWIPE" glib:nick="touchpad-swipe" glib:name="GDK_TOUCHPAD_SWIPE">
<doc xml:space="preserve">A touchpad swipe gesture event, the current state
is determined by its phase field.</doc>
</member>
<member name="touchpad_pinch" value="22" c:identifier="GDK_TOUCHPAD_PINCH" glib:nick="touchpad-pinch" glib:name="GDK_TOUCHPAD_PINCH">
<doc xml:space="preserve">A touchpad pinch gesture event, the current state
is determined by its phase field.</doc>
</member>
<member name="pad_button_press" value="23" c:identifier="GDK_PAD_BUTTON_PRESS" glib:nick="pad-button-press" glib:name="GDK_PAD_BUTTON_PRESS">
<doc xml:space="preserve">A tablet pad button press event.</doc>
</member>
<member name="pad_button_release" value="24" c:identifier="GDK_PAD_BUTTON_RELEASE" glib:nick="pad-button-release" glib:name="GDK_PAD_BUTTON_RELEASE">
<doc xml:space="preserve">A tablet pad button release event.</doc>
</member>
<member name="pad_ring" value="25" c:identifier="GDK_PAD_RING" glib:nick="pad-ring" glib:name="GDK_PAD_RING">
<doc xml:space="preserve">A tablet pad axis event from a "ring".</doc>
</member>
<member name="pad_strip" value="26" c:identifier="GDK_PAD_STRIP" glib:nick="pad-strip" glib:name="GDK_PAD_STRIP">
<doc xml:space="preserve">A tablet pad axis event from a "strip".</doc>
</member>
<member name="pad_group_mode" value="27" c:identifier="GDK_PAD_GROUP_MODE" glib:nick="pad-group-mode" glib:name="GDK_PAD_GROUP_MODE">
<doc xml:space="preserve">A tablet pad group mode change.</doc>
</member>
<member name="touchpad_hold" value="28" c:identifier="GDK_TOUCHPAD_HOLD" glib:nick="touchpad-hold" glib:name="GDK_TOUCHPAD_HOLD">
<doc xml:space="preserve">A touchpad hold gesture event, the current state
is determined by its phase field. Since: 4.6</doc>
</member>
<member name="event_last" value="29" c:identifier="GDK_EVENT_LAST" glib:nick="event-last" glib:name="GDK_EVENT_LAST">
<doc xml:space="preserve">marks the end of the GdkEventType enumeration.</doc>
</member>
</enumeration>
<function-macro name="FRAME_CLOCK" c:identifier="GDK_FRAME_CLOCK" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="FRAME_CLOCK_CLASS" c:identifier="GDK_FRAME_CLOCK_CLASS" introspectable="0">
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="FRAME_CLOCK_GET_CLASS" c:identifier="GDK_FRAME_CLOCK_GET_CLASS" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<record name="FileList" c:type="GdkFileList" version="4.6" glib:type-name="GdkFileList" glib:get-type="gdk_file_list_get_type" c:symbol-prefix="file_list">
<doc xml:space="preserve">An opaque type representing a list of files.</doc>
<method name="get_files" c:identifier="gdk_file_list_get_files" version="4.6">
<doc xml:space="preserve">Retrieves the list of files inside a `GdkFileList`.
This function is meant for language bindings.</doc>
<return-value transfer-ownership="container">
<doc xml:space="preserve">the files inside the list</doc>
<type name="GLib.SList" c:type="GSList*">
<type name="Gio.File"/>
</type>
</return-value>
<parameters>
<instance-parameter name="file_list" transfer-ownership="none">
<doc xml:space="preserve">the file list</doc>
<type name="FileList" c:type="GdkFileList*"/>
</instance-parameter>
</parameters>
</method>
</record>
<class name="FocusEvent" c:symbol-prefix="focus_event" c:type="GdkFocusEvent" parent="Event" glib:type-name="GdkFocusEvent" glib:get-type="gdk_focus_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to a keyboard focus change.</doc>
<method name="get_in" c:identifier="gdk_focus_event_get_in">
<doc xml:space="preserve">Extracts whether this event is about focus entering or
leaving the surface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE of the focus is entering</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a focus change event</doc>
<type name="FocusEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
</class>
<class name="FrameClock" c:symbol-prefix="frame_clock" c:type="GdkFrameClock" parent="GObject.Object" abstract="1" glib:type-name="GdkFrameClock" glib:get-type="gdk_frame_clock_get_type" glib:type-struct="FrameClockClass">
<doc xml:space="preserve">A `GdkFrameClock` tells the application when to update and repaint
a surface.
This may be synced to the vertical refresh rate of the monitor, for example.
Even when the frame clock uses a simple timer rather than a hardware-based
vertical sync, the frame clock helps because it ensures everything paints at
the same time (reducing the total number of frames).
The frame clock can also automatically stop painting when it knows the frames
will not be visible, or scale back animation framerates.
`GdkFrameClock` is designed to be compatible with an OpenGL-based implementation
or with mozRequestAnimationFrame in Firefox, for example.
A frame clock is idle until someone requests a frame with
[method@Gdk.FrameClock.request_phase]. At some later point that makes sense
for the synchronization being implemented, the clock will process a frame and
emit signals for each phase that has been requested. (See the signals of the
`GdkFrameClock` class for documentation of the phases.
%GDK_FRAME_CLOCK_PHASE_UPDATE and the [signal@GdkFrameClock::update] signal
are most interesting for application writers, and are used to update the
animations, using the frame time given by [method@Gdk.FrameClock.get_frame_time].
The frame time is reported in microseconds and generally in the same
timescale as g_get_monotonic_time(), however, it is not the same
as g_get_monotonic_time(). The frame time does not advance during
the time a frame is being painted, and outside of a frame, an attempt
is made so that all calls to [method@Gdk.FrameClock.get_frame_time] that
are called at a &#x201C;similar&#x201D; time get the same value. This means that
if different animations are timed by looking at the difference in
time between an initial value from [method@Gdk.FrameClock.get_frame_time]
and the value inside the [signal@GdkFrameClock::update] signal of the clock,
they will stay exactly synchronized.</doc>
<method name="begin_updating" c:identifier="gdk_frame_clock_begin_updating">
<doc xml:space="preserve">Starts updates for an animation.
Until a matching call to [method@Gdk.FrameClock.end_updating] is made,
the frame clock will continually request a new frame with the
%GDK_FRAME_CLOCK_PHASE_UPDATE phase. This function may be called multiple
times and frames will be requested until gdk_frame_clock_end_updating()
is called the same number of times.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
</parameters>
</method>
<method name="end_updating" c:identifier="gdk_frame_clock_end_updating">
<doc xml:space="preserve">Stops updates for an animation.
See the documentation for [method@Gdk.FrameClock.begin_updating].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_current_timings" c:identifier="gdk_frame_clock_get_current_timings">
<doc xml:space="preserve">Gets the frame timings for the current frame.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the `GdkFrameTimings` for the
frame currently being processed, or even no frame is being
processed, for the previous frame. Before any frames have been
processed, returns %NULL.</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_fps" c:identifier="gdk_frame_clock_get_fps">
<doc xml:space="preserve">Calculates the current frames-per-second, based on the
frame timings of @frame_clock.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the current fps, as a `double`</doc>
<type name="gdouble" c:type="double"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_frame_counter" c:identifier="gdk_frame_clock_get_frame_counter">
<doc xml:space="preserve">`GdkFrameClock` maintains a 64-bit counter that increments for
each frame drawn.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">inside frame processing, the value of the frame counter
for the current frame. Outside of frame processing, the frame
counter for the last frame.</doc>
<type name="gint64" c:type="gint64"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_frame_time" c:identifier="gdk_frame_clock_get_frame_time">
<doc xml:space="preserve">Gets the time that should currently be used for animations.
Inside the processing of a frame, it&#x2019;s the time used to compute the
animation position of everything in a frame. Outside of a frame, it's
the time of the conceptual &#x201C;previous frame,&#x201D; which may be either
the actual previous frame time, or if that&#x2019;s too old, an updated
time.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a timestamp in microseconds, in the timescale of
of g_get_monotonic_time().</doc>
<type name="gint64" c:type="gint64"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_history_start" c:identifier="gdk_frame_clock_get_history_start">
<doc xml:space="preserve">Returns the frame counter for the oldest frame available in history.
`GdkFrameClock` internally keeps a history of `GdkFrameTimings`
objects for recent frames that can be retrieved with
[method@Gdk.FrameClock.get_timings]. The set of stored frames
is the set from the counter values given by
[method@Gdk.FrameClock.get_history_start] and
[method@Gdk.FrameClock.get_frame_counter], inclusive.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the frame counter value for the oldest frame
that is available in the internal frame history of the
`GdkFrameClock`</doc>
<type name="gint64" c:type="gint64"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_refresh_info" c:identifier="gdk_frame_clock_get_refresh_info">
<doc xml:space="preserve">Predicts a presentation time, based on history.
Using the frame history stored in the frame clock, finds the last
known presentation time and refresh interval, and assuming that
presentation times are separated by the refresh interval,
predicts a presentation time that is a multiple of the refresh
interval after the last presentation time, and later than @base_time.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
<parameter name="base_time" transfer-ownership="none">
<doc xml:space="preserve">base time for determining a presentaton time</doc>
<type name="gint64" c:type="gint64"/>
</parameter>
<parameter name="refresh_interval_return" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">a location to store the
determined refresh interval, or %NULL. A default refresh interval of
1/60th of a second will be stored if no history is present.</doc>
<type name="gint64" c:type="gint64*"/>
</parameter>
<parameter name="presentation_time_return" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">a location to store the next
candidate presentation time after the given base time.
0 will be will be stored if no history is present.</doc>
<type name="gint64" c:type="gint64*"/>
</parameter>
</parameters>
</method>
<method name="get_timings" c:identifier="gdk_frame_clock_get_timings">
<doc xml:space="preserve">Retrieves a `GdkFrameTimings` object holding timing information
for the current frame or a recent frame.
The `GdkFrameTimings` object may not yet be complete: see
[method@Gdk.FrameTimings.get_complete] and
[method@Gdk.FrameClock.get_history_start].</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the `GdkFrameTimings` object
for the specified frame, or %NULL if it is not available</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
<parameter name="frame_counter" transfer-ownership="none">
<doc xml:space="preserve">the frame counter value identifying the frame to
be received</doc>
<type name="gint64" c:type="gint64"/>
</parameter>
</parameters>
</method>
<method name="request_phase" c:identifier="gdk_frame_clock_request_phase">
<doc xml:space="preserve">Asks the frame clock to run a particular phase.
The signal corresponding the requested phase will be emitted the next
time the frame clock processes. Multiple calls to
gdk_frame_clock_request_phase() will be combined together
and only one frame processed. If you are displaying animated
content and want to continually request the
%GDK_FRAME_CLOCK_PHASE_UPDATE phase for a period of time,
you should use [method@Gdk.FrameClock.begin_updating] instead,
since this allows GTK to adjust system parameters to get maximally
smooth animations.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="frame_clock" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameClock`</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</instance-parameter>
<parameter name="phase" transfer-ownership="none">
<doc xml:space="preserve">the phase that is requested</doc>
<type name="FrameClockPhase" c:type="GdkFrameClockPhase"/>
</parameter>
</parameters>
</method>
<glib:signal name="after-paint" when="last">
<doc xml:space="preserve">This signal ends processing of the frame.
Applications should generally not handle this signal.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="before-paint" when="last">
<doc xml:space="preserve">Begins processing of the frame.
Applications should generally not handle this signal.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="flush-events" when="last">
<doc xml:space="preserve">Used to flush pending motion events that are being batched up and
compressed together.
Applications should not handle this signal.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="layout" when="last">
<doc xml:space="preserve">Emitted as the second step of toolkit and application processing
of the frame.
Any work to update sizes and positions of application elements
should be performed. GTK normally handles this internally.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="paint" when="last">
<doc xml:space="preserve">Emitted as the third step of toolkit and application processing
of the frame.
The frame is repainted. GDK normally handles this internally and
emits [signal@Gdk.Surface::render] signals which are turned into
[signal@Gtk.Widget::snapshot] signals by GTK.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="resume-events" when="last">
<doc xml:space="preserve">Emitted after processing of the frame is finished.
This signal is handled internally by GTK to resume normal
event processing. Applications should not handle this signal.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="update" when="last">
<doc xml:space="preserve">Emitted as the first step of toolkit and application processing
of the frame.
Animations should be updated using [method@Gdk.FrameClock.get_frame_time].
Applications can connect directly to this signal, or use
[method@Gtk.Widget.add_tick_callback] as a more convenient interface.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
</class>
<record name="FrameClockClass" c:type="GdkFrameClockClass" disguised="1" glib:is-gtype-struct-for="FrameClock"/>
<bitfield name="FrameClockPhase" glib:type-name="GdkFrameClockPhase" glib:get-type="gdk_frame_clock_phase_get_type" c:type="GdkFrameClockPhase">
<doc xml:space="preserve">Used to represent the different paint clock phases that can be requested.
The elements of the enumeration correspond to the signals of `GdkFrameClock`.</doc>
<member name="none" value="0" c:identifier="GDK_FRAME_CLOCK_PHASE_NONE" glib:nick="none" glib:name="GDK_FRAME_CLOCK_PHASE_NONE">
<doc xml:space="preserve">no phase</doc>
</member>
<member name="flush_events" value="1" c:identifier="GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS" glib:nick="flush-events" glib:name="GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS">
<doc xml:space="preserve">corresponds to GdkFrameClock::flush-events. Should not be handled by applications.</doc>
</member>
<member name="before_paint" value="2" c:identifier="GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT" glib:nick="before-paint" glib:name="GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT">
<doc xml:space="preserve">corresponds to GdkFrameClock::before-paint. Should not be handled by applications.</doc>
</member>
<member name="update" value="4" c:identifier="GDK_FRAME_CLOCK_PHASE_UPDATE" glib:nick="update" glib:name="GDK_FRAME_CLOCK_PHASE_UPDATE">
<doc xml:space="preserve">corresponds to GdkFrameClock::update.</doc>
</member>
<member name="layout" value="8" c:identifier="GDK_FRAME_CLOCK_PHASE_LAYOUT" glib:nick="layout" glib:name="GDK_FRAME_CLOCK_PHASE_LAYOUT">
<doc xml:space="preserve">corresponds to GdkFrameClock::layout. Should not be handled by applicatiosn.</doc>
</member>
<member name="paint" value="16" c:identifier="GDK_FRAME_CLOCK_PHASE_PAINT" glib:nick="paint" glib:name="GDK_FRAME_CLOCK_PHASE_PAINT">
<doc xml:space="preserve">corresponds to GdkFrameClock::paint.</doc>
</member>
<member name="resume_events" value="32" c:identifier="GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS" glib:nick="resume-events" glib:name="GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS">
<doc xml:space="preserve">corresponds to GdkFrameClock::resume-events. Should not be handled by applications.</doc>
</member>
<member name="after_paint" value="64" c:identifier="GDK_FRAME_CLOCK_PHASE_AFTER_PAINT" glib:nick="after-paint" glib:name="GDK_FRAME_CLOCK_PHASE_AFTER_PAINT">
<doc xml:space="preserve">corresponds to GdkFrameClock::after-paint. Should not be handled by applications.</doc>
</member>
</bitfield>
<record name="FrameClockPrivate" c:type="GdkFrameClockPrivate" disguised="1"/>
<record name="FrameTimings" c:type="GdkFrameTimings" glib:type-name="GdkFrameTimings" glib:get-type="gdk_frame_timings_get_type" c:symbol-prefix="frame_timings">
<doc xml:space="preserve">A `GdkFrameTimings` object holds timing information for a single frame
of the application&#x2019;s displays.
To retrieve `GdkFrameTimings` objects, use [method@Gdk.FrameClock.get_timings]
or [method@Gdk.FrameClock.get_current_timings]. The information in
`GdkFrameTimings` is useful for precise synchronization of video with
the event or audio streams, and for measuring quality metrics for the
application&#x2019;s display, such as latency and jitter.</doc>
<method name="get_complete" c:identifier="gdk_frame_timings_get_complete">
<doc xml:space="preserve">Returns whether @timings are complete.
The timing information in a `GdkFrameTimings` is filled in
incrementally as the frame as drawn and passed off to the
window system for processing and display to the user. The
accessor functions for `GdkFrameTimings` can return 0 to
indicate an unavailable value for two reasons: either because
the information is not yet available, or because it isn't
available at all.
Once this function returns %TRUE for a frame, you can be
certain that no further values will become available and be
stored in the `GdkFrameTimings`.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if all information that will be available
for the frame has been filled in.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="timings" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameTimings`</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_frame_counter" c:identifier="gdk_frame_timings_get_frame_counter">
<doc xml:space="preserve">Gets the frame counter value of the `GdkFrameClock` when
this frame was drawn.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the frame counter value for this frame</doc>
<type name="gint64" c:type="gint64"/>
</return-value>
<parameters>
<instance-parameter name="timings" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameTimings`</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_frame_time" c:identifier="gdk_frame_timings_get_frame_time">
<doc xml:space="preserve">Returns the frame time for the frame.
This is the time value that is typically used to time
animations for the frame. See [method@Gdk.FrameClock.get_frame_time].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the frame time for the frame, in the timescale
of g_get_monotonic_time()</doc>
<type name="gint64" c:type="gint64"/>
</return-value>
<parameters>
<instance-parameter name="timings" transfer-ownership="none">
<doc xml:space="preserve">A `GdkFrameTimings`</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_predicted_presentation_time" c:identifier="gdk_frame_timings_get_predicted_presentation_time">
<doc xml:space="preserve">Gets the predicted time at which this frame will be displayed.
Although no predicted time may be available, if one is available,
it will be available while the frame is being generated, in contrast
to [method@Gdk.FrameTimings.get_presentation_time], which is only
available after the frame has been presented.
In general, if you are simply animating, you should use
[method@Gdk.FrameClock.get_frame_time] rather than this function,
but this function is useful for applications that want exact control
over latency. For example, a movie player may want this information
for Audio/Video synchronization.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The predicted time at which the frame will be presented,
in the timescale of g_get_monotonic_time(), or 0 if no predicted
presentation time is available.</doc>
<type name="gint64" c:type="gint64"/>
</return-value>
<parameters>
<instance-parameter name="timings" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameTimings`</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_presentation_time" c:identifier="gdk_frame_timings_get_presentation_time">
<doc xml:space="preserve">Reurns the presentation time.
This is the time at which the frame became visible to the user.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the time the frame was displayed to the user, in the
timescale of g_get_monotonic_time(), or 0 if no presentation
time is available. See [method@Gdk.FrameTimings.get_complete]</doc>
<type name="gint64" c:type="gint64"/>
</return-value>
<parameters>
<instance-parameter name="timings" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameTimings`</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_refresh_interval" c:identifier="gdk_frame_timings_get_refresh_interval">
<doc xml:space="preserve">Gets the natural interval between presentation times for
the display that this frame was displayed on.
Frame presentation usually happens during the &#x201C;vertical
blanking interval&#x201D;.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the refresh interval of the display, in microseconds,
or 0 if the refresh interval is not available.
See [method@Gdk.FrameTimings.get_complete].</doc>
<type name="gint64" c:type="gint64"/>
</return-value>
<parameters>
<instance-parameter name="timings" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameTimings`</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</instance-parameter>
</parameters>
</method>
<method name="ref" c:identifier="gdk_frame_timings_ref">
<doc xml:space="preserve">Increases the reference count of @timings.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">@timings</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</return-value>
<parameters>
<instance-parameter name="timings" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameTimings`</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</instance-parameter>
</parameters>
</method>
<method name="unref" c:identifier="gdk_frame_timings_unref">
<doc xml:space="preserve">Decreases the reference count of @timings.
If @timings is no longer referenced, it will be freed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="timings" transfer-ownership="none">
<doc xml:space="preserve">a `GdkFrameTimings`</doc>
<type name="FrameTimings" c:type="GdkFrameTimings*"/>
</instance-parameter>
</parameters>
</method>
</record>
<enumeration name="FullscreenMode" glib:type-name="GdkFullscreenMode" glib:get-type="gdk_fullscreen_mode_get_type" c:type="GdkFullscreenMode">
<doc xml:space="preserve">Indicates which monitor a surface should span over when in fullscreen mode.</doc>
<member name="current_monitor" value="0" c:identifier="GDK_FULLSCREEN_ON_CURRENT_MONITOR" glib:nick="current-monitor" glib:name="GDK_FULLSCREEN_ON_CURRENT_MONITOR">
<doc xml:space="preserve">Fullscreen on current monitor only.</doc>
</member>
<member name="all_monitors" value="1" c:identifier="GDK_FULLSCREEN_ON_ALL_MONITORS" glib:nick="all-monitors" glib:name="GDK_FULLSCREEN_ON_ALL_MONITORS">
<doc xml:space="preserve">Span across all monitors when fullscreen.</doc>
</member>
</enumeration>
<bitfield name="GLAPI" version="4.6" glib:type-name="GdkGLAPI" glib:get-type="gdk_gl_api_get_type" c:type="GdkGLAPI">
<doc xml:space="preserve">The list of the different APIs that GdkGLContext can potentially support.</doc>
<member name="gl" value="1" c:identifier="GDK_GL_API_GL" glib:nick="gl" glib:name="GDK_GL_API_GL">
<doc xml:space="preserve">The OpenGL API</doc>
</member>
<member name="gles" value="2" c:identifier="GDK_GL_API_GLES" glib:nick="gles" glib:name="GDK_GL_API_GLES">
<doc xml:space="preserve">The OpenGL ES API</doc>
</member>
</bitfield>
<class name="GLContext" c:symbol-prefix="gl_context" c:type="GdkGLContext" parent="DrawContext" abstract="1" glib:type-name="GdkGLContext" glib:get-type="gdk_gl_context_get_type">
<doc xml:space="preserve">`GdkGLContext` is an object representing a platform-specific
OpenGL draw context.
`GdkGLContext`s are created for a surface using
[method@Gdk.Surface.create_gl_context], and the context will match
the characteristics of the surface.
A `GdkGLContext` is not tied to any particular normal framebuffer.
For instance, it cannot draw to the surface back buffer. The GDK
repaint system is in full control of the painting to that. Instead,
you can create render buffers or textures and use [func@cairo_draw_from_gl]
in the draw function of your widget to draw them. Then GDK will handle
the integration of your rendering with that of other widgets.
Support for `GdkGLContext` is platform-specific and context creation
can fail, returning %NULL context.
A `GdkGLContext` has to be made "current" in order to start using
it, otherwise any OpenGL call will be ignored.
## Creating a new OpenGL context
In order to create a new `GdkGLContext` instance you need a `GdkSurface`,
which you typically get during the realize call of a widget.
A `GdkGLContext` is not realized until either [method@Gdk.GLContext.make_current]
or [method@Gdk.GLContext.realize] is called. It is possible to specify
details of the GL context like the OpenGL version to be used, or whether
the GL context should have extra state validation enabled after calling
[method@Gdk.Surface.create_gl_context] by calling [method@Gdk.GLContext.realize].
If the realization fails you have the option to change the settings of
the `GdkGLContext` and try again.
## Using a GdkGLContext
You will need to make the `GdkGLContext` the current context before issuing
OpenGL calls; the system sends OpenGL commands to whichever context is current.
It is possible to have multiple contexts, so you always need to ensure that
the one which you want to draw with is the current one before issuing commands:
```c
gdk_gl_context_make_current (context);
```
You can now perform your drawing using OpenGL commands.
You can check which `GdkGLContext` is the current one by using
[func@Gdk.GLContext.get_current]; you can also unset any `GdkGLContext`
that is currently set by calling [func@Gdk.GLContext.clear_current].</doc>
<function name="clear_current" c:identifier="gdk_gl_context_clear_current">
<doc xml:space="preserve">Clears the current `GdkGLContext`.
Any OpenGL call after this function returns will be ignored
until [method@Gdk.GLContext.make_current] is called.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="get_current" c:identifier="gdk_gl_context_get_current">
<doc xml:space="preserve">Retrieves the current `GdkGLContext`.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the current `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</return-value>
</function>
<method name="get_allowed_apis" c:identifier="gdk_gl_context_get_allowed_apis" glib:get-property="allowed-apis" version="4.6">
<attribute name="org.gtk.Method.get_property" value="allowed-apis"/>
<doc xml:space="preserve">Gets the allowed APIs set via gdk_gl_context_set_allowed_apis().</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the allowed APIs</doc>
<type name="GLAPI" c:type="GdkGLAPI"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a GL context</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_api" c:identifier="gdk_gl_context_get_api" glib:get-property="api" version="4.6">
<attribute name="org.gtk.Method.get_property" value="api"/>
<doc xml:space="preserve">Gets the API currently in use.
If the renderer has not been realized yet, 0 is returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the currently used API</doc>
<type name="GLAPI" c:type="GdkGLAPI"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a GL context</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_debug_enabled" c:identifier="gdk_gl_context_get_debug_enabled">
<doc xml:space="preserve">Retrieves whether the context is doing extra validations and runtime checking.
See [method@Gdk.GLContext.set_debug_enabled].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if debugging is enabled</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_gl_context_get_display">
<doc xml:space="preserve">Retrieves the display the @context is created for</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkDisplay`</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_forward_compatible" c:identifier="gdk_gl_context_get_forward_compatible">
<doc xml:space="preserve">Retrieves whether the context is forward-compatible.
See [method@Gdk.GLContext.set_forward_compatible].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the context should be forward-compatible</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_required_version" c:identifier="gdk_gl_context_get_required_version">
<doc xml:space="preserve">Retrieves required OpenGL version.
See [method@Gdk.GLContext.set_required_version].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
<parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve">return location for the major version to request</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve">return location for the minor version to request</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
</method>
<method name="get_shared_context" c:identifier="gdk_gl_context_get_shared_context" glib:get-property="shared-context" deprecated="1" deprecated-version="4.4">
<attribute name="org.gtk.Method.get_property" value="shared-context"/>
<doc xml:space="preserve">Used to retrieves the `GdkGLContext` that this @context share data with.
As many contexts can share data now and no single shared context exists
anymore, this function has been deprecated and now always returns %NULL.</doc>
<doc-deprecated xml:space="preserve">Use [method@Gdk.GLContext.is_shared] to check if contexts
can be shared.</doc-deprecated>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">%NULL</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_surface" c:identifier="gdk_gl_context_get_surface">
<doc xml:space="preserve">Retrieves the surface used by the @context.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_use_es" c:identifier="gdk_gl_context_get_use_es">
<doc xml:space="preserve">Checks whether the @context is using an OpenGL or OpenGL ES profile.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the `GdkGLContext` is using an OpenGL ES profile</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_version" c:identifier="gdk_gl_context_get_version">
<doc xml:space="preserve">Retrieves the OpenGL version of the @context.
The @context must be realized prior to calling this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
<parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the major version</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the minor version</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
</method>
<method name="is_legacy" c:identifier="gdk_gl_context_is_legacy">
<doc xml:space="preserve">Whether the `GdkGLContext` is in legacy mode or not.
The `GdkGLContext` must be realized before calling this function.
When realizing a GL context, GDK will try to use the OpenGL 3.2 core
profile; this profile removes all the OpenGL API that was deprecated
prior to the 3.2 version of the specification. If the realization is
successful, this function will return %FALSE.
If the underlying OpenGL implementation does not support core profiles,
GDK will fall back to a pre-3.2 compatibility profile, and this function
will return %TRUE.
You can use the value returned by this function to decide which kind
of OpenGL API to use, or whether to do extension discovery, or what
kind of shader programs to load.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the GL context is in legacy mode</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_shared" c:identifier="gdk_gl_context_is_shared" version="4.4">
<doc xml:space="preserve">Checks if the two GL contexts can share resources.
When they can, the texture IDs from @other can be used in @self. This
is particularly useful when passing `GdkGLTexture` objects between
different contexts.
Contexts created for the same display with the same properties will
always be compatible, even if they are created for different surfaces.
For other contexts it depends on the GL backend.
Both contexts must be realized for this check to succeed. If either one
is not, this function will return %FALSE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the two GL contexts are compatible.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
<parameter name="other" transfer-ownership="none">
<doc xml:space="preserve">the `GdkGLContext` that should be compatible with @self</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</parameter>
</parameters>
</method>
<method name="make_current" c:identifier="gdk_gl_context_make_current">
<doc xml:space="preserve">Makes the @context the current one.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="realize" c:identifier="gdk_gl_context_realize" throws="1">
<doc xml:space="preserve">Realizes the given `GdkGLContext`.
It is safe to call this function on a realized `GdkGLContext`.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the context is realized</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_allowed_apis" c:identifier="gdk_gl_context_set_allowed_apis" glib:set-property="allowed-apis" version="4.6">
<attribute name="org.gtk.Method.set_property" value="allowed-apis"/>
<doc xml:space="preserve">Sets the allowed APIs. When gdk_gl_context_realize() is called, only the
allowed APIs will be tried. If you set this to 0, realizing will always fail.
If you set it on a realized context, the property will not have any effect.
It is only relevant during gdk_gl_context_realize().
By default, all APIs are allowed.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a GL context</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
<parameter name="apis" transfer-ownership="none">
<doc xml:space="preserve">the allowed APIs</doc>
<type name="GLAPI" c:type="GdkGLAPI"/>
</parameter>
</parameters>
</method>
<method name="set_debug_enabled" c:identifier="gdk_gl_context_set_debug_enabled">
<doc xml:space="preserve">Sets whether the `GdkGLContext` should perform extra validations and
runtime checking.
This is useful during development, but has additional overhead.
The `GdkGLContext` must not be realized or made current prior to
calling this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
<parameter name="enabled" transfer-ownership="none">
<doc xml:space="preserve">whether to enable debugging in the context</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="set_forward_compatible" c:identifier="gdk_gl_context_set_forward_compatible">
<doc xml:space="preserve">Sets whether the `GdkGLContext` should be forward-compatible.
Forward-compatible contexts must not support OpenGL functionality that
has been marked as deprecated in the requested version; non-forward
compatible contexts, on the other hand, must support both deprecated and
non deprecated functionality.
The `GdkGLContext` must not be realized or made current prior to calling
this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
<parameter name="compatible" transfer-ownership="none">
<doc xml:space="preserve">whether the context should be forward-compatible</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="set_required_version" c:identifier="gdk_gl_context_set_required_version">
<doc xml:space="preserve">Sets the major and minor version of OpenGL to request.
Setting @major and @minor to zero will use the default values.
The `GdkGLContext` must not be realized or made current prior to calling
this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
<parameter name="major" transfer-ownership="none">
<doc xml:space="preserve">the major version to request</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="minor" transfer-ownership="none">
<doc xml:space="preserve">the minor version to request</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="set_use_es" c:identifier="gdk_gl_context_set_use_es">
<doc xml:space="preserve">Requests that GDK create an OpenGL ES context instead of an OpenGL one.
Not all platforms support OpenGL ES.
The @context must not have been realized.
By default, GDK will attempt to automatically detect whether the
underlying GL implementation is OpenGL or OpenGL ES once the @context
is realized.
You should check the return value of [method@Gdk.GLContext.get_use_es]
after calling [method@Gdk.GLContext.realize] to decide whether to use
the OpenGL or OpenGL ES API, extensions, or shaders.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</instance-parameter>
<parameter name="use_es" transfer-ownership="none">
<doc xml:space="preserve">whether the context should use OpenGL ES instead of OpenGL,
or -1 to allow auto-detection</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<property name="allowed-apis" version="4.6" writable="1" transfer-ownership="none" setter="set_allowed_apis" getter="get_allowed_apis">
<attribute name="org.gtk.Property.get" value="gdk_gl_context_get_allowed_apis"/>
<doc xml:space="preserve">The allowed APIs.</doc>
<type name="GLAPI"/>
</property>
<property name="api" version="4.6" transfer-ownership="none" getter="get_api">
<attribute name="org.gtk.Property.get" value="gdk_gl_context_get_api"/>
<doc xml:space="preserve">The API currently in use.</doc>
<type name="GLAPI"/>
</property>
<property name="shared-context" deprecated="1" deprecated-version="4.4" writable="1" construct-only="1" transfer-ownership="none" getter="get_shared_context">
<attribute name="org.gtk.Property.get" value="gdk_gl_context_get_shared_context"/>
<doc xml:space="preserve">Always %NULL
As many contexts can share data now and no single shared context exists
anymore, this function has been deprecated and now always returns %NULL.</doc>
<doc-deprecated xml:space="preserve">Use [method@Gdk.GLContext.is_shared] to check if contexts
can be shared.</doc-deprecated>
<type name="GLContext"/>
</property>
</class>
<enumeration name="GLError" glib:type-name="GdkGLError" glib:get-type="gdk_gl_error_get_type" c:type="GdkGLError" glib:error-domain="gdk-gl-error-quark">
<doc xml:space="preserve">Error enumeration for `GdkGLContext`.</doc>
<member name="not_available" value="0" c:identifier="GDK_GL_ERROR_NOT_AVAILABLE" glib:nick="not-available" glib:name="GDK_GL_ERROR_NOT_AVAILABLE">
<doc xml:space="preserve">OpenGL support is not available</doc>
</member>
<member name="unsupported_format" value="1" c:identifier="GDK_GL_ERROR_UNSUPPORTED_FORMAT" glib:nick="unsupported-format" glib:name="GDK_GL_ERROR_UNSUPPORTED_FORMAT">
<doc xml:space="preserve">The requested visual format is not supported</doc>
</member>
<member name="unsupported_profile" value="2" c:identifier="GDK_GL_ERROR_UNSUPPORTED_PROFILE" glib:nick="unsupported-profile" glib:name="GDK_GL_ERROR_UNSUPPORTED_PROFILE">
<doc xml:space="preserve">The requested profile is not supported</doc>
</member>
<member name="compilation_failed" value="3" c:identifier="GDK_GL_ERROR_COMPILATION_FAILED" glib:nick="compilation-failed" glib:name="GDK_GL_ERROR_COMPILATION_FAILED">
<doc xml:space="preserve">The shader compilation failed</doc>
</member>
<member name="link_failed" value="4" c:identifier="GDK_GL_ERROR_LINK_FAILED" glib:nick="link-failed" glib:name="GDK_GL_ERROR_LINK_FAILED">
<doc xml:space="preserve">The shader linking failed</doc>
</member>
<function name="quark" c:identifier="gdk_gl_error_quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
</enumeration>
<class name="GLTexture" c:symbol-prefix="gl_texture" c:type="GdkGLTexture" parent="Texture" glib:type-name="GdkGLTexture" glib:get-type="gdk_gl_texture_get_type" glib:type-struct="GLTextureClass">
<doc xml:space="preserve">A GdkTexture representing a GL texture object.</doc>
<implements name="Paintable"/>
<implements name="Gio.Icon"/>
<implements name="Gio.LoadableIcon"/>
<constructor name="new" c:identifier="gdk_gl_texture_new">
<doc xml:space="preserve">Creates a new texture for an existing GL texture.
Note that the GL texture must not be modified until @destroy is called,
which will happen when the GdkTexture object is finalized, or due to
an explicit call of [method@Gdk.GLTexture.release].</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A newly-created
`GdkTexture`</doc>
<type name="GLTexture" c:type="GdkTexture*"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</parameter>
<parameter name="id" transfer-ownership="none">
<doc xml:space="preserve">the ID of a texture that was created with @context</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">the nominal width of the texture</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">the nominal height of the texture</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="destroy" transfer-ownership="none" scope="async">
<doc xml:space="preserve">a destroy notify that will be called when the GL resources
are released</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">data that gets passed to @destroy</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</constructor>
<method name="release" c:identifier="gdk_gl_texture_release">
<doc xml:space="preserve">Releases the GL resources held by a `GdkGLTexture`.
The texture contents are still available via the
[method@Gdk.Texture.download] function, after this
function has been called.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture` wrapping a GL texture</doc>
<type name="GLTexture" c:type="GdkGLTexture*"/>
</instance-parameter>
</parameters>
</method>
</class>
<record name="GLTextureClass" c:type="GdkGLTextureClass" disguised="1" glib:is-gtype-struct-for="GLTexture"/>
<function-macro name="GL_CONTEXT" c:identifier="GDK_GL_CONTEXT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="GL_TEXTURE" c:identifier="GDK_GL_TEXTURE" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<class name="GrabBrokenEvent" c:symbol-prefix="grab_broken_event" c:type="GdkGrabBrokenEvent" parent="Event" glib:type-name="GdkGrabBrokenEvent" glib:get-type="gdk_grab_broken_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to a broken windowing system grab.</doc>
<method name="get_grab_surface" c:identifier="gdk_grab_broken_event_get_grab_surface">
<doc xml:space="preserve">Extracts the grab surface from a grab broken event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the grab surface of @event</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a grab broken event</doc>
<type name="GrabBrokenEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_implicit" c:identifier="gdk_grab_broken_event_get_implicit">
<doc xml:space="preserve">Checks whether the grab broken event is for an implicit grab.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the an implicit grab was broken</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a grab broken event</doc>
<type name="GrabBrokenEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
</class>
<enumeration name="Gravity" glib:type-name="GdkGravity" glib:get-type="gdk_gravity_get_type" c:type="GdkGravity">
<doc xml:space="preserve">Defines the reference point of a surface and is used in `GdkPopupLayout`.</doc>
<member name="north_west" value="1" c:identifier="GDK_GRAVITY_NORTH_WEST" glib:nick="north-west" glib:name="GDK_GRAVITY_NORTH_WEST">
<doc xml:space="preserve">the reference point is at the top left corner.</doc>
</member>
<member name="north" value="2" c:identifier="GDK_GRAVITY_NORTH" glib:nick="north" glib:name="GDK_GRAVITY_NORTH">
<doc xml:space="preserve">the reference point is in the middle of the top edge.</doc>
</member>
<member name="north_east" value="3" c:identifier="GDK_GRAVITY_NORTH_EAST" glib:nick="north-east" glib:name="GDK_GRAVITY_NORTH_EAST">
<doc xml:space="preserve">the reference point is at the top right corner.</doc>
</member>
<member name="west" value="4" c:identifier="GDK_GRAVITY_WEST" glib:nick="west" glib:name="GDK_GRAVITY_WEST">
<doc xml:space="preserve">the reference point is at the middle of the left edge.</doc>
</member>
<member name="center" value="5" c:identifier="GDK_GRAVITY_CENTER" glib:nick="center" glib:name="GDK_GRAVITY_CENTER">
<doc xml:space="preserve">the reference point is at the center of the surface.</doc>
</member>
<member name="east" value="6" c:identifier="GDK_GRAVITY_EAST" glib:nick="east" glib:name="GDK_GRAVITY_EAST">
<doc xml:space="preserve">the reference point is at the middle of the right edge.</doc>
</member>
<member name="south_west" value="7" c:identifier="GDK_GRAVITY_SOUTH_WEST" glib:nick="south-west" glib:name="GDK_GRAVITY_SOUTH_WEST">
<doc xml:space="preserve">the reference point is at the lower left corner.</doc>
</member>
<member name="south" value="8" c:identifier="GDK_GRAVITY_SOUTH" glib:nick="south" glib:name="GDK_GRAVITY_SOUTH">
<doc xml:space="preserve">the reference point is at the middle of the lower edge.</doc>
</member>
<member name="south_east" value="9" c:identifier="GDK_GRAVITY_SOUTH_EAST" glib:nick="south-east" glib:name="GDK_GRAVITY_SOUTH_EAST">
<doc xml:space="preserve">the reference point is at the lower right corner.</doc>
</member>
<member name="static" value="10" c:identifier="GDK_GRAVITY_STATIC" glib:nick="static" glib:name="GDK_GRAVITY_STATIC">
<doc xml:space="preserve">the reference point is at the top left corner of the
surface itself, ignoring window manager decorations.</doc>
</member>
</enumeration>
<function-macro name="IS_APP_LAUNCH_CONTEXT" c:identifier="GDK_IS_APP_LAUNCH_CONTEXT" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_CAIRO_CONTEXT" c:identifier="GDK_IS_CAIRO_CONTEXT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_CLIPBOARD" c:identifier="GDK_IS_CLIPBOARD" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_CONTENT_DESERIALIZER" c:identifier="GDK_IS_CONTENT_DESERIALIZER" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_CONTENT_PROVIDER" c:identifier="GDK_IS_CONTENT_PROVIDER" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_CONTENT_PROVIDER_CLASS" c:identifier="GDK_IS_CONTENT_PROVIDER_CLASS" introspectable="0">
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_CONTENT_SERIALIZER" c:identifier="GDK_IS_CONTENT_SERIALIZER" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_CURSOR" c:identifier="GDK_IS_CURSOR" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_DEVICE" c:identifier="GDK_IS_DEVICE" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_DEVICE_PAD" c:identifier="GDK_IS_DEVICE_PAD" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_DEVICE_TOOL" c:identifier="GDK_IS_DEVICE_TOOL" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_DISPLAY" c:identifier="GDK_IS_DISPLAY" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_DISPLAY_MANAGER" c:identifier="GDK_IS_DISPLAY_MANAGER" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_DRAG" c:identifier="GDK_IS_DRAG" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_DRAW_CONTEXT" c:identifier="GDK_IS_DRAW_CONTEXT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_DROP" c:identifier="GDK_IS_DROP" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_EVENT" c:identifier="GDK_IS_EVENT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_EVENT_TYPE" c:identifier="GDK_IS_EVENT_TYPE" introspectable="0">
<parameters>
<parameter name="event">
</parameter>
<parameter name="type">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_FRAME_CLOCK" c:identifier="GDK_IS_FRAME_CLOCK" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_FRAME_CLOCK_CLASS" c:identifier="GDK_IS_FRAME_CLOCK_CLASS" introspectable="0">
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_GL_CONTEXT" c:identifier="GDK_IS_GL_CONTEXT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_GL_TEXTURE" c:identifier="GDK_IS_GL_TEXTURE" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_MEMORY_TEXTURE" c:identifier="GDK_IS_MEMORY_TEXTURE" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_MONITOR" c:identifier="GDK_IS_MONITOR" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_SEAT" c:identifier="GDK_IS_SEAT" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_SNAPSHOT" c:identifier="GDK_IS_SNAPSHOT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_SURFACE" c:identifier="GDK_IS_SURFACE" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_SURFACE_CLASS" c:identifier="GDK_IS_SURFACE_CLASS" introspectable="0">
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_TEXTURE" c:identifier="GDK_IS_TEXTURE" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_CONTEXT" c:identifier="GDK_IS_VULKAN_CONTEXT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<enumeration name="InputSource" glib:type-name="GdkInputSource" glib:get-type="gdk_input_source_get_type" c:type="GdkInputSource">
<doc xml:space="preserve">An enumeration describing the type of an input device in general terms.</doc>
<member name="mouse" value="0" c:identifier="GDK_SOURCE_MOUSE" glib:nick="mouse" glib:name="GDK_SOURCE_MOUSE">
<doc xml:space="preserve">the device is a mouse. (This will be reported for the core
pointer, even if it is something else, such as a trackball.)</doc>
</member>
<member name="pen" value="1" c:identifier="GDK_SOURCE_PEN" glib:nick="pen" glib:name="GDK_SOURCE_PEN">
<doc xml:space="preserve">the device is a stylus of a graphics tablet or similar device.</doc>
</member>
<member name="keyboard" value="2" c:identifier="GDK_SOURCE_KEYBOARD" glib:nick="keyboard" glib:name="GDK_SOURCE_KEYBOARD">
<doc xml:space="preserve">the device is a keyboard.</doc>
</member>
<member name="touchscreen" value="3" c:identifier="GDK_SOURCE_TOUCHSCREEN" glib:nick="touchscreen" glib:name="GDK_SOURCE_TOUCHSCREEN">
<doc xml:space="preserve">the device is a direct-input touch device, such
as a touchscreen or tablet</doc>
</member>
<member name="touchpad" value="4" c:identifier="GDK_SOURCE_TOUCHPAD" glib:nick="touchpad" glib:name="GDK_SOURCE_TOUCHPAD">
<doc xml:space="preserve">the device is an indirect touch device, such
as a touchpad</doc>
</member>
<member name="trackpoint" value="5" c:identifier="GDK_SOURCE_TRACKPOINT" glib:nick="trackpoint" glib:name="GDK_SOURCE_TRACKPOINT">
<doc xml:space="preserve">the device is a trackpoint</doc>
</member>
<member name="tablet_pad" value="6" c:identifier="GDK_SOURCE_TABLET_PAD" glib:nick="tablet-pad" glib:name="GDK_SOURCE_TABLET_PAD">
<doc xml:space="preserve">the device is a "pad", a collection of buttons,
rings and strips found in drawing tablets</doc>
</member>
</enumeration>
<constant name="KEY_0" value="48" c:type="GDK_KEY_0">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_1" value="49" c:type="GDK_KEY_1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_2" value="50" c:type="GDK_KEY_2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3" value="51" c:type="GDK_KEY_3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_AltCursor" value="64784" c:type="GDK_KEY_3270_AltCursor">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Attn" value="64782" c:type="GDK_KEY_3270_Attn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_BackTab" value="64773" c:type="GDK_KEY_3270_BackTab">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_ChangeScreen" value="64793" c:type="GDK_KEY_3270_ChangeScreen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Copy" value="64789" c:type="GDK_KEY_3270_Copy">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_CursorBlink" value="64783" c:type="GDK_KEY_3270_CursorBlink">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_CursorSelect" value="64796" c:type="GDK_KEY_3270_CursorSelect">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_DeleteWord" value="64794" c:type="GDK_KEY_3270_DeleteWord">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Duplicate" value="64769" c:type="GDK_KEY_3270_Duplicate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Enter" value="64798" c:type="GDK_KEY_3270_Enter">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_EraseEOF" value="64774" c:type="GDK_KEY_3270_EraseEOF">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_EraseInput" value="64775" c:type="GDK_KEY_3270_EraseInput">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_ExSelect" value="64795" c:type="GDK_KEY_3270_ExSelect">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_FieldMark" value="64770" c:type="GDK_KEY_3270_FieldMark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Ident" value="64787" c:type="GDK_KEY_3270_Ident">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Jump" value="64786" c:type="GDK_KEY_3270_Jump">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_KeyClick" value="64785" c:type="GDK_KEY_3270_KeyClick">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Left2" value="64772" c:type="GDK_KEY_3270_Left2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_PA1" value="64778" c:type="GDK_KEY_3270_PA1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_PA2" value="64779" c:type="GDK_KEY_3270_PA2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_PA3" value="64780" c:type="GDK_KEY_3270_PA3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Play" value="64790" c:type="GDK_KEY_3270_Play">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_PrintScreen" value="64797" c:type="GDK_KEY_3270_PrintScreen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Quit" value="64777" c:type="GDK_KEY_3270_Quit">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Record" value="64792" c:type="GDK_KEY_3270_Record">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Reset" value="64776" c:type="GDK_KEY_3270_Reset">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Right2" value="64771" c:type="GDK_KEY_3270_Right2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Rule" value="64788" c:type="GDK_KEY_3270_Rule">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Setup" value="64791" c:type="GDK_KEY_3270_Setup">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_3270_Test" value="64781" c:type="GDK_KEY_3270_Test">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_4" value="52" c:type="GDK_KEY_4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_5" value="53" c:type="GDK_KEY_5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_6" value="54" c:type="GDK_KEY_6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_7" value="55" c:type="GDK_KEY_7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_8" value="56" c:type="GDK_KEY_8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_9" value="57" c:type="GDK_KEY_9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_A" value="65" c:type="GDK_KEY_A">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AE" value="198" c:type="GDK_KEY_AE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Aacute" value="193" c:type="GDK_KEY_Aacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Abelowdot" value="16785056" c:type="GDK_KEY_Abelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Abreve" value="451" c:type="GDK_KEY_Abreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Abreveacute" value="16785070" c:type="GDK_KEY_Abreveacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Abrevebelowdot" value="16785078" c:type="GDK_KEY_Abrevebelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Abrevegrave" value="16785072" c:type="GDK_KEY_Abrevegrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Abrevehook" value="16785074" c:type="GDK_KEY_Abrevehook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Abrevetilde" value="16785076" c:type="GDK_KEY_Abrevetilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AccessX_Enable" value="65136" c:type="GDK_KEY_AccessX_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AccessX_Feedback_Enable" value="65137" c:type="GDK_KEY_AccessX_Feedback_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Acircumflex" value="194" c:type="GDK_KEY_Acircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Acircumflexacute" value="16785060" c:type="GDK_KEY_Acircumflexacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Acircumflexbelowdot" value="16785068" c:type="GDK_KEY_Acircumflexbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Acircumflexgrave" value="16785062" c:type="GDK_KEY_Acircumflexgrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Acircumflexhook" value="16785064" c:type="GDK_KEY_Acircumflexhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Acircumflextilde" value="16785066" c:type="GDK_KEY_Acircumflextilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AddFavorite" value="269025081" c:type="GDK_KEY_AddFavorite">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Adiaeresis" value="196" c:type="GDK_KEY_Adiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Agrave" value="192" c:type="GDK_KEY_Agrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ahook" value="16785058" c:type="GDK_KEY_Ahook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Alt_L" value="65513" c:type="GDK_KEY_Alt_L">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Alt_R" value="65514" c:type="GDK_KEY_Alt_R">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Amacron" value="960" c:type="GDK_KEY_Amacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Aogonek" value="417" c:type="GDK_KEY_Aogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ApplicationLeft" value="269025104" c:type="GDK_KEY_ApplicationLeft">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ApplicationRight" value="269025105" c:type="GDK_KEY_ApplicationRight">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_0" value="16778848" c:type="GDK_KEY_Arabic_0">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_1" value="16778849" c:type="GDK_KEY_Arabic_1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_2" value="16778850" c:type="GDK_KEY_Arabic_2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_3" value="16778851" c:type="GDK_KEY_Arabic_3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_4" value="16778852" c:type="GDK_KEY_Arabic_4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_5" value="16778853" c:type="GDK_KEY_Arabic_5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_6" value="16778854" c:type="GDK_KEY_Arabic_6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_7" value="16778855" c:type="GDK_KEY_Arabic_7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_8" value="16778856" c:type="GDK_KEY_Arabic_8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_9" value="16778857" c:type="GDK_KEY_Arabic_9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_ain" value="1497" c:type="GDK_KEY_Arabic_ain">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_alef" value="1479" c:type="GDK_KEY_Arabic_alef">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_alefmaksura" value="1513" c:type="GDK_KEY_Arabic_alefmaksura">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_beh" value="1480" c:type="GDK_KEY_Arabic_beh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_comma" value="1452" c:type="GDK_KEY_Arabic_comma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_dad" value="1494" c:type="GDK_KEY_Arabic_dad">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_dal" value="1487" c:type="GDK_KEY_Arabic_dal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_damma" value="1519" c:type="GDK_KEY_Arabic_damma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_dammatan" value="1516" c:type="GDK_KEY_Arabic_dammatan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_ddal" value="16778888" c:type="GDK_KEY_Arabic_ddal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_farsi_yeh" value="16778956" c:type="GDK_KEY_Arabic_farsi_yeh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_fatha" value="1518" c:type="GDK_KEY_Arabic_fatha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_fathatan" value="1515" c:type="GDK_KEY_Arabic_fathatan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_feh" value="1505" c:type="GDK_KEY_Arabic_feh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_fullstop" value="16778964" c:type="GDK_KEY_Arabic_fullstop">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_gaf" value="16778927" c:type="GDK_KEY_Arabic_gaf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_ghain" value="1498" c:type="GDK_KEY_Arabic_ghain">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_ha" value="1511" c:type="GDK_KEY_Arabic_ha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_hah" value="1485" c:type="GDK_KEY_Arabic_hah">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_hamza" value="1473" c:type="GDK_KEY_Arabic_hamza">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_hamza_above" value="16778836" c:type="GDK_KEY_Arabic_hamza_above">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_hamza_below" value="16778837" c:type="GDK_KEY_Arabic_hamza_below">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_hamzaonalef" value="1475" c:type="GDK_KEY_Arabic_hamzaonalef">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_hamzaonwaw" value="1476" c:type="GDK_KEY_Arabic_hamzaonwaw">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_hamzaonyeh" value="1478" c:type="GDK_KEY_Arabic_hamzaonyeh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_hamzaunderalef" value="1477" c:type="GDK_KEY_Arabic_hamzaunderalef">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_heh" value="1511" c:type="GDK_KEY_Arabic_heh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_heh_doachashmee" value="16778942" c:type="GDK_KEY_Arabic_heh_doachashmee">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_heh_goal" value="16778945" c:type="GDK_KEY_Arabic_heh_goal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_jeem" value="1484" c:type="GDK_KEY_Arabic_jeem">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_jeh" value="16778904" c:type="GDK_KEY_Arabic_jeh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_kaf" value="1507" c:type="GDK_KEY_Arabic_kaf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_kasra" value="1520" c:type="GDK_KEY_Arabic_kasra">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_kasratan" value="1517" c:type="GDK_KEY_Arabic_kasratan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_keheh" value="16778921" c:type="GDK_KEY_Arabic_keheh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_khah" value="1486" c:type="GDK_KEY_Arabic_khah">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_lam" value="1508" c:type="GDK_KEY_Arabic_lam">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_madda_above" value="16778835" c:type="GDK_KEY_Arabic_madda_above">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_maddaonalef" value="1474" c:type="GDK_KEY_Arabic_maddaonalef">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_meem" value="1509" c:type="GDK_KEY_Arabic_meem">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_noon" value="1510" c:type="GDK_KEY_Arabic_noon">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_noon_ghunna" value="16778938" c:type="GDK_KEY_Arabic_noon_ghunna">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_peh" value="16778878" c:type="GDK_KEY_Arabic_peh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_percent" value="16778858" c:type="GDK_KEY_Arabic_percent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_qaf" value="1506" c:type="GDK_KEY_Arabic_qaf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_question_mark" value="1471" c:type="GDK_KEY_Arabic_question_mark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_ra" value="1489" c:type="GDK_KEY_Arabic_ra">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_rreh" value="16778897" c:type="GDK_KEY_Arabic_rreh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_sad" value="1493" c:type="GDK_KEY_Arabic_sad">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_seen" value="1491" c:type="GDK_KEY_Arabic_seen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_semicolon" value="1467" c:type="GDK_KEY_Arabic_semicolon">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_shadda" value="1521" c:type="GDK_KEY_Arabic_shadda">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_sheen" value="1492" c:type="GDK_KEY_Arabic_sheen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_sukun" value="1522" c:type="GDK_KEY_Arabic_sukun">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_superscript_alef" value="16778864" c:type="GDK_KEY_Arabic_superscript_alef">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_switch" value="65406" c:type="GDK_KEY_Arabic_switch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_tah" value="1495" c:type="GDK_KEY_Arabic_tah">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_tatweel" value="1504" c:type="GDK_KEY_Arabic_tatweel">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_tcheh" value="16778886" c:type="GDK_KEY_Arabic_tcheh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_teh" value="1482" c:type="GDK_KEY_Arabic_teh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_tehmarbuta" value="1481" c:type="GDK_KEY_Arabic_tehmarbuta">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_thal" value="1488" c:type="GDK_KEY_Arabic_thal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_theh" value="1483" c:type="GDK_KEY_Arabic_theh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_tteh" value="16778873" c:type="GDK_KEY_Arabic_tteh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_veh" value="16778916" c:type="GDK_KEY_Arabic_veh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_waw" value="1512" c:type="GDK_KEY_Arabic_waw">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_yeh" value="1514" c:type="GDK_KEY_Arabic_yeh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_yeh_baree" value="16778962" c:type="GDK_KEY_Arabic_yeh_baree">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_zah" value="1496" c:type="GDK_KEY_Arabic_zah">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Arabic_zain" value="1490" c:type="GDK_KEY_Arabic_zain">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Aring" value="197" c:type="GDK_KEY_Aring">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_AT" value="16778552" c:type="GDK_KEY_Armenian_AT">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_AYB" value="16778545" c:type="GDK_KEY_Armenian_AYB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_BEN" value="16778546" c:type="GDK_KEY_Armenian_BEN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_CHA" value="16778569" c:type="GDK_KEY_Armenian_CHA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_DA" value="16778548" c:type="GDK_KEY_Armenian_DA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_DZA" value="16778561" c:type="GDK_KEY_Armenian_DZA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_E" value="16778551" c:type="GDK_KEY_Armenian_E">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_FE" value="16778582" c:type="GDK_KEY_Armenian_FE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_GHAT" value="16778562" c:type="GDK_KEY_Armenian_GHAT">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_GIM" value="16778547" c:type="GDK_KEY_Armenian_GIM">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_HI" value="16778565" c:type="GDK_KEY_Armenian_HI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_HO" value="16778560" c:type="GDK_KEY_Armenian_HO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_INI" value="16778555" c:type="GDK_KEY_Armenian_INI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_JE" value="16778571" c:type="GDK_KEY_Armenian_JE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_KE" value="16778580" c:type="GDK_KEY_Armenian_KE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_KEN" value="16778559" c:type="GDK_KEY_Armenian_KEN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_KHE" value="16778557" c:type="GDK_KEY_Armenian_KHE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_LYUN" value="16778556" c:type="GDK_KEY_Armenian_LYUN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_MEN" value="16778564" c:type="GDK_KEY_Armenian_MEN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_NU" value="16778566" c:type="GDK_KEY_Armenian_NU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_O" value="16778581" c:type="GDK_KEY_Armenian_O">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_PE" value="16778570" c:type="GDK_KEY_Armenian_PE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_PYUR" value="16778579" c:type="GDK_KEY_Armenian_PYUR">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_RA" value="16778572" c:type="GDK_KEY_Armenian_RA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_RE" value="16778576" c:type="GDK_KEY_Armenian_RE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_SE" value="16778573" c:type="GDK_KEY_Armenian_SE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_SHA" value="16778567" c:type="GDK_KEY_Armenian_SHA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_TCHE" value="16778563" c:type="GDK_KEY_Armenian_TCHE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_TO" value="16778553" c:type="GDK_KEY_Armenian_TO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_TSA" value="16778558" c:type="GDK_KEY_Armenian_TSA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_TSO" value="16778577" c:type="GDK_KEY_Armenian_TSO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_TYUN" value="16778575" c:type="GDK_KEY_Armenian_TYUN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_VEV" value="16778574" c:type="GDK_KEY_Armenian_VEV">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_VO" value="16778568" c:type="GDK_KEY_Armenian_VO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_VYUN" value="16778578" c:type="GDK_KEY_Armenian_VYUN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_YECH" value="16778549" c:type="GDK_KEY_Armenian_YECH">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ZA" value="16778550" c:type="GDK_KEY_Armenian_ZA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ZHE" value="16778554" c:type="GDK_KEY_Armenian_ZHE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_accent" value="16778587" c:type="GDK_KEY_Armenian_accent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_amanak" value="16778588" c:type="GDK_KEY_Armenian_amanak">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_apostrophe" value="16778586" c:type="GDK_KEY_Armenian_apostrophe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_at" value="16778600" c:type="GDK_KEY_Armenian_at">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ayb" value="16778593" c:type="GDK_KEY_Armenian_ayb">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ben" value="16778594" c:type="GDK_KEY_Armenian_ben">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_but" value="16778589" c:type="GDK_KEY_Armenian_but">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_cha" value="16778617" c:type="GDK_KEY_Armenian_cha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_da" value="16778596" c:type="GDK_KEY_Armenian_da">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_dza" value="16778609" c:type="GDK_KEY_Armenian_dza">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_e" value="16778599" c:type="GDK_KEY_Armenian_e">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_exclam" value="16778588" c:type="GDK_KEY_Armenian_exclam">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_fe" value="16778630" c:type="GDK_KEY_Armenian_fe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_full_stop" value="16778633" c:type="GDK_KEY_Armenian_full_stop">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ghat" value="16778610" c:type="GDK_KEY_Armenian_ghat">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_gim" value="16778595" c:type="GDK_KEY_Armenian_gim">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_hi" value="16778613" c:type="GDK_KEY_Armenian_hi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ho" value="16778608" c:type="GDK_KEY_Armenian_ho">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_hyphen" value="16778634" c:type="GDK_KEY_Armenian_hyphen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ini" value="16778603" c:type="GDK_KEY_Armenian_ini">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_je" value="16778619" c:type="GDK_KEY_Armenian_je">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ke" value="16778628" c:type="GDK_KEY_Armenian_ke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ken" value="16778607" c:type="GDK_KEY_Armenian_ken">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_khe" value="16778605" c:type="GDK_KEY_Armenian_khe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ligature_ew" value="16778631" c:type="GDK_KEY_Armenian_ligature_ew">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_lyun" value="16778604" c:type="GDK_KEY_Armenian_lyun">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_men" value="16778612" c:type="GDK_KEY_Armenian_men">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_nu" value="16778614" c:type="GDK_KEY_Armenian_nu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_o" value="16778629" c:type="GDK_KEY_Armenian_o">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_paruyk" value="16778590" c:type="GDK_KEY_Armenian_paruyk">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_pe" value="16778618" c:type="GDK_KEY_Armenian_pe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_pyur" value="16778627" c:type="GDK_KEY_Armenian_pyur">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_question" value="16778590" c:type="GDK_KEY_Armenian_question">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_ra" value="16778620" c:type="GDK_KEY_Armenian_ra">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_re" value="16778624" c:type="GDK_KEY_Armenian_re">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_se" value="16778621" c:type="GDK_KEY_Armenian_se">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_separation_mark" value="16778589" c:type="GDK_KEY_Armenian_separation_mark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_sha" value="16778615" c:type="GDK_KEY_Armenian_sha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_shesht" value="16778587" c:type="GDK_KEY_Armenian_shesht">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_tche" value="16778611" c:type="GDK_KEY_Armenian_tche">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_to" value="16778601" c:type="GDK_KEY_Armenian_to">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_tsa" value="16778606" c:type="GDK_KEY_Armenian_tsa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_tso" value="16778625" c:type="GDK_KEY_Armenian_tso">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_tyun" value="16778623" c:type="GDK_KEY_Armenian_tyun">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_verjaket" value="16778633" c:type="GDK_KEY_Armenian_verjaket">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_vev" value="16778622" c:type="GDK_KEY_Armenian_vev">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_vo" value="16778616" c:type="GDK_KEY_Armenian_vo">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_vyun" value="16778626" c:type="GDK_KEY_Armenian_vyun">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_yech" value="16778597" c:type="GDK_KEY_Armenian_yech">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_yentamna" value="16778634" c:type="GDK_KEY_Armenian_yentamna">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_za" value="16778598" c:type="GDK_KEY_Armenian_za">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Armenian_zhe" value="16778602" c:type="GDK_KEY_Armenian_zhe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Atilde" value="195" c:type="GDK_KEY_Atilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudibleBell_Enable" value="65146" c:type="GDK_KEY_AudibleBell_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioCycleTrack" value="269025179" c:type="GDK_KEY_AudioCycleTrack">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioForward" value="269025175" c:type="GDK_KEY_AudioForward">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioLowerVolume" value="269025041" c:type="GDK_KEY_AudioLowerVolume">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioMedia" value="269025074" c:type="GDK_KEY_AudioMedia">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioMicMute" value="269025202" c:type="GDK_KEY_AudioMicMute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioMute" value="269025042" c:type="GDK_KEY_AudioMute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioNext" value="269025047" c:type="GDK_KEY_AudioNext">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioPause" value="269025073" c:type="GDK_KEY_AudioPause">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioPlay" value="269025044" c:type="GDK_KEY_AudioPlay">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioPreset" value="269025206" c:type="GDK_KEY_AudioPreset">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioPrev" value="269025046" c:type="GDK_KEY_AudioPrev">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioRaiseVolume" value="269025043" c:type="GDK_KEY_AudioRaiseVolume">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioRandomPlay" value="269025177" c:type="GDK_KEY_AudioRandomPlay">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioRecord" value="269025052" c:type="GDK_KEY_AudioRecord">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioRepeat" value="269025176" c:type="GDK_KEY_AudioRepeat">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioRewind" value="269025086" c:type="GDK_KEY_AudioRewind">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_AudioStop" value="269025045" c:type="GDK_KEY_AudioStop">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Away" value="269025165" c:type="GDK_KEY_Away">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_B" value="66" c:type="GDK_KEY_B">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Babovedot" value="16784898" c:type="GDK_KEY_Babovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Back" value="269025062" c:type="GDK_KEY_Back">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_BackForward" value="269025087" c:type="GDK_KEY_BackForward">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_BackSpace" value="65288" c:type="GDK_KEY_BackSpace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Battery" value="269025171" c:type="GDK_KEY_Battery">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Begin" value="65368" c:type="GDK_KEY_Begin">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Blue" value="269025190" c:type="GDK_KEY_Blue">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Bluetooth" value="269025172" c:type="GDK_KEY_Bluetooth">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Book" value="269025106" c:type="GDK_KEY_Book">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_BounceKeys_Enable" value="65140" c:type="GDK_KEY_BounceKeys_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Break" value="65387" c:type="GDK_KEY_Break">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_BrightnessAdjust" value="269025083" c:type="GDK_KEY_BrightnessAdjust">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Byelorussian_SHORTU" value="1726" c:type="GDK_KEY_Byelorussian_SHORTU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Byelorussian_shortu" value="1710" c:type="GDK_KEY_Byelorussian_shortu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_C" value="67" c:type="GDK_KEY_C">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_CD" value="269025107" c:type="GDK_KEY_CD">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_CH" value="65186" c:type="GDK_KEY_CH">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_C_H" value="65189" c:type="GDK_KEY_C_H">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_C_h" value="65188" c:type="GDK_KEY_C_h">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cabovedot" value="709" c:type="GDK_KEY_Cabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cacute" value="454" c:type="GDK_KEY_Cacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Calculator" value="269025053" c:type="GDK_KEY_Calculator">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Calendar" value="269025056" c:type="GDK_KEY_Calendar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cancel" value="65385" c:type="GDK_KEY_Cancel">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Caps_Lock" value="65509" c:type="GDK_KEY_Caps_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ccaron" value="456" c:type="GDK_KEY_Ccaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ccedilla" value="199" c:type="GDK_KEY_Ccedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ccircumflex" value="710" c:type="GDK_KEY_Ccircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ch" value="65185" c:type="GDK_KEY_Ch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Clear" value="65291" c:type="GDK_KEY_Clear">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ClearGrab" value="269024801" c:type="GDK_KEY_ClearGrab">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Close" value="269025110" c:type="GDK_KEY_Close">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Codeinput" value="65335" c:type="GDK_KEY_Codeinput">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ColonSign" value="16785569" c:type="GDK_KEY_ColonSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Community" value="269025085" c:type="GDK_KEY_Community">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ContrastAdjust" value="269025058" c:type="GDK_KEY_ContrastAdjust">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Control_L" value="65507" c:type="GDK_KEY_Control_L">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Control_R" value="65508" c:type="GDK_KEY_Control_R">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Copy" value="269025111" c:type="GDK_KEY_Copy">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_CruzeiroSign" value="16785570" c:type="GDK_KEY_CruzeiroSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cut" value="269025112" c:type="GDK_KEY_Cut">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_CycleAngle" value="269025180" c:type="GDK_KEY_CycleAngle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_A" value="1761" c:type="GDK_KEY_Cyrillic_A">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_BE" value="1762" c:type="GDK_KEY_Cyrillic_BE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_CHE" value="1790" c:type="GDK_KEY_Cyrillic_CHE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_CHE_descender" value="16778422" c:type="GDK_KEY_Cyrillic_CHE_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_CHE_vertstroke" value="16778424" c:type="GDK_KEY_Cyrillic_CHE_vertstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_DE" value="1764" c:type="GDK_KEY_Cyrillic_DE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_DZHE" value="1727" c:type="GDK_KEY_Cyrillic_DZHE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_E" value="1788" c:type="GDK_KEY_Cyrillic_E">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_EF" value="1766" c:type="GDK_KEY_Cyrillic_EF">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_EL" value="1772" c:type="GDK_KEY_Cyrillic_EL">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_EM" value="1773" c:type="GDK_KEY_Cyrillic_EM">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_EN" value="1774" c:type="GDK_KEY_Cyrillic_EN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_EN_descender" value="16778402" c:type="GDK_KEY_Cyrillic_EN_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ER" value="1778" c:type="GDK_KEY_Cyrillic_ER">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ES" value="1779" c:type="GDK_KEY_Cyrillic_ES">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_GHE" value="1767" c:type="GDK_KEY_Cyrillic_GHE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_GHE_bar" value="16778386" c:type="GDK_KEY_Cyrillic_GHE_bar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_HA" value="1768" c:type="GDK_KEY_Cyrillic_HA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_HARDSIGN" value="1791" c:type="GDK_KEY_Cyrillic_HARDSIGN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_HA_descender" value="16778418" c:type="GDK_KEY_Cyrillic_HA_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_I" value="1769" c:type="GDK_KEY_Cyrillic_I">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_IE" value="1765" c:type="GDK_KEY_Cyrillic_IE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_IO" value="1715" c:type="GDK_KEY_Cyrillic_IO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_I_macron" value="16778466" c:type="GDK_KEY_Cyrillic_I_macron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_JE" value="1720" c:type="GDK_KEY_Cyrillic_JE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_KA" value="1771" c:type="GDK_KEY_Cyrillic_KA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_KA_descender" value="16778394" c:type="GDK_KEY_Cyrillic_KA_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_KA_vertstroke" value="16778396" c:type="GDK_KEY_Cyrillic_KA_vertstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_LJE" value="1721" c:type="GDK_KEY_Cyrillic_LJE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_NJE" value="1722" c:type="GDK_KEY_Cyrillic_NJE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_O" value="1775" c:type="GDK_KEY_Cyrillic_O">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_O_bar" value="16778472" c:type="GDK_KEY_Cyrillic_O_bar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_PE" value="1776" c:type="GDK_KEY_Cyrillic_PE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_SCHWA" value="16778456" c:type="GDK_KEY_Cyrillic_SCHWA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_SHA" value="1787" c:type="GDK_KEY_Cyrillic_SHA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_SHCHA" value="1789" c:type="GDK_KEY_Cyrillic_SHCHA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_SHHA" value="16778426" c:type="GDK_KEY_Cyrillic_SHHA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_SHORTI" value="1770" c:type="GDK_KEY_Cyrillic_SHORTI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_SOFTSIGN" value="1784" c:type="GDK_KEY_Cyrillic_SOFTSIGN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_TE" value="1780" c:type="GDK_KEY_Cyrillic_TE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_TSE" value="1763" c:type="GDK_KEY_Cyrillic_TSE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_U" value="1781" c:type="GDK_KEY_Cyrillic_U">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_U_macron" value="16778478" c:type="GDK_KEY_Cyrillic_U_macron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_U_straight" value="16778414" c:type="GDK_KEY_Cyrillic_U_straight">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_U_straight_bar" value="16778416" c:type="GDK_KEY_Cyrillic_U_straight_bar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_VE" value="1783" c:type="GDK_KEY_Cyrillic_VE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_YA" value="1777" c:type="GDK_KEY_Cyrillic_YA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_YERU" value="1785" c:type="GDK_KEY_Cyrillic_YERU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_YU" value="1760" c:type="GDK_KEY_Cyrillic_YU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ZE" value="1786" c:type="GDK_KEY_Cyrillic_ZE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ZHE" value="1782" c:type="GDK_KEY_Cyrillic_ZHE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ZHE_descender" value="16778390" c:type="GDK_KEY_Cyrillic_ZHE_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_a" value="1729" c:type="GDK_KEY_Cyrillic_a">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_be" value="1730" c:type="GDK_KEY_Cyrillic_be">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_che" value="1758" c:type="GDK_KEY_Cyrillic_che">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_che_descender" value="16778423" c:type="GDK_KEY_Cyrillic_che_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_che_vertstroke" value="16778425" c:type="GDK_KEY_Cyrillic_che_vertstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_de" value="1732" c:type="GDK_KEY_Cyrillic_de">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_dzhe" value="1711" c:type="GDK_KEY_Cyrillic_dzhe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_e" value="1756" c:type="GDK_KEY_Cyrillic_e">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ef" value="1734" c:type="GDK_KEY_Cyrillic_ef">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_el" value="1740" c:type="GDK_KEY_Cyrillic_el">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_em" value="1741" c:type="GDK_KEY_Cyrillic_em">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_en" value="1742" c:type="GDK_KEY_Cyrillic_en">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_en_descender" value="16778403" c:type="GDK_KEY_Cyrillic_en_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_er" value="1746" c:type="GDK_KEY_Cyrillic_er">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_es" value="1747" c:type="GDK_KEY_Cyrillic_es">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ghe" value="1735" c:type="GDK_KEY_Cyrillic_ghe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ghe_bar" value="16778387" c:type="GDK_KEY_Cyrillic_ghe_bar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ha" value="1736" c:type="GDK_KEY_Cyrillic_ha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ha_descender" value="16778419" c:type="GDK_KEY_Cyrillic_ha_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_hardsign" value="1759" c:type="GDK_KEY_Cyrillic_hardsign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_i" value="1737" c:type="GDK_KEY_Cyrillic_i">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_i_macron" value="16778467" c:type="GDK_KEY_Cyrillic_i_macron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ie" value="1733" c:type="GDK_KEY_Cyrillic_ie">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_io" value="1699" c:type="GDK_KEY_Cyrillic_io">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_je" value="1704" c:type="GDK_KEY_Cyrillic_je">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ka" value="1739" c:type="GDK_KEY_Cyrillic_ka">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ka_descender" value="16778395" c:type="GDK_KEY_Cyrillic_ka_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ka_vertstroke" value="16778397" c:type="GDK_KEY_Cyrillic_ka_vertstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_lje" value="1705" c:type="GDK_KEY_Cyrillic_lje">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_nje" value="1706" c:type="GDK_KEY_Cyrillic_nje">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_o" value="1743" c:type="GDK_KEY_Cyrillic_o">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_o_bar" value="16778473" c:type="GDK_KEY_Cyrillic_o_bar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_pe" value="1744" c:type="GDK_KEY_Cyrillic_pe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_schwa" value="16778457" c:type="GDK_KEY_Cyrillic_schwa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_sha" value="1755" c:type="GDK_KEY_Cyrillic_sha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_shcha" value="1757" c:type="GDK_KEY_Cyrillic_shcha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_shha" value="16778427" c:type="GDK_KEY_Cyrillic_shha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_shorti" value="1738" c:type="GDK_KEY_Cyrillic_shorti">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_softsign" value="1752" c:type="GDK_KEY_Cyrillic_softsign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_te" value="1748" c:type="GDK_KEY_Cyrillic_te">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_tse" value="1731" c:type="GDK_KEY_Cyrillic_tse">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_u" value="1749" c:type="GDK_KEY_Cyrillic_u">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_u_macron" value="16778479" c:type="GDK_KEY_Cyrillic_u_macron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_u_straight" value="16778415" c:type="GDK_KEY_Cyrillic_u_straight">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_u_straight_bar" value="16778417" c:type="GDK_KEY_Cyrillic_u_straight_bar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ve" value="1751" c:type="GDK_KEY_Cyrillic_ve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ya" value="1745" c:type="GDK_KEY_Cyrillic_ya">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_yeru" value="1753" c:type="GDK_KEY_Cyrillic_yeru">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_yu" value="1728" c:type="GDK_KEY_Cyrillic_yu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_ze" value="1754" c:type="GDK_KEY_Cyrillic_ze">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_zhe" value="1750" c:type="GDK_KEY_Cyrillic_zhe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Cyrillic_zhe_descender" value="16778391" c:type="GDK_KEY_Cyrillic_zhe_descender">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_D" value="68" c:type="GDK_KEY_D">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_DOS" value="269025114" c:type="GDK_KEY_DOS">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Dabovedot" value="16784906" c:type="GDK_KEY_Dabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Dcaron" value="463" c:type="GDK_KEY_Dcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Delete" value="65535" c:type="GDK_KEY_Delete">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Display" value="269025113" c:type="GDK_KEY_Display">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Documents" value="269025115" c:type="GDK_KEY_Documents">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_DongSign" value="16785579" c:type="GDK_KEY_DongSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Down" value="65364" c:type="GDK_KEY_Down">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Dstroke" value="464" c:type="GDK_KEY_Dstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_E" value="69" c:type="GDK_KEY_E">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ENG" value="957" c:type="GDK_KEY_ENG">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ETH" value="208" c:type="GDK_KEY_ETH">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_EZH" value="16777655" c:type="GDK_KEY_EZH">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Eabovedot" value="972" c:type="GDK_KEY_Eabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Eacute" value="201" c:type="GDK_KEY_Eacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ebelowdot" value="16785080" c:type="GDK_KEY_Ebelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ecaron" value="460" c:type="GDK_KEY_Ecaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ecircumflex" value="202" c:type="GDK_KEY_Ecircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ecircumflexacute" value="16785086" c:type="GDK_KEY_Ecircumflexacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ecircumflexbelowdot" value="16785094" c:type="GDK_KEY_Ecircumflexbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ecircumflexgrave" value="16785088" c:type="GDK_KEY_Ecircumflexgrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ecircumflexhook" value="16785090" c:type="GDK_KEY_Ecircumflexhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ecircumflextilde" value="16785092" c:type="GDK_KEY_Ecircumflextilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_EcuSign" value="16785568" c:type="GDK_KEY_EcuSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ediaeresis" value="203" c:type="GDK_KEY_Ediaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Egrave" value="200" c:type="GDK_KEY_Egrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ehook" value="16785082" c:type="GDK_KEY_Ehook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Eisu_Shift" value="65327" c:type="GDK_KEY_Eisu_Shift">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Eisu_toggle" value="65328" c:type="GDK_KEY_Eisu_toggle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Eject" value="269025068" c:type="GDK_KEY_Eject">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Emacron" value="938" c:type="GDK_KEY_Emacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_End" value="65367" c:type="GDK_KEY_End">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Eogonek" value="458" c:type="GDK_KEY_Eogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Escape" value="65307" c:type="GDK_KEY_Escape">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Eth" value="208" c:type="GDK_KEY_Eth">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Etilde" value="16785084" c:type="GDK_KEY_Etilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_EuroSign" value="8364" c:type="GDK_KEY_EuroSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Excel" value="269025116" c:type="GDK_KEY_Excel">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Execute" value="65378" c:type="GDK_KEY_Execute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Explorer" value="269025117" c:type="GDK_KEY_Explorer">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F" value="70" c:type="GDK_KEY_F">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F1" value="65470" c:type="GDK_KEY_F1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F10" value="65479" c:type="GDK_KEY_F10">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F11" value="65480" c:type="GDK_KEY_F11">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F12" value="65481" c:type="GDK_KEY_F12">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F13" value="65482" c:type="GDK_KEY_F13">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F14" value="65483" c:type="GDK_KEY_F14">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F15" value="65484" c:type="GDK_KEY_F15">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F16" value="65485" c:type="GDK_KEY_F16">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F17" value="65486" c:type="GDK_KEY_F17">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F18" value="65487" c:type="GDK_KEY_F18">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F19" value="65488" c:type="GDK_KEY_F19">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F2" value="65471" c:type="GDK_KEY_F2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F20" value="65489" c:type="GDK_KEY_F20">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F21" value="65490" c:type="GDK_KEY_F21">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F22" value="65491" c:type="GDK_KEY_F22">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F23" value="65492" c:type="GDK_KEY_F23">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F24" value="65493" c:type="GDK_KEY_F24">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F25" value="65494" c:type="GDK_KEY_F25">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F26" value="65495" c:type="GDK_KEY_F26">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F27" value="65496" c:type="GDK_KEY_F27">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F28" value="65497" c:type="GDK_KEY_F28">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F29" value="65498" c:type="GDK_KEY_F29">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F3" value="65472" c:type="GDK_KEY_F3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F30" value="65499" c:type="GDK_KEY_F30">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F31" value="65500" c:type="GDK_KEY_F31">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F32" value="65501" c:type="GDK_KEY_F32">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F33" value="65502" c:type="GDK_KEY_F33">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F34" value="65503" c:type="GDK_KEY_F34">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F35" value="65504" c:type="GDK_KEY_F35">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F4" value="65473" c:type="GDK_KEY_F4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F5" value="65474" c:type="GDK_KEY_F5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F6" value="65475" c:type="GDK_KEY_F6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F7" value="65476" c:type="GDK_KEY_F7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F8" value="65477" c:type="GDK_KEY_F8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_F9" value="65478" c:type="GDK_KEY_F9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_FFrancSign" value="16785571" c:type="GDK_KEY_FFrancSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Fabovedot" value="16784926" c:type="GDK_KEY_Fabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_0" value="16778992" c:type="GDK_KEY_Farsi_0">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_1" value="16778993" c:type="GDK_KEY_Farsi_1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_2" value="16778994" c:type="GDK_KEY_Farsi_2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_3" value="16778995" c:type="GDK_KEY_Farsi_3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_4" value="16778996" c:type="GDK_KEY_Farsi_4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_5" value="16778997" c:type="GDK_KEY_Farsi_5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_6" value="16778998" c:type="GDK_KEY_Farsi_6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_7" value="16778999" c:type="GDK_KEY_Farsi_7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_8" value="16779000" c:type="GDK_KEY_Farsi_8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_9" value="16779001" c:type="GDK_KEY_Farsi_9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Farsi_yeh" value="16778956" c:type="GDK_KEY_Farsi_yeh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Favorites" value="269025072" c:type="GDK_KEY_Favorites">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Finance" value="269025084" c:type="GDK_KEY_Finance">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Find" value="65384" c:type="GDK_KEY_Find">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_First_Virtual_Screen" value="65232" c:type="GDK_KEY_First_Virtual_Screen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Forward" value="269025063" c:type="GDK_KEY_Forward">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_FrameBack" value="269025181" c:type="GDK_KEY_FrameBack">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_FrameForward" value="269025182" c:type="GDK_KEY_FrameForward">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_G" value="71" c:type="GDK_KEY_G">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Gabovedot" value="725" c:type="GDK_KEY_Gabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Game" value="269025118" c:type="GDK_KEY_Game">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Gbreve" value="683" c:type="GDK_KEY_Gbreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Gcaron" value="16777702" c:type="GDK_KEY_Gcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Gcedilla" value="939" c:type="GDK_KEY_Gcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Gcircumflex" value="728" c:type="GDK_KEY_Gcircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_an" value="16781520" c:type="GDK_KEY_Georgian_an">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_ban" value="16781521" c:type="GDK_KEY_Georgian_ban">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_can" value="16781546" c:type="GDK_KEY_Georgian_can">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_char" value="16781549" c:type="GDK_KEY_Georgian_char">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_chin" value="16781545" c:type="GDK_KEY_Georgian_chin">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_cil" value="16781548" c:type="GDK_KEY_Georgian_cil">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_don" value="16781523" c:type="GDK_KEY_Georgian_don">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_en" value="16781524" c:type="GDK_KEY_Georgian_en">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_fi" value="16781558" c:type="GDK_KEY_Georgian_fi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_gan" value="16781522" c:type="GDK_KEY_Georgian_gan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_ghan" value="16781542" c:type="GDK_KEY_Georgian_ghan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_hae" value="16781552" c:type="GDK_KEY_Georgian_hae">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_har" value="16781556" c:type="GDK_KEY_Georgian_har">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_he" value="16781553" c:type="GDK_KEY_Georgian_he">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_hie" value="16781554" c:type="GDK_KEY_Georgian_hie">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_hoe" value="16781557" c:type="GDK_KEY_Georgian_hoe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_in" value="16781528" c:type="GDK_KEY_Georgian_in">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_jhan" value="16781551" c:type="GDK_KEY_Georgian_jhan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_jil" value="16781547" c:type="GDK_KEY_Georgian_jil">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_kan" value="16781529" c:type="GDK_KEY_Georgian_kan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_khar" value="16781541" c:type="GDK_KEY_Georgian_khar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_las" value="16781530" c:type="GDK_KEY_Georgian_las">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_man" value="16781531" c:type="GDK_KEY_Georgian_man">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_nar" value="16781532" c:type="GDK_KEY_Georgian_nar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_on" value="16781533" c:type="GDK_KEY_Georgian_on">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_par" value="16781534" c:type="GDK_KEY_Georgian_par">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_phar" value="16781540" c:type="GDK_KEY_Georgian_phar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_qar" value="16781543" c:type="GDK_KEY_Georgian_qar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_rae" value="16781536" c:type="GDK_KEY_Georgian_rae">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_san" value="16781537" c:type="GDK_KEY_Georgian_san">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_shin" value="16781544" c:type="GDK_KEY_Georgian_shin">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_tan" value="16781527" c:type="GDK_KEY_Georgian_tan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_tar" value="16781538" c:type="GDK_KEY_Georgian_tar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_un" value="16781539" c:type="GDK_KEY_Georgian_un">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_vin" value="16781525" c:type="GDK_KEY_Georgian_vin">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_we" value="16781555" c:type="GDK_KEY_Georgian_we">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_xan" value="16781550" c:type="GDK_KEY_Georgian_xan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_zen" value="16781526" c:type="GDK_KEY_Georgian_zen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Georgian_zhar" value="16781535" c:type="GDK_KEY_Georgian_zhar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Go" value="269025119" c:type="GDK_KEY_Go">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_ALPHA" value="1985" c:type="GDK_KEY_Greek_ALPHA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_ALPHAaccent" value="1953" c:type="GDK_KEY_Greek_ALPHAaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_BETA" value="1986" c:type="GDK_KEY_Greek_BETA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_CHI" value="2007" c:type="GDK_KEY_Greek_CHI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_DELTA" value="1988" c:type="GDK_KEY_Greek_DELTA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_EPSILON" value="1989" c:type="GDK_KEY_Greek_EPSILON">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_EPSILONaccent" value="1954" c:type="GDK_KEY_Greek_EPSILONaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_ETA" value="1991" c:type="GDK_KEY_Greek_ETA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_ETAaccent" value="1955" c:type="GDK_KEY_Greek_ETAaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_GAMMA" value="1987" c:type="GDK_KEY_Greek_GAMMA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_IOTA" value="1993" c:type="GDK_KEY_Greek_IOTA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_IOTAaccent" value="1956" c:type="GDK_KEY_Greek_IOTAaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_IOTAdiaeresis" value="1957" c:type="GDK_KEY_Greek_IOTAdiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_IOTAdieresis" value="1957" c:type="GDK_KEY_Greek_IOTAdieresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_KAPPA" value="1994" c:type="GDK_KEY_Greek_KAPPA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_LAMBDA" value="1995" c:type="GDK_KEY_Greek_LAMBDA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_LAMDA" value="1995" c:type="GDK_KEY_Greek_LAMDA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_MU" value="1996" c:type="GDK_KEY_Greek_MU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_NU" value="1997" c:type="GDK_KEY_Greek_NU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_OMEGA" value="2009" c:type="GDK_KEY_Greek_OMEGA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_OMEGAaccent" value="1963" c:type="GDK_KEY_Greek_OMEGAaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_OMICRON" value="1999" c:type="GDK_KEY_Greek_OMICRON">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_OMICRONaccent" value="1959" c:type="GDK_KEY_Greek_OMICRONaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_PHI" value="2006" c:type="GDK_KEY_Greek_PHI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_PI" value="2000" c:type="GDK_KEY_Greek_PI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_PSI" value="2008" c:type="GDK_KEY_Greek_PSI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_RHO" value="2001" c:type="GDK_KEY_Greek_RHO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_SIGMA" value="2002" c:type="GDK_KEY_Greek_SIGMA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_TAU" value="2004" c:type="GDK_KEY_Greek_TAU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_THETA" value="1992" c:type="GDK_KEY_Greek_THETA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_UPSILON" value="2005" c:type="GDK_KEY_Greek_UPSILON">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_UPSILONaccent" value="1960" c:type="GDK_KEY_Greek_UPSILONaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_UPSILONdieresis" value="1961" c:type="GDK_KEY_Greek_UPSILONdieresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_XI" value="1998" c:type="GDK_KEY_Greek_XI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_ZETA" value="1990" c:type="GDK_KEY_Greek_ZETA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_accentdieresis" value="1966" c:type="GDK_KEY_Greek_accentdieresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_alpha" value="2017" c:type="GDK_KEY_Greek_alpha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_alphaaccent" value="1969" c:type="GDK_KEY_Greek_alphaaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_beta" value="2018" c:type="GDK_KEY_Greek_beta">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_chi" value="2039" c:type="GDK_KEY_Greek_chi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_delta" value="2020" c:type="GDK_KEY_Greek_delta">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_epsilon" value="2021" c:type="GDK_KEY_Greek_epsilon">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_epsilonaccent" value="1970" c:type="GDK_KEY_Greek_epsilonaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_eta" value="2023" c:type="GDK_KEY_Greek_eta">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_etaaccent" value="1971" c:type="GDK_KEY_Greek_etaaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_finalsmallsigma" value="2035" c:type="GDK_KEY_Greek_finalsmallsigma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_gamma" value="2019" c:type="GDK_KEY_Greek_gamma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_horizbar" value="1967" c:type="GDK_KEY_Greek_horizbar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_iota" value="2025" c:type="GDK_KEY_Greek_iota">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_iotaaccent" value="1972" c:type="GDK_KEY_Greek_iotaaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_iotaaccentdieresis" value="1974" c:type="GDK_KEY_Greek_iotaaccentdieresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_iotadieresis" value="1973" c:type="GDK_KEY_Greek_iotadieresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_kappa" value="2026" c:type="GDK_KEY_Greek_kappa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_lambda" value="2027" c:type="GDK_KEY_Greek_lambda">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_lamda" value="2027" c:type="GDK_KEY_Greek_lamda">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_mu" value="2028" c:type="GDK_KEY_Greek_mu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_nu" value="2029" c:type="GDK_KEY_Greek_nu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_omega" value="2041" c:type="GDK_KEY_Greek_omega">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_omegaaccent" value="1979" c:type="GDK_KEY_Greek_omegaaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_omicron" value="2031" c:type="GDK_KEY_Greek_omicron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_omicronaccent" value="1975" c:type="GDK_KEY_Greek_omicronaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_phi" value="2038" c:type="GDK_KEY_Greek_phi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_pi" value="2032" c:type="GDK_KEY_Greek_pi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_psi" value="2040" c:type="GDK_KEY_Greek_psi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_rho" value="2033" c:type="GDK_KEY_Greek_rho">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_sigma" value="2034" c:type="GDK_KEY_Greek_sigma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_switch" value="65406" c:type="GDK_KEY_Greek_switch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_tau" value="2036" c:type="GDK_KEY_Greek_tau">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_theta" value="2024" c:type="GDK_KEY_Greek_theta">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_upsilon" value="2037" c:type="GDK_KEY_Greek_upsilon">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_upsilonaccent" value="1976" c:type="GDK_KEY_Greek_upsilonaccent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_upsilonaccentdieresis" value="1978" c:type="GDK_KEY_Greek_upsilonaccentdieresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_upsilondieresis" value="1977" c:type="GDK_KEY_Greek_upsilondieresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_xi" value="2030" c:type="GDK_KEY_Greek_xi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Greek_zeta" value="2022" c:type="GDK_KEY_Greek_zeta">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Green" value="269025188" c:type="GDK_KEY_Green">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_H" value="72" c:type="GDK_KEY_H">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul" value="65329" c:type="GDK_KEY_Hangul">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_A" value="3775" c:type="GDK_KEY_Hangul_A">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_AE" value="3776" c:type="GDK_KEY_Hangul_AE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_AraeA" value="3830" c:type="GDK_KEY_Hangul_AraeA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_AraeAE" value="3831" c:type="GDK_KEY_Hangul_AraeAE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Banja" value="65337" c:type="GDK_KEY_Hangul_Banja">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Cieuc" value="3770" c:type="GDK_KEY_Hangul_Cieuc">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Codeinput" value="65335" c:type="GDK_KEY_Hangul_Codeinput">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Dikeud" value="3751" c:type="GDK_KEY_Hangul_Dikeud">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_E" value="3780" c:type="GDK_KEY_Hangul_E">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_EO" value="3779" c:type="GDK_KEY_Hangul_EO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_EU" value="3793" c:type="GDK_KEY_Hangul_EU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_End" value="65331" c:type="GDK_KEY_Hangul_End">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Hanja" value="65332" c:type="GDK_KEY_Hangul_Hanja">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Hieuh" value="3774" c:type="GDK_KEY_Hangul_Hieuh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_I" value="3795" c:type="GDK_KEY_Hangul_I">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Ieung" value="3767" c:type="GDK_KEY_Hangul_Ieung">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Cieuc" value="3818" c:type="GDK_KEY_Hangul_J_Cieuc">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Dikeud" value="3802" c:type="GDK_KEY_Hangul_J_Dikeud">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Hieuh" value="3822" c:type="GDK_KEY_Hangul_J_Hieuh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Ieung" value="3816" c:type="GDK_KEY_Hangul_J_Ieung">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Jieuj" value="3817" c:type="GDK_KEY_Hangul_J_Jieuj">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Khieuq" value="3819" c:type="GDK_KEY_Hangul_J_Khieuq">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Kiyeog" value="3796" c:type="GDK_KEY_Hangul_J_Kiyeog">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_KiyeogSios" value="3798" c:type="GDK_KEY_Hangul_J_KiyeogSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_KkogjiDalrinIeung" value="3833" c:type="GDK_KEY_Hangul_J_KkogjiDalrinIeung">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Mieum" value="3811" c:type="GDK_KEY_Hangul_J_Mieum">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Nieun" value="3799" c:type="GDK_KEY_Hangul_J_Nieun">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_NieunHieuh" value="3801" c:type="GDK_KEY_Hangul_J_NieunHieuh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_NieunJieuj" value="3800" c:type="GDK_KEY_Hangul_J_NieunJieuj">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_PanSios" value="3832" c:type="GDK_KEY_Hangul_J_PanSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Phieuf" value="3821" c:type="GDK_KEY_Hangul_J_Phieuf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Pieub" value="3812" c:type="GDK_KEY_Hangul_J_Pieub">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_PieubSios" value="3813" c:type="GDK_KEY_Hangul_J_PieubSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Rieul" value="3803" c:type="GDK_KEY_Hangul_J_Rieul">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_RieulHieuh" value="3810" c:type="GDK_KEY_Hangul_J_RieulHieuh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_RieulKiyeog" value="3804" c:type="GDK_KEY_Hangul_J_RieulKiyeog">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_RieulMieum" value="3805" c:type="GDK_KEY_Hangul_J_RieulMieum">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_RieulPhieuf" value="3809" c:type="GDK_KEY_Hangul_J_RieulPhieuf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_RieulPieub" value="3806" c:type="GDK_KEY_Hangul_J_RieulPieub">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_RieulSios" value="3807" c:type="GDK_KEY_Hangul_J_RieulSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_RieulTieut" value="3808" c:type="GDK_KEY_Hangul_J_RieulTieut">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Sios" value="3814" c:type="GDK_KEY_Hangul_J_Sios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_SsangKiyeog" value="3797" c:type="GDK_KEY_Hangul_J_SsangKiyeog">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_SsangSios" value="3815" c:type="GDK_KEY_Hangul_J_SsangSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_Tieut" value="3820" c:type="GDK_KEY_Hangul_J_Tieut">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_J_YeorinHieuh" value="3834" c:type="GDK_KEY_Hangul_J_YeorinHieuh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Jamo" value="65333" c:type="GDK_KEY_Hangul_Jamo">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Jeonja" value="65336" c:type="GDK_KEY_Hangul_Jeonja">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Jieuj" value="3768" c:type="GDK_KEY_Hangul_Jieuj">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Khieuq" value="3771" c:type="GDK_KEY_Hangul_Khieuq">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Kiyeog" value="3745" c:type="GDK_KEY_Hangul_Kiyeog">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_KiyeogSios" value="3747" c:type="GDK_KEY_Hangul_KiyeogSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_KkogjiDalrinIeung" value="3827" c:type="GDK_KEY_Hangul_KkogjiDalrinIeung">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Mieum" value="3761" c:type="GDK_KEY_Hangul_Mieum">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_MultipleCandidate" value="65341" c:type="GDK_KEY_Hangul_MultipleCandidate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Nieun" value="3748" c:type="GDK_KEY_Hangul_Nieun">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_NieunHieuh" value="3750" c:type="GDK_KEY_Hangul_NieunHieuh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_NieunJieuj" value="3749" c:type="GDK_KEY_Hangul_NieunJieuj">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_O" value="3783" c:type="GDK_KEY_Hangul_O">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_OE" value="3786" c:type="GDK_KEY_Hangul_OE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_PanSios" value="3826" c:type="GDK_KEY_Hangul_PanSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Phieuf" value="3773" c:type="GDK_KEY_Hangul_Phieuf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Pieub" value="3762" c:type="GDK_KEY_Hangul_Pieub">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_PieubSios" value="3764" c:type="GDK_KEY_Hangul_PieubSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_PostHanja" value="65339" c:type="GDK_KEY_Hangul_PostHanja">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_PreHanja" value="65338" c:type="GDK_KEY_Hangul_PreHanja">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_PreviousCandidate" value="65342" c:type="GDK_KEY_Hangul_PreviousCandidate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Rieul" value="3753" c:type="GDK_KEY_Hangul_Rieul">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_RieulHieuh" value="3760" c:type="GDK_KEY_Hangul_RieulHieuh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_RieulKiyeog" value="3754" c:type="GDK_KEY_Hangul_RieulKiyeog">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_RieulMieum" value="3755" c:type="GDK_KEY_Hangul_RieulMieum">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_RieulPhieuf" value="3759" c:type="GDK_KEY_Hangul_RieulPhieuf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_RieulPieub" value="3756" c:type="GDK_KEY_Hangul_RieulPieub">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_RieulSios" value="3757" c:type="GDK_KEY_Hangul_RieulSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_RieulTieut" value="3758" c:type="GDK_KEY_Hangul_RieulTieut">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_RieulYeorinHieuh" value="3823" c:type="GDK_KEY_Hangul_RieulYeorinHieuh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Romaja" value="65334" c:type="GDK_KEY_Hangul_Romaja">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_SingleCandidate" value="65340" c:type="GDK_KEY_Hangul_SingleCandidate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Sios" value="3765" c:type="GDK_KEY_Hangul_Sios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Special" value="65343" c:type="GDK_KEY_Hangul_Special">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_SsangDikeud" value="3752" c:type="GDK_KEY_Hangul_SsangDikeud">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_SsangJieuj" value="3769" c:type="GDK_KEY_Hangul_SsangJieuj">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_SsangKiyeog" value="3746" c:type="GDK_KEY_Hangul_SsangKiyeog">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_SsangPieub" value="3763" c:type="GDK_KEY_Hangul_SsangPieub">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_SsangSios" value="3766" c:type="GDK_KEY_Hangul_SsangSios">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Start" value="65330" c:type="GDK_KEY_Hangul_Start">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_SunkyeongeumMieum" value="3824" c:type="GDK_KEY_Hangul_SunkyeongeumMieum">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_SunkyeongeumPhieuf" value="3828" c:type="GDK_KEY_Hangul_SunkyeongeumPhieuf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_SunkyeongeumPieub" value="3825" c:type="GDK_KEY_Hangul_SunkyeongeumPieub">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_Tieut" value="3772" c:type="GDK_KEY_Hangul_Tieut">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_U" value="3788" c:type="GDK_KEY_Hangul_U">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_WA" value="3784" c:type="GDK_KEY_Hangul_WA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_WAE" value="3785" c:type="GDK_KEY_Hangul_WAE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_WE" value="3790" c:type="GDK_KEY_Hangul_WE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_WEO" value="3789" c:type="GDK_KEY_Hangul_WEO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_WI" value="3791" c:type="GDK_KEY_Hangul_WI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_YA" value="3777" c:type="GDK_KEY_Hangul_YA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_YAE" value="3778" c:type="GDK_KEY_Hangul_YAE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_YE" value="3782" c:type="GDK_KEY_Hangul_YE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_YEO" value="3781" c:type="GDK_KEY_Hangul_YEO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_YI" value="3794" c:type="GDK_KEY_Hangul_YI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_YO" value="3787" c:type="GDK_KEY_Hangul_YO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_YU" value="3792" c:type="GDK_KEY_Hangul_YU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_YeorinHieuh" value="3829" c:type="GDK_KEY_Hangul_YeorinHieuh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hangul_switch" value="65406" c:type="GDK_KEY_Hangul_switch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hankaku" value="65321" c:type="GDK_KEY_Hankaku">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hcircumflex" value="678" c:type="GDK_KEY_Hcircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hebrew_switch" value="65406" c:type="GDK_KEY_Hebrew_switch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Help" value="65386" c:type="GDK_KEY_Help">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Henkan" value="65315" c:type="GDK_KEY_Henkan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Henkan_Mode" value="65315" c:type="GDK_KEY_Henkan_Mode">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hibernate" value="269025192" c:type="GDK_KEY_Hibernate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hiragana" value="65317" c:type="GDK_KEY_Hiragana">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hiragana_Katakana" value="65319" c:type="GDK_KEY_Hiragana_Katakana">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_History" value="269025079" c:type="GDK_KEY_History">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Home" value="65360" c:type="GDK_KEY_Home">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_HomePage" value="269025048" c:type="GDK_KEY_HomePage">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_HotLinks" value="269025082" c:type="GDK_KEY_HotLinks">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hstroke" value="673" c:type="GDK_KEY_Hstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hyper_L" value="65517" c:type="GDK_KEY_Hyper_L">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Hyper_R" value="65518" c:type="GDK_KEY_Hyper_R">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_I" value="73" c:type="GDK_KEY_I">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Center_Object" value="65075" c:type="GDK_KEY_ISO_Center_Object">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Continuous_Underline" value="65072" c:type="GDK_KEY_ISO_Continuous_Underline">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Discontinuous_Underline" value="65073" c:type="GDK_KEY_ISO_Discontinuous_Underline">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Emphasize" value="65074" c:type="GDK_KEY_ISO_Emphasize">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Enter" value="65076" c:type="GDK_KEY_ISO_Enter">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Fast_Cursor_Down" value="65071" c:type="GDK_KEY_ISO_Fast_Cursor_Down">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Fast_Cursor_Left" value="65068" c:type="GDK_KEY_ISO_Fast_Cursor_Left">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Fast_Cursor_Right" value="65069" c:type="GDK_KEY_ISO_Fast_Cursor_Right">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Fast_Cursor_Up" value="65070" c:type="GDK_KEY_ISO_Fast_Cursor_Up">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_First_Group" value="65036" c:type="GDK_KEY_ISO_First_Group">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_First_Group_Lock" value="65037" c:type="GDK_KEY_ISO_First_Group_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Group_Latch" value="65030" c:type="GDK_KEY_ISO_Group_Latch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Group_Lock" value="65031" c:type="GDK_KEY_ISO_Group_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Group_Shift" value="65406" c:type="GDK_KEY_ISO_Group_Shift">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Last_Group" value="65038" c:type="GDK_KEY_ISO_Last_Group">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Last_Group_Lock" value="65039" c:type="GDK_KEY_ISO_Last_Group_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Left_Tab" value="65056" c:type="GDK_KEY_ISO_Left_Tab">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Level2_Latch" value="65026" c:type="GDK_KEY_ISO_Level2_Latch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Level3_Latch" value="65028" c:type="GDK_KEY_ISO_Level3_Latch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Level3_Lock" value="65029" c:type="GDK_KEY_ISO_Level3_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Level3_Shift" value="65027" c:type="GDK_KEY_ISO_Level3_Shift">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Level5_Latch" value="65042" c:type="GDK_KEY_ISO_Level5_Latch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Level5_Lock" value="65043" c:type="GDK_KEY_ISO_Level5_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Level5_Shift" value="65041" c:type="GDK_KEY_ISO_Level5_Shift">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Lock" value="65025" c:type="GDK_KEY_ISO_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Move_Line_Down" value="65058" c:type="GDK_KEY_ISO_Move_Line_Down">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Move_Line_Up" value="65057" c:type="GDK_KEY_ISO_Move_Line_Up">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Next_Group" value="65032" c:type="GDK_KEY_ISO_Next_Group">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Next_Group_Lock" value="65033" c:type="GDK_KEY_ISO_Next_Group_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Partial_Line_Down" value="65060" c:type="GDK_KEY_ISO_Partial_Line_Down">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Partial_Line_Up" value="65059" c:type="GDK_KEY_ISO_Partial_Line_Up">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Partial_Space_Left" value="65061" c:type="GDK_KEY_ISO_Partial_Space_Left">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Partial_Space_Right" value="65062" c:type="GDK_KEY_ISO_Partial_Space_Right">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Prev_Group" value="65034" c:type="GDK_KEY_ISO_Prev_Group">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Prev_Group_Lock" value="65035" c:type="GDK_KEY_ISO_Prev_Group_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Release_Both_Margins" value="65067" c:type="GDK_KEY_ISO_Release_Both_Margins">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Release_Margin_Left" value="65065" c:type="GDK_KEY_ISO_Release_Margin_Left">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Release_Margin_Right" value="65066" c:type="GDK_KEY_ISO_Release_Margin_Right">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Set_Margin_Left" value="65063" c:type="GDK_KEY_ISO_Set_Margin_Left">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ISO_Set_Margin_Right" value="65064" c:type="GDK_KEY_ISO_Set_Margin_Right">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Iabovedot" value="681" c:type="GDK_KEY_Iabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Iacute" value="205" c:type="GDK_KEY_Iacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ibelowdot" value="16785098" c:type="GDK_KEY_Ibelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ibreve" value="16777516" c:type="GDK_KEY_Ibreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Icircumflex" value="206" c:type="GDK_KEY_Icircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Idiaeresis" value="207" c:type="GDK_KEY_Idiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Igrave" value="204" c:type="GDK_KEY_Igrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ihook" value="16785096" c:type="GDK_KEY_Ihook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Imacron" value="975" c:type="GDK_KEY_Imacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Insert" value="65379" c:type="GDK_KEY_Insert">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Iogonek" value="967" c:type="GDK_KEY_Iogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Itilde" value="933" c:type="GDK_KEY_Itilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_J" value="74" c:type="GDK_KEY_J">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Jcircumflex" value="684" c:type="GDK_KEY_Jcircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_K" value="75" c:type="GDK_KEY_K">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_0" value="65456" c:type="GDK_KEY_KP_0">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_1" value="65457" c:type="GDK_KEY_KP_1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_2" value="65458" c:type="GDK_KEY_KP_2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_3" value="65459" c:type="GDK_KEY_KP_3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_4" value="65460" c:type="GDK_KEY_KP_4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_5" value="65461" c:type="GDK_KEY_KP_5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_6" value="65462" c:type="GDK_KEY_KP_6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_7" value="65463" c:type="GDK_KEY_KP_7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_8" value="65464" c:type="GDK_KEY_KP_8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_9" value="65465" c:type="GDK_KEY_KP_9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Add" value="65451" c:type="GDK_KEY_KP_Add">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Begin" value="65437" c:type="GDK_KEY_KP_Begin">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Decimal" value="65454" c:type="GDK_KEY_KP_Decimal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Delete" value="65439" c:type="GDK_KEY_KP_Delete">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Divide" value="65455" c:type="GDK_KEY_KP_Divide">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Down" value="65433" c:type="GDK_KEY_KP_Down">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_End" value="65436" c:type="GDK_KEY_KP_End">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Enter" value="65421" c:type="GDK_KEY_KP_Enter">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Equal" value="65469" c:type="GDK_KEY_KP_Equal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_F1" value="65425" c:type="GDK_KEY_KP_F1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_F2" value="65426" c:type="GDK_KEY_KP_F2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_F3" value="65427" c:type="GDK_KEY_KP_F3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_F4" value="65428" c:type="GDK_KEY_KP_F4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Home" value="65429" c:type="GDK_KEY_KP_Home">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Insert" value="65438" c:type="GDK_KEY_KP_Insert">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Left" value="65430" c:type="GDK_KEY_KP_Left">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Multiply" value="65450" c:type="GDK_KEY_KP_Multiply">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Next" value="65435" c:type="GDK_KEY_KP_Next">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Page_Down" value="65435" c:type="GDK_KEY_KP_Page_Down">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Page_Up" value="65434" c:type="GDK_KEY_KP_Page_Up">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Prior" value="65434" c:type="GDK_KEY_KP_Prior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Right" value="65432" c:type="GDK_KEY_KP_Right">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Separator" value="65452" c:type="GDK_KEY_KP_Separator">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Space" value="65408" c:type="GDK_KEY_KP_Space">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Subtract" value="65453" c:type="GDK_KEY_KP_Subtract">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Tab" value="65417" c:type="GDK_KEY_KP_Tab">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KP_Up" value="65431" c:type="GDK_KEY_KP_Up">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Kana_Lock" value="65325" c:type="GDK_KEY_Kana_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Kana_Shift" value="65326" c:type="GDK_KEY_Kana_Shift">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Kanji" value="65313" c:type="GDK_KEY_Kanji">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Kanji_Bangou" value="65335" c:type="GDK_KEY_Kanji_Bangou">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Katakana" value="65318" c:type="GDK_KEY_Katakana">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KbdBrightnessDown" value="269025030" c:type="GDK_KEY_KbdBrightnessDown">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KbdBrightnessUp" value="269025029" c:type="GDK_KEY_KbdBrightnessUp">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_KbdLightOnOff" value="269025028" c:type="GDK_KEY_KbdLightOnOff">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Kcedilla" value="979" c:type="GDK_KEY_Kcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Keyboard" value="269025203" c:type="GDK_KEY_Keyboard">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Korean_Won" value="3839" c:type="GDK_KEY_Korean_Won">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L" value="76" c:type="GDK_KEY_L">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L1" value="65480" c:type="GDK_KEY_L1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L10" value="65489" c:type="GDK_KEY_L10">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L2" value="65481" c:type="GDK_KEY_L2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L3" value="65482" c:type="GDK_KEY_L3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L4" value="65483" c:type="GDK_KEY_L4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L5" value="65484" c:type="GDK_KEY_L5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L6" value="65485" c:type="GDK_KEY_L6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L7" value="65486" c:type="GDK_KEY_L7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L8" value="65487" c:type="GDK_KEY_L8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_L9" value="65488" c:type="GDK_KEY_L9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Lacute" value="453" c:type="GDK_KEY_Lacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Last_Virtual_Screen" value="65236" c:type="GDK_KEY_Last_Virtual_Screen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch0" value="269025088" c:type="GDK_KEY_Launch0">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch1" value="269025089" c:type="GDK_KEY_Launch1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch2" value="269025090" c:type="GDK_KEY_Launch2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch3" value="269025091" c:type="GDK_KEY_Launch3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch4" value="269025092" c:type="GDK_KEY_Launch4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch5" value="269025093" c:type="GDK_KEY_Launch5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch6" value="269025094" c:type="GDK_KEY_Launch6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch7" value="269025095" c:type="GDK_KEY_Launch7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch8" value="269025096" c:type="GDK_KEY_Launch8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Launch9" value="269025097" c:type="GDK_KEY_Launch9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LaunchA" value="269025098" c:type="GDK_KEY_LaunchA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LaunchB" value="269025099" c:type="GDK_KEY_LaunchB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LaunchC" value="269025100" c:type="GDK_KEY_LaunchC">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LaunchD" value="269025101" c:type="GDK_KEY_LaunchD">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LaunchE" value="269025102" c:type="GDK_KEY_LaunchE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LaunchF" value="269025103" c:type="GDK_KEY_LaunchF">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Lbelowdot" value="16784950" c:type="GDK_KEY_Lbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Lcaron" value="421" c:type="GDK_KEY_Lcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Lcedilla" value="934" c:type="GDK_KEY_Lcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Left" value="65361" c:type="GDK_KEY_Left">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LightBulb" value="269025077" c:type="GDK_KEY_LightBulb">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Linefeed" value="65290" c:type="GDK_KEY_Linefeed">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LiraSign" value="16785572" c:type="GDK_KEY_LiraSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LogGrabInfo" value="269024805" c:type="GDK_KEY_LogGrabInfo">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LogOff" value="269025121" c:type="GDK_KEY_LogOff">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_LogWindowTree" value="269024804" c:type="GDK_KEY_LogWindowTree">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Lstroke" value="419" c:type="GDK_KEY_Lstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_M" value="77" c:type="GDK_KEY_M">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Mabovedot" value="16784960" c:type="GDK_KEY_Mabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Macedonia_DSE" value="1717" c:type="GDK_KEY_Macedonia_DSE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Macedonia_GJE" value="1714" c:type="GDK_KEY_Macedonia_GJE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Macedonia_KJE" value="1724" c:type="GDK_KEY_Macedonia_KJE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Macedonia_dse" value="1701" c:type="GDK_KEY_Macedonia_dse">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Macedonia_gje" value="1698" c:type="GDK_KEY_Macedonia_gje">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Macedonia_kje" value="1708" c:type="GDK_KEY_Macedonia_kje">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Mae_Koho" value="65342" c:type="GDK_KEY_Mae_Koho">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Mail" value="269025049" c:type="GDK_KEY_Mail">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MailForward" value="269025168" c:type="GDK_KEY_MailForward">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Market" value="269025122" c:type="GDK_KEY_Market">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Massyo" value="65324" c:type="GDK_KEY_Massyo">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Meeting" value="269025123" c:type="GDK_KEY_Meeting">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Memo" value="269025054" c:type="GDK_KEY_Memo">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Menu" value="65383" c:type="GDK_KEY_Menu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MenuKB" value="269025125" c:type="GDK_KEY_MenuKB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MenuPB" value="269025126" c:type="GDK_KEY_MenuPB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Messenger" value="269025166" c:type="GDK_KEY_Messenger">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Meta_L" value="65511" c:type="GDK_KEY_Meta_L">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Meta_R" value="65512" c:type="GDK_KEY_Meta_R">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MillSign" value="16785573" c:type="GDK_KEY_MillSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ModeLock" value="269025025" c:type="GDK_KEY_ModeLock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Mode_switch" value="65406" c:type="GDK_KEY_Mode_switch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MonBrightnessDown" value="269025027" c:type="GDK_KEY_MonBrightnessDown">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MonBrightnessUp" value="269025026" c:type="GDK_KEY_MonBrightnessUp">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MouseKeys_Accel_Enable" value="65143" c:type="GDK_KEY_MouseKeys_Accel_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MouseKeys_Enable" value="65142" c:type="GDK_KEY_MouseKeys_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Muhenkan" value="65314" c:type="GDK_KEY_Muhenkan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Multi_key" value="65312" c:type="GDK_KEY_Multi_key">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MultipleCandidate" value="65341" c:type="GDK_KEY_MultipleCandidate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Music" value="269025170" c:type="GDK_KEY_Music">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MyComputer" value="269025075" c:type="GDK_KEY_MyComputer">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_MySites" value="269025127" c:type="GDK_KEY_MySites">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_N" value="78" c:type="GDK_KEY_N">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Nacute" value="465" c:type="GDK_KEY_Nacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_NairaSign" value="16785574" c:type="GDK_KEY_NairaSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ncaron" value="466" c:type="GDK_KEY_Ncaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ncedilla" value="977" c:type="GDK_KEY_Ncedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_New" value="269025128" c:type="GDK_KEY_New">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_NewSheqelSign" value="16785578" c:type="GDK_KEY_NewSheqelSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_News" value="269025129" c:type="GDK_KEY_News">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Next" value="65366" c:type="GDK_KEY_Next">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Next_VMode" value="269024802" c:type="GDK_KEY_Next_VMode">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Next_Virtual_Screen" value="65234" c:type="GDK_KEY_Next_Virtual_Screen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ntilde" value="209" c:type="GDK_KEY_Ntilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Num_Lock" value="65407" c:type="GDK_KEY_Num_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_O" value="79" c:type="GDK_KEY_O">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_OE" value="5052" c:type="GDK_KEY_OE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Oacute" value="211" c:type="GDK_KEY_Oacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Obarred" value="16777631" c:type="GDK_KEY_Obarred">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Obelowdot" value="16785100" c:type="GDK_KEY_Obelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ocaron" value="16777681" c:type="GDK_KEY_Ocaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ocircumflex" value="212" c:type="GDK_KEY_Ocircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ocircumflexacute" value="16785104" c:type="GDK_KEY_Ocircumflexacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ocircumflexbelowdot" value="16785112" c:type="GDK_KEY_Ocircumflexbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ocircumflexgrave" value="16785106" c:type="GDK_KEY_Ocircumflexgrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ocircumflexhook" value="16785108" c:type="GDK_KEY_Ocircumflexhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ocircumflextilde" value="16785110" c:type="GDK_KEY_Ocircumflextilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Odiaeresis" value="214" c:type="GDK_KEY_Odiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Odoubleacute" value="469" c:type="GDK_KEY_Odoubleacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_OfficeHome" value="269025130" c:type="GDK_KEY_OfficeHome">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ograve" value="210" c:type="GDK_KEY_Ograve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ohook" value="16785102" c:type="GDK_KEY_Ohook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ohorn" value="16777632" c:type="GDK_KEY_Ohorn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ohornacute" value="16785114" c:type="GDK_KEY_Ohornacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ohornbelowdot" value="16785122" c:type="GDK_KEY_Ohornbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ohorngrave" value="16785116" c:type="GDK_KEY_Ohorngrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ohornhook" value="16785118" c:type="GDK_KEY_Ohornhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ohorntilde" value="16785120" c:type="GDK_KEY_Ohorntilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Omacron" value="978" c:type="GDK_KEY_Omacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ooblique" value="216" c:type="GDK_KEY_Ooblique">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Open" value="269025131" c:type="GDK_KEY_Open">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_OpenURL" value="269025080" c:type="GDK_KEY_OpenURL">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Option" value="269025132" c:type="GDK_KEY_Option">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Oslash" value="216" c:type="GDK_KEY_Oslash">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Otilde" value="213" c:type="GDK_KEY_Otilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Overlay1_Enable" value="65144" c:type="GDK_KEY_Overlay1_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Overlay2_Enable" value="65145" c:type="GDK_KEY_Overlay2_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_P" value="80" c:type="GDK_KEY_P">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pabovedot" value="16784982" c:type="GDK_KEY_Pabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Page_Down" value="65366" c:type="GDK_KEY_Page_Down">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Page_Up" value="65365" c:type="GDK_KEY_Page_Up">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Paste" value="269025133" c:type="GDK_KEY_Paste">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pause" value="65299" c:type="GDK_KEY_Pause">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_PesetaSign" value="16785575" c:type="GDK_KEY_PesetaSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Phone" value="269025134" c:type="GDK_KEY_Phone">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pictures" value="269025169" c:type="GDK_KEY_Pictures">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Accelerate" value="65274" c:type="GDK_KEY_Pointer_Accelerate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Button1" value="65257" c:type="GDK_KEY_Pointer_Button1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Button2" value="65258" c:type="GDK_KEY_Pointer_Button2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Button3" value="65259" c:type="GDK_KEY_Pointer_Button3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Button4" value="65260" c:type="GDK_KEY_Pointer_Button4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Button5" value="65261" c:type="GDK_KEY_Pointer_Button5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Button_Dflt" value="65256" c:type="GDK_KEY_Pointer_Button_Dflt">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DblClick1" value="65263" c:type="GDK_KEY_Pointer_DblClick1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DblClick2" value="65264" c:type="GDK_KEY_Pointer_DblClick2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DblClick3" value="65265" c:type="GDK_KEY_Pointer_DblClick3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DblClick4" value="65266" c:type="GDK_KEY_Pointer_DblClick4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DblClick5" value="65267" c:type="GDK_KEY_Pointer_DblClick5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DblClick_Dflt" value="65262" c:type="GDK_KEY_Pointer_DblClick_Dflt">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DfltBtnNext" value="65275" c:type="GDK_KEY_Pointer_DfltBtnNext">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DfltBtnPrev" value="65276" c:type="GDK_KEY_Pointer_DfltBtnPrev">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Down" value="65251" c:type="GDK_KEY_Pointer_Down">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DownLeft" value="65254" c:type="GDK_KEY_Pointer_DownLeft">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_DownRight" value="65255" c:type="GDK_KEY_Pointer_DownRight">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Drag1" value="65269" c:type="GDK_KEY_Pointer_Drag1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Drag2" value="65270" c:type="GDK_KEY_Pointer_Drag2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Drag3" value="65271" c:type="GDK_KEY_Pointer_Drag3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Drag4" value="65272" c:type="GDK_KEY_Pointer_Drag4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Drag5" value="65277" c:type="GDK_KEY_Pointer_Drag5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Drag_Dflt" value="65268" c:type="GDK_KEY_Pointer_Drag_Dflt">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_EnableKeys" value="65273" c:type="GDK_KEY_Pointer_EnableKeys">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Left" value="65248" c:type="GDK_KEY_Pointer_Left">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Right" value="65249" c:type="GDK_KEY_Pointer_Right">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_Up" value="65250" c:type="GDK_KEY_Pointer_Up">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_UpLeft" value="65252" c:type="GDK_KEY_Pointer_UpLeft">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Pointer_UpRight" value="65253" c:type="GDK_KEY_Pointer_UpRight">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_PowerDown" value="269025057" c:type="GDK_KEY_PowerDown">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_PowerOff" value="269025066" c:type="GDK_KEY_PowerOff">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Prev_VMode" value="269024803" c:type="GDK_KEY_Prev_VMode">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Prev_Virtual_Screen" value="65233" c:type="GDK_KEY_Prev_Virtual_Screen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_PreviousCandidate" value="65342" c:type="GDK_KEY_PreviousCandidate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Print" value="65377" c:type="GDK_KEY_Print">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Prior" value="65365" c:type="GDK_KEY_Prior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Q" value="81" c:type="GDK_KEY_Q">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R" value="82" c:type="GDK_KEY_R">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R1" value="65490" c:type="GDK_KEY_R1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R10" value="65499" c:type="GDK_KEY_R10">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R11" value="65500" c:type="GDK_KEY_R11">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R12" value="65501" c:type="GDK_KEY_R12">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R13" value="65502" c:type="GDK_KEY_R13">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R14" value="65503" c:type="GDK_KEY_R14">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R15" value="65504" c:type="GDK_KEY_R15">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R2" value="65491" c:type="GDK_KEY_R2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R3" value="65492" c:type="GDK_KEY_R3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R4" value="65493" c:type="GDK_KEY_R4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R5" value="65494" c:type="GDK_KEY_R5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R6" value="65495" c:type="GDK_KEY_R6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R7" value="65496" c:type="GDK_KEY_R7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R8" value="65497" c:type="GDK_KEY_R8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_R9" value="65498" c:type="GDK_KEY_R9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_RFKill" value="269025205" c:type="GDK_KEY_RFKill">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Racute" value="448" c:type="GDK_KEY_Racute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Rcaron" value="472" c:type="GDK_KEY_Rcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Rcedilla" value="931" c:type="GDK_KEY_Rcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Red" value="269025187" c:type="GDK_KEY_Red">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Redo" value="65382" c:type="GDK_KEY_Redo">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Refresh" value="269025065" c:type="GDK_KEY_Refresh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Reload" value="269025139" c:type="GDK_KEY_Reload">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_RepeatKeys_Enable" value="65138" c:type="GDK_KEY_RepeatKeys_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Reply" value="269025138" c:type="GDK_KEY_Reply">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Return" value="65293" c:type="GDK_KEY_Return">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Right" value="65363" c:type="GDK_KEY_Right">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_RockerDown" value="269025060" c:type="GDK_KEY_RockerDown">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_RockerEnter" value="269025061" c:type="GDK_KEY_RockerEnter">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_RockerUp" value="269025059" c:type="GDK_KEY_RockerUp">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Romaji" value="65316" c:type="GDK_KEY_Romaji">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_RotateWindows" value="269025140" c:type="GDK_KEY_RotateWindows">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_RotationKB" value="269025142" c:type="GDK_KEY_RotationKB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_RotationPB" value="269025141" c:type="GDK_KEY_RotationPB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_RupeeSign" value="16785576" c:type="GDK_KEY_RupeeSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_S" value="83" c:type="GDK_KEY_S">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_SCHWA" value="16777615" c:type="GDK_KEY_SCHWA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sabovedot" value="16784992" c:type="GDK_KEY_Sabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sacute" value="422" c:type="GDK_KEY_Sacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Save" value="269025143" c:type="GDK_KEY_Save">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Scaron" value="425" c:type="GDK_KEY_Scaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Scedilla" value="426" c:type="GDK_KEY_Scedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Scircumflex" value="734" c:type="GDK_KEY_Scircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ScreenSaver" value="269025069" c:type="GDK_KEY_ScreenSaver">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ScrollClick" value="269025146" c:type="GDK_KEY_ScrollClick">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ScrollDown" value="269025145" c:type="GDK_KEY_ScrollDown">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ScrollUp" value="269025144" c:type="GDK_KEY_ScrollUp">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Scroll_Lock" value="65300" c:type="GDK_KEY_Scroll_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Search" value="269025051" c:type="GDK_KEY_Search">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Select" value="65376" c:type="GDK_KEY_Select">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_SelectButton" value="269025184" c:type="GDK_KEY_SelectButton">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Send" value="269025147" c:type="GDK_KEY_Send">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_DJE" value="1713" c:type="GDK_KEY_Serbian_DJE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_DZE" value="1727" c:type="GDK_KEY_Serbian_DZE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_JE" value="1720" c:type="GDK_KEY_Serbian_JE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_LJE" value="1721" c:type="GDK_KEY_Serbian_LJE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_NJE" value="1722" c:type="GDK_KEY_Serbian_NJE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_TSHE" value="1723" c:type="GDK_KEY_Serbian_TSHE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_dje" value="1697" c:type="GDK_KEY_Serbian_dje">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_dze" value="1711" c:type="GDK_KEY_Serbian_dze">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_je" value="1704" c:type="GDK_KEY_Serbian_je">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_lje" value="1705" c:type="GDK_KEY_Serbian_lje">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_nje" value="1706" c:type="GDK_KEY_Serbian_nje">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Serbian_tshe" value="1707" c:type="GDK_KEY_Serbian_tshe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Shift_L" value="65505" c:type="GDK_KEY_Shift_L">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Shift_Lock" value="65510" c:type="GDK_KEY_Shift_Lock">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Shift_R" value="65506" c:type="GDK_KEY_Shift_R">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Shop" value="269025078" c:type="GDK_KEY_Shop">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_SingleCandidate" value="65340" c:type="GDK_KEY_SingleCandidate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_a" value="16780677" c:type="GDK_KEY_Sinh_a">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_aa" value="16780678" c:type="GDK_KEY_Sinh_aa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_aa2" value="16780751" c:type="GDK_KEY_Sinh_aa2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ae" value="16780679" c:type="GDK_KEY_Sinh_ae">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ae2" value="16780752" c:type="GDK_KEY_Sinh_ae2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_aee" value="16780680" c:type="GDK_KEY_Sinh_aee">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_aee2" value="16780753" c:type="GDK_KEY_Sinh_aee2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ai" value="16780691" c:type="GDK_KEY_Sinh_ai">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ai2" value="16780763" c:type="GDK_KEY_Sinh_ai2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_al" value="16780746" c:type="GDK_KEY_Sinh_al">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_au" value="16780694" c:type="GDK_KEY_Sinh_au">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_au2" value="16780766" c:type="GDK_KEY_Sinh_au2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ba" value="16780726" c:type="GDK_KEY_Sinh_ba">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_bha" value="16780727" c:type="GDK_KEY_Sinh_bha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ca" value="16780704" c:type="GDK_KEY_Sinh_ca">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_cha" value="16780705" c:type="GDK_KEY_Sinh_cha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_dda" value="16780713" c:type="GDK_KEY_Sinh_dda">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ddha" value="16780714" c:type="GDK_KEY_Sinh_ddha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_dha" value="16780719" c:type="GDK_KEY_Sinh_dha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_dhha" value="16780720" c:type="GDK_KEY_Sinh_dhha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_e" value="16780689" c:type="GDK_KEY_Sinh_e">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_e2" value="16780761" c:type="GDK_KEY_Sinh_e2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ee" value="16780690" c:type="GDK_KEY_Sinh_ee">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ee2" value="16780762" c:type="GDK_KEY_Sinh_ee2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_fa" value="16780742" c:type="GDK_KEY_Sinh_fa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ga" value="16780700" c:type="GDK_KEY_Sinh_ga">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_gha" value="16780701" c:type="GDK_KEY_Sinh_gha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_h2" value="16780675" c:type="GDK_KEY_Sinh_h2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ha" value="16780740" c:type="GDK_KEY_Sinh_ha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_i" value="16780681" c:type="GDK_KEY_Sinh_i">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_i2" value="16780754" c:type="GDK_KEY_Sinh_i2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ii" value="16780682" c:type="GDK_KEY_Sinh_ii">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ii2" value="16780755" c:type="GDK_KEY_Sinh_ii2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ja" value="16780706" c:type="GDK_KEY_Sinh_ja">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_jha" value="16780707" c:type="GDK_KEY_Sinh_jha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_jnya" value="16780709" c:type="GDK_KEY_Sinh_jnya">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ka" value="16780698" c:type="GDK_KEY_Sinh_ka">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_kha" value="16780699" c:type="GDK_KEY_Sinh_kha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_kunddaliya" value="16780788" c:type="GDK_KEY_Sinh_kunddaliya">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_la" value="16780733" c:type="GDK_KEY_Sinh_la">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_lla" value="16780741" c:type="GDK_KEY_Sinh_lla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_lu" value="16780687" c:type="GDK_KEY_Sinh_lu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_lu2" value="16780767" c:type="GDK_KEY_Sinh_lu2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_luu" value="16780688" c:type="GDK_KEY_Sinh_luu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_luu2" value="16780787" c:type="GDK_KEY_Sinh_luu2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ma" value="16780728" c:type="GDK_KEY_Sinh_ma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_mba" value="16780729" c:type="GDK_KEY_Sinh_mba">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_na" value="16780721" c:type="GDK_KEY_Sinh_na">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ndda" value="16780716" c:type="GDK_KEY_Sinh_ndda">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ndha" value="16780723" c:type="GDK_KEY_Sinh_ndha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ng" value="16780674" c:type="GDK_KEY_Sinh_ng">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ng2" value="16780702" c:type="GDK_KEY_Sinh_ng2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_nga" value="16780703" c:type="GDK_KEY_Sinh_nga">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_nja" value="16780710" c:type="GDK_KEY_Sinh_nja">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_nna" value="16780715" c:type="GDK_KEY_Sinh_nna">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_nya" value="16780708" c:type="GDK_KEY_Sinh_nya">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_o" value="16780692" c:type="GDK_KEY_Sinh_o">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_o2" value="16780764" c:type="GDK_KEY_Sinh_o2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_oo" value="16780693" c:type="GDK_KEY_Sinh_oo">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_oo2" value="16780765" c:type="GDK_KEY_Sinh_oo2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_pa" value="16780724" c:type="GDK_KEY_Sinh_pa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_pha" value="16780725" c:type="GDK_KEY_Sinh_pha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ra" value="16780731" c:type="GDK_KEY_Sinh_ra">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ri" value="16780685" c:type="GDK_KEY_Sinh_ri">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_rii" value="16780686" c:type="GDK_KEY_Sinh_rii">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ru2" value="16780760" c:type="GDK_KEY_Sinh_ru2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ruu2" value="16780786" c:type="GDK_KEY_Sinh_ruu2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_sa" value="16780739" c:type="GDK_KEY_Sinh_sa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_sha" value="16780737" c:type="GDK_KEY_Sinh_sha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ssha" value="16780738" c:type="GDK_KEY_Sinh_ssha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_tha" value="16780717" c:type="GDK_KEY_Sinh_tha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_thha" value="16780718" c:type="GDK_KEY_Sinh_thha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_tta" value="16780711" c:type="GDK_KEY_Sinh_tta">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ttha" value="16780712" c:type="GDK_KEY_Sinh_ttha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_u" value="16780683" c:type="GDK_KEY_Sinh_u">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_u2" value="16780756" c:type="GDK_KEY_Sinh_u2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_uu" value="16780684" c:type="GDK_KEY_Sinh_uu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_uu2" value="16780758" c:type="GDK_KEY_Sinh_uu2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_va" value="16780736" c:type="GDK_KEY_Sinh_va">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sinh_ya" value="16780730" c:type="GDK_KEY_Sinh_ya">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sleep" value="269025071" c:type="GDK_KEY_Sleep">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_SlowKeys_Enable" value="65139" c:type="GDK_KEY_SlowKeys_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Spell" value="269025148" c:type="GDK_KEY_Spell">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_SplitScreen" value="269025149" c:type="GDK_KEY_SplitScreen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Standby" value="269025040" c:type="GDK_KEY_Standby">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Start" value="269025050" c:type="GDK_KEY_Start">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_StickyKeys_Enable" value="65141" c:type="GDK_KEY_StickyKeys_Enable">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Stop" value="269025064" c:type="GDK_KEY_Stop">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Subtitle" value="269025178" c:type="GDK_KEY_Subtitle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Super_L" value="65515" c:type="GDK_KEY_Super_L">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Super_R" value="65516" c:type="GDK_KEY_Super_R">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Support" value="269025150" c:type="GDK_KEY_Support">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Suspend" value="269025191" c:type="GDK_KEY_Suspend">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_1" value="269024769" c:type="GDK_KEY_Switch_VT_1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_10" value="269024778" c:type="GDK_KEY_Switch_VT_10">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_11" value="269024779" c:type="GDK_KEY_Switch_VT_11">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_12" value="269024780" c:type="GDK_KEY_Switch_VT_12">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_2" value="269024770" c:type="GDK_KEY_Switch_VT_2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_3" value="269024771" c:type="GDK_KEY_Switch_VT_3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_4" value="269024772" c:type="GDK_KEY_Switch_VT_4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_5" value="269024773" c:type="GDK_KEY_Switch_VT_5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_6" value="269024774" c:type="GDK_KEY_Switch_VT_6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_7" value="269024775" c:type="GDK_KEY_Switch_VT_7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_8" value="269024776" c:type="GDK_KEY_Switch_VT_8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Switch_VT_9" value="269024777" c:type="GDK_KEY_Switch_VT_9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Sys_Req" value="65301" c:type="GDK_KEY_Sys_Req">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_T" value="84" c:type="GDK_KEY_T">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_THORN" value="222" c:type="GDK_KEY_THORN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Tab" value="65289" c:type="GDK_KEY_Tab">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Tabovedot" value="16785002" c:type="GDK_KEY_Tabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_TaskPane" value="269025151" c:type="GDK_KEY_TaskPane">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Tcaron" value="427" c:type="GDK_KEY_Tcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Tcedilla" value="478" c:type="GDK_KEY_Tcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Terminal" value="269025152" c:type="GDK_KEY_Terminal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Terminate_Server" value="65237" c:type="GDK_KEY_Terminate_Server">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_baht" value="3551" c:type="GDK_KEY_Thai_baht">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_bobaimai" value="3514" c:type="GDK_KEY_Thai_bobaimai">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_chochan" value="3496" c:type="GDK_KEY_Thai_chochan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_chochang" value="3498" c:type="GDK_KEY_Thai_chochang">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_choching" value="3497" c:type="GDK_KEY_Thai_choching">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_chochoe" value="3500" c:type="GDK_KEY_Thai_chochoe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_dochada" value="3502" c:type="GDK_KEY_Thai_dochada">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_dodek" value="3508" c:type="GDK_KEY_Thai_dodek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_fofa" value="3517" c:type="GDK_KEY_Thai_fofa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_fofan" value="3519" c:type="GDK_KEY_Thai_fofan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_hohip" value="3531" c:type="GDK_KEY_Thai_hohip">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_honokhuk" value="3534" c:type="GDK_KEY_Thai_honokhuk">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_khokhai" value="3490" c:type="GDK_KEY_Thai_khokhai">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_khokhon" value="3493" c:type="GDK_KEY_Thai_khokhon">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_khokhuat" value="3491" c:type="GDK_KEY_Thai_khokhuat">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_khokhwai" value="3492" c:type="GDK_KEY_Thai_khokhwai">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_khorakhang" value="3494" c:type="GDK_KEY_Thai_khorakhang">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_kokai" value="3489" c:type="GDK_KEY_Thai_kokai">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_lakkhangyao" value="3557" c:type="GDK_KEY_Thai_lakkhangyao">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_lekchet" value="3575" c:type="GDK_KEY_Thai_lekchet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_lekha" value="3573" c:type="GDK_KEY_Thai_lekha">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_lekhok" value="3574" c:type="GDK_KEY_Thai_lekhok">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_lekkao" value="3577" c:type="GDK_KEY_Thai_lekkao">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_leknung" value="3569" c:type="GDK_KEY_Thai_leknung">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_lekpaet" value="3576" c:type="GDK_KEY_Thai_lekpaet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_leksam" value="3571" c:type="GDK_KEY_Thai_leksam">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_leksi" value="3572" c:type="GDK_KEY_Thai_leksi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_leksong" value="3570" c:type="GDK_KEY_Thai_leksong">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_leksun" value="3568" c:type="GDK_KEY_Thai_leksun">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_lochula" value="3532" c:type="GDK_KEY_Thai_lochula">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_loling" value="3525" c:type="GDK_KEY_Thai_loling">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_lu" value="3526" c:type="GDK_KEY_Thai_lu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_maichattawa" value="3563" c:type="GDK_KEY_Thai_maichattawa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_maiek" value="3560" c:type="GDK_KEY_Thai_maiek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_maihanakat" value="3537" c:type="GDK_KEY_Thai_maihanakat">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_maihanakat_maitho" value="3550" c:type="GDK_KEY_Thai_maihanakat_maitho">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_maitaikhu" value="3559" c:type="GDK_KEY_Thai_maitaikhu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_maitho" value="3561" c:type="GDK_KEY_Thai_maitho">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_maitri" value="3562" c:type="GDK_KEY_Thai_maitri">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_maiyamok" value="3558" c:type="GDK_KEY_Thai_maiyamok">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_moma" value="3521" c:type="GDK_KEY_Thai_moma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_ngongu" value="3495" c:type="GDK_KEY_Thai_ngongu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_nikhahit" value="3565" c:type="GDK_KEY_Thai_nikhahit">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_nonen" value="3507" c:type="GDK_KEY_Thai_nonen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_nonu" value="3513" c:type="GDK_KEY_Thai_nonu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_oang" value="3533" c:type="GDK_KEY_Thai_oang">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_paiyannoi" value="3535" c:type="GDK_KEY_Thai_paiyannoi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_phinthu" value="3546" c:type="GDK_KEY_Thai_phinthu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_phophan" value="3518" c:type="GDK_KEY_Thai_phophan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_phophung" value="3516" c:type="GDK_KEY_Thai_phophung">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_phosamphao" value="3520" c:type="GDK_KEY_Thai_phosamphao">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_popla" value="3515" c:type="GDK_KEY_Thai_popla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_rorua" value="3523" c:type="GDK_KEY_Thai_rorua">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_ru" value="3524" c:type="GDK_KEY_Thai_ru">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_saraa" value="3536" c:type="GDK_KEY_Thai_saraa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_saraaa" value="3538" c:type="GDK_KEY_Thai_saraaa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_saraae" value="3553" c:type="GDK_KEY_Thai_saraae">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_saraaimaimalai" value="3556" c:type="GDK_KEY_Thai_saraaimaimalai">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_saraaimaimuan" value="3555" c:type="GDK_KEY_Thai_saraaimaimuan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_saraam" value="3539" c:type="GDK_KEY_Thai_saraam">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_sarae" value="3552" c:type="GDK_KEY_Thai_sarae">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_sarai" value="3540" c:type="GDK_KEY_Thai_sarai">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_saraii" value="3541" c:type="GDK_KEY_Thai_saraii">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_sarao" value="3554" c:type="GDK_KEY_Thai_sarao">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_sarau" value="3544" c:type="GDK_KEY_Thai_sarau">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_saraue" value="3542" c:type="GDK_KEY_Thai_saraue">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_sarauee" value="3543" c:type="GDK_KEY_Thai_sarauee">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_sarauu" value="3545" c:type="GDK_KEY_Thai_sarauu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_sorusi" value="3529" c:type="GDK_KEY_Thai_sorusi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_sosala" value="3528" c:type="GDK_KEY_Thai_sosala">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_soso" value="3499" c:type="GDK_KEY_Thai_soso">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_sosua" value="3530" c:type="GDK_KEY_Thai_sosua">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_thanthakhat" value="3564" c:type="GDK_KEY_Thai_thanthakhat">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_thonangmontho" value="3505" c:type="GDK_KEY_Thai_thonangmontho">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_thophuthao" value="3506" c:type="GDK_KEY_Thai_thophuthao">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_thothahan" value="3511" c:type="GDK_KEY_Thai_thothahan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_thothan" value="3504" c:type="GDK_KEY_Thai_thothan">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_thothong" value="3512" c:type="GDK_KEY_Thai_thothong">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_thothung" value="3510" c:type="GDK_KEY_Thai_thothung">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_topatak" value="3503" c:type="GDK_KEY_Thai_topatak">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_totao" value="3509" c:type="GDK_KEY_Thai_totao">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_wowaen" value="3527" c:type="GDK_KEY_Thai_wowaen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_yoyak" value="3522" c:type="GDK_KEY_Thai_yoyak">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thai_yoying" value="3501" c:type="GDK_KEY_Thai_yoying">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Thorn" value="222" c:type="GDK_KEY_Thorn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Time" value="269025183" c:type="GDK_KEY_Time">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ToDoList" value="269025055" c:type="GDK_KEY_ToDoList">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Tools" value="269025153" c:type="GDK_KEY_Tools">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_TopMenu" value="269025186" c:type="GDK_KEY_TopMenu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_TouchpadOff" value="269025201" c:type="GDK_KEY_TouchpadOff">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_TouchpadOn" value="269025200" c:type="GDK_KEY_TouchpadOn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_TouchpadToggle" value="269025193" c:type="GDK_KEY_TouchpadToggle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Touroku" value="65323" c:type="GDK_KEY_Touroku">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Travel" value="269025154" c:type="GDK_KEY_Travel">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Tslash" value="940" c:type="GDK_KEY_Tslash">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_U" value="85" c:type="GDK_KEY_U">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_UWB" value="269025174" c:type="GDK_KEY_UWB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uacute" value="218" c:type="GDK_KEY_Uacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ubelowdot" value="16785124" c:type="GDK_KEY_Ubelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ubreve" value="733" c:type="GDK_KEY_Ubreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ucircumflex" value="219" c:type="GDK_KEY_Ucircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Udiaeresis" value="220" c:type="GDK_KEY_Udiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Udoubleacute" value="475" c:type="GDK_KEY_Udoubleacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ugrave" value="217" c:type="GDK_KEY_Ugrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uhook" value="16785126" c:type="GDK_KEY_Uhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uhorn" value="16777647" c:type="GDK_KEY_Uhorn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uhornacute" value="16785128" c:type="GDK_KEY_Uhornacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uhornbelowdot" value="16785136" c:type="GDK_KEY_Uhornbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uhorngrave" value="16785130" c:type="GDK_KEY_Uhorngrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uhornhook" value="16785132" c:type="GDK_KEY_Uhornhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uhorntilde" value="16785134" c:type="GDK_KEY_Uhorntilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukrainian_GHE_WITH_UPTURN" value="1725" c:type="GDK_KEY_Ukrainian_GHE_WITH_UPTURN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukrainian_I" value="1718" c:type="GDK_KEY_Ukrainian_I">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukrainian_IE" value="1716" c:type="GDK_KEY_Ukrainian_IE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukrainian_YI" value="1719" c:type="GDK_KEY_Ukrainian_YI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukrainian_ghe_with_upturn" value="1709" c:type="GDK_KEY_Ukrainian_ghe_with_upturn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukrainian_i" value="1702" c:type="GDK_KEY_Ukrainian_i">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukrainian_ie" value="1700" c:type="GDK_KEY_Ukrainian_ie">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukrainian_yi" value="1703" c:type="GDK_KEY_Ukrainian_yi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukranian_I" value="1718" c:type="GDK_KEY_Ukranian_I">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukranian_JE" value="1716" c:type="GDK_KEY_Ukranian_JE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukranian_YI" value="1719" c:type="GDK_KEY_Ukranian_YI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukranian_i" value="1702" c:type="GDK_KEY_Ukranian_i">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukranian_je" value="1700" c:type="GDK_KEY_Ukranian_je">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ukranian_yi" value="1703" c:type="GDK_KEY_Ukranian_yi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Umacron" value="990" c:type="GDK_KEY_Umacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Undo" value="65381" c:type="GDK_KEY_Undo">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ungrab" value="269024800" c:type="GDK_KEY_Ungrab">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uogonek" value="985" c:type="GDK_KEY_Uogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Up" value="65362" c:type="GDK_KEY_Up">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Uring" value="473" c:type="GDK_KEY_Uring">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_User1KB" value="269025157" c:type="GDK_KEY_User1KB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_User2KB" value="269025158" c:type="GDK_KEY_User2KB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_UserPB" value="269025156" c:type="GDK_KEY_UserPB">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Utilde" value="989" c:type="GDK_KEY_Utilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_V" value="86" c:type="GDK_KEY_V">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_VendorHome" value="269025076" c:type="GDK_KEY_VendorHome">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Video" value="269025159" c:type="GDK_KEY_Video">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_View" value="269025185" c:type="GDK_KEY_View">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_VoidSymbol" value="16777215" c:type="GDK_KEY_VoidSymbol">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_W" value="87" c:type="GDK_KEY_W">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_WLAN" value="269025173" c:type="GDK_KEY_WLAN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_WWAN" value="269025204" c:type="GDK_KEY_WWAN">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_WWW" value="269025070" c:type="GDK_KEY_WWW">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Wacute" value="16785026" c:type="GDK_KEY_Wacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_WakeUp" value="269025067" c:type="GDK_KEY_WakeUp">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Wcircumflex" value="16777588" c:type="GDK_KEY_Wcircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Wdiaeresis" value="16785028" c:type="GDK_KEY_Wdiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_WebCam" value="269025167" c:type="GDK_KEY_WebCam">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Wgrave" value="16785024" c:type="GDK_KEY_Wgrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_WheelButton" value="269025160" c:type="GDK_KEY_WheelButton">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_WindowClear" value="269025109" c:type="GDK_KEY_WindowClear">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_WonSign" value="16785577" c:type="GDK_KEY_WonSign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Word" value="269025161" c:type="GDK_KEY_Word">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_X" value="88" c:type="GDK_KEY_X">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Xabovedot" value="16785034" c:type="GDK_KEY_Xabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Xfer" value="269025162" c:type="GDK_KEY_Xfer">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Y" value="89" c:type="GDK_KEY_Y">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Yacute" value="221" c:type="GDK_KEY_Yacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ybelowdot" value="16785140" c:type="GDK_KEY_Ybelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ycircumflex" value="16777590" c:type="GDK_KEY_Ycircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ydiaeresis" value="5054" c:type="GDK_KEY_Ydiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Yellow" value="269025189" c:type="GDK_KEY_Yellow">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ygrave" value="16785138" c:type="GDK_KEY_Ygrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Yhook" value="16785142" c:type="GDK_KEY_Yhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Ytilde" value="16785144" c:type="GDK_KEY_Ytilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Z" value="90" c:type="GDK_KEY_Z">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Zabovedot" value="431" c:type="GDK_KEY_Zabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Zacute" value="428" c:type="GDK_KEY_Zacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Zcaron" value="430" c:type="GDK_KEY_Zcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Zen_Koho" value="65341" c:type="GDK_KEY_Zen_Koho">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Zenkaku" value="65320" c:type="GDK_KEY_Zenkaku">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Zenkaku_Hankaku" value="65322" c:type="GDK_KEY_Zenkaku_Hankaku">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ZoomIn" value="269025163" c:type="GDK_KEY_ZoomIn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ZoomOut" value="269025164" c:type="GDK_KEY_ZoomOut">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_Zstroke" value="16777653" c:type="GDK_KEY_Zstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_a" value="97" c:type="GDK_KEY_a">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_aacute" value="225" c:type="GDK_KEY_aacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_abelowdot" value="16785057" c:type="GDK_KEY_abelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_abovedot" value="511" c:type="GDK_KEY_abovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_abreve" value="483" c:type="GDK_KEY_abreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_abreveacute" value="16785071" c:type="GDK_KEY_abreveacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_abrevebelowdot" value="16785079" c:type="GDK_KEY_abrevebelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_abrevegrave" value="16785073" c:type="GDK_KEY_abrevegrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_abrevehook" value="16785075" c:type="GDK_KEY_abrevehook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_abrevetilde" value="16785077" c:type="GDK_KEY_abrevetilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_acircumflex" value="226" c:type="GDK_KEY_acircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_acircumflexacute" value="16785061" c:type="GDK_KEY_acircumflexacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_acircumflexbelowdot" value="16785069" c:type="GDK_KEY_acircumflexbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_acircumflexgrave" value="16785063" c:type="GDK_KEY_acircumflexgrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_acircumflexhook" value="16785065" c:type="GDK_KEY_acircumflexhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_acircumflextilde" value="16785067" c:type="GDK_KEY_acircumflextilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_acute" value="180" c:type="GDK_KEY_acute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_adiaeresis" value="228" c:type="GDK_KEY_adiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ae" value="230" c:type="GDK_KEY_ae">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_agrave" value="224" c:type="GDK_KEY_agrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ahook" value="16785059" c:type="GDK_KEY_ahook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_amacron" value="992" c:type="GDK_KEY_amacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ampersand" value="38" c:type="GDK_KEY_ampersand">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_aogonek" value="433" c:type="GDK_KEY_aogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_apostrophe" value="39" c:type="GDK_KEY_apostrophe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_approxeq" value="16785992" c:type="GDK_KEY_approxeq">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_approximate" value="2248" c:type="GDK_KEY_approximate">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_aring" value="229" c:type="GDK_KEY_aring">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_asciicircum" value="94" c:type="GDK_KEY_asciicircum">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_asciitilde" value="126" c:type="GDK_KEY_asciitilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_asterisk" value="42" c:type="GDK_KEY_asterisk">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_at" value="64" c:type="GDK_KEY_at">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_atilde" value="227" c:type="GDK_KEY_atilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_b" value="98" c:type="GDK_KEY_b">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_babovedot" value="16784899" c:type="GDK_KEY_babovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_backslash" value="92" c:type="GDK_KEY_backslash">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ballotcross" value="2804" c:type="GDK_KEY_ballotcross">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_bar" value="124" c:type="GDK_KEY_bar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_because" value="16785973" c:type="GDK_KEY_because">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_blank" value="2527" c:type="GDK_KEY_blank">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_botintegral" value="2213" c:type="GDK_KEY_botintegral">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_botleftparens" value="2220" c:type="GDK_KEY_botleftparens">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_botleftsqbracket" value="2216" c:type="GDK_KEY_botleftsqbracket">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_botleftsummation" value="2226" c:type="GDK_KEY_botleftsummation">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_botrightparens" value="2222" c:type="GDK_KEY_botrightparens">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_botrightsqbracket" value="2218" c:type="GDK_KEY_botrightsqbracket">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_botrightsummation" value="2230" c:type="GDK_KEY_botrightsummation">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_bott" value="2550" c:type="GDK_KEY_bott">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_botvertsummationconnector" value="2228" c:type="GDK_KEY_botvertsummationconnector">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braceleft" value="123" c:type="GDK_KEY_braceleft">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braceright" value="125" c:type="GDK_KEY_braceright">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_bracketleft" value="91" c:type="GDK_KEY_bracketleft">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_bracketright" value="93" c:type="GDK_KEY_bracketright">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_blank" value="16787456" c:type="GDK_KEY_braille_blank">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_1" value="65521" c:type="GDK_KEY_braille_dot_1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_10" value="65530" c:type="GDK_KEY_braille_dot_10">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_2" value="65522" c:type="GDK_KEY_braille_dot_2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_3" value="65523" c:type="GDK_KEY_braille_dot_3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_4" value="65524" c:type="GDK_KEY_braille_dot_4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_5" value="65525" c:type="GDK_KEY_braille_dot_5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_6" value="65526" c:type="GDK_KEY_braille_dot_6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_7" value="65527" c:type="GDK_KEY_braille_dot_7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_8" value="65528" c:type="GDK_KEY_braille_dot_8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dot_9" value="65529" c:type="GDK_KEY_braille_dot_9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1" value="16787457" c:type="GDK_KEY_braille_dots_1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12" value="16787459" c:type="GDK_KEY_braille_dots_12">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123" value="16787463" c:type="GDK_KEY_braille_dots_123">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1234" value="16787471" c:type="GDK_KEY_braille_dots_1234">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12345" value="16787487" c:type="GDK_KEY_braille_dots_12345">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123456" value="16787519" c:type="GDK_KEY_braille_dots_123456">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1234567" value="16787583" c:type="GDK_KEY_braille_dots_1234567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12345678" value="16787711" c:type="GDK_KEY_braille_dots_12345678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1234568" value="16787647" c:type="GDK_KEY_braille_dots_1234568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123457" value="16787551" c:type="GDK_KEY_braille_dots_123457">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1234578" value="16787679" c:type="GDK_KEY_braille_dots_1234578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123458" value="16787615" c:type="GDK_KEY_braille_dots_123458">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12346" value="16787503" c:type="GDK_KEY_braille_dots_12346">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123467" value="16787567" c:type="GDK_KEY_braille_dots_123467">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1234678" value="16787695" c:type="GDK_KEY_braille_dots_1234678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123468" value="16787631" c:type="GDK_KEY_braille_dots_123468">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12347" value="16787535" c:type="GDK_KEY_braille_dots_12347">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123478" value="16787663" c:type="GDK_KEY_braille_dots_123478">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12348" value="16787599" c:type="GDK_KEY_braille_dots_12348">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1235" value="16787479" c:type="GDK_KEY_braille_dots_1235">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12356" value="16787511" c:type="GDK_KEY_braille_dots_12356">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123567" value="16787575" c:type="GDK_KEY_braille_dots_123567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1235678" value="16787703" c:type="GDK_KEY_braille_dots_1235678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123568" value="16787639" c:type="GDK_KEY_braille_dots_123568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12357" value="16787543" c:type="GDK_KEY_braille_dots_12357">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123578" value="16787671" c:type="GDK_KEY_braille_dots_123578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12358" value="16787607" c:type="GDK_KEY_braille_dots_12358">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1236" value="16787495" c:type="GDK_KEY_braille_dots_1236">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12367" value="16787559" c:type="GDK_KEY_braille_dots_12367">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_123678" value="16787687" c:type="GDK_KEY_braille_dots_123678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12368" value="16787623" c:type="GDK_KEY_braille_dots_12368">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1237" value="16787527" c:type="GDK_KEY_braille_dots_1237">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12378" value="16787655" c:type="GDK_KEY_braille_dots_12378">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1238" value="16787591" c:type="GDK_KEY_braille_dots_1238">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_124" value="16787467" c:type="GDK_KEY_braille_dots_124">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1245" value="16787483" c:type="GDK_KEY_braille_dots_1245">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12456" value="16787515" c:type="GDK_KEY_braille_dots_12456">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_124567" value="16787579" c:type="GDK_KEY_braille_dots_124567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1245678" value="16787707" c:type="GDK_KEY_braille_dots_1245678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_124568" value="16787643" c:type="GDK_KEY_braille_dots_124568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12457" value="16787547" c:type="GDK_KEY_braille_dots_12457">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_124578" value="16787675" c:type="GDK_KEY_braille_dots_124578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12458" value="16787611" c:type="GDK_KEY_braille_dots_12458">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1246" value="16787499" c:type="GDK_KEY_braille_dots_1246">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12467" value="16787563" c:type="GDK_KEY_braille_dots_12467">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_124678" value="16787691" c:type="GDK_KEY_braille_dots_124678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12468" value="16787627" c:type="GDK_KEY_braille_dots_12468">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1247" value="16787531" c:type="GDK_KEY_braille_dots_1247">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12478" value="16787659" c:type="GDK_KEY_braille_dots_12478">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1248" value="16787595" c:type="GDK_KEY_braille_dots_1248">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_125" value="16787475" c:type="GDK_KEY_braille_dots_125">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1256" value="16787507" c:type="GDK_KEY_braille_dots_1256">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12567" value="16787571" c:type="GDK_KEY_braille_dots_12567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_125678" value="16787699" c:type="GDK_KEY_braille_dots_125678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12568" value="16787635" c:type="GDK_KEY_braille_dots_12568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1257" value="16787539" c:type="GDK_KEY_braille_dots_1257">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12578" value="16787667" c:type="GDK_KEY_braille_dots_12578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1258" value="16787603" c:type="GDK_KEY_braille_dots_1258">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_126" value="16787491" c:type="GDK_KEY_braille_dots_126">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1267" value="16787555" c:type="GDK_KEY_braille_dots_1267">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_12678" value="16787683" c:type="GDK_KEY_braille_dots_12678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1268" value="16787619" c:type="GDK_KEY_braille_dots_1268">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_127" value="16787523" c:type="GDK_KEY_braille_dots_127">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1278" value="16787651" c:type="GDK_KEY_braille_dots_1278">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_128" value="16787587" c:type="GDK_KEY_braille_dots_128">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13" value="16787461" c:type="GDK_KEY_braille_dots_13">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_134" value="16787469" c:type="GDK_KEY_braille_dots_134">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1345" value="16787485" c:type="GDK_KEY_braille_dots_1345">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13456" value="16787517" c:type="GDK_KEY_braille_dots_13456">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_134567" value="16787581" c:type="GDK_KEY_braille_dots_134567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1345678" value="16787709" c:type="GDK_KEY_braille_dots_1345678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_134568" value="16787645" c:type="GDK_KEY_braille_dots_134568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13457" value="16787549" c:type="GDK_KEY_braille_dots_13457">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_134578" value="16787677" c:type="GDK_KEY_braille_dots_134578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13458" value="16787613" c:type="GDK_KEY_braille_dots_13458">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1346" value="16787501" c:type="GDK_KEY_braille_dots_1346">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13467" value="16787565" c:type="GDK_KEY_braille_dots_13467">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_134678" value="16787693" c:type="GDK_KEY_braille_dots_134678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13468" value="16787629" c:type="GDK_KEY_braille_dots_13468">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1347" value="16787533" c:type="GDK_KEY_braille_dots_1347">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13478" value="16787661" c:type="GDK_KEY_braille_dots_13478">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1348" value="16787597" c:type="GDK_KEY_braille_dots_1348">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_135" value="16787477" c:type="GDK_KEY_braille_dots_135">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1356" value="16787509" c:type="GDK_KEY_braille_dots_1356">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13567" value="16787573" c:type="GDK_KEY_braille_dots_13567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_135678" value="16787701" c:type="GDK_KEY_braille_dots_135678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13568" value="16787637" c:type="GDK_KEY_braille_dots_13568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1357" value="16787541" c:type="GDK_KEY_braille_dots_1357">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13578" value="16787669" c:type="GDK_KEY_braille_dots_13578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1358" value="16787605" c:type="GDK_KEY_braille_dots_1358">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_136" value="16787493" c:type="GDK_KEY_braille_dots_136">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1367" value="16787557" c:type="GDK_KEY_braille_dots_1367">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_13678" value="16787685" c:type="GDK_KEY_braille_dots_13678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1368" value="16787621" c:type="GDK_KEY_braille_dots_1368">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_137" value="16787525" c:type="GDK_KEY_braille_dots_137">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1378" value="16787653" c:type="GDK_KEY_braille_dots_1378">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_138" value="16787589" c:type="GDK_KEY_braille_dots_138">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_14" value="16787465" c:type="GDK_KEY_braille_dots_14">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_145" value="16787481" c:type="GDK_KEY_braille_dots_145">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1456" value="16787513" c:type="GDK_KEY_braille_dots_1456">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_14567" value="16787577" c:type="GDK_KEY_braille_dots_14567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_145678" value="16787705" c:type="GDK_KEY_braille_dots_145678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_14568" value="16787641" c:type="GDK_KEY_braille_dots_14568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1457" value="16787545" c:type="GDK_KEY_braille_dots_1457">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_14578" value="16787673" c:type="GDK_KEY_braille_dots_14578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1458" value="16787609" c:type="GDK_KEY_braille_dots_1458">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_146" value="16787497" c:type="GDK_KEY_braille_dots_146">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1467" value="16787561" c:type="GDK_KEY_braille_dots_1467">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_14678" value="16787689" c:type="GDK_KEY_braille_dots_14678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1468" value="16787625" c:type="GDK_KEY_braille_dots_1468">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_147" value="16787529" c:type="GDK_KEY_braille_dots_147">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1478" value="16787657" c:type="GDK_KEY_braille_dots_1478">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_148" value="16787593" c:type="GDK_KEY_braille_dots_148">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_15" value="16787473" c:type="GDK_KEY_braille_dots_15">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_156" value="16787505" c:type="GDK_KEY_braille_dots_156">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1567" value="16787569" c:type="GDK_KEY_braille_dots_1567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_15678" value="16787697" c:type="GDK_KEY_braille_dots_15678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1568" value="16787633" c:type="GDK_KEY_braille_dots_1568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_157" value="16787537" c:type="GDK_KEY_braille_dots_157">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1578" value="16787665" c:type="GDK_KEY_braille_dots_1578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_158" value="16787601" c:type="GDK_KEY_braille_dots_158">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_16" value="16787489" c:type="GDK_KEY_braille_dots_16">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_167" value="16787553" c:type="GDK_KEY_braille_dots_167">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_1678" value="16787681" c:type="GDK_KEY_braille_dots_1678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_168" value="16787617" c:type="GDK_KEY_braille_dots_168">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_17" value="16787521" c:type="GDK_KEY_braille_dots_17">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_178" value="16787649" c:type="GDK_KEY_braille_dots_178">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_18" value="16787585" c:type="GDK_KEY_braille_dots_18">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2" value="16787458" c:type="GDK_KEY_braille_dots_2">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23" value="16787462" c:type="GDK_KEY_braille_dots_23">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_234" value="16787470" c:type="GDK_KEY_braille_dots_234">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2345" value="16787486" c:type="GDK_KEY_braille_dots_2345">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23456" value="16787518" c:type="GDK_KEY_braille_dots_23456">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_234567" value="16787582" c:type="GDK_KEY_braille_dots_234567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2345678" value="16787710" c:type="GDK_KEY_braille_dots_2345678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_234568" value="16787646" c:type="GDK_KEY_braille_dots_234568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23457" value="16787550" c:type="GDK_KEY_braille_dots_23457">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_234578" value="16787678" c:type="GDK_KEY_braille_dots_234578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23458" value="16787614" c:type="GDK_KEY_braille_dots_23458">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2346" value="16787502" c:type="GDK_KEY_braille_dots_2346">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23467" value="16787566" c:type="GDK_KEY_braille_dots_23467">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_234678" value="16787694" c:type="GDK_KEY_braille_dots_234678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23468" value="16787630" c:type="GDK_KEY_braille_dots_23468">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2347" value="16787534" c:type="GDK_KEY_braille_dots_2347">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23478" value="16787662" c:type="GDK_KEY_braille_dots_23478">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2348" value="16787598" c:type="GDK_KEY_braille_dots_2348">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_235" value="16787478" c:type="GDK_KEY_braille_dots_235">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2356" value="16787510" c:type="GDK_KEY_braille_dots_2356">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23567" value="16787574" c:type="GDK_KEY_braille_dots_23567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_235678" value="16787702" c:type="GDK_KEY_braille_dots_235678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23568" value="16787638" c:type="GDK_KEY_braille_dots_23568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2357" value="16787542" c:type="GDK_KEY_braille_dots_2357">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23578" value="16787670" c:type="GDK_KEY_braille_dots_23578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2358" value="16787606" c:type="GDK_KEY_braille_dots_2358">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_236" value="16787494" c:type="GDK_KEY_braille_dots_236">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2367" value="16787558" c:type="GDK_KEY_braille_dots_2367">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_23678" value="16787686" c:type="GDK_KEY_braille_dots_23678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2368" value="16787622" c:type="GDK_KEY_braille_dots_2368">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_237" value="16787526" c:type="GDK_KEY_braille_dots_237">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2378" value="16787654" c:type="GDK_KEY_braille_dots_2378">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_238" value="16787590" c:type="GDK_KEY_braille_dots_238">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_24" value="16787466" c:type="GDK_KEY_braille_dots_24">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_245" value="16787482" c:type="GDK_KEY_braille_dots_245">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2456" value="16787514" c:type="GDK_KEY_braille_dots_2456">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_24567" value="16787578" c:type="GDK_KEY_braille_dots_24567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_245678" value="16787706" c:type="GDK_KEY_braille_dots_245678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_24568" value="16787642" c:type="GDK_KEY_braille_dots_24568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2457" value="16787546" c:type="GDK_KEY_braille_dots_2457">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_24578" value="16787674" c:type="GDK_KEY_braille_dots_24578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2458" value="16787610" c:type="GDK_KEY_braille_dots_2458">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_246" value="16787498" c:type="GDK_KEY_braille_dots_246">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2467" value="16787562" c:type="GDK_KEY_braille_dots_2467">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_24678" value="16787690" c:type="GDK_KEY_braille_dots_24678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2468" value="16787626" c:type="GDK_KEY_braille_dots_2468">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_247" value="16787530" c:type="GDK_KEY_braille_dots_247">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2478" value="16787658" c:type="GDK_KEY_braille_dots_2478">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_248" value="16787594" c:type="GDK_KEY_braille_dots_248">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_25" value="16787474" c:type="GDK_KEY_braille_dots_25">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_256" value="16787506" c:type="GDK_KEY_braille_dots_256">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2567" value="16787570" c:type="GDK_KEY_braille_dots_2567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_25678" value="16787698" c:type="GDK_KEY_braille_dots_25678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2568" value="16787634" c:type="GDK_KEY_braille_dots_2568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_257" value="16787538" c:type="GDK_KEY_braille_dots_257">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2578" value="16787666" c:type="GDK_KEY_braille_dots_2578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_258" value="16787602" c:type="GDK_KEY_braille_dots_258">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_26" value="16787490" c:type="GDK_KEY_braille_dots_26">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_267" value="16787554" c:type="GDK_KEY_braille_dots_267">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_2678" value="16787682" c:type="GDK_KEY_braille_dots_2678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_268" value="16787618" c:type="GDK_KEY_braille_dots_268">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_27" value="16787522" c:type="GDK_KEY_braille_dots_27">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_278" value="16787650" c:type="GDK_KEY_braille_dots_278">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_28" value="16787586" c:type="GDK_KEY_braille_dots_28">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3" value="16787460" c:type="GDK_KEY_braille_dots_3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_34" value="16787468" c:type="GDK_KEY_braille_dots_34">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_345" value="16787484" c:type="GDK_KEY_braille_dots_345">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3456" value="16787516" c:type="GDK_KEY_braille_dots_3456">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_34567" value="16787580" c:type="GDK_KEY_braille_dots_34567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_345678" value="16787708" c:type="GDK_KEY_braille_dots_345678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_34568" value="16787644" c:type="GDK_KEY_braille_dots_34568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3457" value="16787548" c:type="GDK_KEY_braille_dots_3457">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_34578" value="16787676" c:type="GDK_KEY_braille_dots_34578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3458" value="16787612" c:type="GDK_KEY_braille_dots_3458">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_346" value="16787500" c:type="GDK_KEY_braille_dots_346">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3467" value="16787564" c:type="GDK_KEY_braille_dots_3467">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_34678" value="16787692" c:type="GDK_KEY_braille_dots_34678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3468" value="16787628" c:type="GDK_KEY_braille_dots_3468">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_347" value="16787532" c:type="GDK_KEY_braille_dots_347">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3478" value="16787660" c:type="GDK_KEY_braille_dots_3478">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_348" value="16787596" c:type="GDK_KEY_braille_dots_348">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_35" value="16787476" c:type="GDK_KEY_braille_dots_35">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_356" value="16787508" c:type="GDK_KEY_braille_dots_356">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3567" value="16787572" c:type="GDK_KEY_braille_dots_3567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_35678" value="16787700" c:type="GDK_KEY_braille_dots_35678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3568" value="16787636" c:type="GDK_KEY_braille_dots_3568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_357" value="16787540" c:type="GDK_KEY_braille_dots_357">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3578" value="16787668" c:type="GDK_KEY_braille_dots_3578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_358" value="16787604" c:type="GDK_KEY_braille_dots_358">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_36" value="16787492" c:type="GDK_KEY_braille_dots_36">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_367" value="16787556" c:type="GDK_KEY_braille_dots_367">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_3678" value="16787684" c:type="GDK_KEY_braille_dots_3678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_368" value="16787620" c:type="GDK_KEY_braille_dots_368">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_37" value="16787524" c:type="GDK_KEY_braille_dots_37">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_378" value="16787652" c:type="GDK_KEY_braille_dots_378">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_38" value="16787588" c:type="GDK_KEY_braille_dots_38">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_4" value="16787464" c:type="GDK_KEY_braille_dots_4">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_45" value="16787480" c:type="GDK_KEY_braille_dots_45">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_456" value="16787512" c:type="GDK_KEY_braille_dots_456">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_4567" value="16787576" c:type="GDK_KEY_braille_dots_4567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_45678" value="16787704" c:type="GDK_KEY_braille_dots_45678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_4568" value="16787640" c:type="GDK_KEY_braille_dots_4568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_457" value="16787544" c:type="GDK_KEY_braille_dots_457">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_4578" value="16787672" c:type="GDK_KEY_braille_dots_4578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_458" value="16787608" c:type="GDK_KEY_braille_dots_458">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_46" value="16787496" c:type="GDK_KEY_braille_dots_46">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_467" value="16787560" c:type="GDK_KEY_braille_dots_467">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_4678" value="16787688" c:type="GDK_KEY_braille_dots_4678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_468" value="16787624" c:type="GDK_KEY_braille_dots_468">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_47" value="16787528" c:type="GDK_KEY_braille_dots_47">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_478" value="16787656" c:type="GDK_KEY_braille_dots_478">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_48" value="16787592" c:type="GDK_KEY_braille_dots_48">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_5" value="16787472" c:type="GDK_KEY_braille_dots_5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_56" value="16787504" c:type="GDK_KEY_braille_dots_56">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_567" value="16787568" c:type="GDK_KEY_braille_dots_567">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_5678" value="16787696" c:type="GDK_KEY_braille_dots_5678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_568" value="16787632" c:type="GDK_KEY_braille_dots_568">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_57" value="16787536" c:type="GDK_KEY_braille_dots_57">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_578" value="16787664" c:type="GDK_KEY_braille_dots_578">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_58" value="16787600" c:type="GDK_KEY_braille_dots_58">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_6" value="16787488" c:type="GDK_KEY_braille_dots_6">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_67" value="16787552" c:type="GDK_KEY_braille_dots_67">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_678" value="16787680" c:type="GDK_KEY_braille_dots_678">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_68" value="16787616" c:type="GDK_KEY_braille_dots_68">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_7" value="16787520" c:type="GDK_KEY_braille_dots_7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_78" value="16787648" c:type="GDK_KEY_braille_dots_78">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_braille_dots_8" value="16787584" c:type="GDK_KEY_braille_dots_8">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_breve" value="418" c:type="GDK_KEY_breve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_brokenbar" value="166" c:type="GDK_KEY_brokenbar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_c" value="99" c:type="GDK_KEY_c">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_c_h" value="65187" c:type="GDK_KEY_c_h">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_cabovedot" value="741" c:type="GDK_KEY_cabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_cacute" value="486" c:type="GDK_KEY_cacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_careof" value="2744" c:type="GDK_KEY_careof">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_caret" value="2812" c:type="GDK_KEY_caret">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_caron" value="439" c:type="GDK_KEY_caron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ccaron" value="488" c:type="GDK_KEY_ccaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ccedilla" value="231" c:type="GDK_KEY_ccedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ccircumflex" value="742" c:type="GDK_KEY_ccircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_cedilla" value="184" c:type="GDK_KEY_cedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_cent" value="162" c:type="GDK_KEY_cent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ch" value="65184" c:type="GDK_KEY_ch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_checkerboard" value="2529" c:type="GDK_KEY_checkerboard">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_checkmark" value="2803" c:type="GDK_KEY_checkmark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_circle" value="3023" c:type="GDK_KEY_circle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_club" value="2796" c:type="GDK_KEY_club">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_colon" value="58" c:type="GDK_KEY_colon">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_comma" value="44" c:type="GDK_KEY_comma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_containsas" value="16785931" c:type="GDK_KEY_containsas">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_copyright" value="169" c:type="GDK_KEY_copyright">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_cr" value="2532" c:type="GDK_KEY_cr">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_crossinglines" value="2542" c:type="GDK_KEY_crossinglines">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_cuberoot" value="16785947" c:type="GDK_KEY_cuberoot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_currency" value="164" c:type="GDK_KEY_currency">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_cursor" value="2815" c:type="GDK_KEY_cursor">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_d" value="100" c:type="GDK_KEY_d">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dabovedot" value="16784907" c:type="GDK_KEY_dabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dagger" value="2801" c:type="GDK_KEY_dagger">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dcaron" value="495" c:type="GDK_KEY_dcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_A" value="65153" c:type="GDK_KEY_dead_A">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_E" value="65155" c:type="GDK_KEY_dead_E">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_I" value="65157" c:type="GDK_KEY_dead_I">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_O" value="65159" c:type="GDK_KEY_dead_O">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_U" value="65161" c:type="GDK_KEY_dead_U">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_a" value="65152" c:type="GDK_KEY_dead_a">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_abovecomma" value="65124" c:type="GDK_KEY_dead_abovecomma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_abovedot" value="65110" c:type="GDK_KEY_dead_abovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_abovereversedcomma" value="65125" c:type="GDK_KEY_dead_abovereversedcomma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_abovering" value="65112" c:type="GDK_KEY_dead_abovering">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_aboveverticalline" value="65169" c:type="GDK_KEY_dead_aboveverticalline">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_acute" value="65105" c:type="GDK_KEY_dead_acute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_belowbreve" value="65131" c:type="GDK_KEY_dead_belowbreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_belowcircumflex" value="65129" c:type="GDK_KEY_dead_belowcircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_belowcomma" value="65134" c:type="GDK_KEY_dead_belowcomma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_belowdiaeresis" value="65132" c:type="GDK_KEY_dead_belowdiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_belowdot" value="65120" c:type="GDK_KEY_dead_belowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_belowmacron" value="65128" c:type="GDK_KEY_dead_belowmacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_belowring" value="65127" c:type="GDK_KEY_dead_belowring">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_belowtilde" value="65130" c:type="GDK_KEY_dead_belowtilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_belowverticalline" value="65170" c:type="GDK_KEY_dead_belowverticalline">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_breve" value="65109" c:type="GDK_KEY_dead_breve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_capital_schwa" value="65163" c:type="GDK_KEY_dead_capital_schwa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_caron" value="65114" c:type="GDK_KEY_dead_caron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_cedilla" value="65115" c:type="GDK_KEY_dead_cedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_circumflex" value="65106" c:type="GDK_KEY_dead_circumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_currency" value="65135" c:type="GDK_KEY_dead_currency">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_dasia" value="65125" c:type="GDK_KEY_dead_dasia">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_diaeresis" value="65111" c:type="GDK_KEY_dead_diaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_doubleacute" value="65113" c:type="GDK_KEY_dead_doubleacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_doublegrave" value="65126" c:type="GDK_KEY_dead_doublegrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_e" value="65154" c:type="GDK_KEY_dead_e">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_grave" value="65104" c:type="GDK_KEY_dead_grave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_greek" value="65164" c:type="GDK_KEY_dead_greek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_hook" value="65121" c:type="GDK_KEY_dead_hook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_horn" value="65122" c:type="GDK_KEY_dead_horn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_i" value="65156" c:type="GDK_KEY_dead_i">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_invertedbreve" value="65133" c:type="GDK_KEY_dead_invertedbreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_iota" value="65117" c:type="GDK_KEY_dead_iota">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_longsolidusoverlay" value="65171" c:type="GDK_KEY_dead_longsolidusoverlay">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_lowline" value="65168" c:type="GDK_KEY_dead_lowline">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_macron" value="65108" c:type="GDK_KEY_dead_macron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_o" value="65158" c:type="GDK_KEY_dead_o">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_ogonek" value="65116" c:type="GDK_KEY_dead_ogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_perispomeni" value="65107" c:type="GDK_KEY_dead_perispomeni">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_psili" value="65124" c:type="GDK_KEY_dead_psili">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_semivoiced_sound" value="65119" c:type="GDK_KEY_dead_semivoiced_sound">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_small_schwa" value="65162" c:type="GDK_KEY_dead_small_schwa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_stroke" value="65123" c:type="GDK_KEY_dead_stroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_tilde" value="65107" c:type="GDK_KEY_dead_tilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_u" value="65160" c:type="GDK_KEY_dead_u">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dead_voiced_sound" value="65118" c:type="GDK_KEY_dead_voiced_sound">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_decimalpoint" value="2749" c:type="GDK_KEY_decimalpoint">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_degree" value="176" c:type="GDK_KEY_degree">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_diaeresis" value="168" c:type="GDK_KEY_diaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_diamond" value="2797" c:type="GDK_KEY_diamond">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_digitspace" value="2725" c:type="GDK_KEY_digitspace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dintegral" value="16785964" c:type="GDK_KEY_dintegral">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_division" value="247" c:type="GDK_KEY_division">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dollar" value="36" c:type="GDK_KEY_dollar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_doubbaselinedot" value="2735" c:type="GDK_KEY_doubbaselinedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_doubleacute" value="445" c:type="GDK_KEY_doubleacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_doubledagger" value="2802" c:type="GDK_KEY_doubledagger">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_doublelowquotemark" value="2814" c:type="GDK_KEY_doublelowquotemark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_downarrow" value="2302" c:type="GDK_KEY_downarrow">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_downcaret" value="2984" c:type="GDK_KEY_downcaret">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_downshoe" value="3030" c:type="GDK_KEY_downshoe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_downstile" value="3012" c:type="GDK_KEY_downstile">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_downtack" value="3010" c:type="GDK_KEY_downtack">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_dstroke" value="496" c:type="GDK_KEY_dstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_e" value="101" c:type="GDK_KEY_e">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_eabovedot" value="1004" c:type="GDK_KEY_eabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_eacute" value="233" c:type="GDK_KEY_eacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ebelowdot" value="16785081" c:type="GDK_KEY_ebelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ecaron" value="492" c:type="GDK_KEY_ecaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ecircumflex" value="234" c:type="GDK_KEY_ecircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ecircumflexacute" value="16785087" c:type="GDK_KEY_ecircumflexacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ecircumflexbelowdot" value="16785095" c:type="GDK_KEY_ecircumflexbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ecircumflexgrave" value="16785089" c:type="GDK_KEY_ecircumflexgrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ecircumflexhook" value="16785091" c:type="GDK_KEY_ecircumflexhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ecircumflextilde" value="16785093" c:type="GDK_KEY_ecircumflextilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ediaeresis" value="235" c:type="GDK_KEY_ediaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_egrave" value="232" c:type="GDK_KEY_egrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ehook" value="16785083" c:type="GDK_KEY_ehook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_eightsubscript" value="16785544" c:type="GDK_KEY_eightsubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_eightsuperior" value="16785528" c:type="GDK_KEY_eightsuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_elementof" value="16785928" c:type="GDK_KEY_elementof">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ellipsis" value="2734" c:type="GDK_KEY_ellipsis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_em3space" value="2723" c:type="GDK_KEY_em3space">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_em4space" value="2724" c:type="GDK_KEY_em4space">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_emacron" value="954" c:type="GDK_KEY_emacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_emdash" value="2729" c:type="GDK_KEY_emdash">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_emfilledcircle" value="2782" c:type="GDK_KEY_emfilledcircle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_emfilledrect" value="2783" c:type="GDK_KEY_emfilledrect">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_emopencircle" value="2766" c:type="GDK_KEY_emopencircle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_emopenrectangle" value="2767" c:type="GDK_KEY_emopenrectangle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_emptyset" value="16785925" c:type="GDK_KEY_emptyset">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_emspace" value="2721" c:type="GDK_KEY_emspace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_endash" value="2730" c:type="GDK_KEY_endash">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_enfilledcircbullet" value="2790" c:type="GDK_KEY_enfilledcircbullet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_enfilledsqbullet" value="2791" c:type="GDK_KEY_enfilledsqbullet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_eng" value="959" c:type="GDK_KEY_eng">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_enopencircbullet" value="2784" c:type="GDK_KEY_enopencircbullet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_enopensquarebullet" value="2785" c:type="GDK_KEY_enopensquarebullet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_enspace" value="2722" c:type="GDK_KEY_enspace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_eogonek" value="490" c:type="GDK_KEY_eogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_equal" value="61" c:type="GDK_KEY_equal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_eth" value="240" c:type="GDK_KEY_eth">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_etilde" value="16785085" c:type="GDK_KEY_etilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_exclam" value="33" c:type="GDK_KEY_exclam">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_exclamdown" value="161" c:type="GDK_KEY_exclamdown">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ezh" value="16777874" c:type="GDK_KEY_ezh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_f" value="102" c:type="GDK_KEY_f">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_fabovedot" value="16784927" c:type="GDK_KEY_fabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_femalesymbol" value="2808" c:type="GDK_KEY_femalesymbol">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ff" value="2531" c:type="GDK_KEY_ff">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_figdash" value="2747" c:type="GDK_KEY_figdash">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_filledlefttribullet" value="2780" c:type="GDK_KEY_filledlefttribullet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_filledrectbullet" value="2779" c:type="GDK_KEY_filledrectbullet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_filledrighttribullet" value="2781" c:type="GDK_KEY_filledrighttribullet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_filledtribulletdown" value="2793" c:type="GDK_KEY_filledtribulletdown">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_filledtribulletup" value="2792" c:type="GDK_KEY_filledtribulletup">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_fiveeighths" value="2757" c:type="GDK_KEY_fiveeighths">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_fivesixths" value="2743" c:type="GDK_KEY_fivesixths">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_fivesubscript" value="16785541" c:type="GDK_KEY_fivesubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_fivesuperior" value="16785525" c:type="GDK_KEY_fivesuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_fourfifths" value="2741" c:type="GDK_KEY_fourfifths">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_foursubscript" value="16785540" c:type="GDK_KEY_foursubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_foursuperior" value="16785524" c:type="GDK_KEY_foursuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_fourthroot" value="16785948" c:type="GDK_KEY_fourthroot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_function" value="2294" c:type="GDK_KEY_function">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_g" value="103" c:type="GDK_KEY_g">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_gabovedot" value="757" c:type="GDK_KEY_gabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_gbreve" value="699" c:type="GDK_KEY_gbreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_gcaron" value="16777703" c:type="GDK_KEY_gcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_gcedilla" value="955" c:type="GDK_KEY_gcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_gcircumflex" value="760" c:type="GDK_KEY_gcircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_grave" value="96" c:type="GDK_KEY_grave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_greater" value="62" c:type="GDK_KEY_greater">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_greaterthanequal" value="2238" c:type="GDK_KEY_greaterthanequal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_guillemotleft" value="171" c:type="GDK_KEY_guillemotleft">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_guillemotright" value="187" c:type="GDK_KEY_guillemotright">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_h" value="104" c:type="GDK_KEY_h">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hairspace" value="2728" c:type="GDK_KEY_hairspace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hcircumflex" value="694" c:type="GDK_KEY_hcircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_heart" value="2798" c:type="GDK_KEY_heart">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_aleph" value="3296" c:type="GDK_KEY_hebrew_aleph">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_ayin" value="3314" c:type="GDK_KEY_hebrew_ayin">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_bet" value="3297" c:type="GDK_KEY_hebrew_bet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_beth" value="3297" c:type="GDK_KEY_hebrew_beth">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_chet" value="3303" c:type="GDK_KEY_hebrew_chet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_dalet" value="3299" c:type="GDK_KEY_hebrew_dalet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_daleth" value="3299" c:type="GDK_KEY_hebrew_daleth">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_doublelowline" value="3295" c:type="GDK_KEY_hebrew_doublelowline">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_finalkaph" value="3306" c:type="GDK_KEY_hebrew_finalkaph">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_finalmem" value="3309" c:type="GDK_KEY_hebrew_finalmem">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_finalnun" value="3311" c:type="GDK_KEY_hebrew_finalnun">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_finalpe" value="3315" c:type="GDK_KEY_hebrew_finalpe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_finalzade" value="3317" c:type="GDK_KEY_hebrew_finalzade">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_finalzadi" value="3317" c:type="GDK_KEY_hebrew_finalzadi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_gimel" value="3298" c:type="GDK_KEY_hebrew_gimel">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_gimmel" value="3298" c:type="GDK_KEY_hebrew_gimmel">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_he" value="3300" c:type="GDK_KEY_hebrew_he">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_het" value="3303" c:type="GDK_KEY_hebrew_het">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_kaph" value="3307" c:type="GDK_KEY_hebrew_kaph">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_kuf" value="3319" c:type="GDK_KEY_hebrew_kuf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_lamed" value="3308" c:type="GDK_KEY_hebrew_lamed">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_mem" value="3310" c:type="GDK_KEY_hebrew_mem">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_nun" value="3312" c:type="GDK_KEY_hebrew_nun">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_pe" value="3316" c:type="GDK_KEY_hebrew_pe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_qoph" value="3319" c:type="GDK_KEY_hebrew_qoph">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_resh" value="3320" c:type="GDK_KEY_hebrew_resh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_samech" value="3313" c:type="GDK_KEY_hebrew_samech">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_samekh" value="3313" c:type="GDK_KEY_hebrew_samekh">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_shin" value="3321" c:type="GDK_KEY_hebrew_shin">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_taf" value="3322" c:type="GDK_KEY_hebrew_taf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_taw" value="3322" c:type="GDK_KEY_hebrew_taw">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_tet" value="3304" c:type="GDK_KEY_hebrew_tet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_teth" value="3304" c:type="GDK_KEY_hebrew_teth">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_waw" value="3301" c:type="GDK_KEY_hebrew_waw">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_yod" value="3305" c:type="GDK_KEY_hebrew_yod">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_zade" value="3318" c:type="GDK_KEY_hebrew_zade">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_zadi" value="3318" c:type="GDK_KEY_hebrew_zadi">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_zain" value="3302" c:type="GDK_KEY_hebrew_zain">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hebrew_zayin" value="3302" c:type="GDK_KEY_hebrew_zayin">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hexagram" value="2778" c:type="GDK_KEY_hexagram">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_horizconnector" value="2211" c:type="GDK_KEY_horizconnector">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_horizlinescan1" value="2543" c:type="GDK_KEY_horizlinescan1">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_horizlinescan3" value="2544" c:type="GDK_KEY_horizlinescan3">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_horizlinescan5" value="2545" c:type="GDK_KEY_horizlinescan5">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_horizlinescan7" value="2546" c:type="GDK_KEY_horizlinescan7">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_horizlinescan9" value="2547" c:type="GDK_KEY_horizlinescan9">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hstroke" value="689" c:type="GDK_KEY_hstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ht" value="2530" c:type="GDK_KEY_ht">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_hyphen" value="173" c:type="GDK_KEY_hyphen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_i" value="105" c:type="GDK_KEY_i">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_iTouch" value="269025120" c:type="GDK_KEY_iTouch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_iacute" value="237" c:type="GDK_KEY_iacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ibelowdot" value="16785099" c:type="GDK_KEY_ibelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ibreve" value="16777517" c:type="GDK_KEY_ibreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_icircumflex" value="238" c:type="GDK_KEY_icircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_identical" value="2255" c:type="GDK_KEY_identical">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_idiaeresis" value="239" c:type="GDK_KEY_idiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_idotless" value="697" c:type="GDK_KEY_idotless">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ifonlyif" value="2253" c:type="GDK_KEY_ifonlyif">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_igrave" value="236" c:type="GDK_KEY_igrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ihook" value="16785097" c:type="GDK_KEY_ihook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_imacron" value="1007" c:type="GDK_KEY_imacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_implies" value="2254" c:type="GDK_KEY_implies">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_includedin" value="2266" c:type="GDK_KEY_includedin">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_includes" value="2267" c:type="GDK_KEY_includes">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_infinity" value="2242" c:type="GDK_KEY_infinity">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_integral" value="2239" c:type="GDK_KEY_integral">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_intersection" value="2268" c:type="GDK_KEY_intersection">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_iogonek" value="999" c:type="GDK_KEY_iogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_itilde" value="949" c:type="GDK_KEY_itilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_j" value="106" c:type="GDK_KEY_j">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_jcircumflex" value="700" c:type="GDK_KEY_jcircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_jot" value="3018" c:type="GDK_KEY_jot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_k" value="107" c:type="GDK_KEY_k">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_A" value="1201" c:type="GDK_KEY_kana_A">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_CHI" value="1217" c:type="GDK_KEY_kana_CHI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_E" value="1204" c:type="GDK_KEY_kana_E">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_FU" value="1228" c:type="GDK_KEY_kana_FU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_HA" value="1226" c:type="GDK_KEY_kana_HA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_HE" value="1229" c:type="GDK_KEY_kana_HE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_HI" value="1227" c:type="GDK_KEY_kana_HI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_HO" value="1230" c:type="GDK_KEY_kana_HO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_HU" value="1228" c:type="GDK_KEY_kana_HU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_I" value="1202" c:type="GDK_KEY_kana_I">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_KA" value="1206" c:type="GDK_KEY_kana_KA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_KE" value="1209" c:type="GDK_KEY_kana_KE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_KI" value="1207" c:type="GDK_KEY_kana_KI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_KO" value="1210" c:type="GDK_KEY_kana_KO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_KU" value="1208" c:type="GDK_KEY_kana_KU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_MA" value="1231" c:type="GDK_KEY_kana_MA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_ME" value="1234" c:type="GDK_KEY_kana_ME">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_MI" value="1232" c:type="GDK_KEY_kana_MI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_MO" value="1235" c:type="GDK_KEY_kana_MO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_MU" value="1233" c:type="GDK_KEY_kana_MU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_N" value="1245" c:type="GDK_KEY_kana_N">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_NA" value="1221" c:type="GDK_KEY_kana_NA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_NE" value="1224" c:type="GDK_KEY_kana_NE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_NI" value="1222" c:type="GDK_KEY_kana_NI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_NO" value="1225" c:type="GDK_KEY_kana_NO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_NU" value="1223" c:type="GDK_KEY_kana_NU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_O" value="1205" c:type="GDK_KEY_kana_O">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_RA" value="1239" c:type="GDK_KEY_kana_RA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_RE" value="1242" c:type="GDK_KEY_kana_RE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_RI" value="1240" c:type="GDK_KEY_kana_RI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_RO" value="1243" c:type="GDK_KEY_kana_RO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_RU" value="1241" c:type="GDK_KEY_kana_RU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_SA" value="1211" c:type="GDK_KEY_kana_SA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_SE" value="1214" c:type="GDK_KEY_kana_SE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_SHI" value="1212" c:type="GDK_KEY_kana_SHI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_SO" value="1215" c:type="GDK_KEY_kana_SO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_SU" value="1213" c:type="GDK_KEY_kana_SU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_TA" value="1216" c:type="GDK_KEY_kana_TA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_TE" value="1219" c:type="GDK_KEY_kana_TE">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_TI" value="1217" c:type="GDK_KEY_kana_TI">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_TO" value="1220" c:type="GDK_KEY_kana_TO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_TSU" value="1218" c:type="GDK_KEY_kana_TSU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_TU" value="1218" c:type="GDK_KEY_kana_TU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_U" value="1203" c:type="GDK_KEY_kana_U">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_WA" value="1244" c:type="GDK_KEY_kana_WA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_WO" value="1190" c:type="GDK_KEY_kana_WO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_YA" value="1236" c:type="GDK_KEY_kana_YA">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_YO" value="1238" c:type="GDK_KEY_kana_YO">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_YU" value="1237" c:type="GDK_KEY_kana_YU">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_a" value="1191" c:type="GDK_KEY_kana_a">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_closingbracket" value="1187" c:type="GDK_KEY_kana_closingbracket">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_comma" value="1188" c:type="GDK_KEY_kana_comma">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_conjunctive" value="1189" c:type="GDK_KEY_kana_conjunctive">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_e" value="1194" c:type="GDK_KEY_kana_e">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_fullstop" value="1185" c:type="GDK_KEY_kana_fullstop">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_i" value="1192" c:type="GDK_KEY_kana_i">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_middledot" value="1189" c:type="GDK_KEY_kana_middledot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_o" value="1195" c:type="GDK_KEY_kana_o">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_openingbracket" value="1186" c:type="GDK_KEY_kana_openingbracket">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_switch" value="65406" c:type="GDK_KEY_kana_switch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_tsu" value="1199" c:type="GDK_KEY_kana_tsu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_tu" value="1199" c:type="GDK_KEY_kana_tu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_u" value="1193" c:type="GDK_KEY_kana_u">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_ya" value="1196" c:type="GDK_KEY_kana_ya">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_yo" value="1198" c:type="GDK_KEY_kana_yo">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kana_yu" value="1197" c:type="GDK_KEY_kana_yu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kappa" value="930" c:type="GDK_KEY_kappa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kcedilla" value="1011" c:type="GDK_KEY_kcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_kra" value="930" c:type="GDK_KEY_kra">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_l" value="108" c:type="GDK_KEY_l">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lacute" value="485" c:type="GDK_KEY_lacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_latincross" value="2777" c:type="GDK_KEY_latincross">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lbelowdot" value="16784951" c:type="GDK_KEY_lbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lcaron" value="437" c:type="GDK_KEY_lcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lcedilla" value="950" c:type="GDK_KEY_lcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftanglebracket" value="2748" c:type="GDK_KEY_leftanglebracket">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftarrow" value="2299" c:type="GDK_KEY_leftarrow">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftcaret" value="2979" c:type="GDK_KEY_leftcaret">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftdoublequotemark" value="2770" c:type="GDK_KEY_leftdoublequotemark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftmiddlecurlybrace" value="2223" c:type="GDK_KEY_leftmiddlecurlybrace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftopentriangle" value="2764" c:type="GDK_KEY_leftopentriangle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftpointer" value="2794" c:type="GDK_KEY_leftpointer">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftradical" value="2209" c:type="GDK_KEY_leftradical">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftshoe" value="3034" c:type="GDK_KEY_leftshoe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftsinglequotemark" value="2768" c:type="GDK_KEY_leftsinglequotemark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_leftt" value="2548" c:type="GDK_KEY_leftt">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lefttack" value="3036" c:type="GDK_KEY_lefttack">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_less" value="60" c:type="GDK_KEY_less">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lessthanequal" value="2236" c:type="GDK_KEY_lessthanequal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lf" value="2533" c:type="GDK_KEY_lf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_logicaland" value="2270" c:type="GDK_KEY_logicaland">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_logicalor" value="2271" c:type="GDK_KEY_logicalor">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lowleftcorner" value="2541" c:type="GDK_KEY_lowleftcorner">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lowrightcorner" value="2538" c:type="GDK_KEY_lowrightcorner">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_lstroke" value="435" c:type="GDK_KEY_lstroke">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_m" value="109" c:type="GDK_KEY_m">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_mabovedot" value="16784961" c:type="GDK_KEY_mabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_macron" value="175" c:type="GDK_KEY_macron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_malesymbol" value="2807" c:type="GDK_KEY_malesymbol">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_maltesecross" value="2800" c:type="GDK_KEY_maltesecross">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_marker" value="2751" c:type="GDK_KEY_marker">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_masculine" value="186" c:type="GDK_KEY_masculine">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_minus" value="45" c:type="GDK_KEY_minus">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_minutes" value="2774" c:type="GDK_KEY_minutes">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_mu" value="181" c:type="GDK_KEY_mu">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_multiply" value="215" c:type="GDK_KEY_multiply">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_musicalflat" value="2806" c:type="GDK_KEY_musicalflat">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_musicalsharp" value="2805" c:type="GDK_KEY_musicalsharp">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_n" value="110" c:type="GDK_KEY_n">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_nabla" value="2245" c:type="GDK_KEY_nabla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_nacute" value="497" c:type="GDK_KEY_nacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ncaron" value="498" c:type="GDK_KEY_ncaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ncedilla" value="1009" c:type="GDK_KEY_ncedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ninesubscript" value="16785545" c:type="GDK_KEY_ninesubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ninesuperior" value="16785529" c:type="GDK_KEY_ninesuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_nl" value="2536" c:type="GDK_KEY_nl">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_nobreakspace" value="160" c:type="GDK_KEY_nobreakspace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_notapproxeq" value="16785991" c:type="GDK_KEY_notapproxeq">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_notelementof" value="16785929" c:type="GDK_KEY_notelementof">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_notequal" value="2237" c:type="GDK_KEY_notequal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_notidentical" value="16786018" c:type="GDK_KEY_notidentical">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_notsign" value="172" c:type="GDK_KEY_notsign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ntilde" value="241" c:type="GDK_KEY_ntilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_numbersign" value="35" c:type="GDK_KEY_numbersign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_numerosign" value="1712" c:type="GDK_KEY_numerosign">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_o" value="111" c:type="GDK_KEY_o">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_oacute" value="243" c:type="GDK_KEY_oacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_obarred" value="16777845" c:type="GDK_KEY_obarred">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_obelowdot" value="16785101" c:type="GDK_KEY_obelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ocaron" value="16777682" c:type="GDK_KEY_ocaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ocircumflex" value="244" c:type="GDK_KEY_ocircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ocircumflexacute" value="16785105" c:type="GDK_KEY_ocircumflexacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ocircumflexbelowdot" value="16785113" c:type="GDK_KEY_ocircumflexbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ocircumflexgrave" value="16785107" c:type="GDK_KEY_ocircumflexgrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ocircumflexhook" value="16785109" c:type="GDK_KEY_ocircumflexhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ocircumflextilde" value="16785111" c:type="GDK_KEY_ocircumflextilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_odiaeresis" value="246" c:type="GDK_KEY_odiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_odoubleacute" value="501" c:type="GDK_KEY_odoubleacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_oe" value="5053" c:type="GDK_KEY_oe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ogonek" value="434" c:type="GDK_KEY_ogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ograve" value="242" c:type="GDK_KEY_ograve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ohook" value="16785103" c:type="GDK_KEY_ohook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ohorn" value="16777633" c:type="GDK_KEY_ohorn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ohornacute" value="16785115" c:type="GDK_KEY_ohornacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ohornbelowdot" value="16785123" c:type="GDK_KEY_ohornbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ohorngrave" value="16785117" c:type="GDK_KEY_ohorngrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ohornhook" value="16785119" c:type="GDK_KEY_ohornhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ohorntilde" value="16785121" c:type="GDK_KEY_ohorntilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_omacron" value="1010" c:type="GDK_KEY_omacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_oneeighth" value="2755" c:type="GDK_KEY_oneeighth">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_onefifth" value="2738" c:type="GDK_KEY_onefifth">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_onehalf" value="189" c:type="GDK_KEY_onehalf">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_onequarter" value="188" c:type="GDK_KEY_onequarter">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_onesixth" value="2742" c:type="GDK_KEY_onesixth">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_onesubscript" value="16785537" c:type="GDK_KEY_onesubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_onesuperior" value="185" c:type="GDK_KEY_onesuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_onethird" value="2736" c:type="GDK_KEY_onethird">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ooblique" value="248" c:type="GDK_KEY_ooblique">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_openrectbullet" value="2786" c:type="GDK_KEY_openrectbullet">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_openstar" value="2789" c:type="GDK_KEY_openstar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_opentribulletdown" value="2788" c:type="GDK_KEY_opentribulletdown">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_opentribulletup" value="2787" c:type="GDK_KEY_opentribulletup">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ordfeminine" value="170" c:type="GDK_KEY_ordfeminine">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_oslash" value="248" c:type="GDK_KEY_oslash">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_otilde" value="245" c:type="GDK_KEY_otilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_overbar" value="3008" c:type="GDK_KEY_overbar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_overline" value="1150" c:type="GDK_KEY_overline">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_p" value="112" c:type="GDK_KEY_p">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_pabovedot" value="16784983" c:type="GDK_KEY_pabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_paragraph" value="182" c:type="GDK_KEY_paragraph">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_parenleft" value="40" c:type="GDK_KEY_parenleft">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_parenright" value="41" c:type="GDK_KEY_parenright">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_partdifferential" value="16785922" c:type="GDK_KEY_partdifferential">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_partialderivative" value="2287" c:type="GDK_KEY_partialderivative">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_percent" value="37" c:type="GDK_KEY_percent">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_period" value="46" c:type="GDK_KEY_period">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_periodcentered" value="183" c:type="GDK_KEY_periodcentered">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_permille" value="2773" c:type="GDK_KEY_permille">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_phonographcopyright" value="2811" c:type="GDK_KEY_phonographcopyright">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_plus" value="43" c:type="GDK_KEY_plus">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_plusminus" value="177" c:type="GDK_KEY_plusminus">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_prescription" value="2772" c:type="GDK_KEY_prescription">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_prolongedsound" value="1200" c:type="GDK_KEY_prolongedsound">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_punctspace" value="2726" c:type="GDK_KEY_punctspace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_q" value="113" c:type="GDK_KEY_q">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_quad" value="3020" c:type="GDK_KEY_quad">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_question" value="63" c:type="GDK_KEY_question">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_questiondown" value="191" c:type="GDK_KEY_questiondown">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_quotedbl" value="34" c:type="GDK_KEY_quotedbl">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_quoteleft" value="96" c:type="GDK_KEY_quoteleft">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_quoteright" value="39" c:type="GDK_KEY_quoteright">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_r" value="114" c:type="GDK_KEY_r">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_racute" value="480" c:type="GDK_KEY_racute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_radical" value="2262" c:type="GDK_KEY_radical">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rcaron" value="504" c:type="GDK_KEY_rcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rcedilla" value="947" c:type="GDK_KEY_rcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_registered" value="174" c:type="GDK_KEY_registered">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightanglebracket" value="2750" c:type="GDK_KEY_rightanglebracket">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightarrow" value="2301" c:type="GDK_KEY_rightarrow">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightcaret" value="2982" c:type="GDK_KEY_rightcaret">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightdoublequotemark" value="2771" c:type="GDK_KEY_rightdoublequotemark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightmiddlecurlybrace" value="2224" c:type="GDK_KEY_rightmiddlecurlybrace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightmiddlesummation" value="2231" c:type="GDK_KEY_rightmiddlesummation">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightopentriangle" value="2765" c:type="GDK_KEY_rightopentriangle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightpointer" value="2795" c:type="GDK_KEY_rightpointer">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightshoe" value="3032" c:type="GDK_KEY_rightshoe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightsinglequotemark" value="2769" c:type="GDK_KEY_rightsinglequotemark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_rightt" value="2549" c:type="GDK_KEY_rightt">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_righttack" value="3068" c:type="GDK_KEY_righttack">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_s" value="115" c:type="GDK_KEY_s">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_sabovedot" value="16784993" c:type="GDK_KEY_sabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_sacute" value="438" c:type="GDK_KEY_sacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_scaron" value="441" c:type="GDK_KEY_scaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_scedilla" value="442" c:type="GDK_KEY_scedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_schwa" value="16777817" c:type="GDK_KEY_schwa">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_scircumflex" value="766" c:type="GDK_KEY_scircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_script_switch" value="65406" c:type="GDK_KEY_script_switch">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_seconds" value="2775" c:type="GDK_KEY_seconds">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_section" value="167" c:type="GDK_KEY_section">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_semicolon" value="59" c:type="GDK_KEY_semicolon">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_semivoicedsound" value="1247" c:type="GDK_KEY_semivoicedsound">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_seveneighths" value="2758" c:type="GDK_KEY_seveneighths">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_sevensubscript" value="16785543" c:type="GDK_KEY_sevensubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_sevensuperior" value="16785527" c:type="GDK_KEY_sevensuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_signaturemark" value="2762" c:type="GDK_KEY_signaturemark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_signifblank" value="2732" c:type="GDK_KEY_signifblank">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_similarequal" value="2249" c:type="GDK_KEY_similarequal">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_singlelowquotemark" value="2813" c:type="GDK_KEY_singlelowquotemark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_sixsubscript" value="16785542" c:type="GDK_KEY_sixsubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_sixsuperior" value="16785526" c:type="GDK_KEY_sixsuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_slash" value="47" c:type="GDK_KEY_slash">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_soliddiamond" value="2528" c:type="GDK_KEY_soliddiamond">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_space" value="32" c:type="GDK_KEY_space">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_squareroot" value="16785946" c:type="GDK_KEY_squareroot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ssharp" value="223" c:type="GDK_KEY_ssharp">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_sterling" value="163" c:type="GDK_KEY_sterling">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_stricteq" value="16786019" c:type="GDK_KEY_stricteq">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_t" value="116" c:type="GDK_KEY_t">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_tabovedot" value="16785003" c:type="GDK_KEY_tabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_tcaron" value="443" c:type="GDK_KEY_tcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_tcedilla" value="510" c:type="GDK_KEY_tcedilla">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_telephone" value="2809" c:type="GDK_KEY_telephone">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_telephonerecorder" value="2810" c:type="GDK_KEY_telephonerecorder">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_therefore" value="2240" c:type="GDK_KEY_therefore">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_thinspace" value="2727" c:type="GDK_KEY_thinspace">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_thorn" value="254" c:type="GDK_KEY_thorn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_threeeighths" value="2756" c:type="GDK_KEY_threeeighths">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_threefifths" value="2740" c:type="GDK_KEY_threefifths">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_threequarters" value="190" c:type="GDK_KEY_threequarters">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_threesubscript" value="16785539" c:type="GDK_KEY_threesubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_threesuperior" value="179" c:type="GDK_KEY_threesuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_tintegral" value="16785965" c:type="GDK_KEY_tintegral">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_topintegral" value="2212" c:type="GDK_KEY_topintegral">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_topleftparens" value="2219" c:type="GDK_KEY_topleftparens">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_topleftradical" value="2210" c:type="GDK_KEY_topleftradical">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_topleftsqbracket" value="2215" c:type="GDK_KEY_topleftsqbracket">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_topleftsummation" value="2225" c:type="GDK_KEY_topleftsummation">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_toprightparens" value="2221" c:type="GDK_KEY_toprightparens">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_toprightsqbracket" value="2217" c:type="GDK_KEY_toprightsqbracket">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_toprightsummation" value="2229" c:type="GDK_KEY_toprightsummation">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_topt" value="2551" c:type="GDK_KEY_topt">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_topvertsummationconnector" value="2227" c:type="GDK_KEY_topvertsummationconnector">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_trademark" value="2761" c:type="GDK_KEY_trademark">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_trademarkincircle" value="2763" c:type="GDK_KEY_trademarkincircle">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_tslash" value="956" c:type="GDK_KEY_tslash">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_twofifths" value="2739" c:type="GDK_KEY_twofifths">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_twosubscript" value="16785538" c:type="GDK_KEY_twosubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_twosuperior" value="178" c:type="GDK_KEY_twosuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_twothirds" value="2737" c:type="GDK_KEY_twothirds">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_u" value="117" c:type="GDK_KEY_u">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uacute" value="250" c:type="GDK_KEY_uacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ubelowdot" value="16785125" c:type="GDK_KEY_ubelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ubreve" value="765" c:type="GDK_KEY_ubreve">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ucircumflex" value="251" c:type="GDK_KEY_ucircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_udiaeresis" value="252" c:type="GDK_KEY_udiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_udoubleacute" value="507" c:type="GDK_KEY_udoubleacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ugrave" value="249" c:type="GDK_KEY_ugrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uhook" value="16785127" c:type="GDK_KEY_uhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uhorn" value="16777648" c:type="GDK_KEY_uhorn">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uhornacute" value="16785129" c:type="GDK_KEY_uhornacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uhornbelowdot" value="16785137" c:type="GDK_KEY_uhornbelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uhorngrave" value="16785131" c:type="GDK_KEY_uhorngrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uhornhook" value="16785133" c:type="GDK_KEY_uhornhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uhorntilde" value="16785135" c:type="GDK_KEY_uhorntilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_umacron" value="1022" c:type="GDK_KEY_umacron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_underbar" value="3014" c:type="GDK_KEY_underbar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_underscore" value="95" c:type="GDK_KEY_underscore">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_union" value="2269" c:type="GDK_KEY_union">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uogonek" value="1017" c:type="GDK_KEY_uogonek">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uparrow" value="2300" c:type="GDK_KEY_uparrow">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_upcaret" value="2985" c:type="GDK_KEY_upcaret">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_upleftcorner" value="2540" c:type="GDK_KEY_upleftcorner">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uprightcorner" value="2539" c:type="GDK_KEY_uprightcorner">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_upshoe" value="3011" c:type="GDK_KEY_upshoe">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_upstile" value="3027" c:type="GDK_KEY_upstile">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uptack" value="3022" c:type="GDK_KEY_uptack">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_uring" value="505" c:type="GDK_KEY_uring">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_utilde" value="1021" c:type="GDK_KEY_utilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_v" value="118" c:type="GDK_KEY_v">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_variation" value="2241" c:type="GDK_KEY_variation">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_vertbar" value="2552" c:type="GDK_KEY_vertbar">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_vertconnector" value="2214" c:type="GDK_KEY_vertconnector">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_voicedsound" value="1246" c:type="GDK_KEY_voicedsound">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_vt" value="2537" c:type="GDK_KEY_vt">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_w" value="119" c:type="GDK_KEY_w">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_wacute" value="16785027" c:type="GDK_KEY_wacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_wcircumflex" value="16777589" c:type="GDK_KEY_wcircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_wdiaeresis" value="16785029" c:type="GDK_KEY_wdiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_wgrave" value="16785025" c:type="GDK_KEY_wgrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_x" value="120" c:type="GDK_KEY_x">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_xabovedot" value="16785035" c:type="GDK_KEY_xabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_y" value="121" c:type="GDK_KEY_y">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_yacute" value="253" c:type="GDK_KEY_yacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ybelowdot" value="16785141" c:type="GDK_KEY_ybelowdot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ycircumflex" value="16777591" c:type="GDK_KEY_ycircumflex">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ydiaeresis" value="255" c:type="GDK_KEY_ydiaeresis">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_yen" value="165" c:type="GDK_KEY_yen">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ygrave" value="16785139" c:type="GDK_KEY_ygrave">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_yhook" value="16785143" c:type="GDK_KEY_yhook">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_ytilde" value="16785145" c:type="GDK_KEY_ytilde">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_z" value="122" c:type="GDK_KEY_z">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_zabovedot" value="447" c:type="GDK_KEY_zabovedot">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_zacute" value="444" c:type="GDK_KEY_zacute">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_zcaron" value="446" c:type="GDK_KEY_zcaron">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_zerosubscript" value="16785536" c:type="GDK_KEY_zerosubscript">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_zerosuperior" value="16785520" c:type="GDK_KEY_zerosuperior">
<type name="gint" c:type="gint"/>
</constant>
<constant name="KEY_zstroke" value="16777654" c:type="GDK_KEY_zstroke">
<type name="gint" c:type="gint"/>
</constant>
<class name="KeyEvent" c:symbol-prefix="key_event" c:type="GdkKeyEvent" parent="Event" glib:type-name="GdkKeyEvent" glib:get-type="gdk_key_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to a key-based device.</doc>
<method name="get_consumed_modifiers" c:identifier="gdk_key_event_get_consumed_modifiers">
<doc xml:space="preserve">Extracts the consumed modifiers from a key event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the consumed modifiers or @event</doc>
<type name="ModifierType" c:type="GdkModifierType"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a key event</doc>
<type name="KeyEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_keycode" c:identifier="gdk_key_event_get_keycode">
<doc xml:space="preserve">Extracts the keycode from a key event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the keycode of @event</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a key event</doc>
<type name="KeyEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_keyval" c:identifier="gdk_key_event_get_keyval">
<doc xml:space="preserve">Extracts the keyval from a key event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the keyval of @event</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a key event</doc>
<type name="KeyEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_layout" c:identifier="gdk_key_event_get_layout">
<doc xml:space="preserve">Extracts the layout from a key event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the layout of @event</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a key event</doc>
<type name="KeyEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_level" c:identifier="gdk_key_event_get_level">
<doc xml:space="preserve">Extracts the shift level from a key event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the shift level of @event</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a key event</doc>
<type name="KeyEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_match" c:identifier="gdk_key_event_get_match">
<doc xml:space="preserve">Gets a keyval and modifier combination that will match
the event.
See [method@Gdk.KeyEvent.matches].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE on success</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a key `GdkEvent`</doc>
<type name="KeyEvent" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="keyval" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for a keyval</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="modifiers" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for modifiers</doc>
<type name="ModifierType" c:type="GdkModifierType*"/>
</parameter>
</parameters>
</method>
<method name="is_modifier" c:identifier="gdk_key_event_is_modifier">
<doc xml:space="preserve">Extracts whether the key event is for a modifier key.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the @event is for a modifier key</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a key event</doc>
<type name="KeyEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="matches" c:identifier="gdk_key_event_matches">
<doc xml:space="preserve">Matches a key event against a keyval and modifiers.
This is typically used to trigger keyboard shortcuts such as Ctrl-C.
Partial matches are possible where the combination matches
if the currently active group is ignored.
Note that we ignore Caps Lock for matching.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkKeyMatch` value describing whether @event matches</doc>
<type name="KeyMatch" c:type="GdkKeyMatch"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a key `GdkEvent`</doc>
<type name="KeyEvent" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="keyval" transfer-ownership="none">
<doc xml:space="preserve">the keyval to match</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="modifiers" transfer-ownership="none">
<doc xml:space="preserve">the modifiers to match</doc>
<type name="ModifierType" c:type="GdkModifierType"/>
</parameter>
</parameters>
</method>
</class>
<enumeration name="KeyMatch" glib:type-name="GdkKeyMatch" glib:get-type="gdk_key_match_get_type" c:type="GdkKeyMatch">
<doc xml:space="preserve">Describes how well an event matches a given keyval and modifiers.
`GdkKeyMatch` values are returned by [method@Gdk.KeyEvent.matches].</doc>
<member name="none" value="0" c:identifier="GDK_KEY_MATCH_NONE" glib:nick="none" glib:name="GDK_KEY_MATCH_NONE">
<doc xml:space="preserve">The key event does not match</doc>
</member>
<member name="partial" value="1" c:identifier="GDK_KEY_MATCH_PARTIAL" glib:nick="partial" glib:name="GDK_KEY_MATCH_PARTIAL">
<doc xml:space="preserve">The key event matches if keyboard state
(specifically, the currently active group) is ignored</doc>
</member>
<member name="exact" value="2" c:identifier="GDK_KEY_MATCH_EXACT" glib:nick="exact" glib:name="GDK_KEY_MATCH_EXACT">
<doc xml:space="preserve">The key event matches</doc>
</member>
</enumeration>
<record name="KeymapKey" c:type="GdkKeymapKey">
<doc xml:space="preserve">A `GdkKeymapKey` is a hardware key that can be mapped to a keyval.</doc>
<field name="keycode" writable="1">
<doc xml:space="preserve">the hardware keycode. This is an identifying number for a
physical key.</doc>
<type name="guint" c:type="guint"/>
</field>
<field name="group" writable="1">
<doc xml:space="preserve">indicates movement in a horizontal direction. Usually groups are used
for two different languages. In group 0, a key might have two English
characters, and in group 1 it might have two Hebrew characters. The Hebrew
characters will be printed on the key next to the English characters.</doc>
<type name="gint" c:type="int"/>
</field>
<field name="level" writable="1">
<doc xml:space="preserve">indicates which symbol on the key will be used, in a vertical direction.
So on a standard US keyboard, the key with the number &#x201C;1&#x201D; on it also has the
exclamation point ("!") character on it. The level indicates whether to use
the &#x201C;1&#x201D; or the &#x201C;!&#x201D; symbol. The letter keys are considered to have a lowercase
letter at level 0, and an uppercase letter at level 1, though only the
uppercase letter is printed.</doc>
<type name="gint" c:type="int"/>
</field>
</record>
<function-macro name="MEMORY_TEXTURE" c:identifier="GDK_MEMORY_TEXTURE" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<constant name="MODIFIER_MASK" value="469769999" c:type="GDK_MODIFIER_MASK">
<doc xml:space="preserve">A mask covering all entries in `GdkModifierType`.</doc>
<type name="gint" c:type="gint"/>
</constant>
<function-macro name="MONITOR" c:identifier="GDK_MONITOR" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<enumeration name="MemoryFormat" glib:type-name="GdkMemoryFormat" glib:get-type="gdk_memory_format_get_type" c:type="GdkMemoryFormat">
<doc xml:space="preserve">`GdkMemoryFormat` describes formats that image data can have in memory.
It describes formats by listing the contents of the memory passed to it.
So GDK_MEMORY_A8R8G8B8 will be 1 byte (8 bits) of alpha, followed by a
byte each of red, green and blue. It is not endian-dependent, so
CAIRO_FORMAT_ARGB32 is represented by different `GdkMemoryFormats`
on architectures with different endiannesses.
Its naming is modelled after
[VkFormat](https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VkFormat)
for details).</doc>
<member name="b8g8r8a8_premultiplied" value="0" c:identifier="GDK_MEMORY_B8G8R8A8_PREMULTIPLIED" glib:nick="b8g8r8a8-premultiplied" glib:name="GDK_MEMORY_B8G8R8A8_PREMULTIPLIED">
<doc xml:space="preserve">4 bytes; for blue, green, red, alpha.
The color values are premultiplied with the alpha value.</doc>
</member>
<member name="a8r8g8b8_premultiplied" value="1" c:identifier="GDK_MEMORY_A8R8G8B8_PREMULTIPLIED" glib:nick="a8r8g8b8-premultiplied" glib:name="GDK_MEMORY_A8R8G8B8_PREMULTIPLIED">
<doc xml:space="preserve">4 bytes; for alpha, red, green, blue.
The color values are premultiplied with the alpha value.</doc>
</member>
<member name="r8g8b8a8_premultiplied" value="2" c:identifier="GDK_MEMORY_R8G8B8A8_PREMULTIPLIED" glib:nick="r8g8b8a8-premultiplied" glib:name="GDK_MEMORY_R8G8B8A8_PREMULTIPLIED">
<doc xml:space="preserve">4 bytes; for red, green, blue, alpha
The color values are premultiplied with the alpha value.</doc>
</member>
<member name="b8g8r8a8" value="3" c:identifier="GDK_MEMORY_B8G8R8A8" glib:nick="b8g8r8a8" glib:name="GDK_MEMORY_B8G8R8A8">
<doc xml:space="preserve">4 bytes; for blue, green, red, alpha.</doc>
</member>
<member name="a8r8g8b8" value="4" c:identifier="GDK_MEMORY_A8R8G8B8" glib:nick="a8r8g8b8" glib:name="GDK_MEMORY_A8R8G8B8">
<doc xml:space="preserve">4 bytes; for alpha, red, green, blue.</doc>
</member>
<member name="r8g8b8a8" value="5" c:identifier="GDK_MEMORY_R8G8B8A8" glib:nick="r8g8b8a8" glib:name="GDK_MEMORY_R8G8B8A8">
<doc xml:space="preserve">4 bytes; for red, green, blue, alpha.</doc>
</member>
<member name="a8b8g8r8" value="6" c:identifier="GDK_MEMORY_A8B8G8R8" glib:nick="a8b8g8r8" glib:name="GDK_MEMORY_A8B8G8R8">
<doc xml:space="preserve">4 bytes; for alpha, blue, green, red.</doc>
</member>
<member name="r8g8b8" value="7" c:identifier="GDK_MEMORY_R8G8B8" glib:nick="r8g8b8" glib:name="GDK_MEMORY_R8G8B8">
<doc xml:space="preserve">3 bytes; for red, green, blue. The data is opaque.</doc>
</member>
<member name="b8g8r8" value="8" c:identifier="GDK_MEMORY_B8G8R8" glib:nick="b8g8r8" glib:name="GDK_MEMORY_B8G8R8">
<doc xml:space="preserve">3 bytes; for blue, green, red. The data is opaque.</doc>
</member>
<member name="r16g16b16" value="9" c:identifier="GDK_MEMORY_R16G16B16" glib:nick="r16g16b16" glib:name="GDK_MEMORY_R16G16B16">
<doc xml:space="preserve">3 guint16 values; for red, green, blue. Since: 4.6</doc>
</member>
<member name="r16g16b16a16_premultiplied" value="10" c:identifier="GDK_MEMORY_R16G16B16A16_PREMULTIPLIED" glib:nick="r16g16b16a16-premultiplied" glib:name="GDK_MEMORY_R16G16B16A16_PREMULTIPLIED">
<doc xml:space="preserve">4 guint16 values; for red, green,
blue, alpha. The color values are premultiplied with the alpha value.
Since: 4.6</doc>
</member>
<member name="r16g16b16a16" value="11" c:identifier="GDK_MEMORY_R16G16B16A16" glib:nick="r16g16b16a16" glib:name="GDK_MEMORY_R16G16B16A16">
<doc xml:space="preserve">4 guint16 values; for red, green, blue, alpha.
Since: 4.6</doc>
</member>
<member name="r16g16b16_float" value="12" c:identifier="GDK_MEMORY_R16G16B16_FLOAT" glib:nick="r16g16b16-float" glib:name="GDK_MEMORY_R16G16B16_FLOAT">
<doc xml:space="preserve">3 half-float values; for red, green, blue.
The data is opaque. Since: 4.6</doc>
</member>
<member name="r16g16b16a16_float_premultiplied" value="13" c:identifier="GDK_MEMORY_R16G16B16A16_FLOAT_PREMULTIPLIED" glib:nick="r16g16b16a16-float-premultiplied" glib:name="GDK_MEMORY_R16G16B16A16_FLOAT_PREMULTIPLIED">
<doc xml:space="preserve">4 half-float values; for
red, green, blue and alpha. The color values are premultiplied with
the alpha value. Since: 4.6</doc>
</member>
<member name="r16g16b16a16_float" value="14" c:identifier="GDK_MEMORY_R16G16B16A16_FLOAT" glib:nick="r16g16b16a16-float" glib:name="GDK_MEMORY_R16G16B16A16_FLOAT">
<doc xml:space="preserve">4 half-float values; for red, green,
blue and alpha. Since: 4.6</doc>
</member>
<member name="r32g32b32_float" value="15" c:identifier="GDK_MEMORY_R32G32B32_FLOAT" glib:nick="r32g32b32-float" glib:name="GDK_MEMORY_R32G32B32_FLOAT">
</member>
<member name="r32g32b32a32_float_premultiplied" value="16" c:identifier="GDK_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED" glib:nick="r32g32b32a32-float-premultiplied" glib:name="GDK_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED">
<doc xml:space="preserve">4 float values; for
red, green, blue and alpha. The color values are premultiplied with
the alpha value. Since: 4.6</doc>
</member>
<member name="r32g32b32a32_float" value="17" c:identifier="GDK_MEMORY_R32G32B32A32_FLOAT" glib:nick="r32g32b32a32-float" glib:name="GDK_MEMORY_R32G32B32A32_FLOAT">
<doc xml:space="preserve">4 float values; for red, green, blue and
alpha. Since: 4.6</doc>
</member>
<member name="n_formats" value="18" c:identifier="GDK_MEMORY_N_FORMATS" glib:nick="n-formats" glib:name="GDK_MEMORY_N_FORMATS">
<doc xml:space="preserve">The number of formats. This value will change as
more formats get added, so do not rely on its concrete integer.</doc>
</member>
</enumeration>
<class name="MemoryTexture" c:symbol-prefix="memory_texture" c:type="GdkMemoryTexture" parent="Texture" glib:type-name="GdkMemoryTexture" glib:get-type="gdk_memory_texture_get_type" glib:type-struct="MemoryTextureClass">
<doc xml:space="preserve">A `GdkTexture` representing image data in memory.</doc>
<implements name="Paintable"/>
<implements name="Gio.Icon"/>
<implements name="Gio.LoadableIcon"/>
<constructor name="new" c:identifier="gdk_memory_texture_new">
<doc xml:space="preserve">Creates a new texture for a blob of image data.
The `GBytes` must contain @stride &#xD7; @height pixels
in the given format.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A newly-created `GdkTexture`</doc>
<type name="MemoryTexture" c:type="GdkTexture*"/>
</return-value>
<parameters>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">the width of the texture</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">the height of the texture</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve">the format of the data</doc>
<type name="MemoryFormat" c:type="GdkMemoryFormat"/>
</parameter>
<parameter name="bytes" transfer-ownership="none">
<doc xml:space="preserve">the `GBytes` containing the pixel data</doc>
<type name="GLib.Bytes" c:type="GBytes*"/>
</parameter>
<parameter name="stride" transfer-ownership="none">
<doc xml:space="preserve">rowstride for the data</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</constructor>
</class>
<record name="MemoryTextureClass" c:type="GdkMemoryTextureClass" disguised="1" glib:is-gtype-struct-for="MemoryTexture"/>
<bitfield name="ModifierType" glib:type-name="GdkModifierType" glib:get-type="gdk_modifier_type_get_type" c:type="GdkModifierType">
<doc xml:space="preserve">Flags to indicate the state of modifier keys and mouse buttons
in events.
Typical modifier keys are Shift, Control, Meta, Super, Hyper, Alt, Compose,
Apple, CapsLock or ShiftLock.
Note that GDK may add internal values to events which include values outside
of this enumeration. Your code should preserve and ignore them. You can use
%GDK_MODIFIER_MASK to remove all private values.</doc>
<member name="shift_mask" value="1" c:identifier="GDK_SHIFT_MASK" glib:nick="shift-mask" glib:name="GDK_SHIFT_MASK">
<doc xml:space="preserve">the Shift key.</doc>
</member>
<member name="lock_mask" value="2" c:identifier="GDK_LOCK_MASK" glib:nick="lock-mask" glib:name="GDK_LOCK_MASK">
<doc xml:space="preserve">a Lock key (depending on the modifier mapping of the
X server this may either be CapsLock or ShiftLock).</doc>
</member>
<member name="control_mask" value="4" c:identifier="GDK_CONTROL_MASK" glib:nick="control-mask" glib:name="GDK_CONTROL_MASK">
<doc xml:space="preserve">the Control key.</doc>
</member>
<member name="alt_mask" value="8" c:identifier="GDK_ALT_MASK" glib:nick="alt-mask" glib:name="GDK_ALT_MASK">
<doc xml:space="preserve">the fourth modifier key (it depends on the modifier
mapping of the X server which key is interpreted as this modifier, but
normally it is the Alt key).</doc>
</member>
<member name="button1_mask" value="256" c:identifier="GDK_BUTTON1_MASK" glib:nick="button1-mask" glib:name="GDK_BUTTON1_MASK">
<doc xml:space="preserve">the first mouse button.</doc>
</member>
<member name="button2_mask" value="512" c:identifier="GDK_BUTTON2_MASK" glib:nick="button2-mask" glib:name="GDK_BUTTON2_MASK">
<doc xml:space="preserve">the second mouse button.</doc>
</member>
<member name="button3_mask" value="1024" c:identifier="GDK_BUTTON3_MASK" glib:nick="button3-mask" glib:name="GDK_BUTTON3_MASK">
<doc xml:space="preserve">the third mouse button.</doc>
</member>
<member name="button4_mask" value="2048" c:identifier="GDK_BUTTON4_MASK" glib:nick="button4-mask" glib:name="GDK_BUTTON4_MASK">
<doc xml:space="preserve">the fourth mouse button.</doc>
</member>
<member name="button5_mask" value="4096" c:identifier="GDK_BUTTON5_MASK" glib:nick="button5-mask" glib:name="GDK_BUTTON5_MASK">
<doc xml:space="preserve">the fifth mouse button.</doc>
</member>
<member name="super_mask" value="67108864" c:identifier="GDK_SUPER_MASK" glib:nick="super-mask" glib:name="GDK_SUPER_MASK">
<doc xml:space="preserve">the Super modifier</doc>
</member>
<member name="hyper_mask" value="134217728" c:identifier="GDK_HYPER_MASK" glib:nick="hyper-mask" glib:name="GDK_HYPER_MASK">
<doc xml:space="preserve">the Hyper modifier</doc>
</member>
<member name="meta_mask" value="268435456" c:identifier="GDK_META_MASK" glib:nick="meta-mask" glib:name="GDK_META_MASK">
<doc xml:space="preserve">the Meta modifier</doc>
</member>
</bitfield>
<class name="Monitor" c:symbol-prefix="monitor" c:type="GdkMonitor" parent="GObject.Object" glib:type-name="GdkMonitor" glib:get-type="gdk_monitor_get_type" glib:type-struct="MonitorClass">
<doc xml:space="preserve">`GdkMonitor` objects represent the individual outputs that are
associated with a `GdkDisplay`.
`GdkDisplay` keeps a `GListModel` to enumerate and monitor
monitors with [method@Gdk.Display.get_monitors]. You can use
[method@Gdk.Display.get_monitor_at_surface] to find a particular
monitor.</doc>
<method name="get_connector" c:identifier="gdk_monitor_get_connector" glib:get-property="connector">
<attribute name="org.gtk.Method.get_property" value="connector"/>
<doc xml:space="preserve">Gets the name of the monitor's connector, if available.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the name of the connector</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_monitor_get_display" glib:get-property="display">
<attribute name="org.gtk.Method.get_property" value="display"/>
<doc xml:space="preserve">Gets the display that this monitor belongs to.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the display</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_geometry" c:identifier="gdk_monitor_get_geometry" glib:get-property="geometry">
<attribute name="org.gtk.Method.get_property" value="geometry"/>
<doc xml:space="preserve">Retrieves the size and position of the monitor within the
display coordinate space.
The returned geometry is in &#x201D;application pixels&#x201D;, not in
&#x201D;device pixels&#x201D; (see [method@Gdk.Monitor.get_scale_factor]).</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
<parameter name="geometry" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRectangle` to be filled with the monitor geometry</doc>
<type name="Rectangle" c:type="GdkRectangle*"/>
</parameter>
</parameters>
</method>
<method name="get_height_mm" c:identifier="gdk_monitor_get_height_mm" glib:get-property="height-mm">
<attribute name="org.gtk.Method.get_property" value="height-mm"/>
<doc xml:space="preserve">Gets the height in millimeters of the monitor.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the physical height of the monitor</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_manufacturer" c:identifier="gdk_monitor_get_manufacturer" glib:get-property="manufacturer">
<attribute name="org.gtk.Method.get_property" value="manufacturer"/>
<doc xml:space="preserve">Gets the name or PNP ID of the monitor's manufacturer.
Note that this value might also vary depending on actual
display backend.
The PNP ID registry is located at
[https://uefi.org/pnp_id_list](https://uefi.org/pnp_id_list).</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the name of the manufacturer</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_model" c:identifier="gdk_monitor_get_model" glib:get-property="model">
<attribute name="org.gtk.Method.get_property" value="model"/>
<doc xml:space="preserve">Gets the string identifying the monitor model, if available.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the monitor model</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_refresh_rate" c:identifier="gdk_monitor_get_refresh_rate" glib:get-property="refresh-rate">
<attribute name="org.gtk.Method.get_property" value="refresh-rate"/>
<doc xml:space="preserve">Gets the refresh rate of the monitor, if available.
The value is in milli-Hertz, so a refresh rate of 60Hz
is returned as 60000.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the refresh rate in milli-Hertz, or 0</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_scale_factor" c:identifier="gdk_monitor_get_scale_factor" glib:get-property="scale-factor">
<attribute name="org.gtk.Method.get_property" value="scale-factor"/>
<doc xml:space="preserve">Gets the internal scale factor that maps from monitor coordinates
to device pixels.
On traditional systems this is 1, but on very high density outputs
it can be a higher value (often 2).
This can be used if you want to create pixel based data for a
particular monitor, but most of the time you&#x2019;re drawing to a surface
where it is better to use [method@Gdk.Surface.get_scale_factor] instead.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the scale factor</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_subpixel_layout" c:identifier="gdk_monitor_get_subpixel_layout" glib:get-property="subpixel-layout">
<attribute name="org.gtk.Method.get_property" value="subpixel-layout"/>
<doc xml:space="preserve">Gets information about the layout of red, green and blue
primaries for pixels.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the subpixel layout</doc>
<type name="SubpixelLayout" c:type="GdkSubpixelLayout"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_width_mm" c:identifier="gdk_monitor_get_width_mm" glib:get-property="width-mm">
<attribute name="org.gtk.Method.get_property" value="width-mm"/>
<doc xml:space="preserve">Gets the width in millimeters of the monitor.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the physical width of the monitor</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_valid" c:identifier="gdk_monitor_is_valid">
<attribute name="org.gtk.Method.get_property" value="valid"/>
<doc xml:space="preserve">Returns %TRUE if the @monitor object corresponds to a
physical monitor.
The @monitor becomes invalid when the physical monitor
is unplugged or removed.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the object corresponds to a physical monitor</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkMonitor`</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</instance-parameter>
</parameters>
</method>
<property name="connector" transfer-ownership="none" getter="get_connector">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_connector"/>
<doc xml:space="preserve">The connector name.</doc>
<type name="utf8" c:type="gchar*"/>
</property>
<property name="display" writable="1" construct-only="1" transfer-ownership="none" getter="get_display">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_display"/>
<doc xml:space="preserve">The `GdkDisplay` of the monitor.</doc>
<type name="Display"/>
</property>
<property name="geometry" transfer-ownership="none" getter="get_geometry">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_geometry"/>
<doc xml:space="preserve">The geometry of the monitor.</doc>
<type name="Rectangle"/>
</property>
<property name="height-mm" transfer-ownership="none" getter="get_height_mm">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_height_mm"/>
<doc xml:space="preserve">The height of the monitor, in millimeters.</doc>
<type name="gint" c:type="gint"/>
</property>
<property name="manufacturer" transfer-ownership="none" getter="get_manufacturer">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_manufacturer"/>
<doc xml:space="preserve">The manufacturer name.</doc>
<type name="utf8" c:type="gchar*"/>
</property>
<property name="model" transfer-ownership="none" getter="get_model">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_model"/>
<doc xml:space="preserve">The model name.</doc>
<type name="utf8" c:type="gchar*"/>
</property>
<property name="refresh-rate" transfer-ownership="none" getter="get_refresh_rate">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_refresh_rate"/>
<doc xml:space="preserve">The refresh rate, in milli-Hertz.</doc>
<type name="gint" c:type="gint"/>
</property>
<property name="scale-factor" transfer-ownership="none" getter="get_scale_factor">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_scale_factor"/>
<doc xml:space="preserve">The scale factor.</doc>
<type name="gint" c:type="gint"/>
</property>
<property name="subpixel-layout" transfer-ownership="none" getter="get_subpixel_layout">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_subpixel_layout"/>
<doc xml:space="preserve">The subpixel layout.</doc>
<type name="SubpixelLayout"/>
</property>
<property name="valid" transfer-ownership="none">
<attribute name="org.gtk.Property.get" value="gdk_monitor_is_valid"/>
<doc xml:space="preserve">Whether the object is still valid.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="width-mm" transfer-ownership="none" getter="get_width_mm">
<attribute name="org.gtk.Property.get" value="gdk_monitor_get_width_mm"/>
<doc xml:space="preserve">The width of the monitor, in millimeters.</doc>
<type name="gint" c:type="gint"/>
</property>
<glib:signal name="invalidate" when="first">
<doc xml:space="preserve">Emitted when the output represented by @monitor gets disconnected.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
</class>
<record name="MonitorClass" c:type="GdkMonitorClass" disguised="1" glib:is-gtype-struct-for="Monitor"/>
<class name="MotionEvent" c:symbol-prefix="motion_event" c:type="GdkMotionEvent" parent="Event" glib:type-name="GdkMotionEvent" glib:get-type="gdk_motion_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to a pointer or touch device motion.</doc>
</class>
<enumeration name="NotifyType" glib:type-name="GdkNotifyType" glib:get-type="gdk_notify_type_get_type" c:type="GdkNotifyType">
<doc xml:space="preserve">Specifies the kind of crossing for enter and leave events.
See the X11 protocol specification of LeaveNotify for
full details of crossing event generation.</doc>
<member name="ancestor" value="0" c:identifier="GDK_NOTIFY_ANCESTOR" glib:nick="ancestor" glib:name="GDK_NOTIFY_ANCESTOR">
<doc xml:space="preserve">the surface is entered from an ancestor or
left towards an ancestor.</doc>
</member>
<member name="virtual" value="1" c:identifier="GDK_NOTIFY_VIRTUAL" glib:nick="virtual" glib:name="GDK_NOTIFY_VIRTUAL">
<doc xml:space="preserve">the pointer moves between an ancestor and an
inferior of the surface.</doc>
</member>
<member name="inferior" value="2" c:identifier="GDK_NOTIFY_INFERIOR" glib:nick="inferior" glib:name="GDK_NOTIFY_INFERIOR">
<doc xml:space="preserve">the surface is entered from an inferior or
left towards an inferior.</doc>
</member>
<member name="nonlinear" value="3" c:identifier="GDK_NOTIFY_NONLINEAR" glib:nick="nonlinear" glib:name="GDK_NOTIFY_NONLINEAR">
<doc xml:space="preserve">the surface is entered from or left towards
a surface which is neither an ancestor nor an inferior.</doc>
</member>
<member name="nonlinear_virtual" value="4" c:identifier="GDK_NOTIFY_NONLINEAR_VIRTUAL" glib:nick="nonlinear-virtual" glib:name="GDK_NOTIFY_NONLINEAR_VIRTUAL">
<doc xml:space="preserve">the pointer moves between two surfaces
which are not ancestors of each other and the surface is part of
the ancestor chain between one of these surfaces and their least
common ancestor.</doc>
</member>
<member name="unknown" value="5" c:identifier="GDK_NOTIFY_UNKNOWN" glib:nick="unknown" glib:name="GDK_NOTIFY_UNKNOWN">
<doc xml:space="preserve">an unknown type of enter/leave event occurred.</doc>
</member>
</enumeration>
<constant name="PRIORITY_REDRAW" value="120" c:type="GDK_PRIORITY_REDRAW">
<doc xml:space="preserve">This is the priority that the idle handler processing surface updates
is given in the main loop.</doc>
<type name="gint" c:type="gint"/>
</constant>
<class name="PadEvent" c:symbol-prefix="pad_event" c:type="GdkPadEvent" parent="Event" glib:type-name="GdkPadEvent" glib:get-type="gdk_pad_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to a pad-based device.</doc>
<method name="get_axis_value" c:identifier="gdk_pad_event_get_axis_value">
<doc xml:space="preserve">Extracts the information from a pad strip or ring event.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a pad strip or ring event</doc>
<type name="PadEvent" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="index" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">Return location for the axis index</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="value" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">Return location for the axis value</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="get_button" c:identifier="gdk_pad_event_get_button">
<doc xml:space="preserve">Extracts information about the pressed button from
a pad event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the button of @event</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a pad button event</doc>
<type name="PadEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_group_mode" c:identifier="gdk_pad_event_get_group_mode">
<doc xml:space="preserve">Extracts group and mode information from a pad event.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a pad event</doc>
<type name="PadEvent" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="group" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the group</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="mode" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the mode</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</method>
</class>
<interface name="Paintable" c:symbol-prefix="paintable" c:type="GdkPaintable" glib:type-name="GdkPaintable" glib:get-type="gdk_paintable_get_type" glib:type-struct="PaintableInterface">
<doc xml:space="preserve">`GdkPaintable` is a simple interface used by GTK to represent content that
can be painted.
The content of a `GdkPaintable` can be painted anywhere at any size
without requiring any sort of layout. The interface is inspired by
similar concepts elsewhere, such as
[ClutterContent](https://developer.gnome.org/clutter/stable/ClutterContent.html),
[HTML/CSS Paint Sources](https://www.w3.org/TR/css-images-4/#paint-source),
or [SVG Paint Servers](https://www.w3.org/TR/SVG2/pservers.html).
A `GdkPaintable` can be snapshot at any time and size using
[method@Gdk.Paintable.snapshot]. How the paintable interprets that size and
if it scales or centers itself into the given rectangle is implementation
defined, though if you are implementing a `GdkPaintable` and don't know what
to do, it is suggested that you scale your paintable ignoring any potential
aspect ratio.
The contents that a `GdkPaintable` produces may depend on the [class@GdkSnapshot]
passed to it. For example, paintables may decide to use more detailed images
on higher resolution screens or when OpenGL is available. A `GdkPaintable`
will however always produce the same output for the same snapshot.
A `GdkPaintable` may change its contents, meaning that it will now produce
a different output with the same snapshot. Once that happens, it will call
[method@Gdk.Paintable.invalidate_contents] which will emit the
[signal@GdkPaintable::invalidate-contents] signal. If a paintable is known
to never change its contents, it will set the %GDK_PAINTABLE_STATIC_CONTENTS
flag. If a consumer cannot deal with changing contents, it may call
[method@Gdk.Paintable.get_current_image] which will return a static
paintable and use that.
A paintable can report an intrinsic (or preferred) size or aspect ratio it
wishes to be rendered at, though it doesn't have to. Consumers of the interface
can use this information to layout thepaintable appropriately. Just like the
contents, the size of a paintable can change. A paintable will indicate this
by calling [method@Gdk.Paintable.invalidate_size] which will emit the
[signal@GdkPaintable::invalidate-size] signal. And just like for contents,
if a paintable is known to never change its size, it will set the
%GDK_PAINTABLE_STATIC_SIZE flag.
Besides API for applications, there are some functions that are only
useful for implementing subclasses and should not be used by applications:
[method@Gdk.Paintable.invalidate_contents],
[method@Gdk.Paintable.invalidate_size],
[func@Gdk.Paintable.new_empty].</doc>
<function name="new_empty" c:identifier="gdk_paintable_new_empty">
<doc xml:space="preserve">Returns a paintable that has the given intrinsic size and draws nothing.
This is often useful for implementing the
[vfunc@Gdk.Paintable.get_current_image] virtual function
when the paintable is in an incomplete state (like a
[class@Gtk.MediaStream] before receiving the first frame).</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</return-value>
<parameters>
<parameter name="intrinsic_width" transfer-ownership="none">
<doc xml:space="preserve">The intrinsic width to report. Can be 0 for no width.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="intrinsic_height" transfer-ownership="none">
<doc xml:space="preserve">The intrinsic height to report. Can be 0 for no height.</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<virtual-method name="get_current_image" invoker="get_current_image">
<doc xml:space="preserve">Gets an immutable paintable for the current contents displayed by @paintable.
This is useful when you want to retain the current state of an animation,
for example to take a screenshot of a running animation.
If the @paintable is already immutable, it will return itself.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">An immutable paintable for the current
contents of @paintable</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="get_flags" invoker="get_flags">
<doc xml:space="preserve">Get flags for the paintable.
This is oftentimes useful for optimizations.
See [flags@Gdk.PaintableFlags] for the flags and what they mean.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The `GdkPaintableFlags` for this paintable</doc>
<type name="PaintableFlags" c:type="GdkPaintableFlags"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="get_intrinsic_aspect_ratio" invoker="get_intrinsic_aspect_ratio">
<doc xml:space="preserve">Gets the preferred aspect ratio the @paintable would like to be displayed at.
The aspect ratio is the width divided by the height, so a value of 0.5
means that the @paintable prefers to be displayed twice as high as it
is wide. Consumers of this interface can use this to preserve aspect
ratio when displaying the paintable.
This is a purely informational value and does not in any way limit the
values that may be passed to [method@Gdk.Paintable.snapshot].
Usually when a @paintable returns nonzero values from
[method@Gdk.Paintable.get_intrinsic_width] and
[method@Gdk.Paintable.get_intrinsic_height] the aspect ratio
should conform to those values, though that is not required.
If the @paintable does not have a preferred aspect ratio,
it returns 0. Negative values are never returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the intrinsic aspect ratio of @paintable or 0 if none.</doc>
<type name="gdouble" c:type="double"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="get_intrinsic_height" invoker="get_intrinsic_height">
<doc xml:space="preserve">Gets the preferred height the @paintable would like to be displayed at.
Consumers of this interface can use this to reserve enough space to draw
the paintable.
This is a purely informational value and does not in any way limit the
values that may be passed to [method@Gdk.Paintable.snapshot].
If the @paintable does not have a preferred height, it returns 0.
Negative values are never returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the intrinsic height of @paintable or 0 if none.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="get_intrinsic_width" invoker="get_intrinsic_width">
<doc xml:space="preserve">Gets the preferred width the @paintable would like to be displayed at.
Consumers of this interface can use this to reserve enough space to draw
the paintable.
This is a purely informational value and does not in any way limit the
values that may be passed to [method@Gdk.Paintable.snapshot].
If the @paintable does not have a preferred width, it returns 0.
Negative values are never returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the intrinsic width of @paintable or 0 if none.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="snapshot" invoker="snapshot">
<doc xml:space="preserve">Snapshots the given paintable with the given @width and @height.
The paintable is drawn at the current (0,0) offset of the @snapshot.
If @width and @height are not larger than zero, this function will
do nothing.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
<parameter name="snapshot" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSnapshot` to snapshot to</doc>
<type name="Snapshot" c:type="GdkSnapshot*"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">width to snapshot in</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">height to snapshot in</doc>
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</virtual-method>
<method name="compute_concrete_size" c:identifier="gdk_paintable_compute_concrete_size">
<doc xml:space="preserve">Compute a concrete size for the `GdkPaintable`.
Applies the sizing algorithm outlined in the
[CSS Image spec](https://drafts.csswg.org/css-images-3/#default-sizing)
to the given @paintable. See that link for more details.
It is not necessary to call this function when both @specified_width
and @specified_height are known, but it is useful to call this
function in GtkWidget:measure implementations to compute the
other dimension when only one dimension is given.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
<parameter name="specified_width" transfer-ownership="none">
<doc xml:space="preserve">the width @paintable could be drawn into or
0.0 if unknown</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="specified_height" transfer-ownership="none">
<doc xml:space="preserve">the height @paintable could be drawn into or
0.0 if unknown</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="default_width" transfer-ownership="none">
<doc xml:space="preserve">the width @paintable would be drawn into if
no other constraints were given</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="default_height" transfer-ownership="none">
<doc xml:space="preserve">the height @paintable would be drawn into if
no other constraints were given</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="concrete_width" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">will be set to the concrete width computed</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="concrete_height" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">will be set to the concrete height computed</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="get_current_image" c:identifier="gdk_paintable_get_current_image">
<doc xml:space="preserve">Gets an immutable paintable for the current contents displayed by @paintable.
This is useful when you want to retain the current state of an animation,
for example to take a screenshot of a running animation.
If the @paintable is already immutable, it will return itself.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">An immutable paintable for the current
contents of @paintable</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_flags" c:identifier="gdk_paintable_get_flags">
<doc xml:space="preserve">Get flags for the paintable.
This is oftentimes useful for optimizations.
See [flags@Gdk.PaintableFlags] for the flags and what they mean.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The `GdkPaintableFlags` for this paintable</doc>
<type name="PaintableFlags" c:type="GdkPaintableFlags"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_intrinsic_aspect_ratio" c:identifier="gdk_paintable_get_intrinsic_aspect_ratio">
<doc xml:space="preserve">Gets the preferred aspect ratio the @paintable would like to be displayed at.
The aspect ratio is the width divided by the height, so a value of 0.5
means that the @paintable prefers to be displayed twice as high as it
is wide. Consumers of this interface can use this to preserve aspect
ratio when displaying the paintable.
This is a purely informational value and does not in any way limit the
values that may be passed to [method@Gdk.Paintable.snapshot].
Usually when a @paintable returns nonzero values from
[method@Gdk.Paintable.get_intrinsic_width] and
[method@Gdk.Paintable.get_intrinsic_height] the aspect ratio
should conform to those values, though that is not required.
If the @paintable does not have a preferred aspect ratio,
it returns 0. Negative values are never returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the intrinsic aspect ratio of @paintable or 0 if none.</doc>
<type name="gdouble" c:type="double"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_intrinsic_height" c:identifier="gdk_paintable_get_intrinsic_height">
<doc xml:space="preserve">Gets the preferred height the @paintable would like to be displayed at.
Consumers of this interface can use this to reserve enough space to draw
the paintable.
This is a purely informational value and does not in any way limit the
values that may be passed to [method@Gdk.Paintable.snapshot].
If the @paintable does not have a preferred height, it returns 0.
Negative values are never returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the intrinsic height of @paintable or 0 if none.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_intrinsic_width" c:identifier="gdk_paintable_get_intrinsic_width">
<doc xml:space="preserve">Gets the preferred width the @paintable would like to be displayed at.
Consumers of this interface can use this to reserve enough space to draw
the paintable.
This is a purely informational value and does not in any way limit the
values that may be passed to [method@Gdk.Paintable.snapshot].
If the @paintable does not have a preferred width, it returns 0.
Negative values are never returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the intrinsic width of @paintable or 0 if none.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</method>
<method name="invalidate_contents" c:identifier="gdk_paintable_invalidate_contents">
<doc xml:space="preserve">Called by implementations of `GdkPaintable` to invalidate their contents.
Unless the contents are invalidated, implementations must guarantee that
multiple calls of [method@Gdk.Paintable.snapshot] produce the same output.
This function will emit the [signal@Gdk.Paintable::invalidate-contents]
signal.
If a @paintable reports the %GDK_PAINTABLE_STATIC_CONTENTS flag,
it must not call this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</method>
<method name="invalidate_size" c:identifier="gdk_paintable_invalidate_size">
<doc xml:space="preserve">Called by implementations of `GdkPaintable` to invalidate their size.
As long as the size is not invalidated, @paintable must return the same
values for its intrinsic width, height and aspect ratio.
This function will emit the [signal@Gdk.Paintable::invalidate-size]
signal.
If a @paintable reports the %GDK_PAINTABLE_STATIC_SIZE flag,
it must not call this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
</parameters>
</method>
<method name="snapshot" c:identifier="gdk_paintable_snapshot">
<doc xml:space="preserve">Snapshots the given paintable with the given @width and @height.
The paintable is drawn at the current (0,0) offset of the @snapshot.
If @width and @height are not larger than zero, this function will
do nothing.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</instance-parameter>
<parameter name="snapshot" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSnapshot` to snapshot to</doc>
<type name="Snapshot" c:type="GdkSnapshot*"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">width to snapshot in</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">height to snapshot in</doc>
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</method>
<glib:signal name="invalidate-contents" when="last">
<doc xml:space="preserve">Emitted when the contents of the @paintable change.
Examples for such an event would be videos changing to the next frame or
the icon theme for an icon changing.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="invalidate-size" when="last">
<doc xml:space="preserve">Emitted when the intrinsic size of the @paintable changes.
This means the values reported by at least one of
[method@Gdk.Paintable.get_intrinsic_width],
[method@Gdk.Paintable.get_intrinsic_height] or
[method@Gdk.Paintable.get_intrinsic_aspect_ratio]
has changed.
Examples for such an event would be a paintable displaying
the contents of a toplevel surface being resized.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
</interface>
<bitfield name="PaintableFlags" glib:type-name="GdkPaintableFlags" glib:get-type="gdk_paintable_flags_get_type" c:type="GdkPaintableFlags">
<doc xml:space="preserve">Flags about a paintable object.
Implementations use these for optimizations such as caching.</doc>
<member name="size" value="1" c:identifier="GDK_PAINTABLE_STATIC_SIZE" glib:nick="size" glib:name="GDK_PAINTABLE_STATIC_SIZE">
<doc xml:space="preserve">The size is immutable.
The [signal@GdkPaintable::invalidate-size] signal will never be
emitted.</doc>
</member>
<member name="contents" value="2" c:identifier="GDK_PAINTABLE_STATIC_CONTENTS" glib:nick="contents" glib:name="GDK_PAINTABLE_STATIC_CONTENTS">
<doc xml:space="preserve">The content is immutable.
The [signal@GdkPaintable::invalidate-contents] signal will never be
emitted.</doc>
</member>
</bitfield>
<record name="PaintableInterface" c:type="GdkPaintableInterface" glib:is-gtype-struct-for="Paintable">
<doc xml:space="preserve">The list of functions that can be implemented for the `GdkPaintable`
interface.
Note that apart from the [vfunc@Gdk.Paintable.snapshot] function,
no virtual function of this interface is mandatory to implement, though it
is a good idea to implement [vfunc@Gdk.Paintable.get_current_image]
for non-static paintables and [vfunc@Gdk.Paintable.get_flags] if the
image is not dynamic as the default implementation returns no flags and
that will make the implementation likely quite slow.</doc>
<field name="g_iface" readable="0" private="1">
<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
</field>
<field name="snapshot">
<callback name="snapshot">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</parameter>
<parameter name="snapshot" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSnapshot` to snapshot to</doc>
<type name="Snapshot" c:type="GdkSnapshot*"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">width to snapshot in</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">height to snapshot in</doc>
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_current_image">
<callback name="get_current_image">
<return-value transfer-ownership="full">
<doc xml:space="preserve">An immutable paintable for the current
contents of @paintable</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</return-value>
<parameters>
<parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_flags">
<callback name="get_flags">
<return-value transfer-ownership="none">
<doc xml:space="preserve">The `GdkPaintableFlags` for this paintable</doc>
<type name="PaintableFlags" c:type="GdkPaintableFlags"/>
</return-value>
<parameters>
<parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_intrinsic_width">
<callback name="get_intrinsic_width">
<return-value transfer-ownership="none">
<doc xml:space="preserve">the intrinsic width of @paintable or 0 if none.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_intrinsic_height">
<callback name="get_intrinsic_height">
<return-value transfer-ownership="none">
<doc xml:space="preserve">the intrinsic height of @paintable or 0 if none.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_intrinsic_aspect_ratio">
<callback name="get_intrinsic_aspect_ratio">
<return-value transfer-ownership="none">
<doc xml:space="preserve">the intrinsic aspect ratio of @paintable or 0 if none.</doc>
<type name="gdouble" c:type="double"/>
</return-value>
<parameters>
<parameter name="paintable" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</parameter>
</parameters>
</callback>
</field>
</record>
<interface name="Popup" c:symbol-prefix="popup" c:type="GdkPopup" glib:type-name="GdkPopup" glib:get-type="gdk_popup_get_type" glib:type-struct="PopupInterface">
<doc xml:space="preserve">A `GdkPopup` is a surface that is attached to another surface.
The `GdkPopup` is positioned relative to its parent surface.
`GdkPopup`s are typically used to implement menus and similar popups.
They can be modal, which is indicated by the [property@GdkPopup:autohide]
property.</doc>
<prerequisite name="Surface"/>
<method name="get_autohide" c:identifier="gdk_popup_get_autohide" glib:get-property="autohide">
<attribute name="org.gtk.Method.get_property" value="autohide"/>
<doc xml:space="preserve">Returns whether this popup is set to hide on outside clicks.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if @popup will autohide</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="popup" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopup`</doc>
<type name="Popup" c:type="GdkPopup*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_parent" c:identifier="gdk_popup_get_parent" glib:get-property="parent">
<attribute name="org.gtk.Method.get_property" value="parent"/>
<doc xml:space="preserve">Returns the parent surface of a popup.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the parent surface</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<instance-parameter name="popup" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopup`</doc>
<type name="Popup" c:type="GdkPopup*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_position_x" c:identifier="gdk_popup_get_position_x">
<doc xml:space="preserve">Obtains the position of the popup relative to its parent.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the X coordinate of @popup position</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="popup" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopup`</doc>
<type name="Popup" c:type="GdkPopup*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_position_y" c:identifier="gdk_popup_get_position_y">
<doc xml:space="preserve">Obtains the position of the popup relative to its parent.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the Y coordinate of @popup position</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="popup" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopup`</doc>
<type name="Popup" c:type="GdkPopup*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_rect_anchor" c:identifier="gdk_popup_get_rect_anchor">
<doc xml:space="preserve">Gets the current popup rectangle anchor.
The value returned may change after calling [method@Gdk.Popup.present],
or after the [signal@Gdk.Surface::layout] signal is emitted.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the current rectangle anchor value of @popup</doc>
<type name="Gravity" c:type="GdkGravity"/>
</return-value>
<parameters>
<instance-parameter name="popup" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopup`</doc>
<type name="Popup" c:type="GdkPopup*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_surface_anchor" c:identifier="gdk_popup_get_surface_anchor">
<doc xml:space="preserve">Gets the current popup surface anchor.
The value returned may change after calling [method@Gdk.Popup.present],
or after the [signal@Gdk.Surface::layout] signal is emitted.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the current surface anchor value of @popup</doc>
<type name="Gravity" c:type="GdkGravity"/>
</return-value>
<parameters>
<instance-parameter name="popup" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopup`</doc>
<type name="Popup" c:type="GdkPopup*"/>
</instance-parameter>
</parameters>
</method>
<method name="present" c:identifier="gdk_popup_present">
<doc xml:space="preserve">Present @popup after having processed the `GdkPopupLayout` rules.
If the popup was previously now showing, it will be showed,
otherwise it will change position according to @layout.
After calling this function, the result should be handled in response
to the [signal@GdkSurface::layout] signal being emitted. The resulting
popup position can be queried using [method@Gdk.Popup.get_position_x],
[method@Gdk.Popup.get_position_y], and the resulting size will be sent as
parameters in the layout signal. Use [method@Gdk.Popup.get_rect_anchor]
and [method@Gdk.Popup.get_surface_anchor] to get the resulting anchors.
Presenting may fail, for example if the @popup is set to autohide
and is immediately hidden upon being presented. If presenting failed,
the [signal@Gdk.Surface::layout] signal will not me emitted.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%FALSE if it failed to be presented, otherwise %TRUE.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="popup" transfer-ownership="none">
<doc xml:space="preserve">the `GdkPopup` to show</doc>
<type name="Popup" c:type="GdkPopup*"/>
</instance-parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">the unconstrained popup width to layout</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">the unconstrained popup height to layout</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">the `GdkPopupLayout` object used to layout</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</parameter>
</parameters>
</method>
<property name="autohide" writable="1" construct-only="1" transfer-ownership="none" getter="get_autohide">
<attribute name="org.gtk.Property.get" value="gdk_popup_get_autohide"/>
<doc xml:space="preserve">Whether to hide on outside clicks.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="parent" writable="1" construct-only="1" transfer-ownership="none" getter="get_parent">
<attribute name="org.gtk.Property.get" value="gdk_popup_get_parent"/>
<doc xml:space="preserve">The parent surface.</doc>
<type name="Surface"/>
</property>
</interface>
<record name="PopupInterface" c:type="GdkPopupInterface" disguised="1" glib:is-gtype-struct-for="Popup"/>
<record name="PopupLayout" c:type="GdkPopupLayout" glib:type-name="GdkPopupLayout" glib:get-type="gdk_popup_layout_get_type" c:symbol-prefix="popup_layout">
<doc xml:space="preserve">The `GdkPopupLayout` struct contains information that is
necessary position a [iface@Gdk.Popup] relative to its parent.
The positioning requires a negotiation with the windowing system,
since it depends on external constraints, such as the position of
the parent surface, and the screen dimensions.
The basic ingredients are a rectangle on the parent surface,
and the anchor on both that rectangle and the popup. The anchors
specify a side or corner to place next to each other.
![Popup anchors](popup-anchors.png)
For cases where placing the anchors next to each other would make
the popup extend offscreen, the layout includes some hints for how
to resolve this problem. The hints may suggest to flip the anchor
position to the other side, or to 'slide' the popup along a side,
or to resize it.
![Flipping popups](popup-flip.png)
![Sliding popups](popup-slide.png)
These hints may be combined.
Ultimatively, it is up to the windowing system to determine the position
and size of the popup. You can learn about the result by calling
[method@Gdk.Popup.get_position_x], [method@Gdk.Popup.get_position_y],
[method@Gdk.Popup.get_rect_anchor] and [method@Gdk.Popup.get_surface_anchor]
after the popup has been presented. This can be used to adjust the rendering.
For example, [class@Gtk.Popover] changes its arrow position accordingly.
But you have to be careful avoid changing the size of the popover, or it
has to be presented again.</doc>
<constructor name="new" c:identifier="gdk_popup_layout_new">
<doc xml:space="preserve">Create a popup layout description.
Used together with [method@Gdk.Popup.present] to describe how a popup
surface should be placed and behave on-screen.
@anchor_rect is relative to the top-left corner of the surface's parent.
@rect_anchor and @surface_anchor determine anchor points on @anchor_rect
and surface to pin together.
The position of @anchor_rect's anchor point can optionally be offset using
[method@Gdk.PopupLayout.set_offset], which is equivalent to offsetting the
position of surface.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">newly created instance of `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</return-value>
<parameters>
<parameter name="anchor_rect" transfer-ownership="none">
<doc xml:space="preserve">the anchor `GdkRectangle` to align @surface with</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</parameter>
<parameter name="rect_anchor" transfer-ownership="none">
<doc xml:space="preserve">the point on @anchor_rect to align with @surface's anchor point</doc>
<type name="Gravity" c:type="GdkGravity"/>
</parameter>
<parameter name="surface_anchor" transfer-ownership="none">
<doc xml:space="preserve">the point on @surface to align with @rect's anchor point</doc>
<type name="Gravity" c:type="GdkGravity"/>
</parameter>
</parameters>
</constructor>
<method name="copy" c:identifier="gdk_popup_layout_copy">
<doc xml:space="preserve">Makes a copy of @layout.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a copy of @layout.</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="equal" c:identifier="gdk_popup_layout_equal">
<doc xml:space="preserve">Check whether @layout and @other has identical layout properties.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if @layout and @other have identical layout properties,
otherwise %FALSE.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
<parameter name="other" transfer-ownership="none">
<doc xml:space="preserve">another `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</parameter>
</parameters>
</method>
<method name="get_anchor_hints" c:identifier="gdk_popup_layout_get_anchor_hints">
<doc xml:space="preserve">Get the `GdkAnchorHints`.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the `GdkAnchorHints`</doc>
<type name="AnchorHints" c:type="GdkAnchorHints"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_anchor_rect" c:identifier="gdk_popup_layout_get_anchor_rect">
<doc xml:space="preserve">Get the anchor rectangle.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The anchor rectangle</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_offset" c:identifier="gdk_popup_layout_get_offset">
<doc xml:space="preserve">Retrieves the offset for the anchor rectangle.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
<parameter name="dx" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the delta X coordinate</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="dy" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the delta Y coordinate</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
</method>
<method name="get_rect_anchor" c:identifier="gdk_popup_layout_get_rect_anchor">
<doc xml:space="preserve">Returns the anchor position on the anchor rectangle.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the anchor on the anchor rectangle.</doc>
<type name="Gravity" c:type="GdkGravity"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_shadow_width" c:identifier="gdk_popup_layout_get_shadow_width" version="4.2">
<doc xml:space="preserve">Obtains the shadow widths of this layout.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
<parameter name="left" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the left shadow width</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="right" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the right shadow width</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="top" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the top shadow width</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="bottom" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the bottom shadow width</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
</method>
<method name="get_surface_anchor" c:identifier="gdk_popup_layout_get_surface_anchor">
<doc xml:space="preserve">Returns the anchor position on the popup surface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the anchor on the popup surface.</doc>
<type name="Gravity" c:type="GdkGravity"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="ref" c:identifier="gdk_popup_layout_ref">
<doc xml:space="preserve">Increases the reference count of @value.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the same @layout</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_anchor_hints" c:identifier="gdk_popup_layout_set_anchor_hints">
<doc xml:space="preserve">Set new anchor hints.
The set @anchor_hints determines how @surface will be moved
if the anchor points cause it to move off-screen. For example,
%GDK_ANCHOR_FLIP_X will replace %GDK_GRAVITY_NORTH_WEST with
%GDK_GRAVITY_NORTH_EAST and vice versa if @surface extends
beyond the left or right edges of the monitor.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
<parameter name="anchor_hints" transfer-ownership="none">
<doc xml:space="preserve">the new `GdkAnchorHints`</doc>
<type name="AnchorHints" c:type="GdkAnchorHints"/>
</parameter>
</parameters>
</method>
<method name="set_anchor_rect" c:identifier="gdk_popup_layout_set_anchor_rect">
<doc xml:space="preserve">Set the anchor rectangle.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
<parameter name="anchor_rect" transfer-ownership="none">
<doc xml:space="preserve">the new anchor rectangle</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</parameter>
</parameters>
</method>
<method name="set_offset" c:identifier="gdk_popup_layout_set_offset">
<doc xml:space="preserve">Offset the position of the anchor rectangle with the given delta.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
<parameter name="dx" transfer-ownership="none">
<doc xml:space="preserve">x delta to offset the anchor rectangle with</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="dy" transfer-ownership="none">
<doc xml:space="preserve">y delta to offset the anchor rectangle with</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="set_rect_anchor" c:identifier="gdk_popup_layout_set_rect_anchor">
<doc xml:space="preserve">Set the anchor on the anchor rectangle.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
<parameter name="anchor" transfer-ownership="none">
<doc xml:space="preserve">the new rect anchor</doc>
<type name="Gravity" c:type="GdkGravity"/>
</parameter>
</parameters>
</method>
<method name="set_shadow_width" c:identifier="gdk_popup_layout_set_shadow_width" version="4.2">
<doc xml:space="preserve">Sets the shadow width of the popup.
The shadow width corresponds to the part of the computed
surface size that would consist of the shadow margin
surrounding the window, would there be any.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
<parameter name="left" transfer-ownership="none">
<doc xml:space="preserve">width of the left part of the shadow</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="right" transfer-ownership="none">
<doc xml:space="preserve">width of the right part of the shadow</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="top" transfer-ownership="none">
<doc xml:space="preserve">height of the top part of the shadow</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="bottom" transfer-ownership="none">
<doc xml:space="preserve">height of the bottom part of the shadow</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="set_surface_anchor" c:identifier="gdk_popup_layout_set_surface_anchor">
<doc xml:space="preserve">Set the anchor on the popup surface.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
<parameter name="anchor" transfer-ownership="none">
<doc xml:space="preserve">the new popup surface anchor</doc>
<type name="Gravity" c:type="GdkGravity"/>
</parameter>
</parameters>
</method>
<method name="unref" c:identifier="gdk_popup_layout_unref">
<doc xml:space="preserve">Decreases the reference count of @value.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPopupLayout`</doc>
<type name="PopupLayout" c:type="GdkPopupLayout*"/>
</instance-parameter>
</parameters>
</method>
</record>
<class name="ProximityEvent" c:symbol-prefix="proximity_event" c:type="GdkProximityEvent" parent="Event" glib:type-name="GdkProximityEvent" glib:get-type="gdk_proximity_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to the proximity of a tool to a device.</doc>
</class>
<record name="RGBA" c:type="GdkRGBA" glib:type-name="GdkRGBA" glib:get-type="gdk_rgba_get_type" c:symbol-prefix="rgba">
<doc xml:space="preserve">A `GdkRGBA` is used to represent a color, in a way that is compatible
with cairo&#x2019;s notion of color.
`GdkRGBA` is a convenient way to pass colors around. It&#x2019;s based on
cairo&#x2019;s way to deal with colors and mirrors its behavior. All values
are in the range from 0.0 to 1.0 inclusive. So the color
(0.0, 0.0, 0.0, 0.0) represents transparent black and
(1.0, 1.0, 1.0, 1.0) is opaque white. Other values will
be clamped to this range when drawing.</doc>
<field name="red" writable="1">
<doc xml:space="preserve">The intensity of the red channel from 0.0 to 1.0 inclusive</doc>
<type name="gfloat" c:type="float"/>
</field>
<field name="green" writable="1">
<doc xml:space="preserve">The intensity of the green channel from 0.0 to 1.0 inclusive</doc>
<type name="gfloat" c:type="float"/>
</field>
<field name="blue" writable="1">
<doc xml:space="preserve">The intensity of the blue channel from 0.0 to 1.0 inclusive</doc>
<type name="gfloat" c:type="float"/>
</field>
<field name="alpha" writable="1">
<doc xml:space="preserve">The opacity of the color from 0.0 for completely translucent to
1.0 for opaque</doc>
<type name="gfloat" c:type="float"/>
</field>
<method name="copy" c:identifier="gdk_rgba_copy">
<doc xml:space="preserve">Makes a copy of a `GdkRGBA`.
The result must be freed through [method@Gdk.RGBA.free].</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A newly allocated `GdkRGBA`, with the same contents as @rgba</doc>
<type name="RGBA" c:type="GdkRGBA*"/>
</return-value>
<parameters>
<instance-parameter name="rgba" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRGBA`</doc>
<type name="RGBA" c:type="const GdkRGBA*"/>
</instance-parameter>
</parameters>
</method>
<method name="equal" c:identifier="gdk_rgba_equal">
<doc xml:space="preserve">Compares two `GdkRGBA` colors.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the two colors compare equal</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="p1" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRGBA`</doc>
<type name="RGBA" c:type="gconstpointer"/>
</instance-parameter>
<parameter name="p2" transfer-ownership="none">
<doc xml:space="preserve">another `GdkRGBA`</doc>
<type name="RGBA" c:type="gconstpointer"/>
</parameter>
</parameters>
</method>
<method name="free" c:identifier="gdk_rgba_free">
<doc xml:space="preserve">Frees a `GdkRGBA`.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="rgba" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRGBA`</doc>
<type name="RGBA" c:type="GdkRGBA*"/>
</instance-parameter>
</parameters>
</method>
<method name="hash" c:identifier="gdk_rgba_hash">
<doc xml:space="preserve">A hash function suitable for using for a hash
table that stores `GdkRGBA`s.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The hash value for @p</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="p" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRGBA`</doc>
<type name="RGBA" c:type="gconstpointer"/>
</instance-parameter>
</parameters>
</method>
<method name="is_clear" c:identifier="gdk_rgba_is_clear">
<doc xml:space="preserve">Checks if an @rgba value is transparent.
That is, drawing with the value would not produce any change.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the @rgba is clear</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="rgba" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRGBA`</doc>
<type name="RGBA" c:type="const GdkRGBA*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_opaque" c:identifier="gdk_rgba_is_opaque">
<doc xml:space="preserve">Checks if an @rgba value is opaque.
That is, drawing with the value will not retain any results
from previous contents.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the @rgba is opaque</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="rgba" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRGBA`</doc>
<type name="RGBA" c:type="const GdkRGBA*"/>
</instance-parameter>
</parameters>
</method>
<method name="parse" c:identifier="gdk_rgba_parse">
<doc xml:space="preserve">Parses a textual representation of a color.
The string can be either one of:
- A standard name (Taken from the Css specification).
- A hexadecimal value in the form &#x201C;\#rgb&#x201D;, &#x201C;\#rrggbb&#x201D;,
&#x201C;\#rrrgggbbb&#x201D; or &#x201D;\#rrrrggggbbbb&#x201D;
- A hexadecimal value in the form &#x201C;\#rgba&#x201D;, &#x201C;\#rrggbbaa&#x201D;,
or &#x201D;\#rrrrggggbbbbaaaa&#x201D;
- A RGB color in the form &#x201C;rgb(r,g,b)&#x201D; (In this case the color
will have full opacity)
- A RGBA color in the form &#x201C;rgba(r,g,b,a)&#x201D;
Where &#x201C;r&#x201D;, &#x201C;g&#x201D;, &#x201C;b&#x201D; and &#x201C;a&#x201D; are respectively the red, green,
blue and alpha color values. In the last two cases, &#x201C;r&#x201D;, &#x201C;g&#x201D;,
and &#x201C;b&#x201D; are either integers in the range 0 to 255 or percentage
values in the range 0% to 100%, and a is a floating point value
in the range 0 to 1.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the parsing succeeded</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="rgba" transfer-ownership="none">
<doc xml:space="preserve">the `GdkRGBA` to fill in</doc>
<type name="RGBA" c:type="GdkRGBA*"/>
</instance-parameter>
<parameter name="spec" transfer-ownership="none">
<doc xml:space="preserve">the string specifying the color</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="to_string" c:identifier="gdk_rgba_to_string">
<doc xml:space="preserve">Returns a textual specification of @rgba in the form
`rgb(r,g,b)` or `rgba(r,g,b,a)`, where &#x201C;r&#x201D;, &#x201C;g&#x201D;, &#x201C;b&#x201D; and
&#x201C;a&#x201D; represent the red, green, blue and alpha values
respectively. &#x201C;r&#x201D;, &#x201C;g&#x201D;, and &#x201C;b&#x201D; are represented as integers
in the range 0 to 255, and &#x201C;a&#x201D; is represented as a floating
point value in the range 0 to 1.
These string forms are string forms that are supported by
the CSS3 colors module, and can be parsed by [method@Gdk.RGBA.parse].
Note that this string representation may lose some precision,
since &#x201C;r&#x201D;, &#x201C;g&#x201D; and &#x201C;b&#x201D; are represented as 8-bit integers. If
this is a concern, you should use a different representation.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A newly allocated text string</doc>
<type name="utf8" c:type="char*"/>
</return-value>
<parameters>
<instance-parameter name="rgba" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRGBA`</doc>
<type name="RGBA" c:type="const GdkRGBA*"/>
</instance-parameter>
</parameters>
</method>
</record>
<record name="Rectangle" c:type="GdkRectangle" glib:type-name="GdkRectangle" glib:get-type="gdk_rectangle_get_type" c:symbol-prefix="rectangle">
<doc xml:space="preserve">A `GdkRectangle` data type for representing rectangles.
`GdkRectangle` is identical to `cairo_rectangle_t`. Together with Cairo&#x2019;s
`cairo_region_t` data type, these are the central types for representing
sets of pixels.
The intersection of two rectangles can be computed with
[method@Gdk.Rectangle.intersect]; to find the union of two rectangles use
[method@Gdk.Rectangle.union].
The `cairo_region_t` type provided by Cairo is usually used for managing
non-rectangular clipping of graphical operations.
The Graphene library has a number of other data types for regions and
volumes in 2D and 3D.</doc>
<field name="x" writable="1">
<doc xml:space="preserve">the x coordinate of the top left corner</doc>
<type name="gint" c:type="int"/>
</field>
<field name="y" writable="1">
<doc xml:space="preserve">the y coordinate of the top left corner</doc>
<type name="gint" c:type="int"/>
</field>
<field name="width" writable="1">
<doc xml:space="preserve">the width of the rectangle</doc>
<type name="gint" c:type="int"/>
</field>
<field name="height" writable="1">
<doc xml:space="preserve">the height of the rectangle</doc>
<type name="gint" c:type="int"/>
</field>
<method name="contains_point" c:identifier="gdk_rectangle_contains_point">
<doc xml:space="preserve">Returns %TRUE if @rect contains the point described by @x and @y.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if @rect contains the point</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="rect" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRectangle`</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</instance-parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve">X coordinate</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve">Y coordinate</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="equal" c:identifier="gdk_rectangle_equal">
<doc xml:space="preserve">Checks if the two given rectangles are equal.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the rectangles are equal.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="rect1" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRectangle`</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</instance-parameter>
<parameter name="rect2" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRectangle`</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</parameter>
</parameters>
</method>
<method name="intersect" c:identifier="gdk_rectangle_intersect">
<doc xml:space="preserve">Calculates the intersection of two rectangles.
It is allowed for @dest to be the same as either @src1 or @src2.
If the rectangles do not intersect, @dest&#x2019;s width and height is set
to 0 and its x and y values are undefined. If you are only interested
in whether the rectangles intersect, but not in the intersecting area
itself, pass %NULL for @dest.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the rectangles intersect.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="src1" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRectangle`</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</instance-parameter>
<parameter name="src2" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRectangle`</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</parameter>
<parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
<doc xml:space="preserve">return location for the
intersection of @src1 and @src2</doc>
<type name="Rectangle" c:type="GdkRectangle*"/>
</parameter>
</parameters>
</method>
<method name="union" c:identifier="gdk_rectangle_union">
<doc xml:space="preserve">Calculates the union of two rectangles.
The union of rectangles @src1 and @src2 is the smallest rectangle which
includes both @src1 and @src2 within it. It is allowed for @dest to be
the same as either @src1 or @src2.
Note that this function does not ignore 'empty' rectangles (ie. with
zero width or height).</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="src1" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRectangle`</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</instance-parameter>
<parameter name="src2" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRectangle`</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</parameter>
<parameter name="dest" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve">return location for the union of @src1 and @src2</doc>
<type name="Rectangle" c:type="GdkRectangle*"/>
</parameter>
</parameters>
</method>
</record>
<function-macro name="SEAT" c:identifier="GDK_SEAT" introspectable="0">
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="SNAPSHOT" c:identifier="GDK_SNAPSHOT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="SURFACE" c:identifier="GDK_SURFACE" introspectable="0">
<parameters>
<parameter name="object">
</parameter>
</parameters>
</function-macro>
<function-macro name="SURFACE_CLASS" c:identifier="GDK_SURFACE_CLASS" introspectable="0">
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="SURFACE_GET_CLASS" c:identifier="GDK_SURFACE_GET_CLASS" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<enumeration name="ScrollDirection" glib:type-name="GdkScrollDirection" glib:get-type="gdk_scroll_direction_get_type" c:type="GdkScrollDirection">
<doc xml:space="preserve">Specifies the direction for scroll events.</doc>
<member name="up" value="0" c:identifier="GDK_SCROLL_UP" glib:nick="up" glib:name="GDK_SCROLL_UP">
<doc xml:space="preserve">the surface is scrolled up.</doc>
</member>
<member name="down" value="1" c:identifier="GDK_SCROLL_DOWN" glib:nick="down" glib:name="GDK_SCROLL_DOWN">
<doc xml:space="preserve">the surface is scrolled down.</doc>
</member>
<member name="left" value="2" c:identifier="GDK_SCROLL_LEFT" glib:nick="left" glib:name="GDK_SCROLL_LEFT">
<doc xml:space="preserve">the surface is scrolled to the left.</doc>
</member>
<member name="right" value="3" c:identifier="GDK_SCROLL_RIGHT" glib:nick="right" glib:name="GDK_SCROLL_RIGHT">
<doc xml:space="preserve">the surface is scrolled to the right.</doc>
</member>
<member name="smooth" value="4" c:identifier="GDK_SCROLL_SMOOTH" glib:nick="smooth" glib:name="GDK_SCROLL_SMOOTH">
<doc xml:space="preserve">the scrolling is determined by the delta values
in scroll events. See gdk_scroll_event_get_deltas()</doc>
</member>
</enumeration>
<class name="ScrollEvent" c:symbol-prefix="scroll_event" c:type="GdkScrollEvent" parent="Event" glib:type-name="GdkScrollEvent" glib:get-type="gdk_scroll_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to a scrolling motion.</doc>
<method name="get_deltas" c:identifier="gdk_scroll_event_get_deltas">
<doc xml:space="preserve">Extracts the scroll deltas of a scroll event.
The deltas will be zero unless the scroll direction
is %GDK_SCROLL_SMOOTH.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a scroll event</doc>
<type name="ScrollEvent" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="delta_x" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for x scroll delta</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="delta_y" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for y scroll delta</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="get_direction" c:identifier="gdk_scroll_event_get_direction">
<doc xml:space="preserve">Extracts the direction of a scroll event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the scroll direction of @event</doc>
<type name="ScrollDirection" c:type="GdkScrollDirection"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a scroll event</doc>
<type name="ScrollEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_stop" c:identifier="gdk_scroll_event_is_stop">
<doc xml:space="preserve">Check whether a scroll event is a stop scroll event.
Scroll sequences with smooth scroll information may provide
a stop scroll event once the interaction with the device finishes,
e.g. by lifting a finger. This stop scroll event is the signal
that a widget may trigger kinetic scrolling based on the current
velocity.
Stop scroll events always have a delta of 0/0.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the event is a scroll stop event</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a scroll event</doc>
<type name="ScrollEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
</class>
<class name="Seat" c:symbol-prefix="seat" c:type="GdkSeat" parent="GObject.Object" abstract="1" glib:type-name="GdkSeat" glib:get-type="gdk_seat_get_type">
<doc xml:space="preserve">The `GdkSeat` object represents a collection of input devices
that belong to a user.</doc>
<method name="get_capabilities" c:identifier="gdk_seat_get_capabilities">
<doc xml:space="preserve">Returns the capabilities this `GdkSeat` currently has.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the seat capabilities</doc>
<type name="SeatCapabilities" c:type="GdkSeatCapabilities"/>
</return-value>
<parameters>
<instance-parameter name="seat" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSeat`</doc>
<type name="Seat" c:type="GdkSeat*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_devices" c:identifier="gdk_seat_get_devices">
<doc xml:space="preserve">Returns the devices that match the given capabilities.</doc>
<return-value transfer-ownership="container">
<doc xml:space="preserve">A list
of `GdkDevices`. The list must be freed with g_list_free(),
the elements are owned by GTK and must not be freed.</doc>
<type name="GLib.List" c:type="GList*">
<type name="Device"/>
</type>
</return-value>
<parameters>
<instance-parameter name="seat" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSeat`</doc>
<type name="Seat" c:type="GdkSeat*"/>
</instance-parameter>
<parameter name="capabilities" transfer-ownership="none">
<doc xml:space="preserve">capabilities to get devices for</doc>
<type name="SeatCapabilities" c:type="GdkSeatCapabilities"/>
</parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_seat_get_display" glib:get-property="display">
<attribute name="org.gtk.Method.get_property" value="display"/>
<doc xml:space="preserve">Returns the `GdkDisplay` this seat belongs to.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a `GdkDisplay`. This object
is owned by GTK and must not be freed.</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="seat" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSeat`</doc>
<type name="Seat" c:type="GdkSeat*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_keyboard" c:identifier="gdk_seat_get_keyboard">
<doc xml:space="preserve">Returns the device that routes keyboard events.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkDevice` with keyboard
capabilities. This object is owned by GTK and must not be freed.</doc>
<type name="Device" c:type="GdkDevice*"/>
</return-value>
<parameters>
<instance-parameter name="seat" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSeat`</doc>
<type name="Seat" c:type="GdkSeat*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_pointer" c:identifier="gdk_seat_get_pointer">
<doc xml:space="preserve">Returns the device that routes pointer events.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkDevice` with pointer
capabilities. This object is owned by GTK and must not be freed.</doc>
<type name="Device" c:type="GdkDevice*"/>
</return-value>
<parameters>
<instance-parameter name="seat" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSeat`</doc>
<type name="Seat" c:type="GdkSeat*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_tools" c:identifier="gdk_seat_get_tools">
<doc xml:space="preserve">Returns all `GdkDeviceTools` that are known to the application.</doc>
<return-value transfer-ownership="container">
<doc xml:space="preserve">
A list of tools. Free with g_list_free().</doc>
<type name="GLib.List" c:type="GList*">
<type name="DeviceTool"/>
</type>
</return-value>
<parameters>
<instance-parameter name="seat" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSeat`</doc>
<type name="Seat" c:type="GdkSeat*"/>
</instance-parameter>
</parameters>
</method>
<property name="display" writable="1" construct-only="1" transfer-ownership="none" getter="get_display">
<attribute name="org.gtk.Property.get" value="gdk_seat_get_display"/>
<doc xml:space="preserve">`GdkDisplay` of this seat.</doc>
<type name="Display"/>
</property>
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
<glib:signal name="device-added" when="last">
<doc xml:space="preserve">Emitted when a new input device is related to this seat.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">the newly added `GdkDevice`.</doc>
<type name="Device"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="device-removed" when="last">
<doc xml:space="preserve">Emitted when an input device is removed (e.g. unplugged).</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">the just removed `GdkDevice`.</doc>
<type name="Device"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="tool-added" when="last">
<doc xml:space="preserve">Emitted whenever a new tool is made known to the seat.
The tool may later be assigned to a device (i.e. on
proximity with a tablet). The device will emit the
[signal@Gdk.Device::tool-changed] signal accordingly.
A same tool may be used by several devices.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="tool" transfer-ownership="none">
<doc xml:space="preserve">the new `GdkDeviceTool` known to the seat</doc>
<type name="DeviceTool"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="tool-removed" when="last">
<doc xml:space="preserve">Emitted whenever a tool is no longer known to this @seat.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="tool" transfer-ownership="none">
<doc xml:space="preserve">the just removed `GdkDeviceTool`</doc>
<type name="DeviceTool"/>
</parameter>
</parameters>
</glib:signal>
</class>
<bitfield name="SeatCapabilities" glib:type-name="GdkSeatCapabilities" glib:get-type="gdk_seat_capabilities_get_type" c:type="GdkSeatCapabilities">
<doc xml:space="preserve">Flags describing the seat capabilities.</doc>
<member name="none" value="0" c:identifier="GDK_SEAT_CAPABILITY_NONE" glib:nick="none" glib:name="GDK_SEAT_CAPABILITY_NONE">
<doc xml:space="preserve">No input capabilities</doc>
</member>
<member name="pointer" value="1" c:identifier="GDK_SEAT_CAPABILITY_POINTER" glib:nick="pointer" glib:name="GDK_SEAT_CAPABILITY_POINTER">
<doc xml:space="preserve">The seat has a pointer (e.g. mouse)</doc>
</member>
<member name="touch" value="2" c:identifier="GDK_SEAT_CAPABILITY_TOUCH" glib:nick="touch" glib:name="GDK_SEAT_CAPABILITY_TOUCH">
<doc xml:space="preserve">The seat has touchscreen(s) attached</doc>
</member>
<member name="tablet_stylus" value="4" c:identifier="GDK_SEAT_CAPABILITY_TABLET_STYLUS" glib:nick="tablet-stylus" glib:name="GDK_SEAT_CAPABILITY_TABLET_STYLUS">
<doc xml:space="preserve">The seat has drawing tablet(s) attached</doc>
</member>
<member name="keyboard" value="8" c:identifier="GDK_SEAT_CAPABILITY_KEYBOARD" glib:nick="keyboard" glib:name="GDK_SEAT_CAPABILITY_KEYBOARD">
<doc xml:space="preserve">The seat has keyboard(s) attached</doc>
</member>
<member name="tablet_pad" value="16" c:identifier="GDK_SEAT_CAPABILITY_TABLET_PAD" glib:nick="tablet-pad" glib:name="GDK_SEAT_CAPABILITY_TABLET_PAD">
<doc xml:space="preserve">The seat has drawing tablet pad(s) attached</doc>
</member>
<member name="all_pointing" value="7" c:identifier="GDK_SEAT_CAPABILITY_ALL_POINTING" glib:nick="all-pointing" glib:name="GDK_SEAT_CAPABILITY_ALL_POINTING">
<doc xml:space="preserve">The union of all pointing capabilities</doc>
</member>
<member name="all" value="15" c:identifier="GDK_SEAT_CAPABILITY_ALL" glib:nick="all" glib:name="GDK_SEAT_CAPABILITY_ALL">
<doc xml:space="preserve">The union of all capabilities</doc>
</member>
</bitfield>
<class name="Snapshot" c:symbol-prefix="snapshot" c:type="GdkSnapshot" parent="GObject.Object" abstract="1" glib:type-name="GdkSnapshot" glib:get-type="gdk_snapshot_get_type" glib:type-struct="SnapshotClass">
<doc xml:space="preserve">Base type for snapshot operations.
The subclass of `GdkSnapshot` used by GTK is [class@Gtk.Snapshot].</doc>
</class>
<record name="SnapshotClass" c:type="GdkSnapshotClass" disguised="1" glib:is-gtype-struct-for="Snapshot"/>
<enumeration name="SubpixelLayout" glib:type-name="GdkSubpixelLayout" glib:get-type="gdk_subpixel_layout_get_type" c:type="GdkSubpixelLayout">
<doc xml:space="preserve">This enumeration describes how the red, green and blue components
of physical pixels on an output device are laid out.</doc>
<member name="unknown" value="0" c:identifier="GDK_SUBPIXEL_LAYOUT_UNKNOWN" glib:nick="unknown" glib:name="GDK_SUBPIXEL_LAYOUT_UNKNOWN">
<doc xml:space="preserve">The layout is not known</doc>
</member>
<member name="none" value="1" c:identifier="GDK_SUBPIXEL_LAYOUT_NONE" glib:nick="none" glib:name="GDK_SUBPIXEL_LAYOUT_NONE">
<doc xml:space="preserve">Not organized in this way</doc>
</member>
<member name="horizontal_rgb" value="2" c:identifier="GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB" glib:nick="horizontal-rgb" glib:name="GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB">
<doc xml:space="preserve">The layout is horizontal, the order is RGB</doc>
</member>
<member name="horizontal_bgr" value="3" c:identifier="GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR" glib:nick="horizontal-bgr" glib:name="GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR">
<doc xml:space="preserve">The layout is horizontal, the order is BGR</doc>
</member>
<member name="vertical_rgb" value="4" c:identifier="GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB" glib:nick="vertical-rgb" glib:name="GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB">
<doc xml:space="preserve">The layout is vertical, the order is RGB</doc>
</member>
<member name="vertical_bgr" value="5" c:identifier="GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR" glib:nick="vertical-bgr" glib:name="GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR">
<doc xml:space="preserve">The layout is vertical, the order is BGR</doc>
</member>
</enumeration>
<class name="Surface" c:symbol-prefix="surface" c:type="GdkSurface" parent="GObject.Object" abstract="1" glib:type-name="GdkSurface" glib:get-type="gdk_surface_get_type" glib:type-struct="SurfaceClass">
<doc xml:space="preserve">A `GdkSurface` is a rectangular region on the screen.
It&#x2019;s a low-level object, used to implement high-level objects
such as [class@Gtk.Window] or [class@Gtk.Dialog] in GTK.
The surfaces you see in practice are either [iface@Gdk.Toplevel] or
[iface@Gdk.Popup], and those interfaces provide much of the required
API to interact with these surfaces. Other, more specialized surface
types exist, but you will rarely interact with them directly.</doc>
<constructor name="new_popup" c:identifier="gdk_surface_new_popup">
<doc xml:space="preserve">Create a new popup surface.
The surface will be attached to @parent and can be positioned
relative to it using [method@Gdk.Popup.present].</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<parameter name="parent" transfer-ownership="none">
<doc xml:space="preserve">the parent surface to attach the surface to</doc>
<type name="Surface" c:type="GdkSurface*"/>
</parameter>
<parameter name="autohide" transfer-ownership="none">
<doc xml:space="preserve">whether to hide the surface on outside clicks</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_toplevel" c:identifier="gdk_surface_new_toplevel">
<doc xml:space="preserve">Creates a new toplevel surface.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the new `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve">the display to create the surface on</doc>
<type name="Display" c:type="GdkDisplay*"/>
</parameter>
</parameters>
</constructor>
<method name="beep" c:identifier="gdk_surface_beep">
<doc xml:space="preserve">Emits a short beep associated to @surface.
If the display of @surface does not support per-surface beeps,
emits a short beep on the display just as [method@Gdk.Display.beep].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a toplevel `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="create_cairo_context" c:identifier="gdk_surface_create_cairo_context">
<doc xml:space="preserve">Creates a new `GdkCairoContext` for rendering on @surface.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created `GdkCairoContext`</doc>
<type name="CairoContext" c:type="GdkCairoContext*"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="create_gl_context" c:identifier="gdk_surface_create_gl_context" throws="1">
<doc xml:space="preserve">Creates a new `GdkGLContext` for the `GdkSurface`.
The context is disconnected from any particular surface or surface.
If the creation of the `GdkGLContext` failed, @error will be set.
Before using the returned `GdkGLContext`, you will need to
call [method@Gdk.GLContext.make_current] or [method@Gdk.GLContext.realize].</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created `GdkGLContext`</doc>
<type name="GLContext" c:type="GdkGLContext*"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="create_similar_surface" c:identifier="gdk_surface_create_similar_surface">
<doc xml:space="preserve">Create a new Cairo surface that is as compatible as possible with the
given @surface.
For example the new surface will have the same fallback resolution
and font options as @surface. Generally, the new surface will also
use the same backend as @surface, unless that is not possible for
some reason. The type of the returned surface may be examined with
cairo_surface_get_type().
Initially the surface contents are all 0 (transparent if contents
have transparency, black otherwise.)
This function always returns a valid pointer, but it will return a
pointer to a &#x201C;nil&#x201D; surface if @other is already in an error state
or any other error occurs.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a pointer to the newly allocated surface. The caller
owns the surface and should call cairo_surface_destroy() when done
with it.</doc>
<type name="cairo.Surface" c:type="cairo_surface_t*"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">surface to make new surface similar to</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
<parameter name="content" transfer-ownership="none">
<doc xml:space="preserve">the content for the new surface</doc>
<type name="cairo.Content" c:type="cairo_content_t"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">width of the new surface</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">height of the new surface</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="create_vulkan_context" c:identifier="gdk_surface_create_vulkan_context" throws="1">
<doc xml:space="preserve">Creates a new `GdkVulkanContext` for rendering on @surface.
If the creation of the `GdkVulkanContext` failed, @error will be set.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created `GdkVulkanContext`, or
%NULL on error</doc>
<type name="VulkanContext" c:type="GdkVulkanContext*"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="destroy" c:identifier="gdk_surface_destroy">
<doc xml:space="preserve">Destroys the window system resources associated with @surface and
decrements @surface's reference count.
The window system resources for all children of @surface are also
destroyed, but the children&#x2019;s reference counts are not decremented.
Note that a surface will not be destroyed automatically when its
reference count reaches zero. You must call this function yourself
before that happens.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_cursor" c:identifier="gdk_surface_get_cursor" glib:get-property="cursor">
<attribute name="org.gtk.Method.get_property" value="cursor"/>
<doc xml:space="preserve">Retrieves a `GdkCursor` pointer for the cursor currently set on the
`GdkSurface`.
If the return value is %NULL then there is no custom cursor set on
the surface, and it is using the cursor for its parent surface.
Use [method@Gdk.Surface.set_cursor] to unset the cursor of the surface.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_device_cursor" c:identifier="gdk_surface_get_device_cursor">
<doc xml:space="preserve">Retrieves a `GdkCursor` pointer for the @device currently set on the
specified `GdkSurface`.
If the return value is %NULL then there is no custom cursor set on the
specified surface, and it is using the cursor for its parent surface.
Use [method@Gdk.Surface.set_cursor] to unset the cursor of the surface.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a pointer `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</parameter>
</parameters>
</method>
<method name="get_device_position" c:identifier="gdk_surface_get_device_position">
<doc xml:space="preserve">Obtains the current device position and modifier state.
The position is given in coordinates relative to the upper
left corner of @surface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the device is over the surface</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">pointer `GdkDevice` to query to</doc>
<type name="Device" c:type="GdkDevice*"/>
</parameter>
<parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for the X coordinate of @device</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for the Y coordinate of @device</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="mask" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for the modifier mask</doc>
<type name="ModifierType" c:type="GdkModifierType*"/>
</parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gdk_surface_get_display" glib:get-property="display">
<attribute name="org.gtk.Method.get_property" value="display"/>
<doc xml:space="preserve">Gets the `GdkDisplay` associated with a `GdkSurface`.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the `GdkDisplay` associated with @surface</doc>
<type name="Display" c:type="GdkDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_frame_clock" c:identifier="gdk_surface_get_frame_clock" glib:get-property="frame-clock">
<attribute name="org.gtk.Method.get_property" value="frame-clock"/>
<doc xml:space="preserve">Gets the frame clock for the surface.
The frame clock for a surface never changes unless the surface is
reparented to a new toplevel surface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the frame clock</doc>
<type name="FrameClock" c:type="GdkFrameClock*"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">surface to get frame clock for</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_height" c:identifier="gdk_surface_get_height" glib:get-property="height">
<attribute name="org.gtk.Method.get_property" value="height"/>
<doc xml:space="preserve">Returns the height of the given @surface.
Surface size is reported in &#x201D;application pixels&#x201D;, not
&#x201D;device pixels&#x201D; (see [method@Gdk.Surface.get_scale_factor]).</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The height of @surface</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_mapped" c:identifier="gdk_surface_get_mapped" glib:get-property="mapped">
<attribute name="org.gtk.Method.get_property" value="mapped"/>
<doc xml:space="preserve">Checks whether the surface has been mapped.
A surface is mapped with [method@Gdk.Toplevel.present]
or [method@Gdk.Popup.present].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the surface is mapped</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_scale_factor" c:identifier="gdk_surface_get_scale_factor" glib:get-property="scale-factor">
<attribute name="org.gtk.Method.get_property" value="scale-factor"/>
<doc xml:space="preserve">Returns the internal scale factor that maps from surface coordinates
to the actual device pixels.
On traditional systems this is 1, but on very high density outputs
this can be a higher value (often 2). A higher value means that drawing
is automatically scaled up to a higher resolution, so any code doing
drawing will automatically look nicer. However, if you are supplying
pixel-based data the scale value can be used to determine whether to
use a pixel resource with higher resolution data.
The scale of a surface may change during runtime.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the scale factor</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">surface to get scale factor for</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_width" c:identifier="gdk_surface_get_width" glib:get-property="width">
<attribute name="org.gtk.Method.get_property" value="width"/>
<doc xml:space="preserve">Returns the width of the given @surface.
Surface size is reported in &#x201D;application pixels&#x201D;, not
&#x201D;device pixels&#x201D; (see [method@Gdk.Surface.get_scale_factor]).</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The width of @surface</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="hide" c:identifier="gdk_surface_hide">
<doc xml:space="preserve">Hide the surface.
For toplevel surfaces, withdraws them, so they will no longer be
known to the window manager; for all surfaces, unmaps them, so
they won&#x2019;t be displayed. Normally done automatically as
part of [method@Gtk.Widget.hide].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="is_destroyed" c:identifier="gdk_surface_is_destroyed">
<doc xml:space="preserve">Check to see if a surface is destroyed.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the surface is destroyed</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="queue_render" c:identifier="gdk_surface_queue_render">
<doc xml:space="preserve">Forces a [signal@Gdk.Surface::render] signal emission for @surface
to be scheduled.
This function is useful for implementations that track invalid
regions on their own.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="request_layout" c:identifier="gdk_surface_request_layout">
<doc xml:space="preserve">Request a layout phase from the surface's frame clock.
See [method@Gdk.FrameClock.request_phase].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_cursor" c:identifier="gdk_surface_set_cursor" glib:set-property="cursor">
<attribute name="org.gtk.Method.set_property" value="cursor"/>
<doc xml:space="preserve">Sets the default mouse pointer for a `GdkSurface`.
Passing %NULL for the @cursor argument means that @surface will use
the cursor of its parent surface. Most surfaces should use this default.
Note that @cursor must be for the same display as @surface.
Use [ctor@Gdk.Cursor.new_from_name] or [ctor@Gdk.Cursor.new_from_texture]
to create the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
<parameter name="cursor" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">a `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</parameter>
</parameters>
</method>
<method name="set_device_cursor" c:identifier="gdk_surface_set_device_cursor">
<doc xml:space="preserve">Sets a specific `GdkCursor` for a given device when it gets inside @surface.
Passing %NULL for the @cursor argument means that @surface will use the
cursor of its parent surface. Most surfaces should use this default.
Use [ctor@Gdk.Cursor.new_from_name] or [ctor@Gdk.Cursor.new_from_texture]
to create the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">a pointer `GdkDevice`</doc>
<type name="Device" c:type="GdkDevice*"/>
</parameter>
<parameter name="cursor" transfer-ownership="none">
<doc xml:space="preserve">a `GdkCursor`</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</parameter>
</parameters>
</method>
<method name="set_input_region" c:identifier="gdk_surface_set_input_region">
<doc xml:space="preserve">Apply the region to the surface for the purpose of event
handling.
Mouse events which happen while the pointer position corresponds
to an unset bit in the mask will be passed on the surface below
@surface.
An input region is typically used with RGBA surfaces. The alpha
channel of the surface defines which pixels are invisible and
allows for nicely antialiased borders, and the input region
controls where the surface is &#x201C;clickable&#x201D;.
Use [method@Gdk.Display.supports_input_shapes] to find out if
a particular backend supports input regions.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
<parameter name="region" transfer-ownership="none">
<doc xml:space="preserve">region of surface to be reactive</doc>
<type name="cairo.Region" c:type="cairo_region_t*"/>
</parameter>
</parameters>
</method>
<method name="set_opaque_region" c:identifier="gdk_surface_set_opaque_region">
<doc xml:space="preserve">Marks a region of the `GdkSurface` as opaque.
For optimisation purposes, compositing window managers may
like to not draw obscured regions of surfaces, or turn off blending
during for these regions. With RGB windows with no transparency,
this is just the shape of the window, but with ARGB32 windows, the
compositor does not know what regions of the window are transparent
or not.
This function only works for toplevel surfaces.
GTK will update this property automatically if the @surface background
is opaque, as we know where the opaque regions are. If your surface
background is not opaque, please update this property in your
[vfunc@Gtk.Widget.css_changed] handler.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a top-level `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
<parameter name="region" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">a region, or %NULL to make the entire
surface opaque</doc>
<type name="cairo.Region" c:type="cairo_region_t*"/>
</parameter>
</parameters>
</method>
<method name="translate_coordinates" c:identifier="gdk_surface_translate_coordinates">
<doc xml:space="preserve">Translates coordinates between two surfaces.
Note that this only works if @to and @from are popups or
transient-for to the same toplevel (directly or indirectly).</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the coordinates were successfully translated</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="from" transfer-ownership="none">
<doc xml:space="preserve">the origin surface</doc>
<type name="Surface" c:type="GdkSurface*"/>
</instance-parameter>
<parameter name="to" transfer-ownership="none">
<doc xml:space="preserve">the target surface</doc>
<type name="Surface" c:type="GdkSurface*"/>
</parameter>
<parameter name="x" direction="inout" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">coordinates to translate</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="y" direction="inout" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">coordinates to translate</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<property name="cursor" writable="1" transfer-ownership="none" setter="set_cursor" getter="get_cursor">
<attribute name="org.gtk.Property.get" value="gdk_surface_get_cursor"/>
<attribute name="org.gtk.Property.set" value="gdk_surface_set_cursor"/>
<doc xml:space="preserve">The mouse pointer for the `GdkSurface`.</doc>
<type name="Cursor"/>
</property>
<property name="display" writable="1" construct-only="1" transfer-ownership="none" getter="get_display">
<attribute name="org.gtk.Property.get" value="gdk_surface_get_display"/>
<doc xml:space="preserve">The `GdkDisplay` connection of the surface.</doc>
<type name="Display"/>
</property>
<property name="frame-clock" writable="1" construct-only="1" transfer-ownership="none" getter="get_frame_clock">
<attribute name="org.gtk.Property.get" value="gdk_surface_get_frame_clock"/>
<doc xml:space="preserve">The `GdkFrameClock` of the surface.</doc>
<type name="FrameClock"/>
</property>
<property name="height" transfer-ownership="none" getter="get_height">
<attribute name="org.gtk.Property.get" value="gdk_surface_get_height"/>
<doc xml:space="preserve">The height of the surface, in pixels.</doc>
<type name="gint" c:type="gint"/>
</property>
<property name="mapped" transfer-ownership="none" getter="get_mapped">
<attribute name="org.gtk.Property.get" value="gdk_surface_get_mapped"/>
<doc xml:space="preserve">Whether the surface is mapped.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="scale-factor" transfer-ownership="none" getter="get_scale_factor">
<attribute name="org.gtk.Property.get" value="gdk_surface_get_scale_factor"/>
<doc xml:space="preserve">The scale factor of the surface.</doc>
<type name="gint" c:type="gint"/>
</property>
<property name="width" transfer-ownership="none" getter="get_width">
<attribute name="org.gtk.Property.get" value="gdk_surface_get_width"/>
<doc xml:space="preserve">The width of the surface in pixels.</doc>
<type name="gint" c:type="gint"/>
</property>
<glib:signal name="enter-monitor" when="first">
<doc xml:space="preserve">Emitted when @surface starts being present on the monitor.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">the monitor</doc>
<type name="Monitor"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="event" when="last">
<doc xml:space="preserve">Emitted when GDK receives an input event for @surface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE to indicate that the event has been handled</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">an input event</doc>
<type name="Event" c:type="gpointer"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="layout" when="first">
<doc xml:space="preserve">Emitted when the size of @surface is changed, or when relayout should
be performed.
Surface size is reported in &#x201D;application pixels&#x201D;, not
&#x201D;device pixels&#x201D; (see gdk_surface_get_scale_factor()).</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">the current width</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">the current height</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="leave-monitor" when="first">
<doc xml:space="preserve">Emitted when @surface stops being present on the monitor.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="monitor" transfer-ownership="none">
<doc xml:space="preserve">the monitor</doc>
<type name="Monitor"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="render" when="last">
<doc xml:space="preserve">Emitted when part of the surface needs to be redrawn.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE to indicate that the signal has been handled</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="region" transfer-ownership="none">
<doc xml:space="preserve">the region that needs to be redrawn</doc>
<type name="cairo.Region"/>
</parameter>
</parameters>
</glib:signal>
</class>
<record name="SurfaceClass" c:type="GdkSurfaceClass" disguised="1" glib:is-gtype-struct-for="Surface"/>
<enumeration name="SurfaceEdge" glib:type-name="GdkSurfaceEdge" glib:get-type="gdk_surface_edge_get_type" c:type="GdkSurfaceEdge">
<doc xml:space="preserve">Determines a surface edge or corner.</doc>
<member name="north_west" value="0" c:identifier="GDK_SURFACE_EDGE_NORTH_WEST" glib:nick="north-west" glib:name="GDK_SURFACE_EDGE_NORTH_WEST">
<doc xml:space="preserve">the top left corner.</doc>
</member>
<member name="north" value="1" c:identifier="GDK_SURFACE_EDGE_NORTH" glib:nick="north" glib:name="GDK_SURFACE_EDGE_NORTH">
<doc xml:space="preserve">the top edge.</doc>
</member>
<member name="north_east" value="2" c:identifier="GDK_SURFACE_EDGE_NORTH_EAST" glib:nick="north-east" glib:name="GDK_SURFACE_EDGE_NORTH_EAST">
<doc xml:space="preserve">the top right corner.</doc>
</member>
<member name="west" value="3" c:identifier="GDK_SURFACE_EDGE_WEST" glib:nick="west" glib:name="GDK_SURFACE_EDGE_WEST">
<doc xml:space="preserve">the left edge.</doc>
</member>
<member name="east" value="4" c:identifier="GDK_SURFACE_EDGE_EAST" glib:nick="east" glib:name="GDK_SURFACE_EDGE_EAST">
<doc xml:space="preserve">the right edge.</doc>
</member>
<member name="south_west" value="5" c:identifier="GDK_SURFACE_EDGE_SOUTH_WEST" glib:nick="south-west" glib:name="GDK_SURFACE_EDGE_SOUTH_WEST">
<doc xml:space="preserve">the lower left corner.</doc>
</member>
<member name="south" value="6" c:identifier="GDK_SURFACE_EDGE_SOUTH" glib:nick="south" glib:name="GDK_SURFACE_EDGE_SOUTH">
<doc xml:space="preserve">the lower edge.</doc>
</member>
<member name="south_east" value="7" c:identifier="GDK_SURFACE_EDGE_SOUTH_EAST" glib:nick="south-east" glib:name="GDK_SURFACE_EDGE_SOUTH_EAST">
<doc xml:space="preserve">the lower right corner.</doc>
</member>
</enumeration>
<function-macro name="TEXTURE" c:identifier="GDK_TEXTURE" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<class name="Texture" c:symbol-prefix="texture" c:type="GdkTexture" parent="GObject.Object" abstract="1" glib:type-name="GdkTexture" glib:get-type="gdk_texture_get_type" glib:type-struct="TextureClass">
<doc xml:space="preserve">`GdkTexture` is the basic element used to refer to pixel data.
It is primarily meant for pixel data that will not change over
multiple frames, and will be used for a long time.
There are various ways to create `GdkTexture` objects from a
[class@GdkPixbuf.Pixbuf], or a Cairo surface, or other pixel data.
The ownership of the pixel data is transferred to the `GdkTexture`
instance; you can only make a copy of it, via [method@Gdk.Texture.download].
`GdkTexture` is an immutable object: That means you cannot change
anything about it other than increasing the reference count via
[method@GObject.Object.ref], and consequently, it is a thread-safe object.</doc>
<implements name="Paintable"/>
<implements name="Gio.Icon"/>
<implements name="Gio.LoadableIcon"/>
<constructor name="new_for_pixbuf" c:identifier="gdk_texture_new_for_pixbuf">
<doc xml:space="preserve">Creates a new texture object representing the `GdkPixbuf`.
This function is threadsafe, so that you can e.g. use GTask
and [method@Gio.Task.run_in_thread] to avoid blocking the main thread
while loading a big image.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</return-value>
<parameters>
<parameter name="pixbuf" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPixbuf`</doc>
<type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_from_bytes" c:identifier="gdk_texture_new_from_bytes" version="4.6" throws="1">
<doc xml:space="preserve">Creates a new texture by loading an image from memory,
The file format is detected automatically. The supported formats
are PNG and JPEG, though more formats might be available.
If %NULL is returned, then @error will be set.
This function is threadsafe, so that you can e.g. use GTask
and [method@Gio.Task.run_in_thread] to avoid blocking the main thread
while loading a big image.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A newly-created `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</return-value>
<parameters>
<parameter name="bytes" transfer-ownership="none">
<doc xml:space="preserve">a `GBytes` containing the data to load</doc>
<type name="GLib.Bytes" c:type="GBytes*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_from_file" c:identifier="gdk_texture_new_from_file" throws="1">
<doc xml:space="preserve">Creates a new texture by loading an image from a file.
The file format is detected automatically. The supported formats
are PNG and JPEG, though more formats might be available.
If %NULL is returned, then @error will be set.
This function is threadsafe, so that you can e.g. use GTask
and [method@Gio.Task.run_in_thread] to avoid blocking the main thread
while loading a big image.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A newly-created `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</return-value>
<parameters>
<parameter name="file" transfer-ownership="none">
<doc xml:space="preserve">`GFile` to load</doc>
<type name="Gio.File" c:type="GFile*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_from_filename" c:identifier="gdk_texture_new_from_filename" version="4.6" throws="1">
<doc xml:space="preserve">Creates a new texture by loading an image from a file.
The file format is detected automatically. The supported formats
are PNG and JPEG, though more formats might be available.
If %NULL is returned, then @error will be set.
This function is threadsafe, so that you can e.g. use GTask
and [method@Gio.Task.run_in_thread] to avoid blocking the main thread
while loading a big image.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A newly-created `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</return-value>
<parameters>
<parameter name="path" transfer-ownership="none">
<doc xml:space="preserve">the filename to load</doc>
<type name="filename" c:type="const char*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_from_resource" c:identifier="gdk_texture_new_from_resource">
<doc xml:space="preserve">Creates a new texture by loading an image from a resource.
The file format is detected automatically. The supported formats
are PNG and JPEG, though more formats might be available.
It is a fatal error if @resource_path does not specify a valid
image resource and the program will abort if that happens.
If you are unsure about the validity of a resource, use
[ctor@Gdk.Texture.new_from_file] to load it.
This function is threadsafe, so that you can e.g. use GTask
and [method@Gio.Task.run_in_thread] to avoid blocking the main thread
while loading a big image.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A newly-created `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</return-value>
<parameters>
<parameter name="resource_path" transfer-ownership="none">
<doc xml:space="preserve">the path of the resource file</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</constructor>
<method name="download" c:identifier="gdk_texture_download">
<doc xml:space="preserve">Downloads the @texture into local memory.
This may be an expensive operation, as the actual texture data
may reside on a GPU or on a remote display server.
The data format of the downloaded data is equivalent to
%CAIRO_FORMAT_ARGB32, so every downloaded pixel requires
4 bytes of memory.
Downloading a texture into a Cairo image surface:
```c
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
gdk_texture_get_width (texture),
gdk_texture_get_height (texture));
gdk_texture_download (texture,
cairo_image_surface_get_data (surface),
cairo_image_surface_get_stride (surface));
cairo_surface_mark_dirty (surface);
```</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</instance-parameter>
<parameter name="data" transfer-ownership="none">
<doc xml:space="preserve">pointer to enough memory to be filled with the
downloaded data of @texture</doc>
<array zero-terminated="0" c:type="guchar*">
<type name="guint8" c:type="guchar"/>
</array>
</parameter>
<parameter name="stride" transfer-ownership="none">
<doc xml:space="preserve">rowstride in bytes</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</method>
<method name="get_height" c:identifier="gdk_texture_get_height" glib:get-property="height">
<attribute name="org.gtk.Method.get_property" value="height"/>
<doc xml:space="preserve">Returns the height of the @texture, in pixels.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the height of the `GdkTexture`</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_width" c:identifier="gdk_texture_get_width" glib:get-property="width">
<attribute name="org.gtk.Method.get_property" value="width"/>
<doc xml:space="preserve">Returns the width of @texture, in pixels.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the width of the `GdkTexture`</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<instance-parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</instance-parameter>
</parameters>
</method>
<method name="save_to_png" c:identifier="gdk_texture_save_to_png">
<doc xml:space="preserve">Store the given @texture to the @filename as a PNG file.
This is a utility function intended for debugging and testing.
If you want more control over formats, proper error handling or
want to store to a [iface@Gio.File] or other location, you might want to
use [method@Gdk.Texture.save_to_png_bytes] or look into the
gdk-pixbuf library.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if saving succeeded, %FALSE on failure.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</instance-parameter>
<parameter name="filename" transfer-ownership="none">
<doc xml:space="preserve">the filename to store to</doc>
<type name="filename" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="save_to_png_bytes" c:identifier="gdk_texture_save_to_png_bytes" version="4.6">
<doc xml:space="preserve">Store the given @texture in memory as a PNG file.
Use [ctor@Gdk.Texture.new_from_bytes] to read it back.
If you want to serialize a texture, this is a convenient and
portable way to do that.
If you need more control over the generated image, such as
attaching metadata, you should look into an image handling
library such as the gdk-pixbuf library.
If you are dealing with high dynamic range float data, you
might also want to consider [method@Gdk.Texture.save_to_tiff_bytes]
instead.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a newly allocated `GBytes` containing PNG data</doc>
<type name="GLib.Bytes" c:type="GBytes*"/>
</return-value>
<parameters>
<instance-parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</instance-parameter>
</parameters>
</method>
<method name="save_to_tiff" c:identifier="gdk_texture_save_to_tiff" version="4.6">
<doc xml:space="preserve">Store the given @texture to the @filename as a TIFF file.
GTK will attempt to store data without loss.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if saving succeeded, %FALSE on failure.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</instance-parameter>
<parameter name="filename" transfer-ownership="none">
<doc xml:space="preserve">the filename to store to</doc>
<type name="filename" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="save_to_tiff_bytes" c:identifier="gdk_texture_save_to_tiff_bytes" version="4.6">
<doc xml:space="preserve">Store the given @texture in memory as a TIFF file.
Use [ctor@Gdk.Texture.new_from_bytes] to read it back.
This function is intended to store a representation of the
texture's data that is as accurate as possible. This is
particularly relevant when working with high dynamic range
images and floating-point texture data.
If that is not your concern and you are interested in a
smaller size and a more portable format, you might want to
use [method@Gdk.Texture.save_to_png_bytes].</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a newly allocated `GBytes` containing TIFF data</doc>
<type name="GLib.Bytes" c:type="GBytes*"/>
</return-value>
<parameters>
<instance-parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</instance-parameter>
</parameters>
</method>
<property name="height" writable="1" construct-only="1" transfer-ownership="none" getter="get_height">
<attribute name="org.gtk.Property.get" value="gdk_texture_get_height"/>
<doc xml:space="preserve">The height of the texture, in pixels.</doc>
<type name="gint" c:type="gint"/>
</property>
<property name="width" writable="1" construct-only="1" transfer-ownership="none" getter="get_width">
<attribute name="org.gtk.Property.get" value="gdk_texture_get_width"/>
<doc xml:space="preserve">The width of the texture, in pixels.</doc>
<type name="gint" c:type="gint"/>
</property>
</class>
<record name="TextureClass" c:type="GdkTextureClass" disguised="1" glib:is-gtype-struct-for="Texture"/>
<enumeration name="TextureError" version="4.6" glib:type-name="GdkTextureError" glib:get-type="gdk_texture_error_get_type" c:type="GdkTextureError" glib:error-domain="gdk-texture-error-quark">
<doc xml:space="preserve">Possible errors that can be returned by `GdkTexture` constructors.</doc>
<member name="too_large" value="0" c:identifier="GDK_TEXTURE_ERROR_TOO_LARGE" glib:nick="too-large" glib:name="GDK_TEXTURE_ERROR_TOO_LARGE">
<doc xml:space="preserve">Not enough memory to handle this image</doc>
</member>
<member name="corrupt_image" value="1" c:identifier="GDK_TEXTURE_ERROR_CORRUPT_IMAGE" glib:nick="corrupt-image" glib:name="GDK_TEXTURE_ERROR_CORRUPT_IMAGE">
<doc xml:space="preserve">The image data appears corrupted</doc>
</member>
<member name="unsupported_content" value="2" c:identifier="GDK_TEXTURE_ERROR_UNSUPPORTED_CONTENT" glib:nick="unsupported-content" glib:name="GDK_TEXTURE_ERROR_UNSUPPORTED_CONTENT">
<doc xml:space="preserve">The image contains features
that cannot be loaded</doc>
</member>
<member name="unsupported_format" value="3" c:identifier="GDK_TEXTURE_ERROR_UNSUPPORTED_FORMAT" glib:nick="unsupported-format" glib:name="GDK_TEXTURE_ERROR_UNSUPPORTED_FORMAT">
<doc xml:space="preserve">The image format is not supported</doc>
</member>
<function name="quark" c:identifier="gdk_texture_error_quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
</enumeration>
<record name="TimeCoord" c:type="GdkTimeCoord">
<doc xml:space="preserve">A `GdkTimeCoord` stores a single event in a motion history.</doc>
<field name="time" writable="1">
<doc xml:space="preserve">The timestamp for this event</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="flags" writable="1">
<doc xml:space="preserve">Flags indicating what axes are present</doc>
<type name="AxisFlags" c:type="GdkAxisFlags"/>
</field>
<field name="axes" writable="1">
<doc xml:space="preserve">axis values</doc>
<array zero-terminated="0" fixed-size="12">
<type name="gdouble" c:type="double"/>
</array>
</field>
</record>
<enumeration name="TitlebarGesture" version="4.4" glib:type-name="GdkTitlebarGesture" glib:get-type="gdk_titlebar_gesture_get_type" c:type="GdkTitlebarGesture">
<member name="double_click" value="1" c:identifier="GDK_TITLEBAR_GESTURE_DOUBLE_CLICK" glib:nick="double-click" glib:name="GDK_TITLEBAR_GESTURE_DOUBLE_CLICK">
</member>
<member name="right_click" value="2" c:identifier="GDK_TITLEBAR_GESTURE_RIGHT_CLICK" glib:nick="right-click" glib:name="GDK_TITLEBAR_GESTURE_RIGHT_CLICK">
</member>
<member name="middle_click" value="3" c:identifier="GDK_TITLEBAR_GESTURE_MIDDLE_CLICK" glib:nick="middle-click" glib:name="GDK_TITLEBAR_GESTURE_MIDDLE_CLICK">
</member>
</enumeration>
<interface name="Toplevel" c:symbol-prefix="toplevel" c:type="GdkToplevel" glib:type-name="GdkToplevel" glib:get-type="gdk_toplevel_get_type" glib:type-struct="ToplevelInterface">
<doc xml:space="preserve">A `GdkToplevel` is a freestanding toplevel surface.
The `GdkToplevel` interface provides useful APIs for interacting with
the windowing system, such as controlling maximization and size of the
surface, setting icons and transient parents for dialogs.</doc>
<prerequisite name="Surface"/>
<method name="begin_move" c:identifier="gdk_toplevel_begin_move">
<doc xml:space="preserve">Begins an interactive move operation.
You might use this function to implement draggable titlebars.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve">the device used for the operation</doc>
<type name="Device" c:type="GdkDevice*"/>
</parameter>
<parameter name="button" transfer-ownership="none">
<doc xml:space="preserve">the button being used to drag, or 0 for a keyboard-initiated drag</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve">surface X coordinate of mouse click that began the drag</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve">surface Y coordinate of mouse click that began the drag</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="timestamp" transfer-ownership="none">
<doc xml:space="preserve">timestamp of mouse click that began the drag (use
[method@Gdk.Event.get_time])</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</method>
<method name="begin_resize" c:identifier="gdk_toplevel_begin_resize">
<doc xml:space="preserve">Begins an interactive resize operation.
You might use this function to implement a &#x201C;window resize grip.&#x201D;</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="edge" transfer-ownership="none">
<doc xml:space="preserve">the edge or corner from which the drag is started</doc>
<type name="SurfaceEdge" c:type="GdkSurfaceEdge"/>
</parameter>
<parameter name="device" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the device used for the operation</doc>
<type name="Device" c:type="GdkDevice*"/>
</parameter>
<parameter name="button" transfer-ownership="none">
<doc xml:space="preserve">the button being used to drag, or 0 for a keyboard-initiated drag</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve">surface X coordinate of mouse click that began the drag</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve">surface Y coordinate of mouse click that began the drag</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="timestamp" transfer-ownership="none">
<doc xml:space="preserve">timestamp of mouse click that began the drag (use
[method@Gdk.Event.get_time])</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</method>
<method name="focus" c:identifier="gdk_toplevel_focus">
<doc xml:space="preserve">Sets keyboard focus to @surface.
In most cases, [method@Gtk.Window.present_with_time] should be
used on a [class@Gtk.Window], rather than calling this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="timestamp" transfer-ownership="none">
<doc xml:space="preserve">timestamp of the event triggering the surface focus</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</method>
<method name="get_state" c:identifier="gdk_toplevel_get_state" glib:get-property="state">
<attribute name="org.gtk.Method.get_property" value="state"/>
<doc xml:space="preserve">Gets the bitwise or of the currently active surface state flags,
from the `GdkToplevelState` enumeration.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">surface state bitfield</doc>
<type name="ToplevelState" c:type="GdkToplevelState"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
</parameters>
</method>
<method name="inhibit_system_shortcuts" c:identifier="gdk_toplevel_inhibit_system_shortcuts">
<doc xml:space="preserve">Requests that the @toplevel inhibit the system shortcuts.
This is asking the desktop environment/windowing system to let all
keyboard events reach the surface, as long as it is focused, instead
of triggering system actions.
If granted, the rerouting remains active until the default shortcuts
processing is restored with [method@Gdk.Toplevel.restore_system_shortcuts],
or the request is revoked by the desktop environment, windowing system
or the user.
A typical use case for this API is remote desktop or virtual machine
viewers which need to inhibit the default system keyboard shortcuts
so that the remote session or virtual host gets those instead of the
local environment.
The windowing system or desktop environment may ask the user to grant
or deny the request or even choose to ignore the request entirely.
The caller can be notified whenever the request is granted or revoked
by listening to the [property@Gdk.Toplevel:shortcuts-inhibited] property.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="event" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the `GdkEvent` that is triggering the inhibit
request, or %NULL if none is available</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
</parameters>
</method>
<method name="lower" c:identifier="gdk_toplevel_lower">
<doc xml:space="preserve">Asks to lower the @toplevel below other windows.
The windowing system may choose to ignore the request.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the surface was lowered</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
</parameters>
</method>
<method name="minimize" c:identifier="gdk_toplevel_minimize">
<doc xml:space="preserve">Asks to minimize the @toplevel.
The windowing system may choose to ignore the request.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the surface was minimized</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
</parameters>
</method>
<method name="present" c:identifier="gdk_toplevel_present">
<doc xml:space="preserve">Present @toplevel after having processed the `GdkToplevelLayout` rules.
If the toplevel was previously not showing, it will be showed,
otherwise it will change layout according to @layout.
GDK may emit the [signal@Gdk.Toplevel::compute-size] signal to let
the user of this toplevel compute the preferred size of the toplevel
surface.
Presenting is asynchronous and the specified layout parameters are not
guaranteed to be respected.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">the `GdkToplevel` to show</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">the `GdkToplevelLayout` object used to layout</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</parameter>
</parameters>
</method>
<method name="restore_system_shortcuts" c:identifier="gdk_toplevel_restore_system_shortcuts">
<doc xml:space="preserve">Restore default system keyboard shortcuts which were previously
inhibited.
This undoes the effect of [method@Gdk.Toplevel.inhibit_system_shortcuts].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_decorated" c:identifier="gdk_toplevel_set_decorated" glib:set-property="decorated">
<attribute name="org.gtk.Method.set_property" value="decorated"/>
<doc xml:space="preserve">Sets the toplevel to be decorated.
Setting @decorated to %FALSE hints the desktop environment
that the surface has its own, client-side decorations and
does not need to have window decorations added.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="decorated" transfer-ownership="none">
<doc xml:space="preserve">%TRUE to request decorations</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="set_deletable" c:identifier="gdk_toplevel_set_deletable" glib:set-property="deletable">
<attribute name="org.gtk.Method.set_property" value="deletable"/>
<doc xml:space="preserve">Sets the toplevel to be deletable.
Setting @deletable to %TRUE hints the desktop environment
that it should offer the user a way to close the surface.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="deletable" transfer-ownership="none">
<doc xml:space="preserve">%TRUE to request a delete button</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="set_icon_list" c:identifier="gdk_toplevel_set_icon_list" glib:set-property="icon-list">
<attribute name="org.gtk.Method.set_property" value="icon-list"/>
<doc xml:space="preserve">Sets a list of icons for the surface.
One of these will be used to represent the surface in iconic form.
The icon may be shown in window lists or task bars. Which icon
size is shown depends on the window manager. The window manager
can scale the icon but setting several size icons can give better
image quality.
Note that some platforms don't support surface icons.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="surfaces" transfer-ownership="none">
<doc xml:space="preserve">
A list of textures to use as icon, of different sizes</doc>
<type name="GLib.List" c:type="GList*">
<type name="Texture"/>
</type>
</parameter>
</parameters>
</method>
<method name="set_modal" c:identifier="gdk_toplevel_set_modal" glib:set-property="modal">
<attribute name="org.gtk.Method.set_property" value="modal"/>
<doc xml:space="preserve">Sets the toplevel to be modal.
The application can use this hint to tell the
window manager that a certain surface has modal
behaviour. The window manager can use this information
to handle modal surfaces in a special way.
You should only use this on surfaces for which you have
previously called [method@Gdk.Toplevel.set_transient_for].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="modal" transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the surface is modal, %FALSE otherwise.</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="set_startup_id" c:identifier="gdk_toplevel_set_startup_id" glib:set-property="startup-id">
<attribute name="org.gtk.Method.set_property" value="startup-id"/>
<doc xml:space="preserve">Sets the startup notification ID.
When using GTK, typically you should use
[method@Gtk.Window.set_startup_id] instead of this
low-level function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="startup_id" transfer-ownership="none">
<doc xml:space="preserve">a string with startup-notification identifier</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="set_title" c:identifier="gdk_toplevel_set_title" glib:set-property="title">
<attribute name="org.gtk.Method.set_property" value="title"/>
<doc xml:space="preserve">Sets the title of a toplevel surface.
The title maybe be displayed in the titlebar,
in lists of windows, etc.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="title" transfer-ownership="none">
<doc xml:space="preserve">title of @surface</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="set_transient_for" c:identifier="gdk_toplevel_set_transient_for" glib:set-property="transient-for">
<attribute name="org.gtk.Method.set_property" value="transient-for"/>
<doc xml:space="preserve">Sets a transient-for parent.
Indicates to the window manager that @surface is a transient
dialog associated with the application surface @parent. This
allows the window manager to do things like center @surface
on @parent and keep @surface above @parent.
See [method@Gtk.Window.set_transient_for] if you&#x2019;re using
[class@Gtk.Window] or [class@Gtk.Dialog].</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="parent" transfer-ownership="none">
<doc xml:space="preserve">another toplevel `GdkSurface`</doc>
<type name="Surface" c:type="GdkSurface*"/>
</parameter>
</parameters>
</method>
<method name="show_window_menu" c:identifier="gdk_toplevel_show_window_menu">
<doc xml:space="preserve">Asks the windowing system to show the window menu.
The window menu is the menu shown when right-clicking the titlebar
on traditional windows managed by the window manager. This is useful
for windows using client-side decorations, activating it with a
right-click on the window decorations.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the window menu was shown and %FALSE otherwise.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a `GdkEvent` to show the menu for</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
</parameters>
</method>
<method name="supports_edge_constraints" c:identifier="gdk_toplevel_supports_edge_constraints">
<doc xml:space="preserve">Returns whether the desktop environment supports
tiled window states.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the desktop environment supports tiled window states</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
</parameters>
</method>
<method name="titlebar_gesture" c:identifier="gdk_toplevel_titlebar_gesture" version="4.4">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="toplevel" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevel`</doc>
<type name="Toplevel" c:type="GdkToplevel*"/>
</instance-parameter>
<parameter name="gesture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTitlebarGesture`</doc>
<type name="TitlebarGesture" c:type="GdkTitlebarGesture"/>
</parameter>
</parameters>
</method>
<property name="decorated" writable="1" transfer-ownership="none" setter="set_decorated">
<attribute name="org.gtk.Property.set" value="gdk_toplevel_set_decorated"/>
<doc xml:space="preserve">Whether the window manager should add decorations.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="deletable" writable="1" transfer-ownership="none" setter="set_deletable">
<attribute name="org.gtk.Property.set" value="gdk_toplevel_set_deletable"/>
<doc xml:space="preserve">Whether the window manager should allow to close the surface.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="fullscreen-mode" writable="1" transfer-ownership="none">
<doc xml:space="preserve">The fullscreen mode of the surface.</doc>
<type name="FullscreenMode"/>
</property>
<property name="icon-list" writable="1" transfer-ownership="none" setter="set_icon_list">
<attribute name="org.gtk.Property.set" value="gdk_toplevel_set_icon_list"/>
<doc xml:space="preserve">A list of textures to use as icon.</doc>
<type name="gpointer" c:type="gpointer"/>
</property>
<property name="modal" writable="1" transfer-ownership="none" setter="set_modal">
<attribute name="org.gtk.Property.set" value="gdk_toplevel_set_modal"/>
<doc xml:space="preserve">Whether the surface is modal.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="shortcuts-inhibited" transfer-ownership="none">
<doc xml:space="preserve">Whether the surface should inhibit keyboard shortcuts.</doc>
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="startup-id" writable="1" transfer-ownership="none" setter="set_startup_id">
<attribute name="org.gtk.Property.set" value="gdk_toplevel_set_startup_id"/>
<doc xml:space="preserve">The startup ID of the surface.
See [class@Gdk.AppLaunchContext] for more information about
startup feedback.</doc>
<type name="utf8" c:type="gchar*"/>
</property>
<property name="state" transfer-ownership="none" getter="get_state">
<attribute name="org.gtk.Property.get" value="gdk_toplevel_get_state"/>
<doc xml:space="preserve">The state of the toplevel.</doc>
<type name="ToplevelState"/>
</property>
<property name="title" writable="1" transfer-ownership="none" setter="set_title">
<attribute name="org.gtk.Property.set" value="gdk_toplevel_set_title"/>
<doc xml:space="preserve">The title of the surface.</doc>
<type name="utf8" c:type="gchar*"/>
</property>
<property name="transient-for" writable="1" transfer-ownership="none" setter="set_transient_for">
<attribute name="org.gtk.Property.set" value="gdk_toplevel_set_transient_for"/>
<doc xml:space="preserve">The transient parent of the surface.</doc>
<type name="Surface"/>
</property>
<glib:signal name="compute-size" when="last">
<doc xml:space="preserve">Emitted when the size for the surface needs to be computed, when
it is present.
It will normally be emitted during or after [method@Gdk.Toplevel.present],
depending on the configuration received by the windowing system.
It may also be emitted at any other point in time, in response
to the windowing system spontaneously changing the configuration.
It is the responsibility of the toplevel user to handle this signal
and compute the desired size of the toplevel, given the information
passed via the [struct@Gdk.ToplevelSize] object. Failing to do so
will result in an arbitrary size being used as a result.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="size" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelSize`</doc>
<type name="ToplevelSize"/>
</parameter>
</parameters>
</glib:signal>
</interface>
<record name="ToplevelInterface" c:type="GdkToplevelInterface" disguised="1" glib:is-gtype-struct-for="Toplevel"/>
<record name="ToplevelLayout" c:type="GdkToplevelLayout" glib:type-name="GdkToplevelLayout" glib:get-type="gdk_toplevel_layout_get_type" c:symbol-prefix="toplevel_layout">
<doc xml:space="preserve">The `GdkToplevelLayout` struct contains information that
is necessary to present a sovereign window on screen.
The `GdkToplevelLayout` struct is necessary for using
[method@Gdk.Toplevel.present].
Toplevel surfaces are sovereign windows that can be presented
to the user in various states (maximized, on all workspaces,
etc).</doc>
<constructor name="new" c:identifier="gdk_toplevel_layout_new">
<doc xml:space="preserve">Create a toplevel layout description.
Used together with gdk_toplevel_present() to describe
how a toplevel surface should be placed and behave on-screen.
The size is in &#x201D;application pixels&#x201D;, not
&#x201D;device pixels&#x201D; (see gdk_surface_get_scale_factor()).</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">newly created instance of `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</return-value>
</constructor>
<method name="copy" c:identifier="gdk_toplevel_layout_copy">
<doc xml:space="preserve">Create a new `GdkToplevelLayout` and copy the contents of @layout into it.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a copy of @layout.</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="equal" c:identifier="gdk_toplevel_layout_equal">
<doc xml:space="preserve">Check whether @layout and @other has identical layout properties.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if @layout and @other have identical layout properties,
otherwise %FALSE.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
<parameter name="other" transfer-ownership="none">
<doc xml:space="preserve">another `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</parameter>
</parameters>
</method>
<method name="get_fullscreen" c:identifier="gdk_toplevel_layout_get_fullscreen">
<doc xml:space="preserve">If the layout specifies whether to the toplevel should go fullscreen,
the value pointed to by @fullscreen is set to %TRUE if it should go
fullscreen, or %FALSE, if it should go unfullscreen.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">whether the @layout specifies the fullscreen state for the toplevel</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a ``GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
<parameter name="fullscreen" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">location to store whether the toplevel should be fullscreen</doc>
<type name="gboolean" c:type="gboolean*"/>
</parameter>
</parameters>
</method>
<method name="get_fullscreen_monitor" c:identifier="gdk_toplevel_layout_get_fullscreen_monitor">
<doc xml:space="preserve">Returns the monitor that the layout is fullscreening
the surface on.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the monitor on which @layout fullscreens</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_maximized" c:identifier="gdk_toplevel_layout_get_maximized">
<doc xml:space="preserve">If the layout specifies whether to the toplevel should go maximized,
the value pointed to by @maximized is set to %TRUE if it should go
fullscreen, or %FALSE, if it should go unmaximized.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">whether the @layout specifies the maximized state for the toplevel</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
<parameter name="maximized" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">set to %TRUE if the toplevel should be maximized</doc>
<type name="gboolean" c:type="gboolean*"/>
</parameter>
</parameters>
</method>
<method name="get_resizable" c:identifier="gdk_toplevel_layout_get_resizable">
<doc xml:space="preserve">Returns whether the layout should allow the user
to resize the surface.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the layout is resizable</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="ref" c:identifier="gdk_toplevel_layout_ref">
<doc xml:space="preserve">Increases the reference count of @layout.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the same @layout</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_fullscreen" c:identifier="gdk_toplevel_layout_set_fullscreen">
<doc xml:space="preserve">Sets whether the layout should cause the surface
to be fullscreen when presented.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
<parameter name="fullscreen" transfer-ownership="none">
<doc xml:space="preserve">%TRUE to fullscreen the surface</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="monitor" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">the monitor to fullscreen on</doc>
<type name="Monitor" c:type="GdkMonitor*"/>
</parameter>
</parameters>
</method>
<method name="set_maximized" c:identifier="gdk_toplevel_layout_set_maximized">
<doc xml:space="preserve">Sets whether the layout should cause the surface
to be maximized when presented.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
<parameter name="maximized" transfer-ownership="none">
<doc xml:space="preserve">%TRUE to maximize</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="set_resizable" c:identifier="gdk_toplevel_layout_set_resizable">
<doc xml:space="preserve">Sets whether the layout should allow the user
to resize the surface after it has been presented.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
<parameter name="resizable" transfer-ownership="none">
<doc xml:space="preserve">%TRUE to allow resizing</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="unref" c:identifier="gdk_toplevel_layout_unref">
<doc xml:space="preserve">Decreases the reference count of @layout.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelLayout`</doc>
<type name="ToplevelLayout" c:type="GdkToplevelLayout*"/>
</instance-parameter>
</parameters>
</method>
</record>
<record name="ToplevelSize" c:type="GdkToplevelSize" disguised="1">
<doc xml:space="preserve">The `GdkToplevelSize` struct contains information that is useful
to compute the size of a toplevel.</doc>
<method name="get_bounds" c:identifier="gdk_toplevel_size_get_bounds">
<doc xml:space="preserve">Retrieves the bounds the toplevel is placed within.
The bounds represent the largest size a toplevel may have while still being
able to fit within some type of boundary. Depending on the backend, this may
be equivalent to the dimensions of the work area or the monitor on which the
window is being presented on, or something else that limits the way a
toplevel can be presented.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="size" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelSize`</doc>
<type name="ToplevelSize" c:type="GdkToplevelSize*"/>
</instance-parameter>
<parameter name="bounds_width" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for width</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="bounds_height" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for height</doc>
<type name="gint" c:type="int*"/>
</parameter>
</parameters>
</method>
<method name="set_min_size" c:identifier="gdk_toplevel_size_set_min_size">
<doc xml:space="preserve">Sets the minimum size of the toplevel.
The minimum size corresponds to the limitations the toplevel can be shrunk
to, without resulting in incorrect painting. A user of a `GdkToplevel` should
calculate these given both the existing size, and the bounds retrieved from
the `GdkToplevelSize` object.
The minimum size should be within the bounds (see
[method@Gdk.ToplevelSize.get_bounds]).</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="size" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelSize`</doc>
<type name="ToplevelSize" c:type="GdkToplevelSize*"/>
</instance-parameter>
<parameter name="min_width" transfer-ownership="none">
<doc xml:space="preserve">the minimum width</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="min_height" transfer-ownership="none">
<doc xml:space="preserve">the minimum height</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="set_shadow_width" c:identifier="gdk_toplevel_size_set_shadow_width">
<doc xml:space="preserve">Sets the shadows size of the toplevel.
The shadow width corresponds to the part of the computed surface size
that would consist of the shadow margin surrounding the window, would
there be any.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="size" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelSize`</doc>
<type name="ToplevelSize" c:type="GdkToplevelSize*"/>
</instance-parameter>
<parameter name="left" transfer-ownership="none">
<doc xml:space="preserve">width of the left part of the shadow</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="right" transfer-ownership="none">
<doc xml:space="preserve">width of the right part of the shadow</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="top" transfer-ownership="none">
<doc xml:space="preserve">height of the top part of the shadow</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="bottom" transfer-ownership="none">
<doc xml:space="preserve">height of the bottom part of the shadow</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
<method name="set_size" c:identifier="gdk_toplevel_size_set_size">
<doc xml:space="preserve">Sets the size the toplevel prefers to be resized to.
The size should be within the bounds (see
[method@Gdk.ToplevelSize.get_bounds]). The set size should
be considered as a hint, and should not be assumed to be
respected by the windowing system, or backend.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="size" transfer-ownership="none">
<doc xml:space="preserve">a `GdkToplevelSize`</doc>
<type name="ToplevelSize" c:type="GdkToplevelSize*"/>
</instance-parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">the width</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">the height</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</method>
</record>
<bitfield name="ToplevelState" glib:type-name="GdkToplevelState" glib:get-type="gdk_toplevel_state_get_type" c:type="GdkToplevelState">
<doc xml:space="preserve">Specifies the state of a toplevel surface.
On platforms that support information about individual edges, the
%GDK_TOPLEVEL_STATE_TILED state will be set whenever any of the individual
tiled states is set. On platforms that lack that support, the tiled state
will give an indication of tiledness without any of the per-edge states
being set.</doc>
<member name="minimized" value="1" c:identifier="GDK_TOPLEVEL_STATE_MINIMIZED" glib:nick="minimized" glib:name="GDK_TOPLEVEL_STATE_MINIMIZED">
<doc xml:space="preserve">the surface is minimized</doc>
</member>
<member name="maximized" value="2" c:identifier="GDK_TOPLEVEL_STATE_MAXIMIZED" glib:nick="maximized" glib:name="GDK_TOPLEVEL_STATE_MAXIMIZED">
<doc xml:space="preserve">the surface is maximized</doc>
</member>
<member name="sticky" value="4" c:identifier="GDK_TOPLEVEL_STATE_STICKY" glib:nick="sticky" glib:name="GDK_TOPLEVEL_STATE_STICKY">
<doc xml:space="preserve">the surface is sticky</doc>
</member>
<member name="fullscreen" value="8" c:identifier="GDK_TOPLEVEL_STATE_FULLSCREEN" glib:nick="fullscreen" glib:name="GDK_TOPLEVEL_STATE_FULLSCREEN">
<doc xml:space="preserve">the surface is maximized without decorations</doc>
</member>
<member name="above" value="16" c:identifier="GDK_TOPLEVEL_STATE_ABOVE" glib:nick="above" glib:name="GDK_TOPLEVEL_STATE_ABOVE">
<doc xml:space="preserve">the surface is kept above other surfaces</doc>
</member>
<member name="below" value="32" c:identifier="GDK_TOPLEVEL_STATE_BELOW" glib:nick="below" glib:name="GDK_TOPLEVEL_STATE_BELOW">
<doc xml:space="preserve">the surface is kept below other surfaces</doc>
</member>
<member name="focused" value="64" c:identifier="GDK_TOPLEVEL_STATE_FOCUSED" glib:nick="focused" glib:name="GDK_TOPLEVEL_STATE_FOCUSED">
<doc xml:space="preserve">the surface is presented as focused (with active decorations)</doc>
</member>
<member name="tiled" value="128" c:identifier="GDK_TOPLEVEL_STATE_TILED" glib:nick="tiled" glib:name="GDK_TOPLEVEL_STATE_TILED">
<doc xml:space="preserve">the surface is in a tiled state</doc>
</member>
<member name="top_tiled" value="256" c:identifier="GDK_TOPLEVEL_STATE_TOP_TILED" glib:nick="top-tiled" glib:name="GDK_TOPLEVEL_STATE_TOP_TILED">
<doc xml:space="preserve">whether the top edge is tiled</doc>
</member>
<member name="top_resizable" value="512" c:identifier="GDK_TOPLEVEL_STATE_TOP_RESIZABLE" glib:nick="top-resizable" glib:name="GDK_TOPLEVEL_STATE_TOP_RESIZABLE">
<doc xml:space="preserve">whether the top edge is resizable</doc>
</member>
<member name="right_tiled" value="1024" c:identifier="GDK_TOPLEVEL_STATE_RIGHT_TILED" glib:nick="right-tiled" glib:name="GDK_TOPLEVEL_STATE_RIGHT_TILED">
<doc xml:space="preserve">whether the right edge is tiled</doc>
</member>
<member name="right_resizable" value="2048" c:identifier="GDK_TOPLEVEL_STATE_RIGHT_RESIZABLE" glib:nick="right-resizable" glib:name="GDK_TOPLEVEL_STATE_RIGHT_RESIZABLE">
<doc xml:space="preserve">whether the right edge is resizable</doc>
</member>
<member name="bottom_tiled" value="4096" c:identifier="GDK_TOPLEVEL_STATE_BOTTOM_TILED" glib:nick="bottom-tiled" glib:name="GDK_TOPLEVEL_STATE_BOTTOM_TILED">
<doc xml:space="preserve">whether the bottom edge is tiled</doc>
</member>
<member name="bottom_resizable" value="8192" c:identifier="GDK_TOPLEVEL_STATE_BOTTOM_RESIZABLE" glib:nick="bottom-resizable" glib:name="GDK_TOPLEVEL_STATE_BOTTOM_RESIZABLE">
<doc xml:space="preserve">whether the bottom edge is resizable</doc>
</member>
<member name="left_tiled" value="16384" c:identifier="GDK_TOPLEVEL_STATE_LEFT_TILED" glib:nick="left-tiled" glib:name="GDK_TOPLEVEL_STATE_LEFT_TILED">
<doc xml:space="preserve">whether the left edge is tiled</doc>
</member>
<member name="left_resizable" value="32768" c:identifier="GDK_TOPLEVEL_STATE_LEFT_RESIZABLE" glib:nick="left-resizable" glib:name="GDK_TOPLEVEL_STATE_LEFT_RESIZABLE">
<doc xml:space="preserve">whether the left edge is resizable</doc>
</member>
</bitfield>
<class name="TouchEvent" c:symbol-prefix="touch_event" c:type="GdkTouchEvent" parent="Event" glib:type-name="GdkTouchEvent" glib:get-type="gdk_touch_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to a touch-based device.</doc>
<method name="get_emulating_pointer" c:identifier="gdk_touch_event_get_emulating_pointer">
<doc xml:space="preserve">Extracts whether a touch event is emulating a pointer event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if @event is emulating</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a touch event</doc>
<type name="TouchEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
</class>
<class name="TouchpadEvent" c:symbol-prefix="touchpad_event" c:type="GdkTouchpadEvent" parent="Event" glib:type-name="GdkTouchpadEvent" glib:get-type="gdk_touchpad_event_get_type" glib:fundamental="1">
<doc xml:space="preserve">An event related to a gesture on a touchpad device.
Unlike touchscreens, where the windowing system sends basic
sequences of begin, update, end events, and leaves gesture
recognition to the clients, touchpad gestures are typically
processed by the system, resulting in these events.</doc>
<method name="get_deltas" c:identifier="gdk_touchpad_event_get_deltas">
<doc xml:space="preserve">Extracts delta information from a touchpad event.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a touchpad event</doc>
<type name="TouchpadEvent" c:type="GdkEvent*"/>
</instance-parameter>
<parameter name="dx" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for x</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="dy" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for y</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</method>
<method name="get_gesture_phase" c:identifier="gdk_touchpad_event_get_gesture_phase">
<doc xml:space="preserve">Extracts the touchpad gesture phase from a touchpad event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the gesture phase of @event</doc>
<type name="TouchpadGesturePhase" c:type="GdkTouchpadGesturePhase"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a touchpad event</doc>
<type name="TouchpadEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_n_fingers" c:identifier="gdk_touchpad_event_get_n_fingers">
<doc xml:space="preserve">Extracts the number of fingers from a touchpad event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the number of fingers for @event</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a touchpad event</doc>
<type name="TouchpadEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_pinch_angle_delta" c:identifier="gdk_touchpad_event_get_pinch_angle_delta">
<doc xml:space="preserve">Extracts the angle delta from a touchpad pinch event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the angle delta of @event</doc>
<type name="gdouble" c:type="double"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a touchpad pinch event</doc>
<type name="TouchpadEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_pinch_scale" c:identifier="gdk_touchpad_event_get_pinch_scale">
<doc xml:space="preserve">Extracts the scale from a touchpad pinch event.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the scale of @event</doc>
<type name="gdouble" c:type="double"/>
</return-value>
<parameters>
<instance-parameter name="event" transfer-ownership="none">
<doc xml:space="preserve">a touchpad pinch event</doc>
<type name="TouchpadEvent" c:type="GdkEvent*"/>
</instance-parameter>
</parameters>
</method>
</class>
<enumeration name="TouchpadGesturePhase" glib:type-name="GdkTouchpadGesturePhase" glib:get-type="gdk_touchpad_gesture_phase_get_type" c:type="GdkTouchpadGesturePhase">
<doc xml:space="preserve">Specifies the current state of a touchpad gesture.
All gestures are guaranteed to begin with an event with phase
%GDK_TOUCHPAD_GESTURE_PHASE_BEGIN, followed by 0 or several events
with phase %GDK_TOUCHPAD_GESTURE_PHASE_UPDATE.
A finished gesture may have 2 possible outcomes, an event with phase
%GDK_TOUCHPAD_GESTURE_PHASE_END will be emitted when the gesture is
considered successful, this should be used as the hint to perform any
permanent changes.
Cancelled gestures may be so for a variety of reasons, due to hardware
or the compositor, or due to the gesture recognition layers hinting the
gesture did not finish resolutely (eg. a 3rd finger being added during
a pinch gesture). In these cases, the last event will report the phase
%GDK_TOUCHPAD_GESTURE_PHASE_CANCEL, this should be used as a hint
to undo any visible/permanent changes that were done throughout the
progress of the gesture.</doc>
<member name="begin" value="0" c:identifier="GDK_TOUCHPAD_GESTURE_PHASE_BEGIN" glib:nick="begin" glib:name="GDK_TOUCHPAD_GESTURE_PHASE_BEGIN">
<doc xml:space="preserve">The gesture has begun.</doc>
</member>
<member name="update" value="1" c:identifier="GDK_TOUCHPAD_GESTURE_PHASE_UPDATE" glib:nick="update" glib:name="GDK_TOUCHPAD_GESTURE_PHASE_UPDATE">
<doc xml:space="preserve">The gesture has been updated.</doc>
</member>
<member name="end" value="2" c:identifier="GDK_TOUCHPAD_GESTURE_PHASE_END" glib:nick="end" glib:name="GDK_TOUCHPAD_GESTURE_PHASE_END">
<doc xml:space="preserve">The gesture was finished, changes
should be permanently applied.</doc>
</member>
<member name="cancel" value="3" c:identifier="GDK_TOUCHPAD_GESTURE_PHASE_CANCEL" glib:nick="cancel" glib:name="GDK_TOUCHPAD_GESTURE_PHASE_CANCEL">
<doc xml:space="preserve">The gesture was cancelled, all
changes should be undone.</doc>
</member>
</enumeration>
<function-macro name="VULKAN_CONTEXT" c:identifier="GDK_VULKAN_CONTEXT" introspectable="0">
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<class name="VulkanContext" c:symbol-prefix="vulkan_context" c:type="GdkVulkanContext" parent="DrawContext" abstract="1" glib:type-name="GdkVulkanContext" glib:get-type="gdk_vulkan_context_get_type">
<doc xml:space="preserve">`GdkVulkanContext` is an object representing the platform-specific
Vulkan draw context.
`GdkVulkanContext`s are created for a surface using
[method@Gdk.Surface.create_vulkan_context], and the context will match
the characteristics of the surface.
Support for `GdkVulkanContext` is platform-specific and context creation
can fail, returning %NULL context.</doc>
<implements name="Gio.Initable"/>
<glib:signal name="images-updated" when="last">
<doc xml:space="preserve">Emitted when the images managed by this context have changed.
Usually this means that the swapchain had to be recreated,
for example in response to a change of the surface size.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
</class>
<enumeration name="VulkanError" glib:type-name="GdkVulkanError" glib:get-type="gdk_vulkan_error_get_type" c:type="GdkVulkanError" glib:error-domain="gdk-vulkan-error-quark">
<doc xml:space="preserve">Error enumeration for `GdkVulkanContext`.</doc>
<member name="unsupported" value="0" c:identifier="GDK_VULKAN_ERROR_UNSUPPORTED" glib:nick="unsupported" glib:name="GDK_VULKAN_ERROR_UNSUPPORTED">
<doc xml:space="preserve">Vulkan is not supported on this backend or has not been
compiled in.</doc>
</member>
<member name="not_available" value="1" c:identifier="GDK_VULKAN_ERROR_NOT_AVAILABLE" glib:nick="not-available" glib:name="GDK_VULKAN_ERROR_NOT_AVAILABLE">
<doc xml:space="preserve">Vulkan support is not available on this Surface</doc>
</member>
<function name="quark" c:identifier="gdk_vulkan_error_quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
</enumeration>
<function name="cairo_draw_from_gl" c:identifier="gdk_cairo_draw_from_gl" deprecated="1" deprecated-version="4.6">
<doc xml:space="preserve">The main way to not draw GL content in GTK.
It takes a render buffer ID (@source_type == GL_RENDERBUFFER) or a texture
id (@source_type == GL_TEXTURE) and draws it onto @cr with an OVER operation,
respecting the current clip. The top left corner of the rectangle specified
by @x, @y, @width and @height will be drawn at the current (0,0) position of
the `cairo_t`.
This will work for *all* `cairo_t`, as long as @surface is realized, but the
fallback implementation that reads back the pixels from the buffer may be
used in the general case. In the case of direct drawing to a surface with
no special effects applied to @cr it will however use a more efficient
approach.
For GL_RENDERBUFFER the code will always fall back to software for buffers
with alpha components, so make sure you use GL_TEXTURE if using alpha.
Calling this may change the current GL context.</doc>
<doc-deprecated xml:space="preserve">The function is overly complex and produces broken output
in various combinations of arguments. If you want to draw with GL textures
in GTK, use [ctor@Gdk.GLTexture.new]; if you want to use that texture in
Cairo, use [method@Gdk.Texture.download] to download the data into a Cairo
image surface.</doc-deprecated>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve">a cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">The surface we're rendering for (not necessarily into)</doc>
<type name="Surface" c:type="GdkSurface*"/>
</parameter>
<parameter name="source" transfer-ownership="none">
<doc xml:space="preserve">The GL ID of the source buffer</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="source_type" transfer-ownership="none">
<doc xml:space="preserve">The type of the @source</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="buffer_scale" transfer-ownership="none">
<doc xml:space="preserve">The scale-factor that the @source buffer is allocated for</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve">The source x position in @source to start copying from in GL coordinates</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve">The source y position in @source to start copying from in GL coordinates</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">The width of the region to draw</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">The height of the region to draw</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="cairo_rectangle" c:identifier="gdk_cairo_rectangle">
<doc xml:space="preserve">Adds the given rectangle to the current path of @cr.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve">a cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="rectangle" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRectangle`</doc>
<type name="Rectangle" c:type="const GdkRectangle*"/>
</parameter>
</parameters>
</function>
<function name="cairo_region" c:identifier="gdk_cairo_region">
<doc xml:space="preserve">Adds the given region to the current path of @cr.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve">a cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="region" transfer-ownership="none">
<doc xml:space="preserve">a `cairo_region_t`</doc>
<type name="cairo.Region" c:type="const cairo_region_t*"/>
</parameter>
</parameters>
</function>
<function name="cairo_region_create_from_surface" c:identifier="gdk_cairo_region_create_from_surface">
<doc xml:space="preserve">Creates region that covers the area where the given
@surface is more than 50% opaque.
This function takes into account device offsets that might be
set with cairo_surface_set_device_offset().</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">A `cairo_region_t`</doc>
<type name="cairo.Region" c:type="cairo_region_t*"/>
</return-value>
<parameters>
<parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">a cairo surface</doc>
<type name="cairo.Surface" c:type="cairo_surface_t*"/>
</parameter>
</parameters>
</function>
<function name="cairo_set_source_pixbuf" c:identifier="gdk_cairo_set_source_pixbuf">
<doc xml:space="preserve">Sets the given pixbuf as the source pattern for @cr.
The pattern has an extend mode of %CAIRO_EXTEND_NONE and is aligned
so that the origin of @pixbuf is @pixbuf_x, @pixbuf_y.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve">a cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="pixbuf" transfer-ownership="none">
<doc xml:space="preserve">a `GdkPixbuf`</doc>
<type name="GdkPixbuf.Pixbuf" c:type="const GdkPixbuf*"/>
</parameter>
<parameter name="pixbuf_x" transfer-ownership="none">
<doc xml:space="preserve">X coordinate of location to place upper left corner of @pixbuf</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="pixbuf_y" transfer-ownership="none">
<doc xml:space="preserve">Y coordinate of location to place upper left corner of @pixbuf</doc>
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</function>
<function name="cairo_set_source_rgba" c:identifier="gdk_cairo_set_source_rgba">
<doc xml:space="preserve">Sets the specified `GdkRGBA` as the source color of @cr.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve">a cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="rgba" transfer-ownership="none">
<doc xml:space="preserve">a `GdkRGBA`</doc>
<type name="RGBA" c:type="const GdkRGBA*"/>
</parameter>
</parameters>
</function>
<function name="content_deserialize_async" c:identifier="gdk_content_deserialize_async">
<doc xml:space="preserve">Read content from the given input stream and deserialize it, asynchronously.
The default I/O priority is %G_PRIORITY_DEFAULT (i.e. 0), and lower numbers
indicate a higher priority.
When the operation is finished, @callback will be called. You must then
call [func@Gdk.content_deserialize_finish] to get the result of the operation.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="stream" transfer-ownership="none">
<doc xml:space="preserve">a `GInputStream` to read the serialized content from</doc>
<type name="Gio.InputStream" c:type="GInputStream*"/>
</parameter>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">the mime type to deserialize from</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">the GType to deserialize from</doc>
<type name="GType" c:type="GType"/>
</parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">the I/O priority of the operation</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="6">
<doc xml:space="preserve">callback to call when the operation is done</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">data to pass to the callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</function>
<function name="content_deserialize_finish" c:identifier="gdk_content_deserialize_finish" throws="1">
<doc xml:space="preserve">Finishes a content deserialization operation.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the operation was successful. In this case,
@value is set. %FALSE if an error occurred. In this case,
@error is set</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">the `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
<parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve">return location for the result of the operation</doc>
<type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
</function>
<function name="content_formats_parse" c:identifier="gdk_content_formats_parse" moved-to="ContentFormats.parse" version="4.4">
<doc xml:space="preserve">Parses the given @string into `GdkContentFormats` and
returns the formats.
Strings printed via [method@Gdk.ContentFormats.to_string]
can be read in again successfully using this function.
If @string does not describe valid content formats, %NULL
is returned.</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">the content formats if @string is valid</doc>
<type name="ContentFormats" c:type="GdkContentFormats*"/>
</return-value>
<parameters>
<parameter name="string" transfer-ownership="none">
<doc xml:space="preserve">the string to parse</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</function>
<function name="content_register_deserializer" c:identifier="gdk_content_register_deserializer">
<doc xml:space="preserve">Registers a function to deserialize object of a given type.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">the mime type which the function can deserialize from</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">the type of objects that the function creates</doc>
<type name="GType" c:type="GType"/>
</parameter>
<parameter name="deserialize" transfer-ownership="none" scope="notified" closure="3" destroy="4">
<doc xml:space="preserve">the callback</doc>
<type name="ContentDeserializeFunc" c:type="GdkContentDeserializeFunc"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">data that @deserialize can access</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<doc xml:space="preserve">destroy notify for @data</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</function>
<function name="content_register_serializer" c:identifier="gdk_content_register_serializer">
<doc xml:space="preserve">Registers a function to serialize objects of a given type.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve">the type of objects that the function can serialize</doc>
<type name="GType" c:type="GType"/>
</parameter>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">the mime type to serialize to</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="serialize" transfer-ownership="none" scope="notified" closure="3" destroy="4">
<doc xml:space="preserve">the callback</doc>
<type name="ContentSerializeFunc" c:type="GdkContentSerializeFunc"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">data that @serialize can access</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<doc xml:space="preserve">destroy notify for @data</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</function>
<function name="content_serialize_async" c:identifier="gdk_content_serialize_async">
<doc xml:space="preserve">Serialize content and write it to the given output stream, asynchronously.
The default I/O priority is %G_PRIORITY_DEFAULT (i.e. 0), and lower numbers
indicate a higher priority.
When the operation is finished, @callback will be called. You must then
call [func@Gdk.content_serialize_finish] to get the result of the operation.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="stream" transfer-ownership="none">
<doc xml:space="preserve">a `GOutputStream` to write the serialized content to</doc>
<type name="Gio.OutputStream" c:type="GOutputStream*"/>
</parameter>
<parameter name="mime_type" transfer-ownership="none">
<doc xml:space="preserve">the mime type to serialize to</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<doc xml:space="preserve">the content to serialize</doc>
<type name="GObject.Value" c:type="const GValue*"/>
</parameter>
<parameter name="io_priority" transfer-ownership="none">
<doc xml:space="preserve">the I/O priority of the operation</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">optional `GCancellable` object</doc>
<type name="Gio.Cancellable" c:type="GCancellable*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="6">
<doc xml:space="preserve">callback to call when the operation is done</doc>
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">data to pass to the callback function</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</function>
<function name="content_serialize_finish" c:identifier="gdk_content_serialize_finish" throws="1">
<doc xml:space="preserve">Finishes a content serialization operation.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the operation was successful, %FALSE if an
error occurred. In this case, @error is set</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve">the `GAsyncResult`</doc>
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
</function>
<function name="drag_action_is_unique" c:identifier="gdk_drag_action_is_unique" moved-to="DragAction.is_unique">
<doc xml:space="preserve">Checks if @action represents a single action or includes
multiple actions.
When @action is 0 - ie no action was given, %TRUE
is returned.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if exactly one action was given</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="action" transfer-ownership="none">
<doc xml:space="preserve">a `GdkDragAction`</doc>
<type name="DragAction" c:type="GdkDragAction"/>
</parameter>
</parameters>
</function>
<function name="events_get_angle" c:identifier="gdk_events_get_angle">
<doc xml:space="preserve">Returns the relative angle from @event1 to @event2.
The relative angle is the angle between the X axis and the line
through both events' positions. The rotation direction for positive
angles is from the positive X axis towards the positive Y axis.
This assumes that both events have X/Y information.
If not, this function returns %FALSE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the angle could be calculated.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="event1" transfer-ownership="none">
<doc xml:space="preserve">first `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
<parameter name="event2" transfer-ownership="none">
<doc xml:space="preserve">second `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
<parameter name="angle" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the relative angle between both events</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</function>
<function name="events_get_center" c:identifier="gdk_events_get_center">
<doc xml:space="preserve">Returns the point halfway between the events' positions.
This assumes that both events have X/Y information.
If not, this function returns %FALSE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the center could be calculated.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="event1" transfer-ownership="none">
<doc xml:space="preserve">first `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
<parameter name="event2" transfer-ownership="none">
<doc xml:space="preserve">second `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
<parameter name="x" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the X coordinate of the center</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
<parameter name="y" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the Y coordinate of the center</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</function>
<function name="events_get_distance" c:identifier="gdk_events_get_distance">
<doc xml:space="preserve">Returns the distance between the event locations.
This assumes that both events have X/Y information.
If not, this function returns %FALSE.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if the distance could be calculated.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="event1" transfer-ownership="none">
<doc xml:space="preserve">first `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
<parameter name="event2" transfer-ownership="none">
<doc xml:space="preserve">second `GdkEvent`</doc>
<type name="Event" c:type="GdkEvent*"/>
</parameter>
<parameter name="distance" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for the distance</doc>
<type name="gdouble" c:type="double*"/>
</parameter>
</parameters>
</function>
<function name="gl_error_quark" c:identifier="gdk_gl_error_quark" moved-to="GLError.quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
<function name="intern_mime_type" c:identifier="gdk_intern_mime_type">
<doc xml:space="preserve">Canonicalizes the given mime type and interns the result.
If @string is not a valid mime type, %NULL is returned instead.
See RFC 2048 for the syntax if mime types.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">An interned string for the canonicalized
mime type or %NULL if the string wasn't a valid mime type</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<parameter name="string" transfer-ownership="none">
<doc xml:space="preserve">string of a potential mime type</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</function>
<function name="keyval_convert_case" c:identifier="gdk_keyval_convert_case">
<doc xml:space="preserve">Obtains the upper- and lower-case versions of the keyval @symbol.
Examples of keyvals are `GDK_KEY_a`, `GDK_KEY_Enter`, `GDK_KEY_F1`, etc.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="symbol" transfer-ownership="none">
<doc xml:space="preserve">a keyval</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="lower" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for lowercase version of @symbol</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="upper" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve">return location for uppercase version of @symbol</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</function>
<function name="keyval_from_name" c:identifier="gdk_keyval_from_name">
<doc xml:space="preserve">Converts a key name to a key value.
The names are the same as those in the
`gdk/gdkkeysyms.h` header file
but without the leading &#x201C;GDK_KEY_&#x201D;.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the corresponding key value, or %GDK_KEY_VoidSymbol
if the key name is not a valid key</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<parameter name="keyval_name" transfer-ownership="none">
<doc xml:space="preserve">a key name</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</function>
<function name="keyval_is_lower" c:identifier="gdk_keyval_is_lower">
<doc xml:space="preserve">Returns %TRUE if the given key value is in lower case.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if @keyval is in lower case, or if @keyval is not
subject to case conversion.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="keyval" transfer-ownership="none">
<doc xml:space="preserve">a key value.</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</function>
<function name="keyval_is_upper" c:identifier="gdk_keyval_is_upper">
<doc xml:space="preserve">Returns %TRUE if the given key value is in upper case.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if @keyval is in upper case, or if @keyval is not subject to
case conversion.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="keyval" transfer-ownership="none">
<doc xml:space="preserve">a key value.</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</function>
<function name="keyval_name" c:identifier="gdk_keyval_name">
<doc xml:space="preserve">Converts a key value into a symbolic name.
The names are the same as those in the
`gdk/gdkkeysyms.h` header file
but without the leading &#x201C;GDK_KEY_&#x201D;.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a string containing the name
of the key</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<parameter name="keyval" transfer-ownership="none">
<doc xml:space="preserve">a key value</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</function>
<function name="keyval_to_lower" c:identifier="gdk_keyval_to_lower">
<doc xml:space="preserve">Converts a key value to lower case, if applicable.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the lower case form of @keyval, or @keyval itself if it is already
in lower case or it is not subject to case conversion.</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<parameter name="keyval" transfer-ownership="none">
<doc xml:space="preserve">a key value.</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</function>
<function name="keyval_to_unicode" c:identifier="gdk_keyval_to_unicode">
<doc xml:space="preserve">Convert from a GDK key symbol to the corresponding Unicode
character.
Note that the conversion does not take the current locale
into consideration, which might be expected for particular
keyvals, such as %GDK_KEY_KP_Decimal.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the corresponding unicode character, or 0 if there
is no corresponding character.</doc>
<type name="guint32" c:type="guint32"/>
</return-value>
<parameters>
<parameter name="keyval" transfer-ownership="none">
<doc xml:space="preserve">a GDK key symbol</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</function>
<function name="keyval_to_upper" c:identifier="gdk_keyval_to_upper">
<doc xml:space="preserve">Converts a key value to upper case, if applicable.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the upper case form of @keyval, or @keyval itself if it is already
in upper case or it is not subject to case conversion.</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<parameter name="keyval" transfer-ownership="none">
<doc xml:space="preserve">a key value.</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</function>
<function name="paintable_new_empty" c:identifier="gdk_paintable_new_empty" moved-to="Paintable.new_empty">
<doc xml:space="preserve">Returns a paintable that has the given intrinsic size and draws nothing.
This is often useful for implementing the
[vfunc@Gdk.Paintable.get_current_image] virtual function
when the paintable is in an incomplete state (like a
[class@Gtk.MediaStream] before receiving the first frame).</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a `GdkPaintable`</doc>
<type name="Paintable" c:type="GdkPaintable*"/>
</return-value>
<parameters>
<parameter name="intrinsic_width" transfer-ownership="none">
<doc xml:space="preserve">The intrinsic width to report. Can be 0 for no width.</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="intrinsic_height" transfer-ownership="none">
<doc xml:space="preserve">The intrinsic height to report. Can be 0 for no height.</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="pango_layout_get_clip_region" c:identifier="gdk_pango_layout_get_clip_region" introspectable="0">
<doc xml:space="preserve">Obtains a clip region which contains the areas where the given ranges
of text would be drawn.
@x_origin and @y_origin are the top left point to center the layout.
@index_ranges should contain ranges of bytes in the layout&#x2019;s text.
Note that the regions returned correspond to logical extents of the text
ranges, not ink extents. So the drawn layout may in fact touch areas out of
the clip region. The clip region is mainly useful for highlightling parts
of text, such as when text is selected.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a clip region containing the given ranges</doc>
<type name="cairo.Region" c:type="cairo_region_t*"/>
</return-value>
<parameters>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a `PangoLayout`</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
<parameter name="x_origin" transfer-ownership="none">
<doc xml:space="preserve">X pixel where you intend to draw the layout with this clip</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y_origin" transfer-ownership="none">
<doc xml:space="preserve">Y pixel where you intend to draw the layout with this clip</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="index_ranges" transfer-ownership="none">
<doc xml:space="preserve">array of byte indexes into the layout, where even members of array are start indexes and odd elements are end indexes</doc>
<type name="gint" c:type="const int*"/>
</parameter>
<parameter name="n_ranges" transfer-ownership="none">
<doc xml:space="preserve">number of ranges in @index_ranges, i.e. half the size of @index_ranges</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="pango_layout_line_get_clip_region" c:identifier="gdk_pango_layout_line_get_clip_region" introspectable="0">
<doc xml:space="preserve">Obtains a clip region which contains the areas where the given
ranges of text would be drawn.
@x_origin and @y_origin are the top left position of the layout.
@index_ranges should contain ranges of bytes in the layout&#x2019;s text.
The clip region will include space to the left or right of the line
(to the layout bounding box) if you have indexes above or below the
indexes contained inside the line. This is to draw the selection all
the way to the side of the layout. However, the clip region is in line
coordinates, not layout coordinates.
Note that the regions returned correspond to logical extents of the text
ranges, not ink extents. So the drawn line may in fact touch areas out of
the clip region. The clip region is mainly useful for highlightling parts
of text, such as when text is selected.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a clip region containing the given ranges</doc>
<type name="cairo.Region" c:type="cairo_region_t*"/>
</return-value>
<parameters>
<parameter name="line" transfer-ownership="none">
<doc xml:space="preserve">a `PangoLayoutLine`</doc>
<type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
</parameter>
<parameter name="x_origin" transfer-ownership="none">
<doc xml:space="preserve">X pixel where you intend to draw the layout line with this clip</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y_origin" transfer-ownership="none">
<doc xml:space="preserve">baseline pixel where you intend to draw the layout line with this clip</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="index_ranges" transfer-ownership="none">
<doc xml:space="preserve">array of byte indexes into the layout, where even
members of array are start indexes and odd elements are end indexes</doc>
<array zero-terminated="0" c:type="const int*">
<type name="gint" c:type="int"/>
</array>
</parameter>
<parameter name="n_ranges" transfer-ownership="none">
<doc xml:space="preserve">number of ranges in @index_ranges, i.e. half the size of @index_ranges</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="pixbuf_get_from_surface" c:identifier="gdk_pixbuf_get_from_surface">
<doc xml:space="preserve">Transfers image data from a `cairo_surface_t` and converts it
to a `GdkPixbuf`.
This allows you to efficiently read individual pixels from cairo surfaces.
This function will create an RGB pixbuf with 8 bits per channel.
The pixbuf will contain an alpha channel if the @surface contains one.</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">A newly-created pixbuf with a
reference count of 1</doc>
<type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<parameter name="surface" transfer-ownership="none">
<doc xml:space="preserve">surface to copy from</doc>
<type name="cairo.Surface" c:type="cairo_surface_t*"/>
</parameter>
<parameter name="src_x" transfer-ownership="none">
<doc xml:space="preserve">Source X coordinate within @surface</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="src_y" transfer-ownership="none">
<doc xml:space="preserve">Source Y coordinate within @surface</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">Width in pixels of region to get</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve">Height in pixels of region to get</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="pixbuf_get_from_texture" c:identifier="gdk_pixbuf_get_from_texture">
<doc xml:space="preserve">Creates a new pixbuf from @texture.
This should generally not be used in newly written code as later
stages will almost certainly convert the pixbuf back into a texture
to draw it on screen.</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a new `GdkPixbuf`</doc>
<type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<parameter name="texture" transfer-ownership="none">
<doc xml:space="preserve">a `GdkTexture`</doc>
<type name="Texture" c:type="GdkTexture*"/>
</parameter>
</parameters>
</function>
<function name="set_allowed_backends" c:identifier="gdk_set_allowed_backends">
<doc xml:space="preserve">Sets a list of backends that GDK should try to use.
This can be useful if your application does not
work with certain GDK backends.
By default, GDK tries all included backends.
For example:
```c
gdk_set_allowed_backends ("wayland,macos,*");
```
instructs GDK to try the Wayland backend first, followed by the
MacOs backend, and then all others.
If the `GDK_BACKEND` environment variable is set, it determines
what backends are tried in what order, while still respecting the
set of allowed backends that are specified by this function.
The possible backend names are:
- `broadway`
- `macos`
- `wayland`.
- `win32`
- `x11`
You can also include a `*` in the list to try all remaining backends.
This call must happen prior to functions that open a display, such
as [func@Gdk.Display.open], `gtk_init()`, or `gtk_init_check()`
in order to take effect.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="backends" transfer-ownership="none">
<doc xml:space="preserve">a comma-separated list of backends</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</function>
<function name="texture_error_quark" c:identifier="gdk_texture_error_quark" moved-to="TextureError.quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
<function name="toplevel_size_get_type" c:identifier="gdk_toplevel_size_get_type">
<return-value transfer-ownership="none">
<type name="GType" c:type="GType"/>
</return-value>
</function>
<function name="unicode_to_keyval" c:identifier="gdk_unicode_to_keyval">
<doc xml:space="preserve">Convert from a Unicode character to a key symbol.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the corresponding GDK key symbol, if one exists.
or, if there is no corresponding symbol, wc | 0x01000000</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<parameter name="wc" transfer-ownership="none">
<doc xml:space="preserve">a Unicode character</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</function>
<function name="vulkan_error_quark" c:identifier="gdk_vulkan_error_quark" moved-to="VulkanError.quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
</namespace>
</repository>