<?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 version="1.2"
            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">
  <include name="Clutter" version="10"/>
  <include name="Gcr" version="3"/>
  <include name="Gvc" version="1.0"/>
  <include name="Meta" version="10"/>
  <include name="NM" version="1.0"/>
  <include name="PolkitAgent" version="1.0"/>
  <include name="St" version="1.0"/>
  <namespace name="Shell"
             version="0.1"
             shared-library="libgnome-shell.so"
             c:identifier-prefixes="Shell"
             c:symbol-prefixes="shell">
    <bitfield name="ActionMode"
              glib:type-name="ShellActionMode"
              glib:get-type="shell_action_mode_get_type"
              c:type="ShellActionMode">
      <doc xml:space="preserve"
           filename="../src/shell-action-modes.h"
           line="1">Controls in which GNOME Shell states an action (like keybindings and gestures)
should be handled.</doc>
      <member name="none"
              value="0"
              c:identifier="SHELL_ACTION_MODE_NONE"
              glib:nick="none"
              glib:name="SHELL_ACTION_MODE_NONE">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="3">block action</doc>
      </member>
      <member name="normal"
              value="1"
              c:identifier="SHELL_ACTION_MODE_NORMAL"
              glib:nick="normal"
              glib:name="SHELL_ACTION_MODE_NORMAL">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="4">allow action when in window mode,
    e.g. when the focus is in an application window</doc>
      </member>
      <member name="overview"
              value="2"
              c:identifier="SHELL_ACTION_MODE_OVERVIEW"
              glib:nick="overview"
              glib:name="SHELL_ACTION_MODE_OVERVIEW">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="6">allow action while the overview
    is active</doc>
      </member>
      <member name="lock_screen"
              value="4"
              c:identifier="SHELL_ACTION_MODE_LOCK_SCREEN"
              glib:nick="lock-screen"
              glib:name="SHELL_ACTION_MODE_LOCK_SCREEN">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="8">allow action when the screen
    is locked, e.g. when the screen shield is shown</doc>
      </member>
      <member name="unlock_screen"
              value="8"
              c:identifier="SHELL_ACTION_MODE_UNLOCK_SCREEN"
              glib:nick="unlock-screen"
              glib:name="SHELL_ACTION_MODE_UNLOCK_SCREEN">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="10">allow action in the unlock
    dialog</doc>
      </member>
      <member name="login_screen"
              value="16"
              c:identifier="SHELL_ACTION_MODE_LOGIN_SCREEN"
              glib:nick="login-screen"
              glib:name="SHELL_ACTION_MODE_LOGIN_SCREEN">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="12">allow action in the login screen</doc>
      </member>
      <member name="system_modal"
              value="32"
              c:identifier="SHELL_ACTION_MODE_SYSTEM_MODAL"
              glib:nick="system-modal"
              glib:name="SHELL_ACTION_MODE_SYSTEM_MODAL">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="13">allow action when a system modal
    dialog (e.g. authentication or session dialogs) is open</doc>
      </member>
      <member name="looking_glass"
              value="64"
              c:identifier="SHELL_ACTION_MODE_LOOKING_GLASS"
              glib:nick="looking-glass"
              glib:name="SHELL_ACTION_MODE_LOOKING_GLASS">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="15">allow action in looking glass</doc>
      </member>
      <member name="popup"
              value="128"
              c:identifier="SHELL_ACTION_MODE_POPUP"
              glib:nick="popup"
              glib:name="SHELL_ACTION_MODE_POPUP">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="16">allow action while a shell menu is open</doc>
      </member>
      <member name="all"
              value="-1"
              c:identifier="SHELL_ACTION_MODE_ALL"
              glib:nick="all"
              glib:name="SHELL_ACTION_MODE_ALL">
        <doc xml:space="preserve"
             filename="../src/shell-action-modes.h"
             line="17">always allow action</doc>
      </member>
    </bitfield>
    <class name="App"
           c:symbol-prefix="app"
           c:type="ShellApp"
           parent="GObject.Object"
           glib:type-name="ShellApp"
           glib:get-type="shell_app_get_type"
           glib:type-struct="AppClass">
      <source-position filename="../src/shell-app.h" line="13"/>
      <method name="activate" c:identifier="shell_app_activate">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="510">Like shell_app_activate_full(), but using the default workspace and
event timestamp.</doc>
        <source-position filename="../src/shell-app.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="512">a #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="activate_full" c:identifier="shell_app_activate_full">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="523">Perform an appropriate default action for operating on this application,
dependent on its current state.  For example, if the application is not
currently running, launch it.  If it is running, activate the most
recently used NORMAL window (or if that window has a transient, the most
recently used transient for that window).</doc>
        <source-position filename="../src/shell-app.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="525">a #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="526">launch on this workspace, or -1 for default. Ignored if
  activating an existing window</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="528">Event timestamp</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="activate_window" c:identifier="shell_app_activate_window">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="407">Bring all windows for the given app to the foreground,
but ensure that @window is on top.  If @window is %NULL,
the window with the most recent user time for the app
will be used.

This function has no effect if @app is not currently running.</doc>
        <source-position filename="../src/shell-app.h" line="37"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="409">a #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="window"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="410">Window to be focused</doc>
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="411">Event timestamp</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_open_new_window"
              c:identifier="shell_app_can_open_new_window">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="631">Returns %TRUE if the app supports opening a new window through
shell_app_open_new_window() (ie, if calling that function will
result in actually opening a new window and not something else,
like presenting the most recently active one)</doc>
        <source-position filename="../src/shell-app.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="633">a #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="compare" c:identifier="shell_app_compare">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="868">Compare one #ShellApp instance to another, in the following way:
  - Running applications sort before not-running applications.
  - If one of them has non-minimized windows and the other does not,
    the one with visible windows is first.
  - Finally, the application which the user interacted with most recently
    compares earlier.</doc>
        <source-position filename="../src/shell-app.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="871">A #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compare_by_name" c:identifier="shell_app_compare_by_name">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="1607">Order two applications by name.</doc>
        <source-position filename="../src/shell-app.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app.c"
               line="1614">-1, 0, or 1; suitable for use as a comparison function
for e.g. g_slist_sort()</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1609">One app</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1610">The other app</doc>
            <type name="App" c:type="ShellApp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_icon_texture"
              c:identifier="shell_app_create_icon_texture">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="266">Look up the icon for this application, and create a #ClutterActor
for it at the given size.</doc>
        <source-position filename="../src/shell-app.h" line="31"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app.c"
               line="272">A floating #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_app_info"
              c:identifier="shell_app_get_app_info"
              glib:get-property="app-info">
        <source-position filename="../src/shell-app.h" line="29"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app.c"
               line="1513">The #GDesktopAppInfo for this app, or %NULL if backed by a window</doc>
          <type name="Gio.DesktopAppInfo" c:type="GDesktopAppInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1511">a #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_busy"
              c:identifier="shell_app_get_busy"
              glib:get-property="busy">
        <source-position filename="../src/shell-app.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description" c:identifier="shell_app_get_description">
        <source-position filename="../src/shell-app.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon"
              c:identifier="shell_app_get_icon"
              glib:get-property="icon">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="223">Look up the icon for this application</doc>
        <source-position filename="../src/shell-app.h" line="32"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app.c"
               line="228">A #GIcon</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="shell_app_get_id"
              glib:get-property="id">
        <source-position filename="../src/shell-app.h" line="27"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_windows" c:identifier="shell_app_get_n_windows">
        <source-position filename="../src/shell-app.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="shell_app_get_name">
        <source-position filename="../src/shell-app.h" line="33"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pids" c:identifier="shell_app_get_pids">
        <source-position filename="../src/shell-app.h" line="57"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/shell-app.c"
               line="1192">An unordered list of process identifiers associated with this application.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gint"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1190">a #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state"
              c:identifier="shell_app_get_state"
              glib:get-property="state">
        <source-position filename="../src/shell-app.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app.c"
               line="720">State of the application</doc>
          <type name="AppState" c:type="ShellAppState"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="718">a #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_windows" c:identifier="shell_app_get_windows">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="763">Get the windows which are associated with this application. The
returned list will be sorted first by whether they're on the
active workspace, then by whether they're visible, and finally
by the time the user last interacted with them.</doc>
        <source-position filename="../src/shell-app.h" line="55"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/shell-app.c"
               line="772">List of windows</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Meta.Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_on_workspace" c:identifier="shell_app_is_on_workspace">
        <source-position filename="../src/shell-app.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <type name="Meta.Workspace" c:type="MetaWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_window_backed"
              c:identifier="shell_app_is_window_backed">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="319">A window backed application is one which represents just an open
window, i.e. there's no .desktop file association, so we don't know
how to launch it again.</doc>
        <source-position filename="../src/shell-app.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="launch" c:identifier="shell_app_launch" throws="1">
        <source-position filename="../src/shell-app.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1395">Event timestamp, or 0 for current event timestamp</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1396">Start on this workspace, or -1 for default</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="gpu_pref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1397">the GPU to prefer launching on</doc>
            <type name="AppLaunchGpu" c:type="ShellAppLaunchGpu"/>
          </parameter>
        </parameters>
      </method>
      <method name="launch_action" c:identifier="shell_app_launch_action">
        <source-position filename="../src/shell-app.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1485">the #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="action_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1486">the name of the action to launch (as obtained by
              g_desktop_app_info_list_actions())</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1488">Event timestamp, or 0 for current event timestamp</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1489">Start on this workspace, or -1 for default</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_new_window" c:identifier="shell_app_open_new_window">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="576">Request that the application create a new window.</doc>
        <source-position filename="../src/shell-app.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="578">a #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="579">open on this workspace, or -1 for default</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_quit" c:identifier="shell_app_request_quit">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="1247">Initiate an asynchronous request to quit this application.
The application may interact with the user, and the user
might cancel the quit request from the application UI.

This operation may not be supported for all applications.</doc>
        <source-position filename="../src/shell-app.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app.c"
               line="1257">%TRUE if a quit request is supported for this application</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app.c"
                 line="1249">A #ShellApp</doc>
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="update_app_actions"
              c:identifier="shell_app_update_app_actions">
        <source-position filename="../src/shell-app.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_window_actions"
              c:identifier="shell_app_update_window_actions">
        <source-position filename="../src/shell-app.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="ShellApp*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <property name="action-group" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="1728">The #GDBusActionGroup associated with this ShellApp, if any. See the
documentation of #GApplication and #GActionGroup for details.</doc>
        <type name="Gio.ActionGroup"/>
      </property>
      <property name="app-info"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_app_info">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="1741">The #GDesktopAppInfo associated with this ShellApp, if any.</doc>
        <type name="Gio.DesktopAppInfo"/>
      </property>
      <property name="busy" transfer-ownership="none" getter="get_busy">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="1691">Whether the application has marked itself as busy.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="icon" transfer-ownership="none" getter="get_icon">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="1716">The #GIcon representing this ShellApp</doc>
        <type name="Gio.Icon"/>
      </property>
      <property name="id" transfer-ownership="none" getter="get_id">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="1703">The id of this application (a desktop filename, or a special string
like window:0xabcd1234)</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="state" transfer-ownership="none" getter="get_state">
        <doc xml:space="preserve"
             filename="../src/shell-app.c"
             line="1677">The high-level state of the application, effectively whether it's
running or not, or transitioning between those states.</doc>
        <type name="AppState"/>
      </property>
      <glib:signal name="windows-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="AppClass"
            c:type="ShellAppClass"
            glib:is-gtype-struct-for="App">
      <source-position filename="../src/shell-app.h" line="13"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="AppLaunchGpu"
                 glib:type-name="ShellAppLaunchGpu"
                 glib:get-type="shell_app_launch_gpu_get_type"
                 c:type="ShellAppLaunchGpu">
      <member name="app_pref"
              value="0"
              c:identifier="SHELL_APP_LAUNCH_GPU_APP_PREF"
              glib:nick="app-pref"
              glib:name="SHELL_APP_LAUNCH_GPU_APP_PREF">
      </member>
      <member name="discrete"
              value="1"
              c:identifier="SHELL_APP_LAUNCH_GPU_DISCRETE"
              glib:nick="discrete"
              glib:name="SHELL_APP_LAUNCH_GPU_DISCRETE">
      </member>
      <member name="default"
              value="2"
              c:identifier="SHELL_APP_LAUNCH_GPU_DEFAULT"
              glib:nick="default"
              glib:name="SHELL_APP_LAUNCH_GPU_DEFAULT">
      </member>
    </enumeration>
    <enumeration name="AppState"
                 glib:type-name="ShellAppState"
                 glib:get-type="shell_app_state_get_type"
                 c:type="ShellAppState">
      <member name="stopped"
              value="0"
              c:identifier="SHELL_APP_STATE_STOPPED"
              glib:nick="stopped"
              glib:name="SHELL_APP_STATE_STOPPED">
      </member>
      <member name="starting"
              value="1"
              c:identifier="SHELL_APP_STATE_STARTING"
              glib:nick="starting"
              glib:name="SHELL_APP_STATE_STARTING">
      </member>
      <member name="running"
              value="2"
              c:identifier="SHELL_APP_STATE_RUNNING"
              glib:nick="running"
              glib:name="SHELL_APP_STATE_RUNNING">
      </member>
    </enumeration>
    <class name="AppSystem"
           c:symbol-prefix="app_system"
           c:type="ShellAppSystem"
           parent="GObject.Object"
           glib:type-name="ShellAppSystem"
           glib:get-type="shell_app_system_get_type"
           glib:type-struct="AppSystemClass">
      <source-position filename="../src/shell-app-system.h" line="12"/>
      <function name="get_default" c:identifier="shell_app_system_get_default">
        <source-position filename="../src/shell-app-system.h" line="15"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app-system.c"
               line="263">The global #ShellAppSystem singleton</doc>
          <type name="AppSystem" c:type="ShellAppSystem*"/>
        </return-value>
      </function>
      <function name="search" c:identifier="shell_app_system_search">
        <doc xml:space="preserve"
             filename="../src/shell-app-system.c"
             line="469">Wrapper around g_desktop_app_info_search() that replaces results that
don't validate as UTF-8 with the empty string.</doc>
        <source-position filename="../src/shell-app-system.h" line="28"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-app-system.c"
               line="476">a
  list of strvs.  Free each item with g_strfreev() and free the outer
  list with g_free().</doc>
          <array c:type="char***">
            <array>
              <type name="utf8"/>
            </array>
          </array>
        </return-value>
        <parameters>
          <parameter name="search_string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-system.c"
                 line="471">the search string to use</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_installed"
              c:identifier="shell_app_system_get_installed">
        <doc xml:space="preserve"
             filename="../src/shell-app-system.c"
             line="494">Returns all installed apps, as a list of #GAppInfo</doc>
        <source-position filename="../src/shell-app-system.h" line="30"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app-system.c"
               line="500">a list of #GAppInfo
  describing all known applications. This memory is owned by the
  #ShellAppSystem and should not be freed.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.AppInfo"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-system.c"
                 line="496">the #ShellAppSystem</doc>
            <type name="AppSystem" c:type="ShellAppSystem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_running" c:identifier="shell_app_system_get_running">
        <doc xml:space="preserve"
             filename="../src/shell-app-system.c"
             line="438">Returns the set of applications which currently have at least one
open window.  The returned list will be sorted by shell_app_compare().</doc>
        <source-position filename="../src/shell-app-system.h" line="27"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/shell-app-system.c"
               line="445">Active applications</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="App"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-system.c"
                 line="440">A #ShellAppSystem</doc>
            <type name="AppSystem" c:type="ShellAppSystem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup_app" c:identifier="shell_app_system_lookup_app">
        <doc xml:space="preserve"
             filename="../src/shell-app-system.c"
             line="276">Find a #ShellApp corresponding to an id.</doc>
        <source-position filename="../src/shell-app-system.h" line="17"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app-system.c"
               line="281">The #ShellApp for id, or %NULL if none</doc>
          <type name="App" c:type="ShellApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <type name="AppSystem" c:type="ShellAppSystem*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_desktop_wmclass"
              c:identifier="shell_app_system_lookup_desktop_wmclass">
        <doc xml:space="preserve"
             filename="../src/shell-app-system.c"
             line="338">Find a valid application whose .desktop file, without the extension
and properly canonicalized, matches @wmclass.</doc>
        <source-position filename="../src/shell-app-system.h" line="24"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app-system.c"
               line="346">A #ShellApp for @wmclass</doc>
          <type name="App" c:type="ShellApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-system.c"
                 line="340">a #ShellAppSystem</doc>
            <type name="AppSystem" c:type="ShellAppSystem*"/>
          </instance-parameter>
          <parameter name="wmclass"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-app-system.c"
                 line="341">A WM_CLASS value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_heuristic_basename"
              c:identifier="shell_app_system_lookup_heuristic_basename">
        <doc xml:space="preserve"
             filename="../src/shell-app-system.c"
             line="304">Find a valid application corresponding to a given
heuristically determined application identifier
string, or %NULL if none.</doc>
        <source-position filename="../src/shell-app-system.h" line="19"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app-system.c"
               line="313">A #ShellApp for @name</doc>
          <type name="App" c:type="ShellApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-system.c"
                 line="306">a #ShellAppSystem</doc>
            <type name="AppSystem" c:type="ShellAppSystem*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-system.c"
                 line="307">Probable application identifier</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_startup_wmclass"
              c:identifier="shell_app_system_lookup_startup_wmclass">
        <doc xml:space="preserve"
             filename="../src/shell-app-system.c"
             line="389">Find a valid application whose .desktop file contains a
StartupWMClass entry matching @wmclass.</doc>
        <source-position filename="../src/shell-app-system.h" line="22"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app-system.c"
               line="397">A #ShellApp for @wmclass</doc>
          <type name="App" c:type="ShellApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-system.c"
                 line="391">a #ShellAppSystem</doc>
            <type name="AppSystem" c:type="ShellAppSystem*"/>
          </instance-parameter>
          <parameter name="wmclass"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-app-system.c"
                 line="392">A WM_CLASS value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="app-state-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="App"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="installed-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="AppSystemClass"
            c:type="ShellAppSystemClass"
            glib:is-gtype-struct-for="AppSystem">
      <source-position filename="../src/shell-app-system.h" line="12"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="AppUsage"
           c:symbol-prefix="app_usage"
           c:type="ShellAppUsage"
           parent="GObject.Object"
           glib:type-name="ShellAppUsage"
           glib:get-type="shell_app_usage_get_type"
           glib:type-struct="AppUsageClass">
      <source-position filename="../src/shell-app-usage.h" line="11"/>
      <function name="get_default" c:identifier="shell_app_usage_get_default">
        <source-position filename="../src/shell-app-usage.h" line="14"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app-usage.c"
               line="763">The global #ShellAppUsage instance</doc>
          <type name="AppUsage" c:type="ShellAppUsage*"/>
        </return-value>
      </function>
      <method name="compare" c:identifier="shell_app_usage_compare">
        <doc xml:space="preserve"
             filename="../src/shell-app-usage.c"
             line="395">Compare @id_a and @id_b based on frequency of use.</doc>
        <source-position filename="../src/shell-app-usage.h" line="17"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-app-usage.c"
               line="403">-1 if @id_a ranks higher than @id_b, 1 if @id_b ranks higher
         than @id_a, and 0 if both rank equally.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-usage.c"
                 line="397">the usage instance to request</doc>
            <type name="AppUsage" c:type="ShellAppUsage*"/>
          </instance-parameter>
          <parameter name="id_a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-usage.c"
                 line="398">ID of first app</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="id_b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-usage.c"
                 line="399">ID of second app</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_most_used"
              c:identifier="shell_app_usage_get_most_used">
        <source-position filename="../src/shell-app-usage.h" line="16"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-app-usage.c"
               line="364">List of applications</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="App"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="usage" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-app-usage.c"
                 line="362">the usage instance to request</doc>
            <type name="AppUsage" c:type="ShellAppUsage*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="AppUsageClass"
            c:type="ShellAppUsageClass"
            glib:is-gtype-struct-for="AppUsage">
      <source-position filename="../src/shell-app-usage.h" line="11"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="BlurEffect"
           c:symbol-prefix="blur_effect"
           c:type="ShellBlurEffect"
           parent="Clutter.Effect"
           glib:type-name="ShellBlurEffect"
           glib:get-type="shell_blur_effect_get_type"
           glib:type-struct="BlurEffectClass">
      <source-position filename="../src/shell-blur-effect.h" line="41"/>
      <constructor name="new" c:identifier="shell_blur_effect_new">
        <source-position filename="../src/shell-blur-effect.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="BlurEffect" c:type="ShellBlurEffect*"/>
        </return-value>
      </constructor>
      <method name="get_brightness"
              c:identifier="shell_blur_effect_get_brightness"
              glib:get-property="brightness">
        <source-position filename="../src/shell-blur-effect.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="gfloat" c:type="float"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BlurEffect" c:type="ShellBlurEffect*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mode"
              c:identifier="shell_blur_effect_get_mode"
              glib:get-property="mode">
        <source-position filename="../src/shell-blur-effect.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="BlurMode" c:type="ShellBlurMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BlurEffect" c:type="ShellBlurEffect*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sigma"
              c:identifier="shell_blur_effect_get_sigma"
              glib:get-property="sigma">
        <source-position filename="../src/shell-blur-effect.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BlurEffect" c:type="ShellBlurEffect*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_brightness"
              c:identifier="shell_blur_effect_set_brightness"
              glib:set-property="brightness">
        <source-position filename="../src/shell-blur-effect.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BlurEffect" c:type="ShellBlurEffect*"/>
          </instance-parameter>
          <parameter name="brightness" transfer-ownership="none">
            <type name="gfloat" c:type="float"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode"
              c:identifier="shell_blur_effect_set_mode"
              glib:set-property="mode">
        <source-position filename="../src/shell-blur-effect.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BlurEffect" c:type="ShellBlurEffect*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <type name="BlurMode" c:type="ShellBlurMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sigma"
              c:identifier="shell_blur_effect_set_sigma"
              glib:set-property="sigma">
        <source-position filename="../src/shell-blur-effect.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BlurEffect" c:type="ShellBlurEffect*"/>
          </instance-parameter>
          <parameter name="sigma" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <property name="brightness"
                writable="1"
                transfer-ownership="none"
                setter="set_brightness"
                getter="get_brightness">
        <type name="gfloat" c:type="gfloat"/>
      </property>
      <property name="mode"
                writable="1"
                transfer-ownership="none"
                setter="set_mode"
                getter="get_mode">
        <type name="BlurMode"/>
      </property>
      <property name="sigma"
                writable="1"
                transfer-ownership="none"
                setter="set_sigma"
                getter="get_sigma">
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="BlurEffectClass"
            c:type="ShellBlurEffectClass"
            glib:is-gtype-struct-for="BlurEffect">
      <source-position filename="../src/shell-blur-effect.h" line="41"/>
      <field name="parent_class">
        <type name="Clutter.EffectClass" c:type="ClutterEffectClass"/>
      </field>
    </record>
    <enumeration name="BlurMode"
                 glib:type-name="ShellBlurMode"
                 glib:get-type="shell_blur_mode_get_type"
                 c:type="ShellBlurMode">
      <doc xml:space="preserve"
           filename="../src/shell-blur-effect.h"
           line="27">The mode of blurring of the effect.</doc>
      <member name="actor"
              value="0"
              c:identifier="SHELL_BLUR_MODE_ACTOR"
              glib:nick="actor"
              glib:name="SHELL_BLUR_MODE_ACTOR">
        <doc xml:space="preserve"
             filename="../src/shell-blur-effect.h"
             line="29">blur the actor contents, and its children</doc>
      </member>
      <member name="background"
              value="1"
              c:identifier="SHELL_BLUR_MODE_BACKGROUND"
              glib:nick="background"
              glib:name="SHELL_BLUR_MODE_BACKGROUND">
        <doc xml:space="preserve"
             filename="../src/shell-blur-effect.h"
             line="30">blur what's beneath the actor</doc>
      </member>
    </enumeration>
    <class name="EmbeddedWindow"
           c:symbol-prefix="embedded_window"
           c:type="ShellEmbeddedWindow"
           parent="Gtk.Window"
           glib:type-name="ShellEmbeddedWindow"
           glib:get-type="shell_embedded_window_get_type"
           glib:type-struct="EmbeddedWindowClass">
      <source-position filename="../src/shell-embedded-window.h" line="15"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="shell_embedded_window_new">
        <source-position filename="../src/shell-embedded-window.h" line="17"/>
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Gtk.Window" c:type="GtkWindow"/>
      </field>
    </class>
    <record name="EmbeddedWindowClass"
            c:type="ShellEmbeddedWindowClass"
            glib:is-gtype-struct-for="EmbeddedWindow">
      <source-position filename="../src/shell-embedded-window.h" line="15"/>
      <field name="parent_class">
        <type name="Gtk.WindowClass" c:type="GtkWindowClass"/>
      </field>
    </record>
    <class name="GLSLEffect"
           c:symbol-prefix="glsl_effect"
           c:type="ShellGLSLEffect"
           parent="Clutter.OffscreenEffect"
           glib:type-name="ShellGLSLEffect"
           glib:get-type="shell_glsl_effect_get_type"
           glib:type-struct="GLSLEffectClass">
      <source-position filename="../src/shell-glsl-effect.h" line="40"/>
      <virtual-method name="build_pipeline">
        <source-position filename="../src/shell-glsl-effect.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="effect" transfer-ownership="none">
            <type name="GLSLEffect" c:type="ShellGLSLEffect*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_glsl_snippet"
              c:identifier="shell_glsl_effect_add_glsl_snippet">
        <doc xml:space="preserve"
             filename="../src/shell-glsl-effect.c"
             line="37">Adds a GLSL snippet to the pipeline used for drawing the effect texture.
See #CoglSnippet for details.

This is only valid inside the a call to the build_pipeline() virtual
function.</doc>
        <source-position filename="../src/shell-glsl-effect.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="effect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="39">a #ShellGLSLEffect</doc>
            <type name="GLSLEffect" c:type="ShellGLSLEffect*"/>
          </instance-parameter>
          <parameter name="hook" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="40">where to insert the code</doc>
            <type name="SnippetHook" c:type="ShellSnippetHook"/>
          </parameter>
          <parameter name="declarations" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="41">GLSL declarations</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="code" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="42">GLSL code</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="is_replace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="43">whether Cogl code should be replaced by the custom shader</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uniform_location"
              c:identifier="shell_glsl_effect_get_uniform_location">
        <source-position filename="../src/shell-glsl-effect.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-glsl-effect.c"
               line="151">the location of the uniform named @name, that can be
         passed to shell_glsl_effect_set_uniform_float().</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="effect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="148">a #ShellGLSLEffect</doc>
            <type name="GLSLEffect" c:type="ShellGLSLEffect*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="149">the uniform name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uniform_float"
              c:identifier="shell_glsl_effect_set_uniform_float">
        <source-position filename="../src/shell-glsl-effect.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="effect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="164">a #ShellGLSLEffect</doc>
            <type name="GLSLEffect" c:type="ShellGLSLEffect*"/>
          </instance-parameter>
          <parameter name="uniform" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="165">the uniform location (as returned by shell_glsl_effect_get_uniform_location())</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="n_components" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="166">the number of components in the uniform (eg. 3 for a vec3)</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="total_count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="167">the total number of floats in @value</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="168">the array of floats to set @uniform</doc>
            <array length="2" zero-terminated="0" c:type="const float*">
              <type name="gfloat" c:type="float"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set_uniform_matrix"
              c:identifier="shell_glsl_effect_set_uniform_matrix">
        <source-position filename="../src/shell-glsl-effect.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="effect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="185">a #ShellGLSLEffect</doc>
            <type name="GLSLEffect" c:type="ShellGLSLEffect*"/>
          </instance-parameter>
          <parameter name="uniform" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="186">the uniform location (as returned by shell_glsl_effect_get_uniform_location())</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="transpose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="187">Whether to transpose the matrix</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="dimensions" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="188">the number of components in the uniform (eg. 3 for a vec3)</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="total_count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="189">the total number of floats in @value</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-glsl-effect.c"
                 line="190">the array of floats to set @uniform</doc>
            <array length="3" zero-terminated="0" c:type="const float*">
              <type name="gfloat" c:type="float"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Clutter.OffscreenEffect" c:type="ClutterOffscreenEffect"/>
      </field>
    </class>
    <record name="GLSLEffectClass"
            c:type="ShellGLSLEffectClass"
            glib:is-gtype-struct-for="GLSLEffect">
      <source-position filename="../src/shell-glsl-effect.h" line="40"/>
      <field name="parent_class">
        <type name="Clutter.OffscreenEffectClass"
              c:type="ClutterOffscreenEffectClass"/>
      </field>
      <field name="base_pipeline">
        <type name="Cogl.Pipeline" c:type="CoglPipeline*"/>
      </field>
      <field name="build_pipeline">
        <callback name="build_pipeline">
          <source-position filename="../src/shell-glsl-effect.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="effect" transfer-ownership="none">
              <type name="GLSLEffect" c:type="ShellGLSLEffect*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Global"
           c:symbol-prefix="global"
           c:type="ShellGlobal"
           parent="GObject.Object"
           glib:type-name="ShellGlobal"
           glib:get-type="shell_global_get_type"
           glib:type-struct="GlobalClass">
      <source-position filename="../src/shell-global.h" line="14"/>
      <function name="get" c:identifier="shell_global_get">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="678">Gets the singleton global object that represents the desktop.</doc>
        <source-position filename="../src/shell-global.h" line="16"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="683">the singleton global object</doc>
          <type name="Global" c:type="ShellGlobal*"/>
        </return-value>
      </function>
      <method name="begin_work" c:identifier="shell_global_begin_work">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1520">Marks that we are currently doing work. This is used to to track
whether we are busy for the purposes of shell_global_run_at_leisure().
A count is kept and shell_global_end_work() must be called exactly
as many times as shell_global_begin_work().</doc>
        <source-position filename="../src/shell-global.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1522">the #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_app_launch_context"
              c:identifier="shell_global_create_app_launch_context">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1414">Create a #GAppLaunchContext set up with the correct timestamp, and
targeted to activate on the current workspace.</doc>
        <source-position filename="../src/shell-global.h" line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="1423">A new #GAppLaunchContext</doc>
          <type name="Gio.AppLaunchContext" c:type="GAppLaunchContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1416">A #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1417">the timestamp for the launch (or 0 for current time)</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1418">a workspace index, or -1 to indicate the current one</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="end_work" c:identifier="shell_global_end_work">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1535">Marks the end of work that we started with shell_global_begin_work().
If no other work is ongoing and functions have been added with
shell_global_run_at_leisure(), they will be run at the next
opportunity.</doc>
        <source-position filename="../src/shell-global.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1537">the #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_time"
              c:identifier="shell_global_get_current_time">
        <source-position filename="../src/shell-global.h" line="22"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="1360">the current X server time from the current Clutter, Gdk, or X
event. If called from outside an event handler, this may return
%Clutter.CURRENT_TIME (aka 0), or it may return a slightly
out-of-date timestamp.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1358">A #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display"
              c:identifier="shell_global_get_display"
              glib:get-property="display">
        <source-position filename="../src/shell-global.h" line="19"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="838">The default #MetaDisplay</doc>
          <type name="Meta.Display" c:type="MetaDisplay*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_persistent_state"
              c:identifier="shell_global_get_persistent_state">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1821">The shell maintains "persistent" state which will persist after
logout or reboot.</doc>
        <source-position filename="../src/shell-global.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="1830">The value of a serialized property, or %NULL if none stored</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1823">a #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
          <parameter name="property_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1824">Expected data type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1825">Name of the property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_pointer" c:identifier="shell_global_get_pointer">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1296">Gets the pointer coordinates and current modifier key state.</doc>
        <source-position filename="../src/shell-global.h" line="29"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1298">the #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1299">the X coordinate of the pointer, in global coordinates</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1300">the Y coordinate of the pointer, in global coordinates</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="mods"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1301">the current set of modifier keys that are pressed down</doc>
            <type name="Clutter.ModifierType" c:type="ClutterModifierType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_runtime_state"
              c:identifier="shell_global_get_runtime_state">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1786">The shell maintains "runtime" state which does not persist across
logout or reboot.</doc>
        <source-position filename="../src/shell-global.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="1795">The value of a serialized property, or %NULL if none stored</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1788">a #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
          <parameter name="property_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1789">Expected data type</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1790">Name of the property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_session_mode"
              c:identifier="shell_global_get_session_mode"
              glib:get-property="session-mode">
        <source-position filename="../src/shell-global.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_settings"
              c:identifier="shell_global_get_settings"
              glib:get-property="settings">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1342">Get the global GSettings instance.</doc>
        <source-position filename="../src/shell-global.h" line="21"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="1348">The GSettings object</doc>
          <type name="Gio.Settings" c:type="GSettings*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1344">A #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stage"
              c:identifier="shell_global_get_stage"
              glib:get-property="stage">
        <source-position filename="../src/shell-global.h" line="18"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="827">The default #ClutterStage</doc>
          <type name="Clutter.Stage" c:type="ClutterStage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_switcheroo_control"
              c:identifier="shell_global_get_switcheroo_control"
              glib:get-property="switcheroo-control">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1326">Get the global #GDBusProxy instance for the switcheroo-control
daemon.</doc>
        <source-position filename="../src/shell-global.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="1333">the #GDBusProxy for the daemon,
  or %NULL on error.</doc>
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1328">A #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_actors"
              c:identifier="shell_global_get_window_actors">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="846">Gets the list of #MetaWindowActor for the plugin's screen</doc>
        <source-position filename="../src/shell-global.h" line="20"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/shell-global.c"
               line="851">the list of windows</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Meta.WindowActor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="notify_error" c:identifier="shell_global_notify_error">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1277">Show a system error notification.  Use this function
when a user-initiated action results in a non-fatal problem
from causes that may not be under system control.  For
example, an application crash.</doc>
        <source-position filename="../src/shell-global.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1279">a #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
          <parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1280">Error message</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="details" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1281">Error details</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reexec_self" c:identifier="shell_global_reexec_self">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1173">Restart the current process.  Only intended for development purposes.</doc>
        <source-position filename="../src/shell-global.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1175">A #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="run_at_leisure" c:identifier="shell_global_run_at_leisure">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1555">Schedules a function to be called the next time the shell is idle.
Idle means here no animations, no redrawing, and no ongoing background
work. Since there is currently no way to hook into the Clutter master
clock and know when is running, the implementation here is somewhat
approximation. Animations may be detected as terminating early if they
can be drawn fast enough so that the event loop goes idle between frames.

The intent of this function is for performance measurement runs
where a number of actions should be run serially and each action is
timed individually. Using this function for other purposes will
interfere with the ability to use it for performance measurement so
should be avoided.</doc>
        <source-position filename="../src/shell-global.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1557">the #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1558">function to call at leisure</doc>
            <type name="LeisureFunction" c:type="ShellLeisureFunction"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1559">data to pass to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1560">function to call to free @user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_persistent_state"
              c:identifier="shell_global_set_persistent_state">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1805">Change the value of serialized persistent state.</doc>
        <source-position filename="../src/shell-global.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1807">a #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1808">Name of the property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="variant"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1809">A #GVariant, or %NULL to unset</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_runtime_state"
              c:identifier="shell_global_set_runtime_state">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="1770">Change the value of serialized runtime state.</doc>
        <source-position filename="../src/shell-global.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1772">a #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1773">Name of the property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="variant"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="1774">A #GVariant, or %NULL to unset</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stage_input_region"
              c:identifier="shell_global_set_stage_input_region">
        <doc xml:space="preserve"
             filename="../src/shell-global.c"
             line="781">Sets the area of the stage that is responsive to mouse clicks when
we don't have a modal or grab.</doc>
        <source-position filename="../src/shell-global.h" line="26"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="783">the #ShellGlobal</doc>
            <type name="Global" c:type="ShellGlobal*"/>
          </instance-parameter>
          <parameter name="rectangles" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-global.c"
                 line="784">a list of #MetaRectangle
describing the input region.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="Meta.Rectangle"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="backend" transfer-ownership="none">
        <type name="Meta.Backend"/>
      </property>
      <property name="context" transfer-ownership="none">
        <type name="Meta.Context"/>
      </property>
      <property name="datadir" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="display" transfer-ownership="none" getter="get_display">
        <type name="Meta.Display"/>
      </property>
      <property name="focus-manager" transfer-ownership="none">
        <type name="St.FocusManager"/>
      </property>
      <property name="frame-finish-timestamp"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="frame-timestamps" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="imagedir" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="screen-height" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="screen-width" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="session-mode"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_session_mode">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="settings"
                transfer-ownership="none"
                getter="get_settings">
        <type name="Gio.Settings"/>
      </property>
      <property name="stage" transfer-ownership="none" getter="get_stage">
        <type name="Clutter.Actor"/>
      </property>
      <property name="switcheroo-control"
                transfer-ownership="none"
                getter="get_switcheroo_control">
        <type name="Gio.DBusProxy"/>
      </property>
      <property name="top-window-group" transfer-ownership="none">
        <type name="Clutter.Actor"/>
      </property>
      <property name="userdatadir" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="window-group" transfer-ownership="none">
        <type name="Clutter.Actor"/>
      </property>
      <property name="window-manager" transfer-ownership="none">
        <type name="WM"/>
      </property>
      <property name="workspace-manager" transfer-ownership="none">
        <type name="Meta.WorkspaceManager"/>
      </property>
      <glib:signal name="locate-pointer" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="notify-error" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="GlobalClass"
            c:type="ShellGlobalClass"
            glib:is-gtype-struct-for="Global">
      <source-position filename="../src/shell-global.h" line="14"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="GtkEmbed"
           c:symbol-prefix="gtk_embed"
           c:type="ShellGtkEmbed"
           parent="Clutter.Clone"
           glib:type-name="ShellGtkEmbed"
           glib:get-type="shell_gtk_embed_get_type"
           glib:type-struct="GtkEmbedClass">
      <source-position filename="../src/shell-gtk-embed.h" line="16"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="shell_gtk_embed_new">
        <source-position filename="../src/shell-gtk-embed.h" line="18"/>
        <return-value transfer-ownership="none">
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <type name="EmbeddedWindow" c:type="ShellEmbeddedWindow*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="window"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="EmbeddedWindow"/>
      </property>
      <field name="parent_instance">
        <type name="Clutter.Clone" c:type="ClutterClone"/>
      </field>
    </class>
    <record name="GtkEmbedClass"
            c:type="ShellGtkEmbedClass"
            glib:is-gtype-struct-for="GtkEmbed">
      <source-position filename="../src/shell-gtk-embed.h" line="16"/>
      <field name="parent_class">
        <type name="Clutter.CloneClass" c:type="ClutterCloneClass"/>
      </field>
    </record>
    <function-macro name="INVERT_LIGHTNESS_EFFECT"
                    c:identifier="SHELL_INVERT_LIGHTNESS_EFFECT"
                    introspectable="0">
      <source-position filename="../src/shell-invert-lightness-effect.h"
                       line="29"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INVERT_LIGHTNESS_EFFECT"
                    c:identifier="SHELL_IS_INVERT_LIGHTNESS_EFFECT"
                    introspectable="0">
      <source-position filename="../src/shell-invert-lightness-effect.h"
                       line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_NETWORK_AGENT"
                    c:identifier="SHELL_IS_NETWORK_AGENT"
                    introspectable="0">
      <source-position filename="../src/shell-network-agent.h" line="24"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_NETWORK_AGENT_CLASS"
                    c:identifier="SHELL_IS_NETWORK_AGENT_CLASS"
                    introspectable="0">
      <source-position filename="../src/shell-network-agent.h" line="26"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <class name="InvertLightnessEffect"
           c:symbol-prefix="invert_lightness_effect"
           c:type="ShellInvertLightnessEffect"
           parent="Clutter.OffscreenEffect"
           glib:type-name="ShellInvertLightnessEffect"
           glib:get-type="shell_invert_lightness_effect_get_type"
           glib:type-struct="InvertLightnessEffectClass">
      <source-position filename="../src/shell-invert-lightness-effect.h"
                       line="33"/>
      <constructor name="new" c:identifier="shell_invert_lightness_effect_new">
        <doc xml:space="preserve"
             filename="../src/shell-invert-lightness-effect.c"
             line="139">Creates a new #ShellInvertLightnessEffect to be used with
clutter_actor_add_effect()</doc>
        <source-position filename="../src/shell-invert-lightness-effect.h"
                         line="37"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-invert-lightness-effect.c"
               line="145">the newly created
#ShellInvertLightnessEffect or %NULL.  Use g_object_unref() when done.</doc>
          <type name="Clutter.Effect" c:type="ClutterEffect*"/>
        </return-value>
      </constructor>
    </class>
    <record name="InvertLightnessEffectClass"
            c:type="ShellInvertLightnessEffectClass"
            disguised="1"
            glib:is-gtype-struct-for="InvertLightnessEffect">
      <source-position filename="../src/shell-invert-lightness-effect.h"
                       line="33"/>
    </record>
    <constant name="KEYRING_SK_TAG"
              value="setting-key"
              c:type="SHELL_KEYRING_SK_TAG">
      <source-position filename="../src/shell-network-agent.h" line="69"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="KEYRING_SN_TAG"
              value="setting-name"
              c:type="SHELL_KEYRING_SN_TAG">
      <source-position filename="../src/shell-network-agent.h" line="68"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="KEYRING_UUID_TAG"
              value="connection-uuid"
              c:type="SHELL_KEYRING_UUID_TAG">
      <source-position filename="../src/shell-network-agent.h" line="67"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="KeyringPrompt"
           c:symbol-prefix="keyring_prompt"
           c:type="ShellKeyringPrompt"
           parent="GObject.Object"
           glib:type-name="ShellKeyringPrompt"
           glib:get-type="shell_keyring_prompt_get_type"
           glib:type-struct="KeyringPromptClass">
      <source-position filename="../src/shell-keyring-prompt.h" line="36"/>
      <implements name="Gcr.Prompt"/>
      <constructor name="new" c:identifier="shell_keyring_prompt_new">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="543">Create new internal prompt base</doc>
        <source-position filename="../src/shell-keyring-prompt.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-keyring-prompt.c"
               line="548">new internal prompt</doc>
          <type name="KeyringPrompt" c:type="ShellKeyringPrompt*"/>
        </return-value>
      </constructor>
      <method name="cancel" c:identifier="shell_keyring_prompt_cancel">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="795">Called by implementation when the prompt is cancelled.</doc>
        <source-position filename="../src/shell-keyring-prompt.h" line="53"/>
        <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"
                 filename="../src/shell-keyring-prompt.c"
                 line="797">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="ShellKeyringPrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="complete" c:identifier="shell_keyring_prompt_complete">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="730">Called by the implementation when the prompt completes. There are various
checks done. %TRUE is returned if the prompt actually should complete.</doc>
        <source-position filename="../src/shell-keyring-prompt.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-keyring-prompt.c"
               line="737">whether the prompt completed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-keyring-prompt.c"
                 line="732">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="ShellKeyringPrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_confirm_actor"
              c:identifier="shell_keyring_prompt_get_confirm_actor"
              glib:get-property="confirm-actor">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="571">Get the prompt password text actor</doc>
        <source-position filename="../src/shell-keyring-prompt.h" line="46"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/shell-keyring-prompt.c"
               line="577">the password actor</doc>
          <type name="Clutter.Text" c:type="ClutterText*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-keyring-prompt.c"
                 line="573">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="ShellKeyringPrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password_actor"
              c:identifier="shell_keyring_prompt_get_password_actor"
              glib:get-property="password-actor">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="556">Get the prompt password text actor</doc>
        <source-position filename="../src/shell-keyring-prompt.h" line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/shell-keyring-prompt.c"
               line="562">the password actor</doc>
          <type name="Clutter.Text" c:type="ClutterText*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-keyring-prompt.c"
                 line="558">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="ShellKeyringPrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_confirm_actor"
              c:identifier="shell_keyring_prompt_set_confirm_actor"
              glib:set-property="confirm-actor">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="697">Set the prompt password confirmation text actor</doc>
        <source-position filename="../src/shell-keyring-prompt.h" line="48"/>
        <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"
                 filename="../src/shell-keyring-prompt.c"
                 line="699">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="ShellKeyringPrompt*"/>
          </instance-parameter>
          <parameter name="confirm_actor"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-keyring-prompt.c"
                 line="700">the confirm password actor</doc>
            <type name="Clutter.Text" c:type="ClutterText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password_actor"
              c:identifier="shell_keyring_prompt_set_password_actor"
              glib:set-property="password-actor">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="659">Set the prompt password text actor</doc>
        <source-position filename="../src/shell-keyring-prompt.h" line="43"/>
        <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"
                 filename="../src/shell-keyring-prompt.c"
                 line="661">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="ShellKeyringPrompt*"/>
          </instance-parameter>
          <parameter name="password_actor"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-keyring-prompt.c"
                 line="662">the password actor</doc>
            <type name="Clutter.Text" c:type="ClutterText*"/>
          </parameter>
        </parameters>
      </method>
      <property name="choice-visible" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="386">Whether the choice check box is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="confirm-actor"
                writable="1"
                transfer-ownership="none"
                setter="set_confirm_actor"
                getter="get_confirm_actor">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="410">Text field for confirmation password</doc>
        <type name="Clutter.Text"/>
      </property>
      <property name="confirm-visible" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="362">Whether the password confirm entry is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="password-actor"
                writable="1"
                transfer-ownership="none"
                setter="set_password_actor"
                getter="get_password_actor">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="398">Text field for password</doc>
        <type name="Clutter.Text"/>
      </property>
      <property name="password-visible" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="350">Whether the password entry is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="warning-visible" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-keyring-prompt.c"
             line="374">Whether the warning label is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <glib:signal name="show-confirm">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-password">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="KeyringPromptClass"
            c:type="ShellKeyringPromptClass"
            glib:is-gtype-struct-for="KeyringPrompt">
      <source-position filename="../src/shell-keyring-prompt.h" line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="LeisureFunction" c:type="ShellLeisureFunction">
      <source-position filename="../src/shell-global.h" line="52"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="MemoryInfo" c:type="ShellMemoryInfo">
      <source-position filename="../src/shell-global.h" line="46"/>
      <field name="glibc_uordblks" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="js_bytes" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="gjs_boxed" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="gjs_gobject" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="gjs_function" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="gjs_closure" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="last_gc_seconds_ago" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <class name="MountOperation"
           c:symbol-prefix="mount_operation"
           c:type="ShellMountOperation"
           parent="Gio.MountOperation"
           glib:type-name="ShellMountOperation"
           glib:get-type="shell_mount_operation_get_type"
           glib:type-struct="MountOperationClass">
      <source-position filename="../src/shell-mount-operation.h" line="30"/>
      <constructor name="new" c:identifier="shell_mount_operation_new">
        <source-position filename="../src/shell-mount-operation.h" line="33"/>
        <return-value transfer-ownership="full">
          <type name="Gio.MountOperation" c:type="GMountOperation*"/>
        </return-value>
      </constructor>
      <method name="get_show_processes_choices"
              c:identifier="shell_mount_operation_get_show_processes_choices">
        <source-position filename="../src/shell-mount-operation.h" line="36"/>
        <return-value transfer-ownership="full">
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-mount-operation.c"
                 line="169">a #ShellMountOperation</doc>
            <type name="MountOperation" c:type="ShellMountOperation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_processes_message"
              c:identifier="shell_mount_operation_get_show_processes_message">
        <source-position filename="../src/shell-mount-operation.h" line="37"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-mount-operation.c"
                 line="181">a #ShellMountOperation</doc>
            <type name="MountOperation" c:type="ShellMountOperation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_processes_pids"
              c:identifier="shell_mount_operation_get_show_processes_pids">
        <source-position filename="../src/shell-mount-operation.h" line="35"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-mount-operation.c"
               line="159">a #GArray</doc>
          <array name="GLib.Array" c:type="GArray*">
            <type name="GLib.Pid"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-mount-operation.c"
                 line="157">a #ShellMountOperation</doc>
            <type name="MountOperation" c:type="ShellMountOperation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <glib:signal name="show-processes-2" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="MountOperationClass"
            c:type="ShellMountOperationClass"
            glib:is-gtype-struct-for="MountOperation">
      <source-position filename="../src/shell-mount-operation.h" line="30"/>
      <field name="parent_class">
        <type name="Gio.MountOperationClass" c:type="GMountOperationClass"/>
      </field>
    </record>
    <function-macro name="NETWORK_AGENT"
                    c:identifier="SHELL_NETWORK_AGENT"
                    introspectable="0">
      <source-position filename="../src/shell-network-agent.h" line="23"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="NETWORK_AGENT_CLASS"
                    c:identifier="SHELL_NETWORK_AGENT_CLASS"
                    introspectable="0">
      <source-position filename="../src/shell-network-agent.h" line="25"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="NETWORK_AGENT_GET_CLASS"
                    c:identifier="SHELL_NETWORK_AGENT_GET_CLASS"
                    introspectable="0">
      <source-position filename="../src/shell-network-agent.h" line="27"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="NetworkAgent"
           c:symbol-prefix="network_agent"
           c:type="ShellNetworkAgent"
           parent="NM.SecretAgentOld"
           glib:type-name="ShellNetworkAgent"
           glib:get-type="shell_network_agent_get_type"
           glib:type-struct="NetworkAgentClass">
      <source-position filename="../src/shell-network-agent.h" line="41"/>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.Initable"/>
      <method name="add_vpn_secret"
              c:identifier="shell_network_agent_add_vpn_secret">
        <source-position filename="../src/shell-network-agent.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="NetworkAgent" c:type="ShellNetworkAgent*"/>
          </instance-parameter>
          <parameter name="request_id" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="setting_key" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="setting_value" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="respond" c:identifier="shell_network_agent_respond">
        <source-position filename="../src/shell-network-agent.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="NetworkAgent" c:type="ShellNetworkAgent*"/>
          </instance-parameter>
          <parameter name="request_id" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="response" transfer-ownership="none">
            <type name="NetworkAgentResponse"
                  c:type="ShellNetworkAgentResponse"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_vpn_plugin"
              c:identifier="shell_network_agent_search_vpn_plugin">
        <source-position filename="../src/shell-network-agent.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="NetworkAgent" c:type="ShellNetworkAgent*"/>
          </instance-parameter>
          <parameter name="service" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_vpn_plugin_finish"
              c:identifier="shell_network_agent_search_vpn_plugin_finish"
              throws="1">
        <source-position filename="../src/shell-network-agent.h" line="62"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../src/shell-network-agent.c"
               line="554">The found plugin or %NULL</doc>
          <type name="NM.VpnPluginInfo" c:type="NMVpnPluginInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="NetworkAgent" c:type="ShellNetworkAgent*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password"
              c:identifier="shell_network_agent_set_password">
        <source-position filename="../src/shell-network-agent.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="NetworkAgent" c:type="ShellNetworkAgent*"/>
          </instance-parameter>
          <parameter name="request_id" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="setting_key" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="setting_value" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance" readable="0" private="1">
        <type name="NM.SecretAgentOld" c:type="NMSecretAgentOld"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="NetworkAgentPrivate" c:type="ShellNetworkAgentPrivate*"/>
      </field>
      <glib:signal name="cancel-request">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="new-request">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="NM.Connection"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <array>
              <type name="utf8"/>
            </array>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="NetworkAgentClass"
            c:type="ShellNetworkAgentClass"
            glib:is-gtype-struct-for="NetworkAgent">
      <source-position filename="../src/shell-network-agent.h" line="41"/>
      <field name="parent_class" readable="0" private="1">
        <type name="NM.SecretAgentOldClass" c:type="NMSecretAgentOldClass"/>
      </field>
    </record>
    <record name="NetworkAgentPrivate"
            c:type="ShellNetworkAgentPrivate"
            disguised="1">
      <source-position filename="../src/shell-network-agent.h" line="20"/>
    </record>
    <enumeration name="NetworkAgentResponse"
                 glib:type-name="ShellNetworkAgentResponse"
                 glib:get-type="shell_network_agent_response_get_type"
                 c:type="ShellNetworkAgentResponse">
      <member name="confirmed"
              value="0"
              c:identifier="SHELL_NETWORK_AGENT_CONFIRMED"
              glib:nick="confirmed"
              glib:name="SHELL_NETWORK_AGENT_CONFIRMED">
      </member>
      <member name="user_canceled"
              value="1"
              c:identifier="SHELL_NETWORK_AGENT_USER_CANCELED"
              glib:nick="user-canceled"
              glib:name="SHELL_NETWORK_AGENT_USER_CANCELED">
      </member>
      <member name="internal_error"
              value="2"
              c:identifier="SHELL_NETWORK_AGENT_INTERNAL_ERROR"
              glib:nick="internal-error"
              glib:name="SHELL_NETWORK_AGENT_INTERNAL_ERROR">
      </member>
    </enumeration>
    <class name="PerfLog"
           c:symbol-prefix="perf_log"
           c:type="ShellPerfLog"
           parent="GObject.Object"
           glib:type-name="ShellPerfLog"
           glib:get-type="shell_perf_log_get_type"
           glib:type-struct="PerfLogClass">
      <source-position filename="../src/shell-perf-log.h" line="11"/>
      <function name="get_default" c:identifier="shell_perf_log_get_default">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="166">Gets the global singleton performance log. This is initially disabled
and must be explicitly enabled with shell_perf_log_set_enabled().</doc>
        <source-position filename="../src/shell-perf-log.h" line="13"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-perf-log.c"
               line="172">the global singleton performance log</doc>
          <type name="PerfLog" c:type="ShellPerfLog*"/>
        </return-value>
      </function>
      <method name="add_statistics_callback"
              c:identifier="shell_perf_log_add_statistics_callback">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="583">Adds a function that will be called before statistics are recorded.
The function would typically compute one or more statistics values
and call a function such as shell_perf_log_update_statistic_i()
to update the value that will be recorded.</doc>
        <source-position filename="../src/shell-perf-log.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="585">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="586">function to call before recording statistics</doc>
            <type name="PerfStatisticsCallback"
                  c:type="ShellPerfStatisticsCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="587">data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="588">function to call when @user_data is no longer needed</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="collect_statistics"
              c:identifier="shell_perf_log_collect_statistics">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="610">Calls all the update functions added with
shell_perf_log_add_statistics_callback() and then records events
for all statistics, followed by a perf.statisticsCollected event.</doc>
        <source-position filename="../src/shell-perf-log.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="612">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="define_event" c:identifier="shell_perf_log_define_event">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="275">Defines a performance event for later recording.</doc>
        <source-position filename="../src/shell-perf-log.h" line="18"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="277">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="278">name of the event. This should of the form
  '&lt;namespace&gt;.&lt;specific eventf'&gt;, for example
  'clutter.stagePaintDone'.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="281">human readable description of the event.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="282">signature defining the arguments that event takes.
  This is a string of type characters, using the same characters
  as D-Bus or GVariant. Only a very limited number of signatures
  are supported: , '', 's', 'i', and 'x'. This mean respectively:
  no arguments, one string, one 32-bit integer, and one 64-bit
  integer.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="define_statistic"
              c:identifier="shell_perf_log_define_statistic">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="465">Defines a statistic. A statistic is a numeric value that is stored
by the performance log and recorded periodically or when
shell_perf_log_collect_statistics() is called explicitly.

Code that defines a statistic should update it by calling
the update function for the particular data type of the statistic,
such as shell_perf_log_update_statistic_i(). This can be done
at any time, but would normally done inside a function registered
with shell_perf_log_add_statistics_callback(). These functions
are called immediately before statistics are recorded.</doc>
        <source-position filename="../src/shell-perf-log.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="467">name of the statistic and of the corresponding event.
 This should follow the same guidelines as for shell_perf_log_define_event()</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="469">human readable description of the statistic.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="470">The type of the data stored for statistic. Must
 currently be 'i' or 'x'.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="dump_events"
              c:identifier="shell_perf_log_dump_events"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="797">Dump the definition of currently defined events and statistics, formatted
as JSON, to the specified output stream. The JSON output is an array,
with each element being a dictionary of the form:

{ name: &lt;name of event&gt;,
  description: &lt;description of string,
  statistic: true } (only for statistics)</doc>
        <source-position filename="../src/shell-perf-log.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-perf-log.c"
               line="811">%TRUE if the dump succeeded. %FALSE if an IO error occurred</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="799">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="out" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="800">output stream into which to write the event definitions</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="dump_log"
              c:identifier="shell_perf_log_dump_log"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="918">Writes the performance event log, formatted as JSON, to the specified
output stream. For performance reasons, the output stream passed
in should generally be a buffered (or memory) output stream, since
it will be written to in small pieces. The JSON output is an array
with the elements of the array also being arrays, of the form
'[' &lt;time&gt;, &lt;event name&gt; [, &lt;event_arg&gt;... ] ']'.</doc>
        <source-position filename="../src/shell-perf-log.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-perf-log.c"
               line="931">%TRUE if the dump succeeded. %FALSE if an IO error occurred</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="920">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="out" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="921">output stream into which to write the event log</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="event" c:identifier="shell_perf_log_event">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="384">Records a performance event with no arguments.</doc>
        <source-position filename="../src/shell-perf-log.h" line="22"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="386">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="387">name of the event</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="event_i" c:identifier="shell_perf_log_event_i">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="402">Records a performance event with one 32-bit integer argument.</doc>
        <source-position filename="../src/shell-perf-log.h" line="24"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="404">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="405">name of the event</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="arg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="406">the argument</doc>
            <type name="gint32" c:type="gint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="event_s" c:identifier="shell_perf_log_event_s">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="444">Records a performance event with one string argument.</doc>
        <source-position filename="../src/shell-perf-log.h" line="30"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="446">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="447">name of the event</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="arg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="448">the argument</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="event_x" c:identifier="shell_perf_log_event_x">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="423">Records a performance event with one 64-bit integer argument.</doc>
        <source-position filename="../src/shell-perf-log.h" line="27"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="425">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="426">name of the event</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="arg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="427">the argument</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="replay" c:identifier="shell_perf_log_replay">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="680">Replays the log by calling the given function for each event
in the log.</doc>
        <source-position filename="../src/shell-perf-log.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="682">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="replay_function"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="683">function to call for each event in the log</doc>
            <type name="PerfReplayFunction" c:type="ShellPerfReplayFunction"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="684">data to pass to @replay_function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enabled" c:identifier="shell_perf_log_set_enabled">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="195">Sets whether events are currently being recorded.</doc>
        <source-position filename="../src/shell-perf-log.h" line="15"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="197">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="198">whether to record events</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_statistic_i"
              c:identifier="shell_perf_log_update_statistic_i">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="537">Updates the current value of an 32-bit integer statistic.</doc>
        <source-position filename="../src/shell-perf-log.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="539">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="540">name of the statistic</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="541">new value for the statistic</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_statistic_x"
              c:identifier="shell_perf_log_update_statistic_x">
        <doc xml:space="preserve"
             filename="../src/shell-perf-log.c"
             line="560">Updates the current value of an 64-bit integer statistic.</doc>
        <source-position filename="../src/shell-perf-log.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="perf_log" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="562">a #ShellPerfLog</doc>
            <type name="PerfLog" c:type="ShellPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="563">name of the statistic</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-perf-log.c"
                 line="564">new value for the statistic</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="PerfLogClass"
            c:type="ShellPerfLogClass"
            glib:is-gtype-struct-for="PerfLog">
      <source-position filename="../src/shell-perf-log.h" line="11"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="PerfReplayFunction" c:type="ShellPerfReplayFunction">
      <source-position filename="../src/shell-perf-log.h" line="56"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="time" transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="signature" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="arg" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="PerfStatisticsCallback"
              c:type="ShellPerfStatisticsCallback">
      <source-position filename="../src/shell-perf-log.h" line="46"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="perf_log" transfer-ownership="none">
          <type name="PerfLog" c:type="ShellPerfLog*"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="PolkitAuthenticationAgent"
           c:symbol-prefix="polkit_authentication_agent"
           c:type="ShellPolkitAuthenticationAgent"
           parent="PolkitAgent.Listener"
           glib:type-name="ShellPolkitAuthenticationAgent"
           glib:get-type="shell_polkit_authentication_agent_get_type"
           glib:type-struct="PolkitAuthenticationAgentClass">
      <source-position filename="../src/shell-polkit-authentication-agent.h"
                       line="22"/>
      <constructor name="new"
                   c:identifier="shell_polkit_authentication_agent_new">
        <source-position filename="../src/shell-polkit-authentication-agent.h"
                         line="24"/>
        <return-value transfer-ownership="full">
          <type name="PolkitAuthenticationAgent"
                c:type="ShellPolkitAuthenticationAgent*"/>
        </return-value>
      </constructor>
      <method name="complete"
              c:identifier="shell_polkit_authentication_agent_complete">
        <source-position filename="../src/shell-polkit-authentication-agent.h"
                         line="26"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="agent" transfer-ownership="none">
            <type name="PolkitAuthenticationAgent"
                  c:type="ShellPolkitAuthenticationAgent*"/>
          </instance-parameter>
          <parameter name="dismissed" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="register"
              c:identifier="shell_polkit_authentication_agent_register"
              throws="1">
        <source-position filename="../src/shell-polkit-authentication-agent.h"
                         line="28"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="agent" transfer-ownership="none">
            <type name="PolkitAuthenticationAgent"
                  c:type="ShellPolkitAuthenticationAgent*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unregister"
              c:identifier="shell_polkit_authentication_agent_unregister">
        <source-position filename="../src/shell-polkit-authentication-agent.h"
                         line="30"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="agent" transfer-ownership="none">
            <type name="PolkitAuthenticationAgent"
                  c:type="ShellPolkitAuthenticationAgent*"/>
          </instance-parameter>
        </parameters>
      </method>
      <glib:signal name="cancel" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="initiate" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <array>
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="PolkitAuthenticationAgentClass"
            c:type="ShellPolkitAuthenticationAgentClass"
            glib:is-gtype-struct-for="PolkitAuthenticationAgent">
      <source-position filename="../src/shell-polkit-authentication-agent.h"
                       line="22"/>
      <field name="parent_class">
        <type name="PolkitAgent.ListenerClass"
              c:type="PolkitAgentListenerClass"/>
      </field>
    </record>
    <class name="Screenshot"
           c:symbol-prefix="screenshot"
           c:type="ShellScreenshot"
           parent="GObject.Object"
           glib:type-name="ShellScreenshot"
           glib:get-type="shell_screenshot_get_type"
           glib:type-struct="ScreenshotClass">
      <source-position filename="../src/shell-screenshot.h" line="14"/>
      <constructor name="new" c:identifier="shell_screenshot_new">
        <source-position filename="../src/shell-screenshot.h" line="17"/>
        <return-value transfer-ownership="full">
          <type name="Screenshot" c:type="ShellScreenshot*"/>
        </return-value>
      </constructor>
      <function name="composite_to_stream"
                c:identifier="shell_screenshot_composite_to_stream">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="1067">Composite a rectangle defined by x, y, width, height from the texture to a
pixbuf and write it as a PNG image into the stream.</doc>
        <source-position filename="../src/shell-screenshot.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="texture" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1069">the source texture</doc>
            <type name="Cogl.Texture" c:type="CoglTexture*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1070">x coordinate of the rectangle</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1071">y coordinate of the rectangle</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1072">width of the rectangle, or -1 to use the full texture</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1073">height of the rectangle, or -1 to use the full texture</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1074">scale of the source texture</doc>
            <type name="gfloat" c:type="float"/>
          </parameter>
          <parameter name="cursor"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1075">the cursor texture</doc>
            <type name="Cogl.Texture" c:type="CoglTexture*"/>
          </parameter>
          <parameter name="cursor_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1076">x coordinate to put the cursor texture at, relative to the full
source texture</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cursor_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1078">y coordinate to put the cursor texture at, relative to the full
source texture</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cursor_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1080">scale of the cursor texture</doc>
            <type name="gfloat" c:type="float"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1081">the stream to write the PNG image into</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="12">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1082">function to call returning success or failure</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"
                 filename="../src/shell-screenshot.c"
                 line="1083">the data to pass to callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="composite_to_stream_finish"
                c:identifier="shell_screenshot_composite_to_stream_finish"
                throws="1">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="1188">Finish the asynchronous operation started by
shell_screenshot_composite_to_stream () and obtain its result.</doc>
        <source-position filename="../src/shell-screenshot.h" line="87"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../src/shell-screenshot.c"
               line="1196">a GdkPixbuf with the final image if the
operation was successful, or NULL on error.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1190">the #GAsyncResult that was provided to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <method name="pick_color" c:identifier="shell_screenshot_pick_color">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="942">Picks the pixel at @x, @y and returns its color as #ClutterColor.</doc>
        <source-position filename="../src/shell-screenshot.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="944">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="945">The X coordinate to pick</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="946">The Y coordinate to pick</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="947">function to call returning success or failure
of the async grabbing</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="pick_color_finish"
              c:identifier="shell_screenshot_pick_color_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="997">Finish the asynchronous operation started by shell_screenshot_pick_color()
and obtain its result.</doc>
        <source-position filename="../src/shell-screenshot.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-screenshot.c"
               line="1007">whether the operation was successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="999">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1000">the #GAsyncResult that was provided to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="1001">the picked color</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot" c:identifier="shell_screenshot_screenshot">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="527">Takes a screenshot of the whole screen
in @stream as png image.</doc>
        <source-position filename="../src/shell-screenshot.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="529">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="include_cursor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="530">Whether to include the cursor or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="531">The stream for the screenshot</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="532">function to call returning success or failure
of the async grabbing</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"
                 filename="../src/shell-screenshot.c"
                 line="534">the data to pass to callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot_area"
              c:identifier="shell_screenshot_screenshot_area">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="744">Takes a screenshot of the passed in area and saves it
in @stream as png image.</doc>
        <source-position filename="../src/shell-screenshot.h" line="19"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="746">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="747">The X coordinate of the area</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="748">The Y coordinate of the area</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="749">The width of the area</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="750">The height of the area</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="751">The stream for the screenshot</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="752">function to call returning success or failure
of the async grabbing</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"
                 filename="../src/shell-screenshot.c"
                 line="754">the data to pass to callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot_area_finish"
              c:identifier="shell_screenshot_screenshot_area_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="832">Finish the asynchronous operation started by shell_screenshot_screenshot_area()
and obtain its result.</doc>
        <source-position filename="../src/shell-screenshot.h" line="27"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-screenshot.c"
               line="842">whether the operation was successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="834">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="835">the #GAsyncResult that was provided to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="836">the area that was grabbed in screen coordinates</doc>
            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t**"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot_finish"
              c:identifier="shell_screenshot_screenshot_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="600">Finish the asynchronous operation started by shell_screenshot_screenshot()
and obtain its result.</doc>
        <source-position filename="../src/shell-screenshot.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-screenshot.c"
               line="610">whether the operation was successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="602">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="603">the #GAsyncResult that was provided to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="604">the area that was grabbed in screen coordinates</doc>
            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t**"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot_stage_to_content"
              c:identifier="shell_screenshot_screenshot_stage_to_content">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="645">Takes a screenshot of the whole screen as #ClutterContent.</doc>
        <source-position filename="../src/shell-screenshot.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="647">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="1">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="648">function to call returning success or failure
of the async grabbing</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"
                 filename="../src/shell-screenshot.c"
                 line="650">the data to pass to callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot_stage_to_content_finish"
              c:identifier="shell_screenshot_screenshot_stage_to_content_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="688">Finish the asynchronous operation started by
shell_screenshot_screenshot_stage_to_content() and obtain its result.</doc>
        <source-position filename="../src/shell-screenshot.h" line="56"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-screenshot.c"
               line="702">the #ClutterContent, or NULL</doc>
          <type name="Clutter.Content" c:type="ClutterContent*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="690">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="691">the #GAsyncResult that was provided to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="scale"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="692">location to store the content scale</doc>
            <type name="gfloat" c:type="float*"/>
          </parameter>
          <parameter name="cursor_content"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="693">location to store the cursor content</doc>
            <type name="Clutter.Content" c:type="ClutterContent**"/>
          </parameter>
          <parameter name="cursor_point"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="694">location to store the point at which to
draw the cursor content</doc>
            <type name="Graphene.Point" c:type="graphene_point_t*"/>
          </parameter>
          <parameter name="cursor_scale"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="696">location to store the cursor scale</doc>
            <type name="gfloat" c:type="float*"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot_window"
              c:identifier="shell_screenshot_screenshot_window">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="859">Takes a screenshot of the focused window (optionally omitting the frame)
in @stream as png image.</doc>
        <source-position filename="../src/shell-screenshot.h" line="32"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="861">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="include_frame" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="862">Whether to include the frame or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="include_cursor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="863">Whether to include the cursor or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="864">The stream for the screenshot</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="865">function to call returning success or failure
of the async grabbing</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"
                 filename="../src/shell-screenshot.c"
                 line="867">the data to pass to callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot_window_finish"
              c:identifier="shell_screenshot_screenshot_window_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/shell-screenshot.c"
             line="915">Finish the asynchronous operation started by shell_screenshot_screenshot_window()
and obtain its result.</doc>
        <source-position filename="../src/shell-screenshot.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-screenshot.c"
               line="925">whether the operation was successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screenshot" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="917">the #ShellScreenshot</doc>
            <type name="Screenshot" c:type="ShellScreenshot*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="918">the #GAsyncResult that was provided to the callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-screenshot.c"
                 line="919">the area that was grabbed in screen coordinates</doc>
            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t**"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="screenshot-taken" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.Rectangle"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ScreenshotClass"
            c:type="ShellScreenshotClass"
            glib:is-gtype-struct-for="Screenshot">
      <source-position filename="../src/shell-screenshot.h" line="14"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SecureTextBuffer"
           c:symbol-prefix="secure_text_buffer"
           c:type="ShellSecureTextBuffer"
           parent="Clutter.TextBuffer"
           glib:type-name="ShellSecureTextBuffer"
           glib:get-type="shell_secure_text_buffer_get_type"
           glib:type-struct="SecureTextBufferClass">
      <source-position filename="../src/shell-secure-text-buffer.h" line="32"/>
      <constructor name="new" c:identifier="shell_secure_text_buffer_new">
        <source-position filename="../src/shell-secure-text-buffer.h"
                         line="35"/>
        <return-value transfer-ownership="full">
          <type name="Clutter.TextBuffer" c:type="ClutterTextBuffer*"/>
        </return-value>
      </constructor>
    </class>
    <record name="SecureTextBufferClass"
            c:type="ShellSecureTextBufferClass"
            glib:is-gtype-struct-for="SecureTextBuffer">
      <source-position filename="../src/shell-secure-text-buffer.h" line="32"/>
      <field name="parent_class">
        <type name="Clutter.TextBufferClass" c:type="ClutterTextBufferClass"/>
      </field>
    </record>
    <enumeration name="SnippetHook"
                 glib:type-name="ShellSnippetHook"
                 glib:get-type="shell_snippet_hook_get_type"
                 c:type="ShellSnippetHook">
      <doc xml:space="preserve"
           filename="../src/shell-glsl-effect.h"
           line="8">Temporary hack to work around Cogl not exporting CoglSnippetHook in
the 1.0 API. Don't use.</doc>
      <member name="vertex"
              value="0"
              c:identifier="SHELL_SNIPPET_HOOK_VERTEX"
              glib:nick="vertex"
              glib:name="SHELL_SNIPPET_HOOK_VERTEX">
      </member>
      <member name="vertex_transform"
              value="1"
              c:identifier="SHELL_SNIPPET_HOOK_VERTEX_TRANSFORM"
              glib:nick="vertex-transform"
              glib:name="SHELL_SNIPPET_HOOK_VERTEX_TRANSFORM">
      </member>
      <member name="fragment"
              value="2048"
              c:identifier="SHELL_SNIPPET_HOOK_FRAGMENT"
              glib:nick="fragment"
              glib:name="SHELL_SNIPPET_HOOK_FRAGMENT">
      </member>
      <member name="texture_coord_transform"
              value="4096"
              c:identifier="SHELL_SNIPPET_HOOK_TEXTURE_COORD_TRANSFORM"
              glib:nick="texture-coord-transform"
              glib:name="SHELL_SNIPPET_HOOK_TEXTURE_COORD_TRANSFORM">
      </member>
      <member name="layer_fragment"
              value="6144"
              c:identifier="SHELL_SNIPPET_HOOK_LAYER_FRAGMENT"
              glib:nick="layer-fragment"
              glib:name="SHELL_SNIPPET_HOOK_LAYER_FRAGMENT">
      </member>
      <member name="texture_lookup"
              value="6145"
              c:identifier="SHELL_SNIPPET_HOOK_TEXTURE_LOOKUP"
              glib:nick="texture-lookup"
              glib:name="SHELL_SNIPPET_HOOK_TEXTURE_LOOKUP">
      </member>
    </enumeration>
    <class name="SquareBin"
           c:symbol-prefix="square_bin"
           c:type="ShellSquareBin"
           parent="St.Bin"
           glib:type-name="ShellSquareBin"
           glib:get-type="shell_square_bin_get_type"
           glib:type-struct="SquareBinClass">
      <source-position filename="../src/shell-square-bin.h" line="9"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
    </class>
    <record name="SquareBinClass"
            c:type="ShellSquareBinClass"
            glib:is-gtype-struct-for="SquareBin">
      <source-position filename="../src/shell-square-bin.h" line="9"/>
      <field name="parent_class">
        <type name="St.BinClass" c:type="StBinClass"/>
      </field>
    </record>
    <class name="Stack"
           c:symbol-prefix="stack"
           c:type="ShellStack"
           parent="St.Widget"
           glib:type-name="ShellStack"
           glib:get-type="shell_stack_get_type"
           glib:type-struct="StackClass">
      <source-position filename="../src/shell-stack.h" line="9"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
    </class>
    <record name="StackClass"
            c:type="ShellStackClass"
            glib:is-gtype-struct-for="Stack">
      <source-position filename="../src/shell-stack.h" line="9"/>
      <field name="parent_class">
        <type name="St.WidgetClass" c:type="StWidgetClass"/>
      </field>
    </record>
    <class name="TrayIcon"
           c:symbol-prefix="tray_icon"
           c:type="ShellTrayIcon"
           parent="GtkEmbed"
           glib:type-name="ShellTrayIcon"
           glib:get-type="shell_tray_icon_get_type"
           glib:type-struct="TrayIconClass">
      <source-position filename="../src/shell-tray-icon.h" line="8"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="shell_tray_icon_new">
        <source-position filename="../src/shell-tray-icon.h" line="11"/>
        <return-value transfer-ownership="none">
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <type name="EmbeddedWindow" c:type="ShellEmbeddedWindow*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="click" c:identifier="shell_tray_icon_click">
        <doc xml:space="preserve"
             filename="../src/shell-tray-icon.c"
             line="175">Fakes a press and release on @icon. @event must be a
%CLUTTER_BUTTON_RELEASE, %CLUTTER_KEY_PRESS or %CLUTTER_KEY_RELEASE event.
Its relevant details will be passed on to the icon, but its
coordinates will be ignored; the click is
always made on the center of @icon.</doc>
        <source-position filename="../src/shell-tray-icon.h" line="13"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-tray-icon.c"
                 line="177">a #ShellTrayIcon</doc>
            <type name="TrayIcon" c:type="ShellTrayIcon*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-tray-icon.c"
                 line="178">the #ClutterEvent triggering the fake click</doc>
            <type name="Clutter.Event" c:type="ClutterEvent*"/>
          </parameter>
        </parameters>
      </method>
      <property name="pid" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="title" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="wm-class" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="TrayIconClass"
            c:type="ShellTrayIconClass"
            glib:is-gtype-struct-for="TrayIcon">
      <source-position filename="../src/shell-tray-icon.h" line="8"/>
      <field name="parent_class">
        <type name="GtkEmbedClass" c:type="ShellGtkEmbedClass"/>
      </field>
    </record>
    <class name="TrayManager"
           c:symbol-prefix="tray_manager"
           c:type="ShellTrayManager"
           parent="GObject.Object"
           glib:type-name="ShellTrayManager"
           glib:get-type="shell_tray_manager_get_type"
           glib:type-struct="TrayManagerClass">
      <source-position filename="../src/shell-tray-manager.h" line="12"/>
      <constructor name="new" c:identifier="shell_tray_manager_new">
        <source-position filename="../src/shell-tray-manager.h" line="15"/>
        <return-value transfer-ownership="full">
          <type name="TrayManager" c:type="ShellTrayManager*"/>
        </return-value>
      </constructor>
      <method name="manage_screen"
              c:identifier="shell_tray_manager_manage_screen">
        <source-position filename="../src/shell-tray-manager.h" line="16"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="TrayManager" c:type="ShellTrayManager*"/>
          </instance-parameter>
          <parameter name="theme_widget" transfer-ownership="none">
            <type name="St.Widget" c:type="StWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unmanage_screen"
              c:identifier="shell_tray_manager_unmanage_screen">
        <source-position filename="../src/shell-tray-manager.h" line="18"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="TrayManager" c:type="ShellTrayManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="bg-color"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Clutter.Color"/>
      </property>
      <glib:signal name="tray-icon-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Clutter.Actor"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="tray-icon-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Clutter.Actor"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TrayManagerClass"
            c:type="ShellTrayManagerClass"
            glib:is-gtype-struct-for="TrayManager">
      <source-position filename="../src/shell-tray-manager.h" line="12"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="WM"
           c:symbol-prefix="wm"
           c:type="ShellWM"
           parent="GObject.Object"
           glib:type-name="ShellWM"
           glib:get-type="shell_wm_get_type"
           glib:type-struct="WMClass">
      <source-position filename="../src/shell-wm.h" line="11"/>
      <constructor name="new" c:identifier="shell_wm_new">
        <doc xml:space="preserve"
             filename="../src/shell-wm.c"
             line="445">Creates a new window management interface by hooking into @plugin.</doc>
        <source-position filename="../src/shell-wm.h" line="13"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-wm.c"
               line="451">the new window-management interface</doc>
          <type name="WM" c:type="ShellWM*"/>
        </return-value>
        <parameters>
          <parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="447">the #MetaPlugin</doc>
            <type name="Meta.Plugin" c:type="MetaPlugin*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="complete_display_change"
              c:identifier="shell_wm_complete_display_change">
        <doc xml:space="preserve"
             filename="../src/shell-wm.c"
             line="293">The plugin must call this after the user responded to the confirmation dialog.</doc>
        <source-position filename="../src/shell-wm.h" line="27"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="295">the ShellWM</doc>
            <type name="WM" c:type="ShellWM*"/>
          </instance-parameter>
          <parameter name="ok" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="296">if the new configuration was OK</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="completed_destroy"
              c:identifier="shell_wm_completed_destroy">
        <doc xml:space="preserve"
             filename="../src/shell-wm.c"
             line="279">The plugin must call this when it has completed a window destroy effect.</doc>
        <source-position filename="../src/shell-wm.h" line="23"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="281">the ShellWM</doc>
            <type name="WM" c:type="ShellWM*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="282">the MetaWindowActor actor</doc>
            <type name="Meta.WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="completed_map" c:identifier="shell_wm_completed_map">
        <doc xml:space="preserve"
             filename="../src/shell-wm.c"
             line="265">The plugin must call this when it has completed a window map effect.</doc>
        <source-position filename="../src/shell-wm.h" line="21"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="267">the ShellWM</doc>
            <type name="WM" c:type="ShellWM*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="268">the MetaWindowActor actor</doc>
            <type name="Meta.WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="completed_minimize"
              c:identifier="shell_wm_completed_minimize">
        <doc xml:space="preserve"
             filename="../src/shell-wm.c"
             line="230">The plugin must call this when it has completed a window minimize effect.</doc>
        <source-position filename="../src/shell-wm.h" line="15"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="232">the ShellWM</doc>
            <type name="WM" c:type="ShellWM*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="233">the MetaWindowActor actor</doc>
            <type name="Meta.WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="completed_size_change"
              c:identifier="shell_wm_completed_size_change">
        <source-position filename="../src/shell-wm.h" line="19"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wm" transfer-ownership="none">
            <type name="WM" c:type="ShellWM*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <type name="Meta.WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="completed_switch_workspace"
              c:identifier="shell_wm_completed_switch_workspace">
        <doc xml:space="preserve"
             filename="../src/shell-wm.c"
             line="217">The plugin must call this when it has finished switching the
workspace.</doc>
        <source-position filename="../src/shell-wm.h" line="25"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="219">the ShellWM</doc>
            <type name="WM" c:type="ShellWM*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="completed_unminimize"
              c:identifier="shell_wm_completed_unminimize">
        <doc xml:space="preserve"
             filename="../src/shell-wm.c"
             line="244">The plugin must call this when it has completed a window unminimize effect.</doc>
        <source-position filename="../src/shell-wm.h" line="17"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="wm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="246">the ShellWM</doc>
            <type name="WM" c:type="ShellWM*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="247">the MetaWindowActor actor</doc>
            <type name="Meta.WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="confirm-display-change" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="create-close-dialog" when="last">
        <doc xml:space="preserve"
             filename="../src/shell-wm.c"
             line="173">Creates a close dialog for the given window.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-wm.c"
               line="180">The close dialog instance.</doc>
          <type name="Meta.CloseDialog"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="176">The window to create the dialog for</doc>
            <type name="Meta.Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="create-inhibit-shortcuts-dialog" when="last">
        <doc xml:space="preserve"
             filename="../src/shell-wm.c"
             line="189">Creates an inhibit shortcuts dialog for the given window.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-wm.c"
               line="196">The inhibit shortcuts dialog instance.</doc>
          <type name="Meta.InhibitShortcutsDialog"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-wm.c"
                 line="192">The window to create the dialog for</doc>
            <type name="Meta.Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="destroy" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.WindowActor"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="filter-keybinding" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.KeyBinding"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="hide-tile-preview" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="kill-switch-workspace" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="kill-window-effects" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.WindowActor"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="map" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.WindowActor"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="minimize" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.WindowActor"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-tile-preview" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.Window"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Meta.Rectangle"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-window-menu" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.Window"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="Meta.Rectangle"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="size-change" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.WindowActor"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Meta.SizeChange"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="Meta.Rectangle"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="Meta.Rectangle"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="size-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.WindowActor"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="switch-workspace" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="unminimize" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.WindowActor"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="WMClass" c:type="ShellWMClass" glib:is-gtype-struct-for="WM">
      <source-position filename="../src/shell-wm.h" line="11"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="WindowPreview"
           c:symbol-prefix="window_preview"
           c:type="ShellWindowPreview"
           parent="St.Widget"
           glib:type-name="ShellWindowPreview"
           glib:get-type="shell_window_preview_get_type"
           glib:type-struct="WindowPreviewClass">
      <source-position filename="../src/shell-window-preview.h" line="9"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <property name="window-container" writable="1" transfer-ownership="none">
        <type name="Clutter.Actor"/>
      </property>
    </class>
    <record name="WindowPreviewClass"
            c:type="ShellWindowPreviewClass"
            glib:is-gtype-struct-for="WindowPreview">
      <source-position filename="../src/shell-window-preview.h" line="9"/>
      <field name="parent_class">
        <type name="St.WidgetClass" c:type="StWidgetClass"/>
      </field>
    </record>
    <class name="WindowPreviewLayout"
           c:symbol-prefix="window_preview_layout"
           c:type="ShellWindowPreviewLayout"
           parent="Clutter.LayoutManager"
           glib:type-name="ShellWindowPreviewLayout"
           glib:get-type="shell_window_preview_layout_get_type"
           glib:type-struct="WindowPreviewLayoutClass">
      <source-position filename="../src/shell-window-preview-layout.h"
                       line="9"/>
      <method name="add_window"
              c:identifier="shell_window_preview_layout_add_window">
        <doc xml:space="preserve"
             filename="../src/shell-window-preview-layout.c"
             line="348">Creates a ClutterActor drawing the texture of @window and adds it
to the container. If @window is already part of the preview, this
function will do nothing.</doc>
        <source-position filename="../src/shell-window-preview-layout.h"
                         line="23"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-window-preview-layout.c"
               line="357">The newly created actor drawing @window</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-window-preview-layout.c"
                 line="350">a #ShellWindowPreviewLayout</doc>
            <type name="WindowPreviewLayout"
                  c:type="ShellWindowPreviewLayout*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-window-preview-layout.c"
                 line="351">the #MetaWindow</doc>
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_windows"
              c:identifier="shell_window_preview_layout_get_windows">
        <doc xml:space="preserve"
             filename="../src/shell-window-preview-layout.c"
             line="458">Gets an array of all MetaWindows that were added to the layout
using shell_window_preview_layout_add_window(), ordered by the
insertion order.</doc>
        <source-position filename="../src/shell-window-preview-layout.h"
                         line="29"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/shell-window-preview-layout.c"
               line="466">The list of windows</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Meta.Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-window-preview-layout.c"
                 line="460">a #ShellWindowPreviewLayout</doc>
            <type name="WindowPreviewLayout"
                  c:type="ShellWindowPreviewLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_window"
              c:identifier="shell_window_preview_layout_remove_window">
        <doc xml:space="preserve"
             filename="../src/shell-window-preview-layout.c"
             line="409">Removes a MetaWindow @window from the preview which has been added
previously using shell_window_preview_layout_add_window().
If @window is not part of preview, this function will do nothing.</doc>
        <source-position filename="../src/shell-window-preview-layout.h"
                         line="26"/>
        <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"
                 filename="../src/shell-window-preview-layout.c"
                 line="411">a #ShellWindowPreviewLayout</doc>
            <type name="WindowPreviewLayout"
                  c:type="ShellWindowPreviewLayout*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-window-preview-layout.c"
                 line="412">the #MetaWindow</doc>
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <property name="bounding-box" transfer-ownership="none">
        <type name="Clutter.ActorBox"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Clutter.LayoutManager" c:type="ClutterLayoutManager"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="WindowPreviewLayoutPrivate"
              c:type="ShellWindowPreviewLayoutPrivate*"/>
      </field>
    </class>
    <record name="WindowPreviewLayoutClass"
            c:type="ShellWindowPreviewLayoutClass"
            glib:is-gtype-struct-for="WindowPreviewLayout">
      <source-position filename="../src/shell-window-preview-layout.h"
                       line="9"/>
      <field name="parent_class">
        <type name="Clutter.LayoutManagerClass"
              c:type="ClutterLayoutManagerClass"/>
      </field>
    </record>
    <record name="WindowPreviewLayoutPrivate"
            c:type="ShellWindowPreviewLayoutPrivate"
            disguised="1">
      <source-position filename="../src/shell-window-preview-layout.h"
                       line="13"/>
    </record>
    <class name="WindowTracker"
           c:symbol-prefix="window_tracker"
           c:type="ShellWindowTracker"
           parent="GObject.Object"
           glib:type-name="ShellWindowTracker"
           glib:get-type="shell_window_tracker_get_type"
           glib:type-struct="WindowTrackerClass">
      <source-position filename="../src/shell-window-tracker.h" line="16"/>
      <function name="get_default"
                c:identifier="shell_window_tracker_get_default">
        <source-position filename="../src/shell-window-tracker.h" line="19"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-window-tracker.c"
               line="789">The global #ShellWindowTracker instance</doc>
          <type name="WindowTracker" c:type="ShellWindowTracker*"/>
        </return-value>
      </function>
      <method name="get_app_from_pid"
              c:identifier="shell_window_tracker_get_app_from_pid">
        <doc xml:space="preserve"
             filename="../src/shell-window-tracker.c"
             line="682">Look up the application corresponding to a process.</doc>
        <source-position filename="../src/shell-window-tracker.h" line="23"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-window-tracker.c"
               line="689">A #ShellApp, or %NULL if none</doc>
          <type name="App" c:type="ShellApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-window-tracker.c"
                 line="684">A #ShellAppSystem</doc>
            <type name="WindowTracker" c:type="ShellWindowTracker*"/>
          </instance-parameter>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-window-tracker.c"
                 line="685">A Unix process identifier</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_startup_sequences"
              c:identifier="shell_window_tracker_get_startup_sequences">
        <source-position filename="../src/shell-window-tracker.h" line="25"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-window-tracker.c"
               line="755">Currently active startup sequences</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Meta.StartupSequence"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <type name="WindowTracker" c:type="ShellWindowTracker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_app"
              c:identifier="shell_window_tracker_get_window_app">
        <source-position filename="../src/shell-window-tracker.h" line="21"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-window-tracker.c"
               line="666">Application associated with window</doc>
          <type name="App" c:type="ShellApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-window-tracker.c"
                 line="663">An app monitor instance</doc>
            <type name="WindowTracker" c:type="ShellWindowTracker*"/>
          </instance-parameter>
          <parameter name="metawin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/shell-window-tracker.c"
                 line="664">A #MetaWindow</doc>
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <property name="focus-app" transfer-ownership="none">
        <type name="App"/>
      </property>
      <glib:signal name="startup-sequence-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Meta.StartupSequence"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="tracked-windows-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="WindowTrackerClass"
            c:type="ShellWindowTrackerClass"
            glib:is-gtype-struct-for="WindowTracker">
      <source-position filename="../src/shell-window-tracker.h" line="16"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function name="get_file_contents_utf8_sync"
              c:identifier="shell_get_file_contents_utf8_sync"
              throws="1">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="208">Synchronously load the contents of a file as a NUL terminated
string, validating it as UTF-8.  Embedded NUL characters count as
invalid content.</doc>
      <source-position filename="../src/shell-util.h" line="27"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../src/shell-util.c"
             line="217">File contents</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="210">UTF-8 encoded filename path</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="shell-app">
      <doc xml:space="preserve"
           filename="../src/shell-app.c"
           line="60">This object wraps a #GDesktopAppInfo, providing methods and signals
primarily useful for running applications.</doc>
    </docsection>
    <docsection name="shell-app-usage">
      <doc xml:space="preserve"
           filename="../src/shell-app-usage.c"
           line="29">This class maintains some usage and state statistics for
applications by keeping track of the approximate time an application's
windows are focused, as well as the last workspace it was seen on.
This time tracking is implemented by watching for focus notifications,
and computing a time delta between them.  Also we watch the
GNOME Session "StatusChanged" signal which by default is emitted after 5
minutes to signify idle.</doc>
    </docsection>
    <docsection name="shell-blur-effect">
      <doc xml:space="preserve"
           filename="../src/shell-blur-effect.c"
           line="25">#ShellBlurEffect is a blur implementation based on Clutter. It also has
an optional brightness property.

# Modes

#ShellBlurEffect can work in @SHELL_BLUR_MODE_BACKGROUND and @SHELL_BLUR_MODE_ACTOR
modes. The actor mode blurs the actor itself, and all of its children. The
background mode blurs the pixels beneath the actor, but not the actor itself.

@SHELL_BLUR_MODE_BACKGROUND can be computationally expensive, since the contents
beneath the actor cannot be cached, so beware of the performance implications
of using this blur mode.</doc>
    </docsection>
    <docsection name="shell-glsl-effect">
      <doc xml:space="preserve"
           filename="../src/shell-glsl-effect.c"
           line="3">A #ShellGLSLEffect is a #ClutterOffscreenEffect that allows
running custom GLSL to the vertex and fragment stages of the
graphic pipeline.</doc>
    </docsection>
    <docsection name="shell-invert-lightness-effect">
      <doc xml:space="preserve"
           filename="../src/shell-invert-lightness-effect.c"
           line="22">#ShellInvertLightnessEffect is a sub-class of #ClutterEffect that enhances
the appearance of a clutter actor.  Specifically it inverts the lightness
of a #ClutterActor (e.g., darker colors become lighter, white becomes black,
and white, black).</doc>
    </docsection>
    <docsection name="shell-perf-log">
      <doc xml:space="preserve"
           filename="../src/shell-perf-log.c"
           line="15">ShellPerfLog provides a way for different parts of the code to
record information for subsequent analysis and interactive
exploration. Events exist of a timestamp, an event ID, and
arguments to the event.

Emphasis is placed on storing recorded events in a compact
fashion so log recording disturbs the execution of the program
as little as possible, however events should not be recorded
at too fine a granularity - an event that is recorded once
per frame or once per user action is appropriate, an event that
occurs many times per frame is not.

Arguments are identified by a D-Bus style signature; at the moment
only a limited number of event signatures are supported to
simplify the code.</doc>
    </docsection>
    <docsection name="shell-screenshot">
      <doc xml:space="preserve"
           filename="../src/shell-screenshot.h"
           line="5">The #ShellScreenshot object is used to take screenshots of screen
areas or windows and write them out as png files.</doc>
    </docsection>
    <docsection name="shell-stack">
      <doc xml:space="preserve"
           filename="../src/shell-stack.c"
           line="3">A #ShellStack draws its children on top of each other,
aligned to the top left.  It will be sized in width/height
according to the largest such dimension of its children, and
all children will be allocated that size.  This differs
from #ClutterGroup which allocates its children their natural
size, even if that would overflow the size allocated to the stack.</doc>
    </docsection>
    <docsection name="shell-window-tracker">
      <doc xml:space="preserve"
           filename="../src/shell-window-tracker.c"
           line="27">Maintains a mapping from windows to applications (.desktop file ids).
It currently implements this with some heuristics on the WM_CLASS X11
property (and some static override regexps); in the future, we want to
have it also track through startup-notification.</doc>
    </docsection>
    <function name="util_check_cloexec_fds"
              c:identifier="shell_util_check_cloexec_fds">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="487">Walk over all open file descriptors. Check them for the FD_CLOEXEC flag.
If this flag is not set, log the offending file descriptor number.

It is important that gnome-shell's file descriptors are all marked CLOEXEC,
so that the shell's open file descriptors are not passed to child processes
that we launch.</doc>
      <source-position filename="../src/shell-util.h" line="57"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="util_composite_capture_images"
              c:identifier="shell_util_composite_capture_images">
      <source-position filename="../src/shell-util.h" line="49"/>
      <return-value transfer-ownership="full">
        <type name="cairo.Surface" c:type="cairo_surface_t*"/>
      </return-value>
      <parameters>
        <parameter name="captures" transfer-ownership="none">
          <type name="Clutter.Capture" c:type="ClutterCapture*"/>
        </parameter>
        <parameter name="n_captures" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="target_width" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="target_height" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="target_scale" transfer-ownership="none">
          <type name="gfloat" c:type="float"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_create_pixbuf_from_data"
              c:identifier="shell_util_create_pixbuf_from_data">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="325">Workaround for non-introspectability of gdk_pixbuf_from_data().</doc>
      <source-position filename="../src/shell-util.h" line="40"/>
      <return-value transfer-ownership="full">
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="full">
          <array length="1" zero-terminated="0" c:type="const guchar*">
            <type name="guint8"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="colorspace" transfer-ownership="none">
          <type name="GdkPixbuf.Colorspace" c:type="GdkColorspace"/>
        </parameter>
        <parameter name="has_alpha" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="bits_per_sample" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="rowstride" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_get_translated_folder_name"
              c:identifier="shell_util_get_translated_folder_name">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="841">Attempts to translate the folder @name using translations provided
by .directory files.</doc>
      <source-position filename="../src/shell-util.h" line="87"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="../src/shell-util.c"
             line="848">a translated string or %NULL</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="843">the untranslated folder name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_get_uid" c:identifier="shell_util_get_uid">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="504">A wrapper around getuid() so that it can be used from JavaScript. This
function will always succeed.</doc>
      <source-position filename="../src/shell-util.h" line="89"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-util.c"
             line="510">the real user ID of the calling process</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
    </function>
    <function name="util_get_week_start"
              c:identifier="shell_util_get_week_start">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="80">Gets the first week day for the current locale, expressed as a
number in the range 0..6, representing week days from Sunday to
Saturday.</doc>
      <source-position filename="../src/shell-util.h" line="17"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-util.c"
             line="87">A number representing the first week day for the current
         locale</doc>
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="util_has_x11_display_extension"
              c:identifier="shell_util_has_x11_display_extension">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="817">If the corresponding X11 display provides the passed extension, return %TRUE,
otherwise %FALSE. If there is no X11 display, %FALSE is passed.</doc>
      <source-position filename="../src/shell-util.h" line="84"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="819">A #MetaDisplay</doc>
          <type name="Meta.Display" c:type="MetaDisplay*"/>
        </parameter>
        <parameter name="extension" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="820">An X11 extension</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_regex_escape" c:identifier="shell_util_regex_escape">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="173">A wrapper around g_regex_escape_string() that takes its argument as
\0-terminated string rather than a byte-array that confuses gjs.</doc>
      <source-position filename="../src/shell-util.h" line="21"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../src/shell-util.c"
             line="180">@str with all regex-special characters escaped</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="175">a UTF-8 string to escape</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_sd_notify" c:identifier="shell_util_sd_notify">
      <source-position filename="../src/shell-util.h" line="82"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="util_set_hidden_from_pick"
              c:identifier="shell_util_set_hidden_from_pick">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="47">If @hidden is %TRUE, hide @actor from pick even with a mode of
%CLUTTER_PICK_ALL; if @hidden is %FALSE, unhide @actor.</doc>
      <source-position filename="../src/shell-util.h" line="14"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="actor" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="49">A #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </parameter>
        <parameter name="hidden" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="50">Whether @actor should be hidden from pick</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_start_systemd_unit"
              c:identifier="shell_util_start_systemd_unit">
      <source-position filename="../src/shell-util.h" line="59"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="unit" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_start_systemd_unit_finish"
              c:identifier="shell_util_start_systemd_unit_finish"
              throws="1">
      <source-position filename="../src/shell-util.h" line="64"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="res" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_stop_systemd_unit"
              c:identifier="shell_util_stop_systemd_unit">
      <source-position filename="../src/shell-util.h" line="67"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="unit" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_stop_systemd_unit_finish"
              c:identifier="shell_util_stop_systemd_unit_finish"
              throws="1">
      <source-position filename="../src/shell-util.h" line="72"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="res" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_systemd_unit_exists"
              c:identifier="shell_util_systemd_unit_exists">
      <source-position filename="../src/shell-util.h" line="75"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="unit" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="3">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_systemd_unit_exists_finish"
              c:identifier="shell_util_systemd_unit_exists_finish"
              throws="1">
      <source-position filename="../src/shell-util.h" line="79"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="res" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_touch_file_async"
              c:identifier="shell_util_touch_file_async">
      <source-position filename="../src/shell-util.h" line="30"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="2">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_touch_file_finish"
              c:identifier="shell_util_touch_file_finish"
              throws="1">
      <source-position filename="../src/shell-util.h" line="33"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="res" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_translate_time_string"
              c:identifier="shell_util_translate_time_string">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="138">Translate @str according to the locale defined by LC_TIME; unlike
dcgettext(), the translations is still taken from the LC_MESSAGES
catalogue and not the LC_TIME one.</doc>
      <source-position filename="../src/shell-util.h" line="19"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-util.c"
             line="146">the translated string</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="140">String to translate</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_wifexited" c:identifier="shell_util_wifexited">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="302">Implements libc standard WIFEXITED, that cannot be used JS
code.</doc>
      <source-position filename="../src/shell-util.h" line="37"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-util.c"
             line="309">TRUE if the process exited normally, FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="status" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="304">the status returned by wait() or waitpid()</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="exit"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="305">the actual exit status of the process</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
      </parameters>
    </function>
    <function name="write_string_to_stream"
              c:identifier="shell_write_string_to_stream"
              throws="1">
      <doc xml:space="preserve"
           filename="../src/shell-util.c"
           line="188">Write a string to a GOutputStream as UTF-8. This is a workaround
for not having binary buffers in GJS.</doc>
      <source-position filename="../src/shell-util.h" line="23"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/shell-util.c"
             line="197">%TRUE if write succeeded</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="stream" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="190">a #GOutputStream</doc>
          <type name="Gio.OutputStream" c:type="GOutputStream*"/>
        </parameter>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/shell-util.c"
               line="191">a UTF-8 string to write to @stream</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
