<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="GdkToplevel">
<refmeta>
<refentrytitle role="top_of_page" id="GdkToplevel.top_of_page">Toplevels</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GDK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Toplevels</refname>
<refpurpose>Interface for toplevel surfaces</refpurpose>
</refnamediv>

<refsect1 id="GdkToplevel.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-present">gdk_toplevel_present</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-minimize">gdk_toplevel_minimize</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-lower">gdk_toplevel_lower</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-focus">gdk_toplevel_focus</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkToplevelState"><returnvalue>GdkToplevelState</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-get-state">gdk_toplevel_get_state</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-set-title">gdk_toplevel_set_title</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-set-startup-id">gdk_toplevel_set_startup_id</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-set-transient-for">gdk_toplevel_set_transient_for</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-set-modal">gdk_toplevel_set_modal</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-set-icon-list">gdk_toplevel_set_icon_list</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-show-window-menu">gdk_toplevel_show_window_menu</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-set-decorated">gdk_toplevel_set_decorated</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-set-deletable">gdk_toplevel_set_deletable</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-supports-edge-constraints">gdk_toplevel_supports_edge_constraints</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-inhibit-system-shortcuts">gdk_toplevel_inhibit_system_shortcuts</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-restore-system-shortcuts">gdk_toplevel_restore_system_shortcuts</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-begin-resize">gdk_toplevel_begin_resize</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gdk-toplevel-begin-move">gdk_toplevel_begin_move</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GdkToplevel.properties" role="properties">
<title role="properties.title">Properties</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="properties_type" colwidth="150px"/>
<colspec colname="properties_name" colwidth="300px"/>
<colspec colname="properties_flags" colwidth="200px"/>
<tbody>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GdkToplevel--decorated">decorated</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GdkToplevel--deletable">deletable</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GdkFullscreenMode"><type>GdkFullscreenMode</type></link></entry><entry role="property_name"><link linkend="GdkToplevel--fullscreen-mode">fullscreen-mode</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gpointer"><type>gpointer</type></link></entry><entry role="property_name"><link linkend="GdkToplevel--icon-list">icon-list</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GdkToplevel--modal">modal</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GdkToplevel--shortcuts-inhibited">shortcuts-inhibited</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="char"><type>char</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkToplevel--startup-id">startup-id</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GdkToplevelState"><type>GdkToplevelState</type></link></entry><entry role="property_name"><link linkend="GdkToplevel--state">state</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="char"><type>char</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkToplevel--title">title</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GdkSurface"><type>GdkSurface</type></link>&#160;*</entry><entry role="property_name"><link linkend="GdkToplevel--transient-for">transient-for</link></entry><entry role="property_flags">Read / Write</entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GdkToplevel.signals" role="signal_proto">
<title role="signal_proto.title">Signals</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="signal_proto_type" colwidth="150px"/>
<colspec colname="signal_proto_name" colwidth="300px"/>
<colspec colname="signal_proto_flags" colwidth="200px"/>
<tbody>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GdkToplevel-compute-size">compute-size</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GdkToplevel.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="GdkToplevel-struct">GdkToplevel</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="GdkToplevelState">GdkToplevelState</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="GdkFullscreenMode">GdkFullscreenMode</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="GdkSurfaceEdge">GdkSurfaceEdge</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GdkToplevel.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GInterface">GInterface</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> GdkToplevel
</screen>
</refsect1>
<refsect1 id="GdkToplevel.prerequisites" role="prerequisites">
<title role="prerequisites.title">Prerequisites</title>
<para>
GdkToplevel requires
 <link linkend="GdkSurface">GdkSurface</link>.</para>

</refsect1>

<refsect1 id="GdkToplevel.includes"><title>Includes</title><synopsis>#include &lt;gdk/gdk.h&gt;
</synopsis></refsect1>

<refsect1 id="GdkToplevel.description" role="desc">
<title role="desc.title">Description</title>
<para>A <link linkend="GdkToplevel"><type>GdkToplevel</type></link> is a freestanding toplevel surface.</para>

</refsect1>
<refsect1 id="GdkToplevel.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="gdk-toplevel-present" role="function">
<title>gdk_toplevel_present&#160;()</title>
<indexterm zone="gdk-toplevel-present"><primary>gdk_toplevel_present</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_toplevel_present (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                      <parameter><link linkend="GdkToplevelLayout"><type>GdkToplevelLayout</type></link> *layout</parameter>);</programlisting>
<para>Present <parameter>toplevel</parameter>
 after having processed the <link linkend="GdkToplevelLayout"><type>GdkToplevelLayout</type></link> rules.
If the toplevel was previously not showing, it will be showed,
otherwise it will change layout according to <parameter>layout</parameter>
.</para>
<para>GDK may emit the 'compute-size' signal to let the user of this toplevel
compute the preferred size of the toplevel surface. See
<link linkend="GdkToplevel-compute-size"><type>“compute-size”</type></link> for details.</para>
<para>Presenting may fail.</para>
<refsect3 id="gdk-toplevel-present.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>the <link linkend="GdkToplevel"><type>GdkToplevel</type></link> to show</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>layout</para></entry>
<entry role="parameter_description"><para>the <link linkend="GdkToplevelLayout"><type>GdkToplevelLayout</type></link> object used to layout</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-toplevel-present.returns" role="returns">
<title>Returns</title>
<para> <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if <parameter>toplevel</parameter>
failed to be presented, otherwise <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>.</para>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-minimize" role="function">
<title>gdk_toplevel_minimize&#160;()</title>
<indexterm zone="gdk-toplevel-minimize"><primary>gdk_toplevel_minimize</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_toplevel_minimize (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>);</programlisting>
<para>Asks to minimize the <parameter>toplevel</parameter>
.</para>
<para>The windowing system may choose to ignore the request.</para>
<refsect3 id="gdk-toplevel-minimize.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-toplevel-minimize.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the surface was minimized</para>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-lower" role="function">
<title>gdk_toplevel_lower&#160;()</title>
<indexterm zone="gdk-toplevel-lower"><primary>gdk_toplevel_lower</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_toplevel_lower (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>);</programlisting>
<para>Asks to lower the <parameter>toplevel</parameter>
 below other windows.</para>
<para>The windowing system may choose to ignore the request.</para>
<refsect3 id="gdk-toplevel-lower.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-toplevel-lower.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the surface was lowered</para>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-focus" role="function">
<title>gdk_toplevel_focus&#160;()</title>
<indexterm zone="gdk-toplevel-focus"><primary>gdk_toplevel_focus</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_focus (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                    <parameter><link linkend="guint32"><type>guint32</type></link> timestamp</parameter>);</programlisting>
<para>Sets keyboard focus to <parameter>surface</parameter>
.</para>
<para>In most cases, <link linkend="gtk-window-present-with-time"><function>gtk_window_present_with_time()</function></link> should be used
on a <link linkend="GtkWindow"><type>GtkWindow</type></link>, rather than calling this function.</para>
<refsect3 id="gdk-toplevel-focus.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>timestamp</para></entry>
<entry role="parameter_description"><para>timestamp of the event triggering the surface focus</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-get-state" role="function">
<title>gdk_toplevel_get_state&#160;()</title>
<indexterm zone="gdk-toplevel-get-state"><primary>gdk_toplevel_get_state</primary></indexterm>
<programlisting language="C"><link linkend="GdkToplevelState"><returnvalue>GdkToplevelState</returnvalue></link>
gdk_toplevel_get_state (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>);</programlisting>
<para>Gets the bitwise OR of the currently active surface state flags,
from the <link linkend="GdkToplevelState"><type>GdkToplevelState</type></link> enumeration.</para>
<refsect3 id="gdk-toplevel-get-state.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-toplevel-get-state.returns" role="returns">
<title>Returns</title>
<para> surface state bitfield</para>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-set-title" role="function">
<title>gdk_toplevel_set_title&#160;()</title>
<indexterm zone="gdk-toplevel-set-title"><primary>gdk_toplevel_set_title</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_set_title (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                        <parameter>const <link linkend="char"><type>char</type></link> *title</parameter>);</programlisting>
<para>Sets the title of a toplevel surface, to be displayed in the titlebar,
in lists of windows, etc.</para>
<refsect3 id="gdk-toplevel-set-title.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>title</para></entry>
<entry role="parameter_description"><para>title of <parameter>surface</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-set-startup-id" role="function">
<title>gdk_toplevel_set_startup_id&#160;()</title>
<indexterm zone="gdk-toplevel-set-startup-id"><primary>gdk_toplevel_set_startup_id</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_set_startup_id (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                             <parameter>const <link linkend="char"><type>char</type></link> *startup_id</parameter>);</programlisting>
<para>When using GTK, typically you should use <link linkend="gtk-window-set-startup-id"><function>gtk_window_set_startup_id()</function></link>
instead of this low-level function.</para>
<refsect3 id="gdk-toplevel-set-startup-id.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>startup_id</para></entry>
<entry role="parameter_description"><para>a string with startup-notification identifier</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-set-transient-for" role="function">
<title>gdk_toplevel_set_transient_for&#160;()</title>
<indexterm zone="gdk-toplevel-set-transient-for"><primary>gdk_toplevel_set_transient_for</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_set_transient_for (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                                <parameter><link linkend="GdkSurface"><type>GdkSurface</type></link> *parent</parameter>);</programlisting>
<para>Indicates to the window manager that <parameter>surface</parameter>
 is a transient dialog
associated with the application surface <parameter>parent</parameter>
. This allows the
window manager to do things like center <parameter>surface</parameter>
 on <parameter>parent</parameter>
 and
keep <parameter>surface</parameter>
 above <parameter>parent</parameter>
.</para>
<para>See <link linkend="gtk-window-set-transient-for"><function>gtk_window_set_transient_for()</function></link> if you’re using <link linkend="GtkWindow"><type>GtkWindow</type></link> or
<link linkend="GtkDialog"><type>GtkDialog</type></link>.</para>
<refsect3 id="gdk-toplevel-set-transient-for.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>parent</para></entry>
<entry role="parameter_description"><para>another toplevel <link linkend="GdkSurface"><type>GdkSurface</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-set-modal" role="function">
<title>gdk_toplevel_set_modal&#160;()</title>
<indexterm zone="gdk-toplevel-set-modal"><primary>gdk_toplevel_set_modal</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_set_modal (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                        <parameter><link linkend="gboolean"><type>gboolean</type></link> modal</parameter>);</programlisting>
<para>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.</para>
<para>You should only use this on surfaces for which you have
previously called <link linkend="gdk-toplevel-set-transient-for"><function>gdk_toplevel_set_transient_for()</function></link>.</para>
<refsect3 id="gdk-toplevel-set-modal.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>A toplevel surface</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>modal</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the surface is modal, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-set-icon-list" role="function">
<title>gdk_toplevel_set_icon_list&#160;()</title>
<indexterm zone="gdk-toplevel-set-icon-list"><primary>gdk_toplevel_set_icon_list</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_set_icon_list (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                            <parameter><link linkend="GList"><type>GList</type></link> *surfaces</parameter>);</programlisting>
<para>Sets a list of icons for the surface.</para>
<para>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.</para>
<para>Note that some platforms don't support surface icons.</para>
<refsect3 id="gdk-toplevel-set-icon-list.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>surfaces</para></entry>
<entry role="parameter_description"><para>A list of textures to use as icon, of different sizes. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>transfer none</acronym>][<acronym>element-type</acronym> GdkTexture]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-show-window-menu" role="function">
<title>gdk_toplevel_show_window_menu&#160;()</title>
<indexterm zone="gdk-toplevel-show-window-menu"><primary>gdk_toplevel_show_window_menu</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_toplevel_show_window_menu (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                               <parameter><link linkend="GdkEvent"><type>GdkEvent</type></link> *event</parameter>);</programlisting>
<para>Asks the windowing system to show the window menu.</para>
<para>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.</para>
<refsect3 id="gdk-toplevel-show-window-menu.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>event</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkEvent"><type>GdkEvent</type></link> to show the menu for</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-toplevel-show-window-menu.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the window menu was shown and <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.</para>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-set-decorated" role="function">
<title>gdk_toplevel_set_decorated&#160;()</title>
<indexterm zone="gdk-toplevel-set-decorated"><primary>gdk_toplevel_set_decorated</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_set_decorated (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                            <parameter><link linkend="gboolean"><type>gboolean</type></link> decorated</parameter>);</programlisting>
<para>Setting <parameter>decorated</parameter>
 to <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> hints the desktop environment
that the surface has its own, client-side decorations and
does not need to have window decorations added.</para>
<refsect3 id="gdk-toplevel-set-decorated.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>decorated</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to request decorations</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-set-deletable" role="function">
<title>gdk_toplevel_set_deletable&#160;()</title>
<indexterm zone="gdk-toplevel-set-deletable"><primary>gdk_toplevel_set_deletable</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_set_deletable (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                            <parameter><link linkend="gboolean"><type>gboolean</type></link> deletable</parameter>);</programlisting>
<para>Setting <parameter>deletable</parameter>
 to <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> hints the desktop environment
that it should offer the user a way to close the surface.</para>
<refsect3 id="gdk-toplevel-set-deletable.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>deletable</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to request a delete button</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-supports-edge-constraints" role="function">
<title>gdk_toplevel_supports_edge_constraints&#160;()</title>
<indexterm zone="gdk-toplevel-supports-edge-constraints"><primary>gdk_toplevel_supports_edge_constraints</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gdk_toplevel_supports_edge_constraints
                               (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>);</programlisting>
<para>Returns whether the desktop environment supports
tiled window states.</para>
<refsect3 id="gdk-toplevel-supports-edge-constraints.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gdk-toplevel-supports-edge-constraints.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the desktop environment supports
tiled window states</para>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-inhibit-system-shortcuts" role="function">
<title>gdk_toplevel_inhibit_system_shortcuts&#160;()</title>
<indexterm zone="gdk-toplevel-inhibit-system-shortcuts"><primary>gdk_toplevel_inhibit_system_shortcuts</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_inhibit_system_shortcuts (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                                       <parameter><link linkend="GdkEvent"><type>GdkEvent</type></link> *event</parameter>);</programlisting>
<para>Requests that the <parameter>toplevel</parameter>
 inhibit the system shortcuts, 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.</para>
<para>If granted, the rerouting remains active until the default shortcuts
processing is restored with <link linkend="gdk-toplevel-restore-system-shortcuts"><function>gdk_toplevel_restore_system_shortcuts()</function></link>,
or the request is revoked by the desktop environment, windowing system
or the user.</para>
<para>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.</para>
<para>The windowing system or desktop environment may ask the user to grant
or deny the request or even choose to ignore the request entirely.</para>
<para>The caller can be notified whenever the request is granted or revoked
by listening to the GdkToplevel::shortcuts-inhibited property.</para>
<refsect3 id="gdk-toplevel-inhibit-system-shortcuts.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>the <link linkend="GdkToplevel"><type>GdkToplevel</type></link> requesting system keyboard shortcuts</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>event</para></entry>
<entry role="parameter_description"><para>the <link linkend="GdkEvent"><type>GdkEvent</type></link> that is triggering the inhibit
request, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if none is available. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-restore-system-shortcuts" role="function">
<title>gdk_toplevel_restore_system_shortcuts&#160;()</title>
<indexterm zone="gdk-toplevel-restore-system-shortcuts"><primary>gdk_toplevel_restore_system_shortcuts</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_restore_system_shortcuts (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>);</programlisting>
<para>Restore default system keyboard shortcuts which were previously
requested to be inhibited by <link linkend="gdk-toplevel-inhibit-system-shortcuts"><function>gdk_toplevel_inhibit_system_shortcuts()</function></link>.</para>
<refsect3 id="gdk-toplevel-restore-system-shortcuts.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-begin-resize" role="function">
<title>gdk_toplevel_begin_resize&#160;()</title>
<indexterm zone="gdk-toplevel-begin-resize"><primary>gdk_toplevel_begin_resize</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_begin_resize (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                           <parameter><link linkend="GdkSurfaceEdge"><type>GdkSurfaceEdge</type></link> edge</parameter>,
                           <parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>,
                           <parameter><link linkend="int"><type>int</type></link> button</parameter>,
                           <parameter><link linkend="double"><type>double</type></link> x</parameter>,
                           <parameter><link linkend="double"><type>double</type></link> y</parameter>,
                           <parameter><link linkend="guint32"><type>guint32</type></link> timestamp</parameter>);</programlisting>
<para>Begins an interactive resize operation (for a toplevel surface).
You might use this function to implement a “window resize grip.”</para>
<refsect3 id="gdk-toplevel-begin-resize.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>edge</para></entry>
<entry role="parameter_description"><para>the edge or corner from which the drag is started</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>the device used for the operation. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>button</para></entry>
<entry role="parameter_description"><para>the button being used to drag, or 0 for a keyboard-initiated drag</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>surface X coordinate of mouse click that began the drag</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>surface Y coordinate of mouse click that began the drag</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>timestamp</para></entry>
<entry role="parameter_description"><para>timestamp of mouse click that began the drag (use <link linkend="gdk-event-get-time"><function>gdk_event_get_time()</function></link>)</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gdk-toplevel-begin-move" role="function">
<title>gdk_toplevel_begin_move&#160;()</title>
<indexterm zone="gdk-toplevel-begin-move"><primary>gdk_toplevel_begin_move</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gdk_toplevel_begin_move (<parameter><link linkend="GdkToplevel"><type>GdkToplevel</type></link> *toplevel</parameter>,
                         <parameter><link linkend="GdkDevice"><type>GdkDevice</type></link> *device</parameter>,
                         <parameter><link linkend="int"><type>int</type></link> button</parameter>,
                         <parameter><link linkend="double"><type>double</type></link> x</parameter>,
                         <parameter><link linkend="double"><type>double</type></link> y</parameter>,
                         <parameter><link linkend="guint32"><type>guint32</type></link> timestamp</parameter>);</programlisting>
<para>Begins an interactive move operation (for a toplevel surface).
You might use this function to implement draggable titlebars.</para>
<refsect3 id="gdk-toplevel-begin-move.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>device</para></entry>
<entry role="parameter_description"><para>the device used for the operation</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>button</para></entry>
<entry role="parameter_description"><para>the button being used to drag, or 0 for a keyboard-initiated drag</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>surface X coordinate of mouse click that began the drag</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>surface Y coordinate of mouse click that began the drag</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>timestamp</para></entry>
<entry role="parameter_description"><para>timestamp of mouse click that began the drag</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GdkToplevel.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GdkToplevel-struct" role="struct">
<title>GdkToplevel</title>
<indexterm zone="GdkToplevel-struct"><primary>GdkToplevel</primary></indexterm>
<programlisting language="C">typedef struct _GdkToplevel GdkToplevel;</programlisting>
</refsect2>
<refsect2 id="GdkToplevelState" role="enum">
<title>enum GdkToplevelState</title>
<indexterm zone="GdkToplevelState"><primary>GdkToplevelState</primary></indexterm>
<para>Specifies the state of a toplevel surface.</para>
<para>On platforms that support information about individual edges, the <link linkend="GDK-TOPLEVEL-STATE-TILED:CAPS"><literal>GDK_TOPLEVEL_STATE_TILED</literal></link>
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.</para>
<refsect3 id="GdkToplevelState.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-WITHDRAWN:CAPS">GDK_TOPLEVEL_STATE_WITHDRAWN</para></entry>
<entry role="enum_member_description"><para>the surface is not shown</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-MINIMIZED:CAPS">GDK_TOPLEVEL_STATE_MINIMIZED</para></entry>
<entry role="enum_member_description"><para>the surface is minimized</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-MAXIMIZED:CAPS">GDK_TOPLEVEL_STATE_MAXIMIZED</para></entry>
<entry role="enum_member_description"><para>the surface is maximized</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-STICKY:CAPS">GDK_TOPLEVEL_STATE_STICKY</para></entry>
<entry role="enum_member_description"><para>the surface is sticky</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-FULLSCREEN:CAPS">GDK_TOPLEVEL_STATE_FULLSCREEN</para></entry>
<entry role="enum_member_description"><para>the surface is maximized without decorations</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-ABOVE:CAPS">GDK_TOPLEVEL_STATE_ABOVE</para></entry>
<entry role="enum_member_description"><para>the surface is kept above other surfaces</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-BELOW:CAPS">GDK_TOPLEVEL_STATE_BELOW</para></entry>
<entry role="enum_member_description"><para>the surface is kept below other surfaces</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-FOCUSED:CAPS">GDK_TOPLEVEL_STATE_FOCUSED</para></entry>
<entry role="enum_member_description"><para>the surface is presented as focused (with active decorations)</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-TILED:CAPS">GDK_TOPLEVEL_STATE_TILED</para></entry>
<entry role="enum_member_description"><para>the surface is in a tiled state</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-TOP-TILED:CAPS">GDK_TOPLEVEL_STATE_TOP_TILED</para></entry>
<entry role="enum_member_description"><para>whether the top edge is tiled</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-TOP-RESIZABLE:CAPS">GDK_TOPLEVEL_STATE_TOP_RESIZABLE</para></entry>
<entry role="enum_member_description"><para>whether the top edge is resizable</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-RIGHT-TILED:CAPS">GDK_TOPLEVEL_STATE_RIGHT_TILED</para></entry>
<entry role="enum_member_description"><para>whether the right edge is tiled</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-RIGHT-RESIZABLE:CAPS">GDK_TOPLEVEL_STATE_RIGHT_RESIZABLE</para></entry>
<entry role="enum_member_description"><para>whether the right edge is resizable</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-BOTTOM-TILED:CAPS">GDK_TOPLEVEL_STATE_BOTTOM_TILED</para></entry>
<entry role="enum_member_description"><para>whether the bottom edge is tiled</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-BOTTOM-RESIZABLE:CAPS">GDK_TOPLEVEL_STATE_BOTTOM_RESIZABLE</para></entry>
<entry role="enum_member_description"><para>whether the bottom edge is resizable</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-LEFT-TILED:CAPS">GDK_TOPLEVEL_STATE_LEFT_TILED</para></entry>
<entry role="enum_member_description"><para>whether the left edge is tiled</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-TOPLEVEL-STATE-LEFT-RESIZABLE:CAPS">GDK_TOPLEVEL_STATE_LEFT_RESIZABLE</para></entry>
<entry role="enum_member_description"><para>whether the left edge is resizable</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GdkFullscreenMode" role="enum">
<title>enum GdkFullscreenMode</title>
<indexterm zone="GdkFullscreenMode"><primary>GdkFullscreenMode</primary></indexterm>
<para>Indicates which monitor (in a multi-head setup) a surface should span over
when in fullscreen mode.</para>
<refsect3 id="GdkFullscreenMode.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="GDK-FULLSCREEN-ON-CURRENT-MONITOR:CAPS">GDK_FULLSCREEN_ON_CURRENT_MONITOR</para></entry>
<entry role="enum_member_description"><para>Fullscreen on current monitor only.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-FULLSCREEN-ON-ALL-MONITORS:CAPS">GDK_FULLSCREEN_ON_ALL_MONITORS</para></entry>
<entry role="enum_member_description"><para>Span across all monitors when fullscreen.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GdkSurfaceEdge" role="enum">
<title>enum GdkSurfaceEdge</title>
<indexterm zone="GdkSurfaceEdge"><primary>GdkSurfaceEdge</primary></indexterm>
<para>Determines a surface edge or corner.</para>
<refsect3 id="GdkSurfaceEdge.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SURFACE-EDGE-NORTH-WEST:CAPS">GDK_SURFACE_EDGE_NORTH_WEST</para></entry>
<entry role="enum_member_description"><para>the top left corner.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SURFACE-EDGE-NORTH:CAPS">GDK_SURFACE_EDGE_NORTH</para></entry>
<entry role="enum_member_description"><para>the top edge.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SURFACE-EDGE-NORTH-EAST:CAPS">GDK_SURFACE_EDGE_NORTH_EAST</para></entry>
<entry role="enum_member_description"><para>the top right corner.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SURFACE-EDGE-WEST:CAPS">GDK_SURFACE_EDGE_WEST</para></entry>
<entry role="enum_member_description"><para>the left edge.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SURFACE-EDGE-EAST:CAPS">GDK_SURFACE_EDGE_EAST</para></entry>
<entry role="enum_member_description"><para>the right edge.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SURFACE-EDGE-SOUTH-WEST:CAPS">GDK_SURFACE_EDGE_SOUTH_WEST</para></entry>
<entry role="enum_member_description"><para>the lower left corner.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SURFACE-EDGE-SOUTH:CAPS">GDK_SURFACE_EDGE_SOUTH</para></entry>
<entry role="enum_member_description"><para>the lower edge.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GDK-SURFACE-EDGE-SOUTH-EAST:CAPS">GDK_SURFACE_EDGE_SOUTH_EAST</para></entry>
<entry role="enum_member_description"><para>the lower right corner.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GdkToplevel.property-details" role="property_details">
<title role="property_details.title">Property Details</title>
<refsect2 id="GdkToplevel--decorated" role="property"><title>The <literal>“decorated”</literal> property</title>
<indexterm zone="GdkToplevel--decorated"><primary>GdkToplevel:decorated</primary></indexterm>
<programlisting>  “decorated”                <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Decorated.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read / Write</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GdkToplevel--deletable" role="property"><title>The <literal>“deletable”</literal> property</title>
<indexterm zone="GdkToplevel--deletable"><primary>GdkToplevel:deletable</primary></indexterm>
<programlisting>  “deletable”                <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Deletable.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read / Write</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GdkToplevel--fullscreen-mode" role="property"><title>The <literal>“fullscreen-mode”</literal> property</title>
<indexterm zone="GdkToplevel--fullscreen-mode"><primary>GdkToplevel:fullscreen-mode</primary></indexterm>
<programlisting>  “fullscreen-mode”          <link linkend="GdkFullscreenMode"><type>GdkFullscreenMode</type></link></programlisting>
<para>Fullscreen mode.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read / Write</para>
<para>Default value: GDK_FULLSCREEN_ON_CURRENT_MONITOR</para>
</refsect2>
<refsect2 id="GdkToplevel--icon-list" role="property"><title>The <literal>“icon-list”</literal> property</title>
<indexterm zone="GdkToplevel--icon-list"><primary>GdkToplevel:icon-list</primary></indexterm>
<programlisting>  “icon-list”                <link linkend="gpointer"><type>gpointer</type></link></programlisting>
<para>The list of icon textures.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read / Write</para>
</refsect2>
<refsect2 id="GdkToplevel--modal" role="property"><title>The <literal>“modal”</literal> property</title>
<indexterm zone="GdkToplevel--modal"><primary>GdkToplevel:modal</primary></indexterm>
<programlisting>  “modal”                    <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether the surface is modal.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read / Write</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GdkToplevel--shortcuts-inhibited" role="property"><title>The <literal>“shortcuts-inhibited”</literal> property</title>
<indexterm zone="GdkToplevel--shortcuts-inhibited"><primary>GdkToplevel:shortcuts-inhibited</primary></indexterm>
<programlisting>  “shortcuts-inhibited”      <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether keyboard shortcuts are inhibited.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GdkToplevel--startup-id" role="property"><title>The <literal>“startup-id”</literal> property</title>
<indexterm zone="GdkToplevel--startup-id"><primary>GdkToplevel:startup-id</primary></indexterm>
<programlisting>  “startup-id”               <link linkend="char"><type>char</type></link>&#160;*</programlisting>
<para>The startup ID of the surface.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read / Write</para>
<para>Default value: NULL</para>
</refsect2>
<refsect2 id="GdkToplevel--state" role="property"><title>The <literal>“state”</literal> property</title>
<indexterm zone="GdkToplevel--state"><primary>GdkToplevel:state</primary></indexterm>
<programlisting>  “state”                    <link linkend="GdkToplevelState"><type>GdkToplevelState</type></link></programlisting>
<para>State.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read</para>
<para>Default value: GDK_TOPLEVEL_STATE_WITHDRAWN</para>
</refsect2>
<refsect2 id="GdkToplevel--title" role="property"><title>The <literal>“title”</literal> property</title>
<indexterm zone="GdkToplevel--title"><primary>GdkToplevel:title</primary></indexterm>
<programlisting>  “title”                    <link linkend="char"><type>char</type></link>&#160;*</programlisting>
<para>The title of the surface.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read / Write</para>
<para>Default value: NULL</para>
</refsect2>
<refsect2 id="GdkToplevel--transient-for" role="property"><title>The <literal>“transient-for”</literal> property</title>
<indexterm zone="GdkToplevel--transient-for"><primary>GdkToplevel:transient-for</primary></indexterm>
<programlisting>  “transient-for”            <link linkend="GdkSurface"><type>GdkSurface</type></link>&#160;*</programlisting>
<para>The transient parent of the surface.</para><para>Owner: GdkToplevel</para>
<para>Flags: Read / Write</para>
</refsect2>

</refsect1>
<refsect1 id="GdkToplevel.signal-details" role="signals">
<title role="signals.title">Signal Details</title>
<refsect2 id="GdkToplevel-compute-size" role="signal"><title>The <literal>“compute-size”</literal> signal</title>
<indexterm zone="GdkToplevel-compute-size"><primary>GdkToplevel::compute-size</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GdkToplevel"><type>GdkToplevel</type></link>     *toplevel,
               <link linkend="GdkToplevelSize"><type>GdkToplevelSize</type></link> *size,
               <link linkend="gpointer"><type>gpointer</type></link>         user_data)</programlisting>
<para>Compute the desired size of the toplevel, given the information passed via
the <link linkend="GdkToplevelSize"><type>GdkToplevelSize</type></link> object.</para>
<para>It will normally be emitted during or after <link linkend="gdk-toplevel-present"><function>gdk_toplevel_present()</function></link>,
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.</para>
<para>It is the responsibility of the GdkToplevel user to handle this signal;
failing to do so will result in an arbitrary size being used as a result.</para>
<refsect3 id="GdkToplevel-compute-size.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>toplevel</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevel"><type>GdkToplevel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>size</para></entry>
<entry role="parameter_description"><para>a <link linkend="GdkToplevelSize"><type>GdkToplevelSize</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> Gdk.ToplevelSize][<acronym>out caller-allocates</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></para>
</refsect2>
</refsect1>

</refentry>
