<?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="CMenu" version="3.0"/>
  <include name="Clutter" version="0"/>
  <include name="ClutterX11" version="0"/>
  <include name="Cogl" version="0"/>
  <include name="CoglPango" version="0"/>
  <include name="Gcr" version="3"/>
  <include name="Meta" version="0"/>
  <include name="NM" version="1.0"/>
  <include name="PolkitAgent" version="1.0"/>
  <include name="St" version="1.0"/>
  <package name="cinnamon"/>
  <namespace name="Cinnamon"
             version="0.1"
             shared-library="libcinnamon.so"
             c:identifier-prefixes="Cinnamon"
             c:symbol-prefixes="cinnamon">
    <function-macro name="APP" c:identifier="CINNAMON_APP" introspectable="0">
      <source-position filename="src/cinnamon-app.h" line="21"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APP_CLASS"
                    c:identifier="CINNAMON_APP_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-app.h" line="22"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APP_GET_CLASS"
                    c:identifier="CINNAMON_APP_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-app.h" line="25"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APP_SYSTEM"
                    c:identifier="CINNAMON_APP_SYSTEM"
                    introspectable="0">
      <source-position filename="src/cinnamon-app-system.h" line="14"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APP_SYSTEM_CLASS"
                    c:identifier="CINNAMON_APP_SYSTEM_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-app-system.h" line="15"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="APP_SYSTEM_GET_CLASS"
                    c:identifier="CINNAMON_APP_SYSTEM_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-app-system.h" line="18"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <bitfield name="ActionMode"
              glib:type-name="CinnamonActionMode"
              glib:get-type="cinnamon_action_mode_get_type"
              c:type="CinnamonActionMode">
      <doc xml:space="preserve"
           filename="src/cinnamon-action-mode.h"
           line="1">Controls in which Cinnamon states an action (like keybindings and gestures)
should be handled.</doc>
      <member name="none"
              value="0"
              c:identifier="CINNAMON_ACTION_MODE_NONE"
              glib:nick="none"
              glib:name="CINNAMON_ACTION_MODE_NONE">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.h"
             line="3">block action</doc>
      </member>
      <member name="normal"
              value="1"
              c:identifier="CINNAMON_ACTION_MODE_NORMAL"
              glib:nick="normal"
              glib:name="CINNAMON_ACTION_MODE_NORMAL">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.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="CINNAMON_ACTION_MODE_OVERVIEW"
              glib:nick="overview"
              glib:name="CINNAMON_ACTION_MODE_OVERVIEW">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.h"
             line="6">allow action while the overview
    is active</doc>
      </member>
      <member name="lock_screen"
              value="4"
              c:identifier="CINNAMON_ACTION_MODE_LOCK_SCREEN"
              glib:nick="lock-screen"
              glib:name="CINNAMON_ACTION_MODE_LOCK_SCREEN">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.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="CINNAMON_ACTION_MODE_UNLOCK_SCREEN"
              glib:nick="unlock-screen"
              glib:name="CINNAMON_ACTION_MODE_UNLOCK_SCREEN">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.h"
             line="10">allow action in the unlock
    dialog</doc>
      </member>
      <member name="login_screen"
              value="16"
              c:identifier="CINNAMON_ACTION_MODE_LOGIN_SCREEN"
              glib:nick="login-screen"
              glib:name="CINNAMON_ACTION_MODE_LOGIN_SCREEN">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.h"
             line="12">allow action in the login screen</doc>
      </member>
      <member name="system_modal"
              value="32"
              c:identifier="CINNAMON_ACTION_MODE_SYSTEM_MODAL"
              glib:nick="system-modal"
              glib:name="CINNAMON_ACTION_MODE_SYSTEM_MODAL">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.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="CINNAMON_ACTION_MODE_LOOKING_GLASS"
              glib:nick="looking-glass"
              glib:name="CINNAMON_ACTION_MODE_LOOKING_GLASS">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.h"
             line="15">allow action in looking glass</doc>
      </member>
      <member name="popup"
              value="128"
              c:identifier="CINNAMON_ACTION_MODE_POPUP"
              glib:nick="popup"
              glib:name="CINNAMON_ACTION_MODE_POPUP">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.h"
             line="16">allow action while a shell menu is open</doc>
      </member>
      <member name="all"
              value="-1"
              c:identifier="CINNAMON_ACTION_MODE_ALL"
              glib:nick="all"
              glib:name="CINNAMON_ACTION_MODE_ALL">
        <doc xml:space="preserve"
             filename="src/cinnamon-action-mode.h"
             line="17">always allow action</doc>
      </member>
    </bitfield>
    <class name="App"
           c:symbol-prefix="app"
           c:type="CinnamonApp"
           parent="GObject.Object"
           glib:type-name="CinnamonApp"
           glib:get-type="cinnamon_app_get_type"
           glib:type-struct="AppClass">
      <source-position filename="src/cinnamon-app.h" line="31"/>
      <method name="activate" c:identifier="cinnamon_app_activate">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="609">Like cinnamon_app_activate_full(), but using the default workspace and
event timestamp.</doc>
        <source-position filename="src/cinnamon-app.h" line="58"/>
        <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/cinnamon-app.c"
                 line="611">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="activate_full" c:identifier="cinnamon_app_activate_full">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="622">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/cinnamon-app.h" line="60"/>
        <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/cinnamon-app.c"
                 line="624">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="625">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/cinnamon-app.c"
                 line="627">Event timestamp</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="activate_window"
              c:identifier="cinnamon_app_activate_window">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="535">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/cinnamon-app.h" line="56"/>
        <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/cinnamon-app.c"
                 line="537">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
          <parameter name="window"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="538">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/cinnamon-app.c"
                 line="539">Event timestamp</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_open_new_window"
              c:identifier="cinnamon_app_can_open_new_window">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="709">Returns %TRUE if the app supports opening a new window through
cinnamon_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/cinnamon-app.h" line="67"/>
        <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/cinnamon-app.c"
                 line="711">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_icon_texture"
              c:identifier="cinnamon_app_create_icon_texture">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="283">Look up the icon for this application, and create a #ClutterActor
for it at the given size.</doc>
        <source-position filename="src/cinnamon-app.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app.c"
               line="289">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="CinnamonApp*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_icon_texture_for_window"
              c:identifier="cinnamon_app_create_icon_texture_for_window">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="315">Look up the icon for this application, and create a #ClutterTexture
for it at the given size.  If for_window is NULL, it bases the icon
off the most-recently-used window for the app, otherwise it attempts to
use for_window for determining the icon.</doc>
        <source-position filename="src/cinnamon-app.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app.c"
               line="326">A floating #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="317">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="318">the size of the icon to create</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="for_window"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="319">Optional - the backing MetaWindow to look up for.</doc>
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_app_info" c:identifier="cinnamon_app_get_app_info">
        <source-position filename="src/cinnamon-app.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app.c"
               line="1336">The #GMenuDesktopAppInfo for this app, or %NULL if backed by a window</doc>
          <type name="CMenu.DesktopAppInfo" c:type="GMenuDesktopAppInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1334">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="cinnamon_app_get_description">
        <source-position filename="src/cinnamon-app.h" line="50"/>
        <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="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flatpak_app_id"
              c:identifier="cinnamon_app_get_flatpak_app_id">
        <source-position filename="src/cinnamon-app.h" line="96"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="cinnamon_app_get_id">
        <source-position filename="src/cinnamon-app.h" line="41"/>
        <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="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_flatpak" c:identifier="cinnamon_app_get_is_flatpak">
        <source-position filename="src/cinnamon-app.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app.c"
               line="759">TRUE if #app is a flatpak app, FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="757">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keywords" c:identifier="cinnamon_app_get_keywords">
        <source-position filename="src/cinnamon-app.h" line="51"/>
        <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="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_windows" c:identifier="cinnamon_app_get_n_windows">
        <source-position filename="src/cinnamon-app.h" line="73"/>
        <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="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="cinnamon_app_get_name">
        <source-position filename="src/cinnamon-app.h" line="49"/>
        <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="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nodisplay" c:identifier="cinnamon_app_get_nodisplay">
        <source-position filename="src/cinnamon-app.h" line="52"/>
        <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="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pids" c:identifier="cinnamon_app_get_pids">
        <source-position filename="src/cinnamon-app.h" line="77"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/cinnamon-app.c"
               line="1004">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/cinnamon-app.c"
                 line="1002">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state"
              c:identifier="cinnamon_app_get_state"
              glib:get-property="state">
        <source-position filename="src/cinnamon-app.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app.c"
               line="747">State of the application</doc>
          <type name="AppState" c:type="CinnamonAppState"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="745">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tree_entry" c:identifier="cinnamon_app_get_tree_entry">
        <source-position filename="src/cinnamon-app.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app.c"
               line="1348">The #GMenuTreeEntry for this app, or %NULL if backed by a window</doc>
          <type name="CMenu.TreeEntry" c:type="GMenuTreeEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1346">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_windows" c:identifier="cinnamon_app_get_windows">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="802">Get the toplevel, interesting 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/cinnamon-app.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app.c"
               line="811">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="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_on_workspace"
              c:identifier="cinnamon_app_is_on_workspace">
        <source-position filename="src/cinnamon-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="CinnamonApp*"/>
          </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="cinnamon_app_is_window_backed">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="458">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/cinnamon-app.h" line="54"/>
        <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="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="launch" c:identifier="cinnamon_app_launch" throws="1">
        <source-position filename="src/cinnamon-app.h" line="81"/>
        <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="CinnamonApp*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1275">Event timestamp, or 0 for current event timestamp</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="uris" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1276">List of uris to pass to application</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1277">Start on this workspace, or -1 for default</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="startup_id"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1278">Returned startup notification ID, or %NULL if none</doc>
            <type name="utf8" c:type="char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="launch_offloaded"
              c:identifier="cinnamon_app_launch_offloaded"
              throws="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="1305">Launch an application using the dedicated gpu (if available)</doc>
        <source-position filename="src/cinnamon-app.h" line="88"/>
        <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="CinnamonApp*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1307">Event timestamp, or 0 for current event timestamp</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="uris" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1308">List of uris to pass to application</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1309">Start on this workspace, or -1 for default</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="startup_id"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="1310">Returned startup notification ID, or %NULL if none</doc>
            <type name="utf8" c:type="char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_new_window"
              c:identifier="cinnamon_app_open_new_window">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="680">Request that the application create a new window.</doc>
        <source-position filename="src/cinnamon-app.h" line="64"/>
        <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/cinnamon-app.c"
                 line="682">a #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app.c"
                 line="683">open on this workspace, or -1 for default</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_quit" c:identifier="cinnamon_app_request_quit">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="1110">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/cinnamon-app.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app.c"
               line="1120">%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/cinnamon-app.c"
                 line="1112">A #CinnamonApp</doc>
            <type name="App" c:type="CinnamonApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="state"
                transfer-ownership="none"
                getter="get_state"
                default-value="CINNAMON_APP_STATE_STOPPED">
        <doc xml:space="preserve"
             filename="src/cinnamon-app.c"
             line="1447">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="CinnamonAppClass"
            glib:is-gtype-struct-for="App">
      <source-position filename="src/cinnamon-app.h" line="31"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="AppPrivate"
            c:type="CinnamonAppPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-app.h" line="18"/>
    </record>
    <enumeration name="AppState"
                 glib:type-name="CinnamonAppState"
                 glib:get-type="cinnamon_app_state_get_type"
                 c:type="CinnamonAppState">
      <member name="stopped"
              value="0"
              c:identifier="CINNAMON_APP_STATE_STOPPED"
              glib:nick="stopped"
              glib:name="CINNAMON_APP_STATE_STOPPED">
      </member>
      <member name="starting"
              value="1"
              c:identifier="CINNAMON_APP_STATE_STARTING"
              glib:nick="starting"
              glib:name="CINNAMON_APP_STATE_STARTING">
      </member>
      <member name="running"
              value="2"
              c:identifier="CINNAMON_APP_STATE_RUNNING"
              glib:nick="running"
              glib:name="CINNAMON_APP_STATE_RUNNING">
      </member>
    </enumeration>
    <class name="AppSystem"
           c:symbol-prefix="app_system"
           c:type="CinnamonAppSystem"
           parent="GObject.Object"
           glib:type-name="CinnamonAppSystem"
           glib:get-type="cinnamon_app_system_get_type"
           glib:type-struct="AppSystemClass">
      <source-position filename="src/cinnamon-app-system.h" line="37"/>
      <function name="get_default"
                c:identifier="cinnamon_app_system_get_default">
        <source-position filename="src/cinnamon-app-system.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app-system.c"
               line="773">The global #CinnamonAppSystem singleton</doc>
          <type name="AppSystem" c:type="CinnamonAppSystem*"/>
        </return-value>
      </function>
      <virtual-method name="favorites_changed">
        <source-position filename="src/cinnamon-app-system.h" line="36"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="appsys" transfer-ownership="none">
            <type name="AppSystem" c:type="CinnamonAppSystem*"/>
          </instance-parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="0">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="installed_changed">
        <source-position filename="src/cinnamon-app-system.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="appsys" transfer-ownership="none">
            <type name="AppSystem" c:type="CinnamonAppSystem*"/>
          </instance-parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="0">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_all" c:identifier="cinnamon_app_system_get_all">
        <source-position filename="src/cinnamon-app-system.h" line="53"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/cinnamon-app-system.c"
               line="968">All installed applications</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="App"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <type name="AppSystem" c:type="CinnamonAppSystem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_running"
              c:identifier="cinnamon_app_system_get_running">
        <doc xml:space="preserve"
             filename="src/cinnamon-app-system.c"
             line="1014">Returns the set of applications which currently have at least one
open window in the given context.</doc>
        <source-position filename="src/cinnamon-app-system.h" line="55"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/cinnamon-app-system.c"
               line="1021">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/cinnamon-app-system.c"
                 line="1016">A #CinnamonAppSystem</doc>
            <type name="AppSystem" c:type="CinnamonAppSystem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tree" c:identifier="cinnamon_app_system_get_tree">
        <source-position filename="src/cinnamon-app-system.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app-system.c"
               line="762">The #GMenuTree for apps</doc>
          <type name="CMenu.Tree" c:type="GMenuTree*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <type name="AppSystem" c:type="CinnamonAppSystem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup_app" c:identifier="cinnamon_app_system_lookup_app">
        <doc xml:space="preserve"
             filename="src/cinnamon-app-system.c"
             line="800">Find a #CinnamonApp corresponding to an id.</doc>
        <source-position filename="src/cinnamon-app-system.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app-system.c"
               line="805">The #CinnamonApp for id, or %NULL if none</doc>
          <type name="App" c:type="CinnamonApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <type name="AppSystem" c:type="CinnamonAppSystem*"/>
          </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="cinnamon_app_system_lookup_desktop_wmclass">
        <doc xml:space="preserve"
             filename="src/cinnamon-app-system.c"
             line="875">Find a valid application whose .desktop file, without the extension
and properly canonicalized, matches @wmclass.</doc>
        <source-position filename="src/cinnamon-app-system.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app-system.c"
               line="883">A #CinnamonApp for @wmclass</doc>
          <type name="App" c:type="CinnamonApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app-system.c"
                 line="877">a #CinnamonAppSystem</doc>
            <type name="AppSystem" c:type="CinnamonAppSystem*"/>
          </instance-parameter>
          <parameter name="wmclass"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app-system.c"
                 line="878">A WM_CLASS value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_flatpak_app_id"
              c:identifier="cinnamon_app_system_lookup_flatpak_app_id">
        <doc xml:space="preserve"
             filename="src/cinnamon-app-system.c"
             line="947">Find a #CinnamonApp corresponding to a flatpak app id.</doc>
        <source-position filename="src/cinnamon-app-system.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app-system.c"
               line="952">The #CinnamonApp for app_id, or %NULL if none</doc>
          <type name="App" c:type="CinnamonApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <type name="AppSystem" c:type="CinnamonAppSystem*"/>
          </instance-parameter>
          <parameter name="app_id" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_startup_wmclass"
              c:identifier="cinnamon_app_system_lookup_startup_wmclass">
        <doc xml:space="preserve"
             filename="src/cinnamon-app-system.c"
             line="927">Find a valid application whose .desktop file contains a
StartupWMClass entry matching @wmclass.</doc>
        <source-position filename="src/cinnamon-app-system.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-app-system.c"
               line="935">A #CinnamonApp for @wmclass</doc>
          <type name="App" c:type="CinnamonApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app-system.c"
                 line="929">a #CinnamonAppSystem</doc>
            <type name="AppSystem" c:type="CinnamonAppSystem*"/>
          </instance-parameter>
          <parameter name="wmclass"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-app-system.c"
                 line="930">A WM_CLASS value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="AppSystemPrivate" c:type="CinnamonAppSystemPrivate*"/>
      </field>
      <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="CinnamonAppSystemClass"
            glib:is-gtype-struct-for="AppSystem">
      <source-position filename="src/cinnamon-app-system.h" line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="installed_changed">
        <callback name="installed_changed">
          <source-position filename="src/cinnamon-app-system.h" line="35"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="appsys" transfer-ownership="none">
              <type name="AppSystem" c:type="CinnamonAppSystem*"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="favorites_changed">
        <callback name="favorites_changed">
          <source-position filename="src/cinnamon-app-system.h" line="36"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="appsys" transfer-ownership="none">
              <type name="AppSystem" c:type="CinnamonAppSystem*"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="AppSystemPrivate"
            c:type="CinnamonAppSystemPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-app-system.h" line="22"/>
    </record>
    <function-macro name="CALENDAR_SERVER"
                    c:identifier="CINNAMON_CALENDAR_SERVER"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="21"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CALENDAR_SERVER_GET_IFACE"
                    c:identifier="CINNAMON_CALENDAR_SERVER_GET_IFACE"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="23"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CALENDAR_SERVER_PROXY"
                    c:identifier="CINNAMON_CALENDAR_SERVER_PROXY"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="157"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CALENDAR_SERVER_PROXY_CLASS"
                    c:identifier="CINNAMON_CALENDAR_SERVER_PROXY_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="158"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CALENDAR_SERVER_PROXY_GET_CLASS"
                    c:identifier="CINNAMON_CALENDAR_SERVER_PROXY_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="159"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CALENDAR_SERVER_SKELETON"
                    c:identifier="CINNAMON_CALENDAR_SERVER_SKELETON"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="227"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CALENDAR_SERVER_SKELETON_CLASS"
                    c:identifier="CINNAMON_CALENDAR_SERVER_SKELETON_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="228"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CALENDAR_SERVER_SKELETON_GET_CLASS"
                    c:identifier="CINNAMON_CALENDAR_SERVER_SKELETON_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="229"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <interface name="CalendarServer"
               c:symbol-prefix="calendar_server"
               c:type="CinnamonCalendarServer"
               glib:type-name="CinnamonCalendarServer"
               glib:get-type="cinnamon_calendar_server_get_type"
               glib:type-struct="CalendarServerIface">
      <doc xml:space="preserve"
           filename="src/cinnamon-calendar.c"
           line="645">Abstract interface type for the D-Bus interface &lt;link linkend="gdbus-interface-org-cinnamon-CalendarServer.top_of_page"&gt;org.cinnamon.CalendarServer&lt;/link&gt;.</doc>
      <source-position filename="src/cinnamon-calendar.h" line="64"/>
      <function name="interface_info"
                c:identifier="cinnamon_calendar_server_interface_info">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="546">Gets a machine-readable description of the &lt;link linkend="gdbus-interface-org-cinnamon-CalendarServer.top_of_page"&gt;org.cinnamon.CalendarServer&lt;/link&gt; D-Bus interface.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="551">A #GDBusInterfaceInfo. Do not free.</doc>
          <type name="Gio.DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
        </return-value>
      </function>
      <function name="override_properties"
                c:identifier="cinnamon_calendar_server_override_properties">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="559">Overrides all #GObject properties in the #CinnamonCalendarServer interface for a concrete class.
The properties are overridden in the order they are defined.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="567">The last property id.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="klass" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="561">The class structure for a #GObject derived class.</doc>
            <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
          </parameter>
          <parameter name="property_id_begin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="562">The property id to assign to the first overridden property.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="client_disappeared">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="659">Handler for the #CinnamonCalendarServer::client-disappeared signal.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="arg_source_uid" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="events_added_or_updated">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="660">Handler for the #CinnamonCalendarServer::events-added-or-updated signal.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="arg_events" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="events_removed">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="661">Handler for the #CinnamonCalendarServer::events-removed signal.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="arg_ids" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_since" invoker="get_since" introspectable="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="811">Gets the value of the &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Since"&gt;"Since"&lt;/link&gt; D-Bus property.

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="819">The property value.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="813">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_status"
                      invoker="get_status"
                      introspectable="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="877">Gets the value of the &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Status"&gt;"Status"&lt;/link&gt; D-Bus property.

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="885">The property value.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="879">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_until" invoker="get_until" introspectable="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="844">Gets the value of the &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Until"&gt;"Until"&lt;/link&gt; D-Bus property.

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="852">The property value.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="846">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="handle_exit">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="654">Handler for the #CinnamonCalendarServer::handle-exit signal.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="invocation" transfer-ownership="none">
            <type name="Gio.DBusMethodInvocation"
                  c:type="GDBusMethodInvocation*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="handle_set_time_range">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="655">Handler for the #CinnamonCalendarServer::handle-set-time-range signal.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="invocation" transfer-ownership="none">
            <type name="Gio.DBusMethodInvocation"
                  c:type="GDBusMethodInvocation*"/>
          </parameter>
          <parameter name="arg_since" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="arg_until" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="arg_force_reload" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="call_exit"
              c:identifier="cinnamon_calendar_server_call_exit"
              glib:finish-func="call_exit_finish"
              glib:sync-func="call_exit_sync">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1065">Asynchronously invokes the &lt;link linkend="gdbus-method-org-cinnamon-CalendarServer.Exit"&gt;Exit()&lt;/link&gt; D-Bus method on @proxy.
When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
You can then call cinnamon_calendar_server_call_exit_finish() to get the result of the operation.

See cinnamon_calendar_server_call_exit_sync() for the synchronous, blocking version of this method.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1067">A #CinnamonCalendarServerProxy.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1068">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1069">A #GAsyncReadyCallback to call when the request is satisfied or %NULL.</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/cinnamon-calendar.c"
                 line="1070">User data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="call_exit_finish"
              c:identifier="cinnamon_calendar_server_call_exit_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1095">Finishes an operation started with cinnamon_calendar_server_call_exit().</doc>
        <source-position filename="src/cinnamon-calendar.h" line="131"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="1103">%TRUE if the call succeeded, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1097">A #CinnamonCalendarServerProxy.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1098">The #GAsyncResult obtained from the #GAsyncReadyCallback passed to cinnamon_calendar_server_call_exit().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="call_exit_sync"
              c:identifier="cinnamon_calendar_server_call_exit_sync"
              throws="1"
              glib:async-func="call_exit">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1122">Synchronously invokes the &lt;link linkend="gdbus-method-org-cinnamon-CalendarServer.Exit"&gt;Exit()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.

See cinnamon_calendar_server_call_exit() for the asynchronous version of this method.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="136"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="1132">%TRUE if the call succeeded, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1124">A #CinnamonCalendarServerProxy.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1125">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="call_set_time_range"
              c:identifier="cinnamon_calendar_server_call_set_time_range"
              glib:finish-func="call_set_time_range_finish"
              glib:sync-func="call_set_time_range_sync">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="955">Asynchronously invokes the &lt;link linkend="gdbus-method-org-cinnamon-CalendarServer.SetTimeRange"&gt;SetTimeRange()&lt;/link&gt; D-Bus method on @proxy.
When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
You can then call cinnamon_calendar_server_call_set_time_range_finish() to get the result of the operation.

See cinnamon_calendar_server_call_set_time_range_sync() for the synchronous, blocking version of this method.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="957">A #CinnamonCalendarServerProxy.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="arg_since" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="958">Argument to pass with the method invocation.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="arg_until" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="959">Argument to pass with the method invocation.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="arg_force_reload" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="960">Argument to pass with the method invocation.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="961">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="962">A #GAsyncReadyCallback to call when the request is satisfied or %NULL.</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/cinnamon-calendar.c"
                 line="963">User data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="call_set_time_range_finish"
              c:identifier="cinnamon_calendar_server_call_set_time_range_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="994">Finishes an operation started with cinnamon_calendar_server_call_set_time_range().</doc>
        <source-position filename="src/cinnamon-calendar.h" line="112"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="1002">%TRUE if the call succeeded, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="996">A #CinnamonCalendarServerProxy.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="997">The #GAsyncResult obtained from the #GAsyncReadyCallback passed to cinnamon_calendar_server_call_set_time_range().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="call_set_time_range_sync"
              c:identifier="cinnamon_calendar_server_call_set_time_range_sync"
              throws="1"
              glib:async-func="call_set_time_range">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1021">Synchronously invokes the &lt;link linkend="gdbus-method-org-cinnamon-CalendarServer.SetTimeRange"&gt;SetTimeRange()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.

See cinnamon_calendar_server_call_set_time_range() for the asynchronous version of this method.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="117"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="1034">%TRUE if the call succeeded, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1023">A #CinnamonCalendarServerProxy.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="arg_since" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1024">Argument to pass with the method invocation.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="arg_until" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1025">Argument to pass with the method invocation.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="arg_force_reload" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1026">Argument to pass with the method invocation.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1027">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="complete_exit"
              c:identifier="cinnamon_calendar_server_complete_exit">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1175">Helper function used in service implementations to finish handling invocations of the &lt;link linkend="gdbus-method-org-cinnamon-CalendarServer.Exit"&gt;Exit()&lt;/link&gt; D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

This method will free @invocation, you cannot use it afterwards.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1177">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="invocation" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1178">A #GDBusMethodInvocation.</doc>
            <type name="Gio.DBusMethodInvocation"
                  c:type="GDBusMethodInvocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="complete_set_time_range"
              c:identifier="cinnamon_calendar_server_complete_set_time_range">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1157">Helper function used in service implementations to finish handling invocations of the &lt;link linkend="gdbus-method-org-cinnamon-CalendarServer.SetTimeRange"&gt;SetTimeRange()&lt;/link&gt; D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

This method will free @invocation, you cannot use it afterwards.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1159">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="invocation" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1160">A #GDBusMethodInvocation.</doc>
            <type name="Gio.DBusMethodInvocation"
                  c:type="GDBusMethodInvocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="emit_client_disappeared"
              c:identifier="cinnamon_calendar_server_emit_client_disappeared">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="940">Emits the &lt;link linkend="gdbus-signal-org-cinnamon-CalendarServer.ClientDisappeared"&gt;"ClientDisappeared"&lt;/link&gt; D-Bus signal.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="942">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="arg_source_uid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="943">Argument to pass with the signal.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="emit_events_added_or_updated"
              c:identifier="cinnamon_calendar_server_emit_events_added_or_updated">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="910">Emits the &lt;link linkend="gdbus-signal-org-cinnamon-CalendarServer.EventsAddedOrUpdated"&gt;"EventsAddedOrUpdated"&lt;/link&gt; D-Bus signal.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="912">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="arg_events" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="913">Argument to pass with the signal.</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="emit_events_removed"
              c:identifier="cinnamon_calendar_server_emit_events_removed">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="925">Emits the &lt;link linkend="gdbus-signal-org-cinnamon-CalendarServer.EventsRemoved"&gt;"EventsRemoved"&lt;/link&gt; D-Bus signal.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="927">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="arg_ids" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="928">Argument to pass with the signal.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_since"
              c:identifier="cinnamon_calendar_server_get_since"
              glib:get-property="since"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="811">Gets the value of the &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Since"&gt;"Since"&lt;/link&gt; D-Bus property.

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="144"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="819">The property value.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="813">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_status"
              c:identifier="cinnamon_calendar_server_get_status"
              glib:get-property="status"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="877">Gets the value of the &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Status"&gt;"Status"&lt;/link&gt; D-Bus property.

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="150"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="885">The property value.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="879">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_until"
              c:identifier="cinnamon_calendar_server_get_until"
              glib:get-property="until"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="844">Gets the value of the &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Until"&gt;"Until"&lt;/link&gt; D-Bus property.

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="147"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="852">The property value.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="846">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_since"
              c:identifier="cinnamon_calendar_server_set_since"
              glib:set-property="since"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="829">Sets the &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Since"&gt;"Since"&lt;/link&gt; D-Bus property to @value.

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="831">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="832">The value to set.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_status"
              c:identifier="cinnamon_calendar_server_set_status"
              glib:set-property="status"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="895">Sets the &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Status"&gt;"Status"&lt;/link&gt; D-Bus property to @value.

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="151"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="897">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="898">The value to set.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_until"
              c:identifier="cinnamon_calendar_server_set_until"
              glib:set-property="until"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="862">Sets the &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Until"&gt;"Until"&lt;/link&gt; D-Bus property to @value.

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="864">A #CinnamonCalendarServer.</doc>
            <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="865">The value to set.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <property name="since"
                writable="1"
                transfer-ownership="none"
                setter="set_since"
                getter="get_since"
                default-value="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="782">Represents the D-Bus property &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Since"&gt;"Since"&lt;/link&gt;.

Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="status"
                writable="1"
                transfer-ownership="none"
                setter="set_status"
                getter="get_status"
                default-value="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="800">Represents the D-Bus property &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Status"&gt;"Status"&lt;/link&gt;.

Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="until"
                writable="1"
                transfer-ownership="none"
                setter="set_until"
                getter="get_until"
                default-value="0">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="791">Represents the D-Bus property &lt;link linkend="gdbus-property-org-cinnamon-CalendarServer.Until"&gt;"Until"&lt;/link&gt;.

Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <glib:signal name="client-disappeared" when="last">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="761">On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend="gdbus-signal-org-cinnamon-CalendarServer.ClientDisappeared"&gt;"ClientDisappeared"&lt;/link&gt; is received.

On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="arg_source_uid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="764">Argument.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="events-added-or-updated" when="last">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="721">On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend="gdbus-signal-org-cinnamon-CalendarServer.EventsAddedOrUpdated"&gt;"EventsAddedOrUpdated"&lt;/link&gt; is received.

On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="arg_events" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="724">Argument.</doc>
            <type name="GLib.Variant"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="events-removed" when="last">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="741">On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend="gdbus-signal-org-cinnamon-CalendarServer.EventsRemoved"&gt;"EventsRemoved"&lt;/link&gt; is received.

On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="arg_ids" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="744">Argument.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="handle-exit" when="last">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="698">Signal emitted when a remote caller is invoking the &lt;link linkend="gdbus-method-org-cinnamon-CalendarServer.Exit"&gt;Exit()&lt;/link&gt; D-Bus method.

If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call cinnamon_calendar_server_complete_exit() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="707">%G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="invocation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="701">A #GDBusMethodInvocation.</doc>
            <type name="Gio.DBusMethodInvocation"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="handle-set-time-range" when="last">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="673">Signal emitted when a remote caller is invoking the &lt;link linkend="gdbus-method-org-cinnamon-CalendarServer.SetTimeRange"&gt;SetTimeRange()&lt;/link&gt; D-Bus method.

If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call cinnamon_calendar_server_complete_set_time_range() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="685">%G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="invocation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="676">A #GDBusMethodInvocation.</doc>
            <type name="Gio.DBusMethodInvocation"/>
          </parameter>
          <parameter name="arg_since" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="677">Argument passed by remote caller.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="arg_until" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="678">Argument passed by remote caller.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="arg_force_reload" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="679">Argument passed by remote caller.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="CalendarServerIface"
            c:type="CinnamonCalendarServerIface"
            glib:is-gtype-struct-for="CalendarServer">
      <doc xml:space="preserve"
           filename="src/cinnamon-calendar.c"
           line="651">Virtual table for the D-Bus interface &lt;link linkend="gdbus-interface-org-cinnamon-CalendarServer.top_of_page"&gt;org.cinnamon.CalendarServer&lt;/link&gt;.</doc>
      <source-position filename="src/cinnamon-calendar.h" line="64"/>
      <field name="parent_iface">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="653">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="handle_exit">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="654">Handler for the #CinnamonCalendarServer::handle-exit signal.</doc>
        <callback name="handle_exit">
          <source-position filename="src/cinnamon-calendar.h" line="35"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
            </parameter>
            <parameter name="invocation" transfer-ownership="none">
              <type name="Gio.DBusMethodInvocation"
                    c:type="GDBusMethodInvocation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="handle_set_time_range">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="655">Handler for the #CinnamonCalendarServer::handle-set-time-range signal.</doc>
        <callback name="handle_set_time_range">
          <source-position filename="src/cinnamon-calendar.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
            </parameter>
            <parameter name="invocation" transfer-ownership="none">
              <type name="Gio.DBusMethodInvocation"
                    c:type="GDBusMethodInvocation*"/>
            </parameter>
            <parameter name="arg_since" transfer-ownership="none">
              <type name="gint64" c:type="gint64"/>
            </parameter>
            <parameter name="arg_until" transfer-ownership="none">
              <type name="gint64" c:type="gint64"/>
            </parameter>
            <parameter name="arg_force_reload" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_since">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="656">Getter for the #CinnamonCalendarServer:since property.</doc>
        <callback name="get_since">
          <source-position filename="src/cinnamon-calendar.h" line="46"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="819">The property value.</doc>
            <type name="gint64" c:type="gint64"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/cinnamon-calendar.c"
                   line="813">A #CinnamonCalendarServer.</doc>
              <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_status">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="657">Getter for the #CinnamonCalendarServer:status property.</doc>
        <callback name="get_status">
          <source-position filename="src/cinnamon-calendar.h" line="48"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="885">The property value.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/cinnamon-calendar.c"
                   line="879">A #CinnamonCalendarServer.</doc>
              <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_until">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="658">Getter for the #CinnamonCalendarServer:until property.</doc>
        <callback name="get_until">
          <source-position filename="src/cinnamon-calendar.h" line="50"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="852">The property value.</doc>
            <type name="gint64" c:type="gint64"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/cinnamon-calendar.c"
                   line="846">A #CinnamonCalendarServer.</doc>
              <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="client_disappeared">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="659">Handler for the #CinnamonCalendarServer::client-disappeared signal.</doc>
        <callback name="client_disappeared">
          <source-position filename="src/cinnamon-calendar.h" line="52"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
            </parameter>
            <parameter name="arg_source_uid" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="events_added_or_updated">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="660">Handler for the #CinnamonCalendarServer::events-added-or-updated signal.</doc>
        <callback name="events_added_or_updated">
          <source-position filename="src/cinnamon-calendar.h" line="56"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
            </parameter>
            <parameter name="arg_events" transfer-ownership="none">
              <type name="GLib.Variant" c:type="GVariant*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="events_removed">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="661">Handler for the #CinnamonCalendarServer::events-removed signal.</doc>
        <callback name="events_removed">
          <source-position filename="src/cinnamon-calendar.h" line="60"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="CalendarServer" c:type="CinnamonCalendarServer*"/>
            </parameter>
            <parameter name="arg_ids" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="CalendarServerProxy"
           c:symbol-prefix="calendar_server_proxy"
           c:type="CinnamonCalendarServerProxy"
           parent="Gio.DBusProxy"
           glib:type-name="CinnamonCalendarServerProxy"
           glib:get-type="cinnamon_calendar_server_proxy_get_type"
           glib:type-struct="CalendarServerProxyClass">
      <doc xml:space="preserve"
           filename="src/cinnamon-calendar.c"
           line="1195">The #CinnamonCalendarServerProxy structure contains only private data and should only be accessed using the provided API.</doc>
      <source-position filename="src/cinnamon-calendar.h" line="177"/>
      <implements name="CalendarServer"/>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.DBusInterface"/>
      <implements name="Gio.Initable"/>
      <constructor name="new_finish"
                   c:identifier="cinnamon_calendar_server_proxy_new_finish"
                   throws="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1487">Finishes an operation started with cinnamon_calendar_server_proxy_new().</doc>
        <source-position filename="src/cinnamon-calendar.h" line="193"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="1494">The constructed proxy object or %NULL if @error is set.</doc>
          <type name="CalendarServerProxy" c:type="CinnamonCalendarServer*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1489">The #GAsyncResult obtained from the #GAsyncReadyCallback passed to cinnamon_calendar_server_proxy_new().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_bus_finish"
                   c:identifier="cinnamon_calendar_server_proxy_new_for_bus_finish"
                   throws="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1577">Finishes an operation started with cinnamon_calendar_server_proxy_new_for_bus().</doc>
        <source-position filename="src/cinnamon-calendar.h" line="212"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="1584">The constructed proxy object or %NULL if @error is set.</doc>
          <type name="CalendarServerProxy" c:type="CinnamonCalendarServer*"/>
        </return-value>
        <parameters>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1579">The #GAsyncResult obtained from the #GAsyncReadyCallback passed to cinnamon_calendar_server_proxy_new_for_bus().</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_bus_sync"
                   c:identifier="cinnamon_calendar_server_proxy_new_for_bus_sync"
                   throws="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1602">Like cinnamon_calendar_server_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.

The calling thread is blocked until a reply is received.

See cinnamon_calendar_server_proxy_new_for_bus() for the asynchronous version of this constructor.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="215"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="1617">The constructed proxy object or %NULL if @error is set.</doc>
          <type name="CalendarServerProxy" c:type="CinnamonCalendarServer*"/>
        </return-value>
        <parameters>
          <parameter name="bus_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1604">A #GBusType.</doc>
            <type name="Gio.BusType" c:type="GBusType"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1605">Flags from the #GDBusProxyFlags enumeration.</doc>
            <type name="Gio.DBusProxyFlags" c:type="GDBusProxyFlags"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1606">A bus name (well-known or unique).</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1607">An object path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1608">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_sync"
                   c:identifier="cinnamon_calendar_server_proxy_new_sync"
                   throws="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1512">Synchronously creates a proxy for the D-Bus interface &lt;link linkend="gdbus-interface-org-cinnamon-CalendarServer.top_of_page"&gt;org.cinnamon.CalendarServer&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.

The calling thread is blocked until a reply is received.

See cinnamon_calendar_server_proxy_new() for the asynchronous version of this constructor.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="196"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="1527">The constructed proxy object or %NULL if @error is set.</doc>
          <type name="CalendarServerProxy" c:type="CinnamonCalendarServer*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1514">A #GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1515">Flags from the #GDBusProxyFlags enumeration.</doc>
            <type name="Gio.DBusProxyFlags" c:type="GDBusProxyFlags"/>
          </parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1516">A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1517">An object path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1518">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="new"
                c:identifier="cinnamon_calendar_server_proxy_new"
                glib:finish-func="new_finish">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1457">Asynchronously creates a proxy for the D-Bus interface &lt;link linkend="gdbus-interface-org-cinnamon-CalendarServer.top_of_page"&gt;org.cinnamon.CalendarServer&lt;/link&gt;. See g_dbus_proxy_new() for more details.

When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
You can then call cinnamon_calendar_server_proxy_new_finish() to get the result of the operation.

See cinnamon_calendar_server_proxy_new_sync() for the synchronous, blocking version of this constructor.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="185"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1459">A #GDBusConnection.</doc>
            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1460">Flags from the #GDBusProxyFlags enumeration.</doc>
            <type name="Gio.DBusProxyFlags" c:type="GDBusProxyFlags"/>
          </parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1461">A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1462">An object path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1463">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1464">A #GAsyncReadyCallback to call when the request is satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1465">User data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_bus"
                c:identifier="cinnamon_calendar_server_proxy_new_for_bus"
                glib:finish-func="new_for_bus_finish">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1547">Like cinnamon_calendar_server_proxy_new() but takes a #GBusType instead of a #GDBusConnection.

When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
You can then call cinnamon_calendar_server_proxy_new_for_bus_finish() to get the result of the operation.

See cinnamon_calendar_server_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="204"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="bus_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1549">A #GBusType.</doc>
            <type name="Gio.BusType" c:type="GBusType"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1550">Flags from the #GDBusProxyFlags enumeration.</doc>
            <type name="Gio.DBusProxyFlags" c:type="GDBusProxyFlags"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1551">A bus name (well-known or unique).</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1552">An object path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1553">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1554">A #GAsyncReadyCallback to call when the request is satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-calendar.c"
                 line="1555">User data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <field name="parent_instance" readable="0" private="1">
        <type name="Gio.DBusProxy" c:type="GDBusProxy"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalendarServerProxyPrivate"
              c:type="CinnamonCalendarServerProxyPrivate*"/>
      </field>
    </class>
    <record name="CalendarServerProxyClass"
            c:type="CinnamonCalendarServerProxyClass"
            glib:is-gtype-struct-for="CalendarServerProxy">
      <doc xml:space="preserve"
           filename="src/cinnamon-calendar.c"
           line="1201">Class structure for #CinnamonCalendarServerProxy.</doc>
      <source-position filename="src/cinnamon-calendar.h" line="177"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1203">The parent class.</doc>
        <type name="Gio.DBusProxyClass" c:type="GDBusProxyClass"/>
      </field>
    </record>
    <record name="CalendarServerProxyPrivate"
            c:type="CinnamonCalendarServerProxyPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-calendar.h" line="165"/>
    </record>
    <class name="CalendarServerSkeleton"
           c:symbol-prefix="calendar_server_skeleton"
           c:type="CinnamonCalendarServerSkeleton"
           parent="Gio.DBusInterfaceSkeleton"
           glib:type-name="CinnamonCalendarServerSkeleton"
           glib:get-type="cinnamon_calendar_server_skeleton_get_type"
           glib:type-struct="CalendarServerSkeletonClass">
      <doc xml:space="preserve"
           filename="src/cinnamon-calendar.c"
           line="1639">The #CinnamonCalendarServerSkeleton structure contains only private data and should only be accessed using the provided API.</doc>
      <source-position filename="src/cinnamon-calendar.h" line="247"/>
      <implements name="CalendarServer"/>
      <implements name="Gio.DBusInterface"/>
      <constructor name="new"
                   c:identifier="cinnamon_calendar_server_skeleton_new">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="2193">Creates a skeleton object for the D-Bus interface &lt;link linkend="gdbus-interface-org-cinnamon-CalendarServer.top_of_page"&gt;org.cinnamon.CalendarServer&lt;/link&gt;.</doc>
        <source-position filename="src/cinnamon-calendar.h" line="255"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="2198">The skeleton object.</doc>
          <type name="CalendarServerSkeleton"
                c:type="CinnamonCalendarServer*"/>
        </return-value>
      </constructor>
      <field name="parent_instance" readable="0" private="1">
        <type name="Gio.DBusInterfaceSkeleton"
              c:type="GDBusInterfaceSkeleton"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalendarServerSkeletonPrivate"
              c:type="CinnamonCalendarServerSkeletonPrivate*"/>
      </field>
    </class>
    <record name="CalendarServerSkeletonClass"
            c:type="CinnamonCalendarServerSkeletonClass"
            glib:is-gtype-struct-for="CalendarServerSkeleton">
      <doc xml:space="preserve"
           filename="src/cinnamon-calendar.c"
           line="1645">Class structure for #CinnamonCalendarServerSkeleton.</doc>
      <source-position filename="src/cinnamon-calendar.h" line="247"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="1647">The parent class.</doc>
        <type name="Gio.DBusInterfaceSkeletonClass"
              c:type="GDBusInterfaceSkeletonClass"/>
      </field>
    </record>
    <record name="CalendarServerSkeletonPrivate"
            c:type="CinnamonCalendarServerSkeletonPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-calendar.h" line="235"/>
    </record>
    <docsection name="CinnamonCalendarServer">
      <doc xml:space="preserve"
           filename="src/cinnamon-calendar.c"
           line="297">This section contains code for working with the &lt;link linkend="gdbus-interface-org-cinnamon-CalendarServer.top_of_page"&gt;org.cinnamon.CalendarServer&lt;/link&gt; D-Bus interface in C.</doc>
    </docsection>
    <docsection name="CinnamonRecorder">
      <doc xml:space="preserve"
           filename="src/cinnamon-recorder.h"
           line="9">short_description: Record from a #ClutterStage
The #CinnamonRecorder object is used to make recordings ("screencasts")
of a #ClutterStage. Recording is done via #GStreamer. The default is
to encode as a Theora movie and write it to a file in the current
directory named after the date, but the encoding and output can
be configured.</doc>
    </docsection>
    <enumeration name="Cursor"
                 glib:type-name="CinnamonCursor"
                 glib:get-type="cinnamon_cursor_get_type"
                 c:type="CinnamonCursor">
      <member name="dnd_in_drag"
              value="0"
              c:identifier="CINNAMON_CURSOR_DND_IN_DRAG"
              glib:nick="dnd-in-drag"
              glib:name="CINNAMON_CURSOR_DND_IN_DRAG">
      </member>
      <member name="dnd_unsupported_target"
              value="1"
              c:identifier="CINNAMON_CURSOR_DND_UNSUPPORTED_TARGET"
              glib:nick="dnd-unsupported-target"
              glib:name="CINNAMON_CURSOR_DND_UNSUPPORTED_TARGET">
      </member>
      <member name="dnd_move"
              value="2"
              c:identifier="CINNAMON_CURSOR_DND_MOVE"
              glib:nick="dnd-move"
              glib:name="CINNAMON_CURSOR_DND_MOVE">
      </member>
      <member name="dnd_copy"
              value="3"
              c:identifier="CINNAMON_CURSOR_DND_COPY"
              glib:nick="dnd-copy"
              glib:name="CINNAMON_CURSOR_DND_COPY">
      </member>
      <member name="pointing_hand"
              value="4"
              c:identifier="CINNAMON_CURSOR_POINTING_HAND"
              glib:nick="pointing-hand"
              glib:name="CINNAMON_CURSOR_POINTING_HAND">
      </member>
      <member name="resize_bottom"
              value="5"
              c:identifier="CINNAMON_CURSOR_RESIZE_BOTTOM"
              glib:nick="resize-bottom"
              glib:name="CINNAMON_CURSOR_RESIZE_BOTTOM">
      </member>
      <member name="resize_top"
              value="6"
              c:identifier="CINNAMON_CURSOR_RESIZE_TOP"
              glib:nick="resize-top"
              glib:name="CINNAMON_CURSOR_RESIZE_TOP">
      </member>
      <member name="resize_left"
              value="7"
              c:identifier="CINNAMON_CURSOR_RESIZE_LEFT"
              glib:nick="resize-left"
              glib:name="CINNAMON_CURSOR_RESIZE_LEFT">
      </member>
      <member name="resize_right"
              value="8"
              c:identifier="CINNAMON_CURSOR_RESIZE_RIGHT"
              glib:nick="resize-right"
              glib:name="CINNAMON_CURSOR_RESIZE_RIGHT">
      </member>
      <member name="resize_bottom_right"
              value="9"
              c:identifier="CINNAMON_CURSOR_RESIZE_BOTTOM_RIGHT"
              glib:nick="resize-bottom-right"
              glib:name="CINNAMON_CURSOR_RESIZE_BOTTOM_RIGHT">
      </member>
      <member name="resize_bottom_left"
              value="10"
              c:identifier="CINNAMON_CURSOR_RESIZE_BOTTOM_LEFT"
              glib:nick="resize-bottom-left"
              glib:name="CINNAMON_CURSOR_RESIZE_BOTTOM_LEFT">
      </member>
      <member name="resize_top_right"
              value="11"
              c:identifier="CINNAMON_CURSOR_RESIZE_TOP_RIGHT"
              glib:nick="resize-top-right"
              glib:name="CINNAMON_CURSOR_RESIZE_TOP_RIGHT">
      </member>
      <member name="resize_top_left"
              value="12"
              c:identifier="CINNAMON_CURSOR_RESIZE_TOP_LEFT"
              glib:nick="resize-top-left"
              glib:name="CINNAMON_CURSOR_RESIZE_TOP_LEFT">
      </member>
      <member name="crosshair"
              value="13"
              c:identifier="CINNAMON_CURSOR_CROSSHAIR"
              glib:nick="crosshair"
              glib:name="CINNAMON_CURSOR_CROSSHAIR">
      </member>
      <member name="text"
              value="14"
              c:identifier="CINNAMON_CURSOR_TEXT"
              glib:nick="text"
              glib:name="CINNAMON_CURSOR_TEXT">
      </member>
    </enumeration>
    <function-macro name="DOC_SYSTEM"
                    c:identifier="CINNAMON_DOC_SYSTEM"
                    introspectable="0">
      <source-position filename="src/cinnamon-doc-system.h" line="9"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DOC_SYSTEM_CLASS"
                    c:identifier="CINNAMON_DOC_SYSTEM_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-doc-system.h" line="10"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DOC_SYSTEM_GET_CLASS"
                    c:identifier="CINNAMON_DOC_SYSTEM_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-doc-system.h" line="13"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="DocSystem"
           c:symbol-prefix="doc_system"
           c:type="CinnamonDocSystem"
           parent="GObject.Object"
           glib:type-name="CinnamonDocSystem"
           glib:get-type="cinnamon_doc_system_get_type"
           glib:type-struct="DocSystemClass">
      <source-position filename="src/cinnamon-doc-system.h" line="29"/>
      <function name="get_default"
                c:identifier="cinnamon_doc_system_get_default">
        <source-position filename="src/cinnamon-doc-system.h" line="33"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-doc-system.c"
               line="151">The global #CinnamonDocSystem singleton</doc>
          <type name="DocSystem" c:type="CinnamonDocSystem*"/>
        </return-value>
      </function>
      <method name="get_all" c:identifier="cinnamon_doc_system_get_all">
        <doc xml:space="preserve"
             filename="src/cinnamon-doc-system.c"
             line="38">Returns the currently cached set of recent files. Recent files are read initially
from the underlying #GtkRecentManager, and updated when it changes.
This function does not perform I/O.</doc>
        <source-position filename="src/cinnamon-doc-system.h" line="35"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-doc-system.c"
               line="46">Cached recent file infos</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Gtk.RecentInfo"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-doc-system.c"
                 line="40">A #CinnamonDocSystem</doc>
            <type name="DocSystem" c:type="CinnamonDocSystem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DocSystemPrivate" c:type="CinnamonDocSystemPrivate*"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="DocSystemClass"
            c:type="CinnamonDocSystemClass"
            glib:is-gtype-struct-for="DocSystem">
      <source-position filename="src/cinnamon-doc-system.h" line="29"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="DocSystemPrivate"
            c:type="CinnamonDocSystemPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-doc-system.h" line="17"/>
    </record>
    <class name="EmbeddedWindow"
           c:symbol-prefix="embedded_window"
           c:type="CinnamonEmbeddedWindow"
           parent="Gtk.Window"
           glib:type-name="CinnamonEmbeddedWindow"
           glib:get-type="cinnamon_embedded_window_get_type"
           glib:type-struct="EmbeddedWindowClass">
      <source-position filename="src/cinnamon-embedded-window.h" line="15"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="cinnamon_embedded_window_new">
        <source-position filename="src/cinnamon-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="CinnamonEmbeddedWindowClass"
            glib:is-gtype-struct-for="EmbeddedWindow">
      <source-position filename="src/cinnamon-embedded-window.h" line="15"/>
      <field name="parent_class">
        <type name="Gtk.WindowClass" c:type="GtkWindowClass"/>
      </field>
    </record>
    <callback name="FileContentsCallback"
              c:type="CinnamonFileContentsCallback"
              version="3.1">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.h"
           line="35">Callback type for cinnamon_get_file_contents_utf8()</doc>
      <source-position filename="src/cinnamon-util.h" line="44"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="utf8_contents" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.h"
               line="37">The contents of the file</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.h"
               line="38">Data passed to cinnamon_get_file_contents_utf8()</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="GENERIC_CONTAINER"
                    c:identifier="CINNAMON_GENERIC_CONTAINER"
                    introspectable="0">
      <source-position filename="src/cinnamon-generic-container.h" line="8"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GENERIC_CONTAINER_CLASS"
                    c:identifier="CINNAMON_GENERIC_CONTAINER_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-generic-container.h" line="9"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GENERIC_CONTAINER_GET_CLASS"
                    c:identifier="CINNAMON_GENERIC_CONTAINER_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-generic-container.h" line="12"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GLOBAL"
                    c:identifier="CINNAMON_GLOBAL"
                    introspectable="0">
      <source-position filename="src/cinnamon-global.h" line="16"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GLOBAL_CLASS"
                    c:identifier="CINNAMON_GLOBAL_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-global.h" line="17"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GLOBAL_GET_CLASS"
                    c:identifier="CINNAMON_GLOBAL_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-global.h" line="20"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="GLSLEffect"
           c:symbol-prefix="glsl_effect"
           c:type="CinnamonGLSLEffect"
           parent="Clutter.OffscreenEffect"
           glib:type-name="CinnamonGLSLEffect"
           glib:get-type="cinnamon_glsl_effect_get_type"
           glib:type-struct="GLSLEffectClass">
      <source-position filename="src/cinnamon-glsl-effect.h" line="39"/>
      <virtual-method name="build_pipeline">
        <source-position filename="src/cinnamon-glsl-effect.h" line="38"/>
        <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="CinnamonGLSLEffect*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_glsl_snippet"
              c:identifier="cinnamon_glsl_effect_add_glsl_snippet">
        <doc xml:space="preserve"
             filename="src/cinnamon-glsl-effect.c"
             line="98">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/cinnamon-glsl-effect.h" line="41"/>
        <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/cinnamon-glsl-effect.c"
                 line="100">a #CinnamonGLSLEffect</doc>
            <type name="GLSLEffect" c:type="CinnamonGLSLEffect*"/>
          </instance-parameter>
          <parameter name="hook" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-glsl-effect.c"
                 line="101">where to insert the code</doc>
            <type name="SnippetHook" c:type="CinnamonSnippetHook"/>
          </parameter>
          <parameter name="declarations" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-glsl-effect.c"
                 line="102">GLSL declarations</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="code" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-glsl-effect.c"
                 line="103">GLSL code</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="is_replace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-glsl-effect.c"
                 line="104">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="cinnamon_glsl_effect_get_uniform_location">
        <source-position filename="src/cinnamon-glsl-effect.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-glsl-effect.c"
               line="215">the location of the uniform named @name, that can be
         passed to cinnamon_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/cinnamon-glsl-effect.c"
                 line="212">a #CinnamonGLSLEffect</doc>
            <type name="GLSLEffect" c:type="CinnamonGLSLEffect*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-glsl-effect.c"
                 line="213">the uniform name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uniform_float"
              c:identifier="cinnamon_glsl_effect_set_uniform_float">
        <source-position filename="src/cinnamon-glsl-effect.h" line="49"/>
        <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/cinnamon-glsl-effect.c"
                 line="228">a #CinnamonGLSLEffect</doc>
            <type name="GLSLEffect" c:type="CinnamonGLSLEffect*"/>
          </instance-parameter>
          <parameter name="uniform" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-glsl-effect.c"
                 line="229">the uniform location (as returned by cinnamon_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/cinnamon-glsl-effect.c"
                 line="230">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/cinnamon-glsl-effect.c"
                 line="231">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/cinnamon-glsl-effect.c"
                 line="232">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>
      <field name="parent_instance">
        <type name="Clutter.OffscreenEffect" c:type="ClutterOffscreenEffect"/>
      </field>
    </class>
    <record name="GLSLEffectClass"
            c:type="CinnamonGLSLEffectClass"
            glib:is-gtype-struct-for="GLSLEffect">
      <source-position filename="src/cinnamon-glsl-effect.h" line="39"/>
      <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/cinnamon-glsl-effect.h" line="38"/>
          <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="CinnamonGLSLEffect*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="GenericContainer"
           c:symbol-prefix="generic_container"
           c:type="CinnamonGenericContainer"
           parent="St.Widget"
           glib:type-name="CinnamonGenericContainer"
           glib:get-type="cinnamon_generic_container_get_type"
           glib:type-struct="GenericContainerClass">
      <source-position filename="src/cinnamon-generic-container.h" line="40"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <method name="get_n_skip_paint"
              c:identifier="cinnamon_generic_container_get_n_skip_paint">
        <source-position filename="src/cinnamon-generic-container.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-generic-container.c"
               line="188">Number of children which will not be painted.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="186">A #CinnamonGenericContainer</doc>
            <type name="GenericContainer" c:type="CinnamonGenericContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_skip_paint"
              c:identifier="cinnamon_generic_container_get_skip_paint">
        <doc xml:space="preserve"
             filename="src/cinnamon-generic-container.c"
             line="196">Gets whether or not @actor is skipped when painting.</doc>
        <source-position filename="src/cinnamon-generic-container.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-generic-container.c"
               line="203">%TRUE or %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="198">A #CinnamonGenericContainer</doc>
            <type name="GenericContainer" c:type="CinnamonGenericContainer*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="199">Child #ClutterActor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_skip_paint"
              c:identifier="cinnamon_generic_container_set_skip_paint">
        <doc xml:space="preserve"
             filename="src/cinnamon-generic-container.c"
             line="212">Set whether or not we should skip painting @actor.  Workaround for
lack of gjs ability to override _paint vfunc.</doc>
        <source-position filename="src/cinnamon-generic-container.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/cinnamon-generic-container.c"
                 line="214">A #CinnamonGenericContainer</doc>
            <type name="GenericContainer" c:type="CinnamonGenericContainer*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="215">Child #ClutterActor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
          <parameter name="skip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="216">%TRUE if we should skip painting</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="St.Widget" c:type="StWidget"/>
      </field>
      <field name="priv">
        <type name="GenericContainerPrivate"
              c:type="CinnamonGenericContainerPrivate*"/>
      </field>
      <glib:signal name="allocate" when="last">
        <doc xml:space="preserve"
             filename="src/cinnamon-generic-container.c"
             line="370">Emitted when @self is allocated, after chaining up to the parent
allocate method.

Note that @box is @self's content box (qv
st_theme_node_get_content_box()), NOT its allocation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="373">@self's content box</doc>
            <type name="Clutter.ActorBox"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="374">the allocation flags.</doc>
            <type name="Clutter.AllocationFlags"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="get-preferred-height" when="last">
        <doc xml:space="preserve"
             filename="src/cinnamon-generic-container.c"
             line="346">Emitted when clutter_actor_get_preferred_height() is called
on @self. You should fill in the fields of @alloc with the
your minimum and natural heights. #CinnamonGenericContainer
will deal with taking its borders and padding into account
for you.

@alloc's fields are initialized to 0, so unless you have a fixed
height specified (via #ClutterActor:height or CSS), you must
connect to this signal and fill in the values.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="for_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="349">as in clutter_actor_get_preferred_height()</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="alloc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="350">a #CinnamonGenericContainerAllocation to be filled in</doc>
            <type name="GenericContainerAllocation"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="get-preferred-width" when="last">
        <doc xml:space="preserve"
             filename="src/cinnamon-generic-container.c"
             line="322">Emitted when clutter_actor_get_preferred_width() is called
on @self. You should fill in the fields of @alloc with the
your minimum and natural widths. #CinnamonGenericContainer
will deal with taking its borders and padding into account
for you.

@alloc's fields are initialized to 0, so unless you have a fixed
width specified (via #ClutterActor:width or CSS), you must
connect to this signal and fill in the values.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="for_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="325">as in clutter_actor_get_preferred_width()</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="alloc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-generic-container.c"
                 line="326">a #CinnamonGenericContainerAllocation to be filled in</doc>
            <type name="GenericContainerAllocation"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="GenericContainerAllocation"
            c:type="CinnamonGenericContainerAllocation"
            glib:type-name="CinnamonGenericContainerAllocation"
            glib:get-type="cinnamon_generic_container_allocation_get_type"
            c:symbol-prefix="generic_container_allocation">
      <source-position filename="src/cinnamon-generic-container.h" line="20"/>
      <field name="min_size" writable="1">
        <type name="gfloat" c:type="float"/>
      </field>
      <field name="natural_size" writable="1">
        <type name="gfloat" c:type="float"/>
      </field>
      <field name="_refcount" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <record name="GenericContainerClass"
            c:type="CinnamonGenericContainerClass"
            glib:is-gtype-struct-for="GenericContainer">
      <source-position filename="src/cinnamon-generic-container.h" line="40"/>
      <field name="parent_class">
        <type name="St.WidgetClass" c:type="StWidgetClass"/>
      </field>
    </record>
    <record name="GenericContainerPrivate"
            c:type="CinnamonGenericContainerPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-generic-container.h" line="28"/>
    </record>
    <class name="Global"
           c:symbol-prefix="global"
           c:type="CinnamonGlobal"
           parent="GObject.Object"
           glib:type-name="CinnamonGlobal"
           glib:get-type="cinnamon_global_get_type"
           glib:type-struct="GlobalClass">
      <source-position filename="src/cinnamon-global.h" line="25"/>
      <function name="get" c:identifier="cinnamon_global_get">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="490">Gets the singleton global object that represents the desktop.</doc>
        <source-position filename="src/cinnamon-global.h" line="29"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="495">the singleton global object</doc>
          <type name="Global" c:type="CinnamonGlobal*"/>
        </return-value>
      </function>
      <method name="alloc_leak" c:identifier="cinnamon_global_alloc_leak">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1601">Request mb megabytes allocated. This is just for debugging.</doc>
        <source-position filename="src/cinnamon-global.h" line="127"/>
        <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/cinnamon-global.c"
                 line="1603">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="mb" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="1604">How many mb to leak</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_modal" c:identifier="cinnamon_global_begin_modal">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="950">Grabs the keyboard and mouse to the stage window. The stage will
receive all keyboard and mouse events until cinnamon_global_end_modal()
is called. This is used to implement "modes" for the shell, such as the
overview mode or the "looking glass" debug overlay, that block
application and normal key shortcuts.</doc>
        <source-position filename="src/cinnamon-global.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="960">%TRUE if we successfully entered the mode. %FALSE if we couldn't
 enter the mode. Failure may occur because an application has the pointer
 or keyboard grabbed, because Mutter is in a mode itself like moving a
 window or alt-Tab window selection, or because cinnamon_global_begin_modal()
 was previously called.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="952">a #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <type name="Meta.ModalOptions" c:type="MetaModalOptions"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_work" c:identifier="cinnamon_global_begin_work">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1513">Marks that we are currently doing work. This is used to to track
whether we are busy for the purposes of cinnamon_global_run_at_leisure().
A count is kept and cinnamon_global_end_work() must be called exactly
as many times as cinnamon_global_begin_work().</doc>
        <source-position filename="src/cinnamon-global.h" line="101"/>
        <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/cinnamon-global.c"
                 line="1515">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_app_launch_context"
              c:identifier="cinnamon_global_create_app_launch_context">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1420">Create a #GAppLaunchContext set up with the correct timestamp, and
targeted to activate on the current workspace.</doc>
        <source-position filename="src/cinnamon-global.h" line="117"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="1427">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/cinnamon-global.c"
                 line="1422">A #CinnaamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_pointer_barrier"
              c:identifier="cinnamon_global_create_pointer_barrier">
        <source-position filename="src/cinnamon-global.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="x1" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y1" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="x2" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y2" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="directions" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="destroy_pointer_barrier"
              c:identifier="cinnamon_global_destroy_pointer_barrier">
        <source-position filename="src/cinnamon-global.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="barrier" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="dump_gjs_stack"
              c:identifier="cinnamon_global_dump_gjs_stack">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="893">Prints out the gjs stack</doc>
        <source-position filename="src/cinnamon-global.h" line="39"/>
        <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/cinnamon-global.c"
                 line="895">A #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="end_modal" c:identifier="cinnamon_global_end_modal">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="985">Undoes the effect of cinnamon_global_begin_modal().</doc>
        <source-position filename="src/cinnamon-global.h" line="45"/>
        <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/cinnamon-global.c"
                 line="987">a #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="end_work" c:identifier="cinnamon_global_end_work">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1528">Marks the end of work that we started with cinnamon_global_begin_work().
If no other work is ongoing and functions have been added with
cinnamon_global_run_at_leisure(), they will be run at the next
opportunity.</doc>
        <source-position filename="src/cinnamon-global.h" line="102"/>
        <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/cinnamon-global.c"
                 line="1530">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_time"
              c:identifier="cinnamon_global_get_current_time">
        <source-position filename="src/cinnamon-global.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="1343">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/cinnamon-global.c"
                 line="1341">A #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display"
              c:identifier="cinnamon_global_get_display"
              glib:get-property="display">
        <source-position filename="src/cinnamon-global.h" line="33"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="726">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="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_md5_for_string"
              c:identifier="cinnamon_global_get_md5_for_string">
        <source-position filename="src/cinnamon-global.h" line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="1388">the MD5 sum for the given string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="1386">input string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_pid" c:identifier="cinnamon_global_get_pid">
        <source-position filename="src/cinnamon-global.h" line="37"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="1376">the pid of the cinnamon process.</doc>
          <type name="gint" c:type="pid_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pointer" c:identifier="cinnamon_global_get_pointer">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1230">Gets the pointer coordinates and current modifier key state.
This is a wrapper around gdk_display_get_pointer() that strips
out any un-declared modifier flags, to make gjs happy; see
https://bugzilla.gnome.org/show_bug.cgi?id=597292.</doc>
        <source-position filename="src/cinnamon-global.h" line="92"/>
        <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/cinnamon-global.c"
                 line="1232">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="1233">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/cinnamon-global.c"
                 line="1234">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/cinnamon-global.c"
                 line="1235">the current set of modifier keys that are pressed down</doc>
            <type name="Clutter.ModifierType" c:type="ClutterModifierType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_screen"
              c:identifier="cinnamon_global_get_screen"
              glib:get-property="screen">
        <source-position filename="src/cinnamon-global.h" line="32"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="715">The (Meta) CinnamonScreen</doc>
          <type name="Screen" c:type="CinnamonScreen*"/>
        </return-value>
        <parameters>
          <instance-parameter name="global" transfer-ownership="none">
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_settings"
              c:identifier="cinnamon_global_get_settings"
              glib:get-property="settings">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1325">Get the global GSettings instance.</doc>
        <source-position filename="src/cinnamon-global.h" line="35"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="1331">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/cinnamon-global.c"
                 line="1327">A #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stage"
              c:identifier="cinnamon_global_get_stage"
              glib:get-property="stage">
        <source-position filename="src/cinnamon-global.h" line="31"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="704">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="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_actors"
              c:identifier="cinnamon_global_get_window_actors">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="734">Gets the list of #MetaWindowActor for the plugin's screen</doc>
        <source-position filename="src/cinnamon-global.h" line="34"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-global.c"
               line="739">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="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="notify_error" c:identifier="cinnamon_global_notify_error">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1211">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/cinnamon-global.h" line="119"/>
        <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/cinnamon-global.c"
                 line="1213">a #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="msg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="1214">Error message</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="details" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="1215">Error details</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="real_restart" c:identifier="cinnamon_global_real_restart">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1111">Restart the current process.</doc>
        <source-position filename="src/cinnamon-global.h" line="123"/>
        <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/cinnamon-global.c"
                 line="1113">A #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reexec_self" c:identifier="cinnamon_global_reexec_self">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1099">Initiates the shutdown sequence.</doc>
        <source-position filename="src/cinnamon-global.h" line="124"/>
        <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/cinnamon-global.c"
                 line="1101">A #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="run_at_leisure"
              c:identifier="cinnamon_global_run_at_leisure">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1548">Schedules a function to be called the next time Cinnamon 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 done through Cinnamon's Tweener module will
be handled properly, but other 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/cinnamon-global.h" line="106"/>
        <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/cinnamon-global.c"
                 line="1550">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="1551">function to call at leisure</doc>
            <type name="LeisureFunction" c:type="CinnamonLeisureFunction"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="1552">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/cinnamon-global.c"
                 line="1553">function to call to free @user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="segfault" c:identifier="cinnamon_global_segfault">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1588">Crashes Cinnamon by causing a segfault</doc>
        <source-position filename="src/cinnamon-global.h" line="126"/>
        <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/cinnamon-global.c"
                 line="1590">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_cursor" c:identifier="cinnamon_global_set_cursor">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="575">Set the cursor on the stage window.</doc>
        <source-position filename="src/cinnamon-global.h" line="79"/>
        <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/cinnamon-global.c"
                 line="577">A #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="578">the type of the cursor</doc>
            <type name="Cursor" c:type="CinnamonCursor"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pointer" c:identifier="cinnamon_global_set_pointer">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1257">Sets the pointer coordinates.</doc>
        <source-position filename="src/cinnamon-global.h" line="96"/>
        <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/cinnamon-global.c"
                 line="1259">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="1260">the X coordinate of the pointer, in global coordinates</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="1261">the Y coordinate of the pointer, in global coordinates</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stage_input_mode"
              c:identifier="cinnamon_global_set_stage_input_mode"
              glib:set-property="stage-input-mode">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="521">Sets the input mode of the stage; when @mode is
%CINNAMON_STAGE_INPUT_MODE_NONREACTIVE, then the stage does not absorb
any clicks, but just passes them through to underlying windows.
When it is %CINNAMON_STAGE_INPUT_MODE_NORMAL, then the stage accepts
clicks in the region defined by
cinnamon_global_set_stage_input_region() but passes through clicks
outside that region. When it is %CINNAMON_STAGE_INPUT_MODE_FULLSCREEN,
the stage absorbs all input.

When the input mode is %CINNAMON_STAGE_INPUT_MODE_FOCUSED, the pointer
is handled as with %CINNAMON_STAGE_INPUT_MODE_NORMAL, but additionally
the stage window has the keyboard focus. If the stage loses the
focus (eg, because the user clicked into a window) the input mode
will revert to %CINNAMON_STAGE_INPUT_MODE_NORMAL.

Note that whenever a muffin-internal Gtk widget has a pointer grab,
Cinnamon behaves as though it was in
%CINNAMON_STAGE_INPUT_MODE_NONREACTIVE, to ensure that the widget gets
any clicks it is expecting.</doc>
        <source-position filename="src/cinnamon-global.h" line="55"/>
        <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/cinnamon-global.c"
                 line="523">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="524">the stage input mode</doc>
            <type name="StageInputMode" c:type="CinnamonStageInputMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stage_input_region"
              c:identifier="cinnamon_global_set_stage_input_region">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="654">Sets the area of the stage that is responsive to mouse clicks when
the stage mode is %CINNAMON_STAGE_INPUT_MODE_NORMAL (but does not change the
current stage mode).</doc>
        <source-position filename="src/cinnamon-global.h" line="57"/>
        <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/cinnamon-global.c"
                 line="656">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
          <parameter name="rectangles" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-global.c"
                 line="657">a list of #MetaRectangle
describing the input region.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="Meta.Rectangle"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="sync_pointer" c:identifier="cinnamon_global_sync_pointer">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="1284">Ensures that clutter is aware of the current pointer position,
causing enter and leave events to be emitted if the pointer moved
behind our back (ie, during a pointer grab).</doc>
        <source-position filename="src/cinnamon-global.h" line="114"/>
        <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/cinnamon-global.c"
                 line="1286">the #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_cursor" c:identifier="cinnamon_global_unset_cursor">
        <doc xml:space="preserve"
             filename="src/cinnamon-global.c"
             line="642">Unset the cursor on the stage window.</doc>
        <source-position filename="src/cinnamon-global.h" line="81"/>
        <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/cinnamon-global.c"
                 line="644">A #CinnamonGlobal</doc>
            <type name="Global" c:type="CinnamonGlobal*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="background-actor" transfer-ownership="none">
        <type name="Clutter.Actor"/>
      </property>
      <property name="bottom-window-group" transfer-ownership="none">
        <type name="Clutter.Actor"/>
      </property>
      <property name="datadir" transfer-ownership="none" default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="desklet-container" transfer-ownership="none">
        <type name="Clutter.Actor"/>
      </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="imagedir" transfer-ownership="none" default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="overlay-group" transfer-ownership="none">
        <type name="Clutter.Actor"/>
      </property>
      <property name="screen" transfer-ownership="none" getter="get_screen">
        <type name="Screen"/>
      </property>
      <property name="screen-height"
                transfer-ownership="none"
                default-value="1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="screen-width"
                transfer-ownership="none"
                default-value="1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="session-running"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </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="stage-input-mode"
                writable="1"
                transfer-ownership="none"
                setter="set_stage_input_mode"
                default-value="CINNAMON_STAGE_INPUT_MODE_NORMAL">
        <type name="StageInputMode"/>
      </property>
      <property name="top-window-group" transfer-ownership="none">
        <type name="Clutter.Actor"/>
      </property>
      <property name="ui-scale" transfer-ownership="none" default-value="1">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="userdatadir"
                transfer-ownership="none"
                default-value="NULL">
        <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="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>
      <glib:signal name="scale-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="shutdown" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="GlobalClass"
            c:type="CinnamonGlobalClass"
            glib:is-gtype-struct-for="Global">
      <source-position filename="src/cinnamon-global.h" line="25"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="GtkEmbed"
           c:symbol-prefix="gtk_embed"
           c:type="CinnamonGtkEmbed"
           parent="Clutter.Clone"
           glib:type-name="CinnamonGtkEmbed"
           glib:get-type="cinnamon_gtk_embed_get_type"
           glib:type-struct="GtkEmbedClass">
      <source-position filename="src/cinnamon-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="cinnamon_gtk_embed_new">
        <source-position filename="src/cinnamon-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="CinnamonEmbeddedWindow*"/>
          </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="CinnamonGtkEmbedClass"
            glib:is-gtype-struct-for="GtkEmbed">
      <source-position filename="src/cinnamon-gtk-embed.h" line="16"/>
      <field name="parent_class">
        <type name="Clutter.CloneClass" c:type="ClutterCloneClass"/>
      </field>
    </record>
    <function-macro name="IS_APP"
                    c:identifier="CINNAMON_IS_APP"
                    introspectable="0">
      <source-position filename="src/cinnamon-app.h" line="23"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APP_CLASS"
                    c:identifier="CINNAMON_IS_APP_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-app.h" line="24"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APP_SYSTEM"
                    c:identifier="CINNAMON_IS_APP_SYSTEM"
                    introspectable="0">
      <source-position filename="src/cinnamon-app-system.h" line="16"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_APP_SYSTEM_CLASS"
                    c:identifier="CINNAMON_IS_APP_SYSTEM_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-app-system.h" line="17"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CALENDAR_SERVER"
                    c:identifier="CINNAMON_IS_CALENDAR_SERVER"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="22"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CALENDAR_SERVER_PROXY"
                    c:identifier="CINNAMON_IS_CALENDAR_SERVER_PROXY"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="160"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CALENDAR_SERVER_PROXY_CLASS"
                    c:identifier="CINNAMON_IS_CALENDAR_SERVER_PROXY_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="161"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CALENDAR_SERVER_SKELETON"
                    c:identifier="CINNAMON_IS_CALENDAR_SERVER_SKELETON"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="230"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CALENDAR_SERVER_SKELETON_CLASS"
                    c:identifier="CINNAMON_IS_CALENDAR_SERVER_SKELETON_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-calendar.h" line="231"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DOC_SYSTEM"
                    c:identifier="CINNAMON_IS_DOC_SYSTEM"
                    introspectable="0">
      <source-position filename="src/cinnamon-doc-system.h" line="11"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DOC_SYSTEM_CLASS"
                    c:identifier="CINNAMON_IS_DOC_SYSTEM_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-doc-system.h" line="12"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GENERIC_CONTAINER"
                    c:identifier="CINNAMON_IS_GENERIC_CONTAINER"
                    introspectable="0">
      <source-position filename="src/cinnamon-generic-container.h" line="10"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GENERIC_CONTAINER_CLASS"
                    c:identifier="CINNAMON_IS_GENERIC_CONTAINER_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-generic-container.h" line="11"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GLOBAL"
                    c:identifier="CINNAMON_IS_GLOBAL"
                    introspectable="0">
      <source-position filename="src/cinnamon-global.h" line="18"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GLOBAL_CLASS"
                    c:identifier="CINNAMON_IS_GLOBAL_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-global.h" line="19"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_NETWORK_AGENT"
                    c:identifier="CINNAMON_IS_NETWORK_AGENT"
                    introspectable="0">
      <source-position filename="src/cinnamon-network-agent.h" line="24"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_NETWORK_AGENT_CLASS"
                    c:identifier="CINNAMON_IS_NETWORK_AGENT_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-network-agent.h" line="26"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PERF_LOG"
                    c:identifier="CINNAMON_IS_PERF_LOG"
                    introspectable="0">
      <source-position filename="src/cinnamon-perf-log.h" line="16"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PERF_LOG_CLASS"
                    c:identifier="CINNAMON_IS_PERF_LOG_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-perf-log.h" line="17"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RECORDER"
                    c:identifier="CINNAMON_IS_RECORDER"
                    introspectable="0">
      <source-position filename="src/cinnamon-recorder.h" line="25"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RECORDER_CLASS"
                    c:identifier="CINNAMON_IS_RECORDER_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-recorder.h" line="26"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SCREENSHOT"
                    c:identifier="CINNAMON_IS_SCREENSHOT"
                    introspectable="0">
      <source-position filename="src/cinnamon-screenshot.h" line="20"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SCREENSHOT_CLASS"
                    c:identifier="CINNAMON_IS_SCREENSHOT_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-screenshot.h" line="21"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SLICER"
                    c:identifier="CINNAMON_IS_SLICER"
                    introspectable="0">
      <source-position filename="src/cinnamon-slicer.h" line="10"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SLICER_CLASS"
                    c:identifier="CINNAMON_IS_SLICER_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-slicer.h" line="11"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STACK"
                    c:identifier="CINNAMON_IS_STACK"
                    introspectable="0">
      <source-position filename="src/cinnamon-stack.h" line="11"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STACK_CLASS"
                    c:identifier="CINNAMON_IS_STACK_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-stack.h" line="12"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TRAY_ICON"
                    c:identifier="CINNAMON_IS_TRAY_ICON"
                    introspectable="0">
      <source-position filename="src/cinnamon-tray-icon.h" line="10"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TRAY_ICON_CLASS"
                    c:identifier="CINNAMON_IS_TRAY_ICON_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-tray-icon.h" line="11"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WINDOW_TRACKER"
                    c:identifier="CINNAMON_IS_WINDOW_TRACKER"
                    introspectable="0">
      <source-position filename="src/cinnamon-window-tracker.h" line="21"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WINDOW_TRACKER_CLASS"
                    c:identifier="CINNAMON_IS_WINDOW_TRACKER_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-window-tracker.h" line="22"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="KEYRING_SK_TAG"
              value="setting-key"
              c:type="CINNAMON_KEYRING_SK_TAG">
      <source-position filename="src/cinnamon-network-agent.h" line="69"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="KEYRING_SN_TAG"
              value="setting-name"
              c:type="CINNAMON_KEYRING_SN_TAG">
      <source-position filename="src/cinnamon-network-agent.h" line="68"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="KEYRING_UUID_TAG"
              value="connection-uuid"
              c:type="CINNAMON_KEYRING_UUID_TAG">
      <source-position filename="src/cinnamon-network-agent.h" line="67"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="KeyringPrompt"
           c:symbol-prefix="keyring_prompt"
           c:type="CinnamonKeyringPrompt"
           parent="GObject.Object"
           glib:type-name="CinnamonKeyringPrompt"
           glib:get-type="cinnamon_keyring_prompt_get_type"
           glib:type-struct="KeyringPromptClass">
      <source-position filename="src/cinnamon-keyring-prompt.h" line="36"/>
      <implements name="Gcr.Prompt"/>
      <constructor name="new" c:identifier="cinnamon_keyring_prompt_new">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="544">Create new internal prompt base</doc>
        <source-position filename="src/cinnamon-keyring-prompt.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-keyring-prompt.c"
               line="549">new internal prompt</doc>
          <type name="KeyringPrompt" c:type="CinnamonKeyringPrompt*"/>
        </return-value>
      </constructor>
      <method name="cancel" c:identifier="cinnamon_keyring_prompt_cancel">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="796">Called by implementation when the prompt is cancelled.</doc>
        <source-position filename="src/cinnamon-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/cinnamon-keyring-prompt.c"
                 line="798">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="CinnamonKeyringPrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="complete" c:identifier="cinnamon_keyring_prompt_complete">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="731">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/cinnamon-keyring-prompt.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-keyring-prompt.c"
               line="738">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/cinnamon-keyring-prompt.c"
                 line="733">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="CinnamonKeyringPrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_confirm_actor"
              c:identifier="cinnamon_keyring_prompt_get_confirm_actor"
              glib:get-property="confirm-actor">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="572">Get the prompt password text actor</doc>
        <source-position filename="src/cinnamon-keyring-prompt.h" line="46"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/cinnamon-keyring-prompt.c"
               line="578">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/cinnamon-keyring-prompt.c"
                 line="574">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="CinnamonKeyringPrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password_actor"
              c:identifier="cinnamon_keyring_prompt_get_password_actor"
              glib:get-property="password-actor">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="557">Get the prompt password text actor</doc>
        <source-position filename="src/cinnamon-keyring-prompt.h" line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/cinnamon-keyring-prompt.c"
               line="563">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/cinnamon-keyring-prompt.c"
                 line="559">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="CinnamonKeyringPrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_confirm_actor"
              c:identifier="cinnamon_keyring_prompt_set_confirm_actor"
              glib:set-property="confirm-actor">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="698">Set the prompt password confirmation text actor</doc>
        <source-position filename="src/cinnamon-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/cinnamon-keyring-prompt.c"
                 line="700">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="CinnamonKeyringPrompt*"/>
          </instance-parameter>
          <parameter name="confirm_actor"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-keyring-prompt.c"
                 line="701">the confirm password actor</doc>
            <type name="Clutter.Text" c:type="ClutterText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password_actor"
              c:identifier="cinnamon_keyring_prompt_set_password_actor"
              glib:set-property="password-actor">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="660">Set the prompt password text actor</doc>
        <source-position filename="src/cinnamon-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/cinnamon-keyring-prompt.c"
                 line="662">the internal prompt</doc>
            <type name="KeyringPrompt" c:type="CinnamonKeyringPrompt*"/>
          </instance-parameter>
          <parameter name="password_actor"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-keyring-prompt.c"
                 line="663">the password actor</doc>
            <type name="Clutter.Text" c:type="ClutterText*"/>
          </parameter>
        </parameters>
      </method>
      <property name="choice-visible"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="387">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/cinnamon-keyring-prompt.c"
             line="411">Text field for confirmation password</doc>
        <type name="Clutter.Text"/>
      </property>
      <property name="confirm-visible"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="363">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/cinnamon-keyring-prompt.c"
             line="399">Text field for password</doc>
        <type name="Clutter.Text"/>
      </property>
      <property name="password-visible"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="351">Whether the password entry is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="warning-visible"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/cinnamon-keyring-prompt.c"
             line="375">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="CinnamonKeyringPromptClass"
            glib:is-gtype-struct-for="KeyringPrompt">
      <source-position filename="src/cinnamon-keyring-prompt.h" line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="LeisureFunction" c:type="CinnamonLeisureFunction">
      <source-position filename="src/cinnamon-global.h" line="104"/>
      <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>
    <function-macro name="NETWORK_AGENT"
                    c:identifier="CINNAMON_NETWORK_AGENT"
                    introspectable="0">
      <source-position filename="src/cinnamon-network-agent.h" line="23"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="NETWORK_AGENT_CLASS"
                    c:identifier="CINNAMON_NETWORK_AGENT_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-network-agent.h" line="25"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="NETWORK_AGENT_GET_CLASS"
                    c:identifier="CINNAMON_NETWORK_AGENT_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-network-agent.h" line="27"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="NetworkAgent"
           c:symbol-prefix="network_agent"
           c:type="CinnamonNetworkAgent"
           parent="NM.SecretAgentOld"
           glib:type-name="CinnamonNetworkAgent"
           glib:get-type="cinnamon_network_agent_get_type"
           glib:type-struct="NetworkAgentClass">
      <source-position filename="src/cinnamon-network-agent.h" line="41"/>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.Initable"/>
      <method name="add_vpn_secret"
              c:identifier="cinnamon_network_agent_add_vpn_secret">
        <source-position filename="src/cinnamon-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="CinnamonNetworkAgent*"/>
          </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="cinnamon_network_agent_respond">
        <source-position filename="src/cinnamon-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="CinnamonNetworkAgent*"/>
          </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="CinnamonNetworkAgentResponse"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_vpn_plugin"
              c:identifier="cinnamon_network_agent_search_vpn_plugin"
              glib:finish-func="search_vpn_plugin_finish">
        <source-position filename="src/cinnamon-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="CinnamonNetworkAgent*"/>
          </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="cinnamon_network_agent_search_vpn_plugin_finish"
              throws="1">
        <source-position filename="src/cinnamon-network-agent.h" line="62"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/cinnamon-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="CinnamonNetworkAgent*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password"
              c:identifier="cinnamon_network_agent_set_password">
        <source-position filename="src/cinnamon-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="CinnamonNetworkAgent*"/>
          </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="CinnamonNetworkAgentPrivate*"/>
      </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="CinnamonNetworkAgentClass"
            glib:is-gtype-struct-for="NetworkAgent">
      <source-position filename="src/cinnamon-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="CinnamonNetworkAgentPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-network-agent.h" line="20"/>
    </record>
    <enumeration name="NetworkAgentResponse"
                 c:type="CinnamonNetworkAgentResponse">
      <source-position filename="src/cinnamon-network-agent.h" line="16"/>
      <member name="confirmed"
              value="0"
              c:identifier="CINNAMON_NETWORK_AGENT_CONFIRMED">
      </member>
      <member name="user_canceled"
              value="1"
              c:identifier="CINNAMON_NETWORK_AGENT_USER_CANCELED">
      </member>
      <member name="internal_error"
              value="2"
              c:identifier="CINNAMON_NETWORK_AGENT_INTERNAL_ERROR">
      </member>
    </enumeration>
    <function-macro name="PERF_LOG"
                    c:identifier="CINNAMON_PERF_LOG"
                    introspectable="0">
      <source-position filename="src/cinnamon-perf-log.h" line="14"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PERF_LOG_CLASS"
                    c:identifier="CINNAMON_PERF_LOG_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-perf-log.h" line="15"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PERF_LOG_GET_CLASS"
                    c:identifier="CINNAMON_PERF_LOG_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-perf-log.h" line="18"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="PerfLog"
           c:symbol-prefix="perf_log"
           c:type="CinnamonPerfLog"
           parent="GObject.Object"
           glib:type-name="CinnamonPerfLog"
           glib:get-type="cinnamon_perf_log_get_type"
           glib:type-struct="PerfLogClass">
      <source-position filename="src/cinnamon-perf-log.h" line="11"/>
      <function name="get_default"
                c:identifier="cinnamon_perf_log_get_default">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="171">Gets the global singleton performance log. This is initially disabled
and must be explicitly enabled with cinnamon_perf_log_set_enabled().</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="22"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-perf-log.c"
               line="177">the global singleton performance log</doc>
          <type name="PerfLog" c:type="CinnamonPerfLog*"/>
        </return-value>
      </function>
      <method name="add_statistics_callback"
              c:identifier="cinnamon_perf_log_add_statistics_callback">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="591">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 cinnamon_perf_log_update_statistic_i()
to update the value that will be recorded.</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="58"/>
        <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/cinnamon-perf-log.c"
                 line="593">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="594">function to call before recording statistics</doc>
            <type name="PerfStatisticsCallback"
                  c:type="CinnamonPerfStatisticsCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="595">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/cinnamon-perf-log.c"
                 line="596">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="cinnamon_perf_log_collect_statistics">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="618">Calls all the update functions added with
cinnamon_perf_log_add_statistics_callback() and then records events
for all statistics, followed by a perf.statisticsCollected event.</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="63"/>
        <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/cinnamon-perf-log.c"
                 line="620">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="define_event"
              c:identifier="cinnamon_perf_log_define_event">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="282">Defines a performance event for later recording.</doc>
        <source-position filename="src/cinnamon-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/cinnamon-perf-log.c"
                 line="284">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="285">name of the event. This should of the form
  '&lt;namespace&gt;.&lt;specific event&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/cinnamon-perf-log.c"
                 line="288">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/cinnamon-perf-log.c"
                 line="289">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="cinnamon_perf_log_define_statistic">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="472">Defines a statistic. A statistic is a numeric value that is stored
by the performance log and recorded periodically or when
cinnamon_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 cinnamon_perf_log_update_statistic_i(). This can be done
at any time, but would normally done inside a function registered
with cinnamon_perf_log_add_statistics_callback(). These functions
are called immediately before statistics are recorded.</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="43"/>
        <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/cinnamon-perf-log.c"
                 line="474">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="475">name of the statistic and of the corresponding event.
 This should follow the same guidelines as for cinnamon_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/cinnamon-perf-log.c"
                 line="477">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/cinnamon-perf-log.c"
                 line="478">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="cinnamon_perf_log_dump_events"
              throws="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="805">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&gt;,
  statistic: true } (only for statistics)</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-perf-log.c"
               line="819">%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/cinnamon-perf-log.c"
                 line="807">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="out" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="808">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="cinnamon_perf_log_dump_log"
              throws="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="929">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/cinnamon-perf-log.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-perf-log.c"
               line="942">%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/cinnamon-perf-log.c"
                 line="931">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="out" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="932">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="cinnamon_perf_log_event">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="391">Records a performance event with no arguments.</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="31"/>
        <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/cinnamon-perf-log.c"
                 line="393">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="394">name of the event</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="event_i" c:identifier="cinnamon_perf_log_event_i">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="409">Records a performance event with one 32-bit integer argument.</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="33"/>
        <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/cinnamon-perf-log.c"
                 line="411">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="412">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/cinnamon-perf-log.c"
                 line="413">the argument</doc>
            <type name="gint32" c:type="gint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="event_s" c:identifier="cinnamon_perf_log_event_s">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="451">Records a performance event with one string argument.</doc>
        <source-position filename="src/cinnamon-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/cinnamon-perf-log.c"
                 line="453">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="454">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/cinnamon-perf-log.c"
                 line="455">the argument</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="event_x" c:identifier="cinnamon_perf_log_event_x">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="430">Records a performance event with one 64-bit integer argument.</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="36"/>
        <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/cinnamon-perf-log.c"
                 line="432">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="433">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/cinnamon-perf-log.c"
                 line="434">the argument</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="replay" c:identifier="cinnamon_perf_log_replay">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="688">Replays the log by calling the given function for each event
in the log.</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="71"/>
        <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/cinnamon-perf-log.c"
                 line="690">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="replay_function"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="691">function to call for each event in the log</doc>
            <type name="PerfReplayFunction"
                  c:type="CinnamonPerfReplayFunction"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="692">data to pass to @replay_function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enabled" c:identifier="cinnamon_perf_log_set_enabled">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="200">Sets whether events are currently being recorded.</doc>
        <source-position filename="src/cinnamon-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/cinnamon-perf-log.c"
                 line="202">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="203">whether to record events</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_statistic_i"
              c:identifier="cinnamon_perf_log_update_statistic_i">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="545">Updates the current value of an 32-bit integer statistic.</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="48"/>
        <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/cinnamon-perf-log.c"
                 line="547">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="548">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/cinnamon-perf-log.c"
                 line="549">new value for the statistic</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_statistic_x"
              c:identifier="cinnamon_perf_log_update_statistic_x">
        <doc xml:space="preserve"
             filename="src/cinnamon-perf-log.c"
             line="568">Updates the current value of an 64-bit integer statistic.</doc>
        <source-position filename="src/cinnamon-perf-log.h" line="51"/>
        <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/cinnamon-perf-log.c"
                 line="570">a #CinnamonPerfLog</doc>
            <type name="PerfLog" c:type="CinnamonPerfLog*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-perf-log.c"
                 line="571">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/cinnamon-perf-log.c"
                 line="572">new value for the statistic</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="PerfLogClass"
            c:type="CinnamonPerfLogClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="PerfLog">
      <source-position filename="src/cinnamon-perf-log.h" line="11"/>
    </record>
    <callback name="PerfReplayFunction" c:type="CinnamonPerfReplayFunction">
      <source-position filename="src/cinnamon-perf-log.h" line="65"/>
      <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="CinnamonPerfStatisticsCallback">
      <source-position filename="src/cinnamon-perf-log.h" line="55"/>
      <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="CinnamonPerfLog*"/>
        </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="CinnamonPolkitAuthenticationAgent"
           parent="PolkitAgent.Listener"
           glib:type-name="CinnamonPolkitAuthenticationAgent"
           glib:get-type="cinnamon_polkit_authentication_agent_get_type"
           glib:type-struct="PolkitAuthenticationAgentClass">
      <source-position filename="src/cinnamon-polkit-authentication-agent.h"
                       line="24"/>
      <constructor name="new"
                   c:identifier="cinnamon_polkit_authentication_agent_new">
        <source-position filename="src/cinnamon-polkit-authentication-agent.h"
                         line="26"/>
        <return-value transfer-ownership="full">
          <type name="PolkitAuthenticationAgent"
                c:type="CinnamonPolkitAuthenticationAgent*"/>
        </return-value>
      </constructor>
      <method name="complete"
              c:identifier="cinnamon_polkit_authentication_agent_complete">
        <source-position filename="src/cinnamon-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="CinnamonPolkitAuthenticationAgent*"/>
          </instance-parameter>
          <parameter name="dismissed" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="register"
              c:identifier="cinnamon_polkit_authentication_agent_register"
              throws="1">
        <source-position filename="src/cinnamon-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="CinnamonPolkitAuthenticationAgent*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unregister"
              c:identifier="cinnamon_polkit_authentication_agent_unregister">
        <source-position filename="src/cinnamon-polkit-authentication-agent.h"
                         line="32"/>
        <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="CinnamonPolkitAuthenticationAgent*"/>
          </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="CinnamonPolkitAuthenticationAgentClass"
            glib:is-gtype-struct-for="PolkitAuthenticationAgent">
      <source-position filename="src/cinnamon-polkit-authentication-agent.h"
                       line="24"/>
      <field name="parent_class">
        <type name="PolkitAgent.ListenerClass"
              c:type="PolkitAgentListenerClass"/>
      </field>
    </record>
    <function-macro name="RECORDER"
                    c:identifier="CINNAMON_RECORDER"
                    introspectable="0">
      <source-position filename="src/cinnamon-recorder.h" line="23"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RECORDER_CLASS"
                    c:identifier="CINNAMON_RECORDER_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-recorder.h" line="24"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RECORDER_GET_CLASS"
                    c:identifier="CINNAMON_RECORDER_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-recorder.h" line="27"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Recorder"
           c:symbol-prefix="recorder"
           c:type="CinnamonRecorder"
           parent="GObject.Object"
           glib:type-name="CinnamonRecorder"
           glib:get-type="cinnamon_recorder_get_type"
           glib:type-struct="RecorderClass">
      <source-position filename="src/cinnamon-recorder.h" line="20"/>
      <constructor name="new" c:identifier="cinnamon_recorder_new">
        <doc xml:space="preserve"
             filename="src/cinnamon-recorder.c"
             line="1329">Create a new #CinnamonRecorder to record movies of a #ClutterStage</doc>
        <source-position filename="src/cinnamon-recorder.h" line="31"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-recorder.c"
               line="1335">The newly created #CinnamonRecorder object</doc>
          <type name="Recorder" c:type="CinnamonRecorder*"/>
        </return-value>
        <parameters>
          <parameter name="stage" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1331">The #ClutterStage</doc>
            <type name="Clutter.Stage" c:type="ClutterStage*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="close" c:identifier="cinnamon_recorder_close">
        <doc xml:space="preserve"
             filename="src/cinnamon-recorder.c"
             line="1521">Stops recording. It's possible to call cinnamon_recorder_record()
again to reopen a new recording stream, but unless change the
recording filename, this may result in the old recording being
overwritten.</doc>
        <source-position filename="src/cinnamon-recorder.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="recorder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1523">the #CinnamonRecorder</doc>
            <type name="Recorder" c:type="CinnamonRecorder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_recording"
              c:identifier="cinnamon_recorder_is_recording">
        <doc xml:space="preserve"
             filename="src/cinnamon-recorder.c"
             line="1564">Determine if recording is currently in progress. (The recorder
is not paused or closed.)</doc>
        <source-position filename="src/cinnamon-recorder.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-recorder.c"
               line="1570">%TRUE if the recorder is currently recording.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="recorder" transfer-ownership="none">
            <type name="Recorder" c:type="CinnamonRecorder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="record" c:identifier="cinnamon_recorder_record">
        <doc xml:space="preserve"
             filename="src/cinnamon-recorder.c"
             line="1463">Starts recording, Starting the recording may fail if the output file
cannot be opened, or if the output stream cannot be created
for other reasons. In that case a warning is printed to
stderr. There is no way currently to get details on how
recording failed to start.

An extra reference count is added to the recorder if recording
is successfully started; the recording object will not be freed
until recording is stopped even if the creator no longer holds
a reference. Recording is automatically stopped if the stage
is destroyed.</doc>
        <source-position filename="src/cinnamon-recorder.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-recorder.c"
               line="1480">%TRUE if recording was successfully started</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="recorder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1465">the #CinnamonRecorder</doc>
            <type name="Recorder" c:type="CinnamonRecorder*"/>
          </instance-parameter>
          <parameter name="filename_used"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1466">actual filename used for recording</doc>
            <type name="utf8" c:type="char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_area" c:identifier="cinnamon_recorder_set_area">
        <source-position filename="src/cinnamon-recorder.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="recorder" transfer-ownership="none">
            <type name="Recorder" c:type="CinnamonRecorder*"/>
          </instance-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="width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_draw_cursor"
              c:identifier="cinnamon_recorder_set_draw_cursor"
              glib:set-property="draw-cursor">
        <source-position filename="src/cinnamon-recorder.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="recorder" transfer-ownership="none">
            <type name="Recorder" c:type="CinnamonRecorder*"/>
          </instance-parameter>
          <parameter name="draw_cursor" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_file_template"
              c:identifier="cinnamon_recorder_set_file_template"
              glib:set-property="file-template">
        <doc xml:space="preserve"
             filename="src/cinnamon-recorder.c"
             line="1369">Sets the filename that will be used when creating output
files. This is only used if the configured pipeline has an
unconnected source pad (as the default pipeline does). If
the pipeline is complete, then the filename is unused. The
provided string is used as a template.It can contain
the following escapes:

%d: The current date as YYYYYMMDD
%%: A literal percent

The default value is 'cinnamon-%d%u-%c.ogg'.</doc>
        <source-position filename="src/cinnamon-recorder.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="recorder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1371">the #CinnamonRecorder</doc>
            <type name="Recorder" c:type="CinnamonRecorder*"/>
          </instance-parameter>
          <parameter name="file_template" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1372">the filename template to use for output files,
                or %NULL for the default value.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_framerate"
              c:identifier="cinnamon_recorder_set_framerate"
              glib:set-property="framerate">
        <doc xml:space="preserve"
             filename="src/cinnamon-recorder.c"
             line="1345">Sets the number of frames per second we try to record. Less frames
will be recorded when the screen doesn't need to be redrawn this
quickly. (This value will also be set as the framerate for the
GStreamer pipeline; whether that has an effect on the resulting
video will depend on the details of the pipeline and the codec. The
default encoding to webm format doesn't pay attention to the pipeline
framerate.)

The default value is 30.</doc>
        <source-position filename="src/cinnamon-recorder.h" line="33"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="recorder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1347">the #CinnamonRecorder</doc>
            <type name="Recorder" c:type="CinnamonRecorder*"/>
          </instance-parameter>
          <parameter name="framerate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1348">Framerate used for resulting video in frames-per-second.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pipeline"
              c:identifier="cinnamon_recorder_set_pipeline"
              glib:set-property="pipeline">
        <doc xml:space="preserve"
             filename="src/cinnamon-recorder.c"
             line="1406">Sets the GStreamer pipeline used to encode recordings.
It follows the syntax used for gst-launch. The pipeline
should have an unconnected sink pad where the recorded
video is recorded. It will normally have a unconnected
source pad; output from that pad will be written into the
output file. (See cinnamon_recorder_set_file_template().) However
the pipeline can also take care of its own output - this
might be used to send the output to an icecast server
via shout2send or similar.

The default value is 'vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux'</doc>
        <source-position filename="src/cinnamon-recorder.h" line="37"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="recorder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1408">the #CinnamonRecorder</doc>
            <type name="Recorder" c:type="CinnamonRecorder*"/>
          </instance-parameter>
          <parameter name="pipeline"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-recorder.c"
                 line="1409">the GStreamer pipeline used to encode recordings
           or %NULL for the default value.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="display"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <type name="Meta.Display"/>
      </property>
      <property name="draw-cursor"
                writable="1"
                transfer-ownership="none"
                setter="set_draw_cursor"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="file-template"
                writable="1"
                transfer-ownership="none"
                setter="set_file_template"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="framerate"
                writable="1"
                transfer-ownership="none"
                setter="set_framerate"
                default-value="30">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="pipeline"
                writable="1"
                transfer-ownership="none"
                setter="set_pipeline"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="stage" writable="1" transfer-ownership="none">
        <type name="Clutter.Stage"/>
      </property>
    </class>
    <record name="RecorderClass"
            c:type="CinnamonRecorderClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Recorder">
      <source-position filename="src/cinnamon-recorder.h" line="20"/>
    </record>
    <function-macro name="SCREENSHOT"
                    c:identifier="CINNAMON_SCREENSHOT"
                    introspectable="0">
      <source-position filename="src/cinnamon-screenshot.h" line="18"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SCREENSHOT_CLASS"
                    c:identifier="CINNAMON_SCREENSHOT_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-screenshot.h" line="19"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SCREENSHOT_GET_CLASS"
                    c:identifier="CINNAMON_SCREENSHOT_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-screenshot.h" line="22"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SLICER"
                    c:identifier="CINNAMON_SLICER"
                    introspectable="0">
      <source-position filename="src/cinnamon-slicer.h" line="8"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SLICER_CLASS"
                    c:identifier="CINNAMON_SLICER_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-slicer.h" line="9"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SLICER_GET_CLASS"
                    c:identifier="CINNAMON_SLICER_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-slicer.h" line="12"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STACK"
                    c:identifier="CINNAMON_STACK"
                    introspectable="0">
      <source-position filename="src/cinnamon-stack.h" line="9"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STACK_CLASS"
                    c:identifier="CINNAMON_STACK_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-stack.h" line="10"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="STACK_GET_CLASS"
                    c:identifier="CINNAMON_STACK_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-stack.h" line="13"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Screen"
           c:symbol-prefix="screen"
           c:type="CinnamonScreen"
           parent="GObject.Object"
           glib:type-name="CinnamonScreen"
           glib:get-type="cinnamon_screen_get_type"
           glib:type-struct="ScreenClass">
      <source-position filename="src/cinnamon-screen.h" line="32"/>
      <constructor name="new" c:identifier="cinnamon_screen_new">
        <source-position filename="src/cinnamon-screen.h" line="34"/>
        <return-value transfer-ownership="full">
          <type name="Screen" c:type="CinnamonScreen*"/>
        </return-value>
        <parameters>
          <parameter name="display" transfer-ownership="none">
            <type name="Meta.Display" c:type="MetaDisplay*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append_new_workspace"
              c:identifier="cinnamon_screen_append_new_workspace">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="481">Append a new workspace to the screen and (optionally) switch to that
screen.</doc>
        <source-position filename="src/cinnamon-screen.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="492">the newly appended workspace.</doc>
          <type name="Meta.Workspace" c:type="MetaWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="483">a #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="activate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="484">%TRUE if the workspace should be switched to after creation</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="485">if switching to a new workspace, timestamp to be used when
  focusing a window on the new workspace. (Doesn't hurt to pass a valid
  timestamp when available even if not switching workspaces.)</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_active_workspace"
              c:identifier="cinnamon_screen_get_active_workspace">
        <source-position filename="src/cinnamon-screen.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="748">The current workspace</doc>
          <type name="Meta.Workspace" c:type="MetaWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_active_workspace_index"
              c:identifier="cinnamon_screen_get_active_workspace_index">
        <source-position filename="src/cinnamon-screen.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_monitor"
              c:identifier="cinnamon_screen_get_current_monitor">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="568">Gets the index of the monitor that currently has the mouse pointer.</doc>
        <source-position filename="src/cinnamon-screen.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="574">a monitor index</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="570">a #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display"
              c:identifier="cinnamon_screen_get_display"
              glib:get-property="display">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="689">Retrieve the display associated with screen.</doc>
        <source-position filename="src/cinnamon-screen.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="694">Display</doc>
          <type name="Meta.Display" c:type="MetaDisplay*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="692">A #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_monitor_geometry"
              c:identifier="cinnamon_screen_get_monitor_geometry">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="616">Stores the location and size of the indicated monitor in @geometry.</doc>
        <source-position filename="src/cinnamon-screen.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="618">a #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="619">the monitor number</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="geometry"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="620">location to store the monitor geometry</doc>
            <type name="Meta.Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_monitor_in_fullscreen"
              c:identifier="cinnamon_screen_get_monitor_in_fullscreen">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="758">Determines whether there is a fullscreen window obscuring the specified
monitor. If there is a fullscreen window, the desktop environment will
typically hide any controls that might obscure the fullscreen window.

You can get notification when this changes by connecting to
CinnamonScreen::in-fullscreen-changed.</doc>
        <source-position filename="src/cinnamon-screen.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="770">%TRUE if there is a fullscreen window covering the specified monitor.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="760">a #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="761">the monitor number</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_monitor_index_for_rect"
              c:identifier="cinnamon_screen_get_monitor_index_for_rect">
        <source-position filename="src/cinnamon-screen.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Meta.Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mouse_window"
              c:identifier="cinnamon_screen_get_mouse_window">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="504">Gets the #MetaWindow pointed by the mouse</doc>
        <source-position filename="src/cinnamon-screen.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="511">the #MetaWindow pointed by the mouse
 %NULL when window not found</doc>
          <type name="Meta.Window" c:type="MetaWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="506">a cinnamon-screen.</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="not_this_one"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="507">window to be excluded</doc>
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_n_monitors"
              c:identifier="cinnamon_screen_get_n_monitors">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="584">Gets the number of monitors that are joined together to form @screen.</doc>
        <source-position filename="src/cinnamon-screen.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="590">the number of monitors</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="586">a #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_workspaces"
              c:identifier="cinnamon_screen_get_n_workspaces"
              glib:get-property="n-workspaces">
        <source-position filename="src/cinnamon-screen.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_primary_monitor"
              c:identifier="cinnamon_screen_get_primary_monitor">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="600">Gets the index of the primary monitor on this @screen.</doc>
        <source-position filename="src/cinnamon-screen.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="606">a monitor index</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="602">a #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="cinnamon_screen_get_size">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="704">Retrieve the size of the screen.</doc>
        <source-position filename="src/cinnamon-screen.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="706">A #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="707">The width of the screen</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="708">The height of the screen</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workspace_by_index"
              c:identifier="cinnamon_screen_get_workspace_by_index">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="450">Gets the workspace object for one of a screen's workspaces given the workspace
index. It's valid to call this function with an out-of-range index and it
will robustly return %NULL.</doc>
        <source-position filename="src/cinnamon-screen.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="459">the workspace object with specified index, or %NULL
  if the index is out of range.</doc>
          <type name="Meta.Workspace" c:type="MetaWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="452">a #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="453">index of one of the screen's workspaces</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workspaces"
              c:identifier="cinnamon_screen_get_workspaces"
              introspectable="0">
        <source-position filename="src/cinnamon-screen.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-screen.c"
               line="727">The workspaces for @screen</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Meta.Workspace"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="725">a #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xwindow_for_window"
              c:identifier="cinnamon_screen_get_xwindow_for_window">
        <source-position filename="src/cinnamon-screen.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="gulong" c:type="unsigned long"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="override_workspace_layout"
              c:identifier="cinnamon_screen_override_workspace_layout">
        <doc xml:space="preserve"
             filename="src/cinnamon-screen.c"
             line="636">Explicitly set the layout of workspaces. Once this has been called, the contents of the
_NET_DESKTOP_LAYOUT property on the root window are completely ignored.</doc>
        <source-position filename="src/cinnamon-screen.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="638">a #CinnamonScreen</doc>
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="starting_corner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="639">the corner at which the first workspace is found</doc>
            <type name="Meta.DisplayCorner" c:type="MetaDisplayCorner"/>
          </parameter>
          <parameter name="vertical_layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="640">if %TRUE the workspaces are laid out in columns rather than rows</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="n_rows" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="641">number of rows of workspaces, or -1 to determine the number of rows from
  @n_columns and the total number of workspaces</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="n_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screen.c"
                 line="643">number of columns of workspaces, or -1 to determine the number of columns from
  @n_rows and the total number of workspaces</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_workspace"
              c:identifier="cinnamon_screen_remove_workspace">
        <source-position filename="src/cinnamon-screen.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <type name="Meta.Workspace" c:type="MetaWorkspace*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_desktop" c:identifier="cinnamon_screen_show_desktop">
        <source-position filename="src/cinnamon-screen.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="toggle_desktop"
              c:identifier="cinnamon_screen_toggle_desktop">
        <source-position filename="src/cinnamon-screen.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="unshow_desktop"
              c:identifier="cinnamon_screen_unshow_desktop">
        <source-position filename="src/cinnamon-screen.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="CinnamonScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="display"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_display">
        <type name="Meta.Display"/>
      </property>
      <property name="n-workspaces"
                transfer-ownership="none"
                getter="get_n_workspaces"
                default-value="1">
        <type name="gint" c:type="gint"/>
      </property>
      <glib:signal name="in-fullscreen-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="monitors-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="restacked" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="window-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="Meta.Window"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-entered-monitor" 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="Meta.Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-left-monitor" 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="Meta.Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-monitor-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.Window"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-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="Meta.Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-skip-taskbar-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.Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-workspace-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.Window"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Meta.Workspace"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="workareas-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="workspace-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="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="workspace-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="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="workspace-switched" 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="Meta.MotionDirection"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ScreenClass"
            c:type="CinnamonScreenClass"
            glib:is-gtype-struct-for="Screen">
      <source-position filename="src/cinnamon-screen.h" line="32"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Screenshot"
           c:symbol-prefix="screenshot"
           c:type="CinnamonScreenshot"
           parent="GObject.Object"
           glib:type-name="CinnamonScreenshot"
           glib:get-type="cinnamon_screenshot_get_type"
           glib:type-struct="ScreenshotClass">
      <source-position filename="src/cinnamon-screenshot.h" line="15"/>
      <constructor name="new" c:identifier="cinnamon_screenshot_new">
        <source-position filename="src/cinnamon-screenshot.h" line="26"/>
        <return-value transfer-ownership="full">
          <type name="Screenshot" c:type="CinnamonScreenshot*"/>
        </return-value>
      </constructor>
      <method name="pick_color" c:identifier="cinnamon_screenshot_pick_color">
        <doc xml:space="preserve"
             filename="src/cinnamon-screenshot.c"
             line="554">Picks the pixel at @x, @y and returns its color as #ClutterColor in callback.</doc>
        <source-position filename="src/cinnamon-screenshot.h" line="56"/>
        <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/cinnamon-screenshot.c"
                 line="556">the #CinnamonScreenshot</doc>
            <type name="Screenshot" c:type="CinnamonScreenshot*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="557">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/cinnamon-screenshot.c"
                 line="558">The Y coordinate to pick</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="559">function to call when finished</doc>
            <type name="ScreenshotPickColorCallback"
                  c:type="CinnamonScreenshotPickColorCallback"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot" c:identifier="cinnamon_screenshot_screenshot">
        <doc xml:space="preserve"
             filename="src/cinnamon-screenshot.c"
             line="424">Takes a screenshot of the whole screen
in @filename as png image.</doc>
        <source-position filename="src/cinnamon-screenshot.h" line="51"/>
        <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/cinnamon-screenshot.c"
                 line="426">the #CinnamonScreenshot</doc>
            <type name="Screenshot" c:type="CinnamonScreenshot*"/>
          </instance-parameter>
          <parameter name="include_cursor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="427">Whether to include the cursor or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="428">The filename for the screenshot</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="429">function to call returning success or failure
of the async grabbing</doc>
            <type name="ScreenshotCallback"
                  c:type="CinnamonScreenshotCallback"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot_area"
              c:identifier="cinnamon_screenshot_screenshot_area">
        <doc xml:space="preserve"
             filename="src/cinnamon-screenshot.c"
             line="459">Takes a screenshot of the passed in area and saves it
in @filename as png image.</doc>
        <source-position filename="src/cinnamon-screenshot.h" line="36"/>
        <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/cinnamon-screenshot.c"
                 line="461">the #CinnamonScreenshot</doc>
            <type name="Screenshot" c:type="CinnamonScreenshot*"/>
          </instance-parameter>
          <parameter name="include_cursor" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="462">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/cinnamon-screenshot.c"
                 line="463">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/cinnamon-screenshot.c"
                 line="464">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/cinnamon-screenshot.c"
                 line="465">The height of the area</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="466">The filename for the screenshot</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="467">function to call returning success or failure
of the async grabbing</doc>
            <type name="ScreenshotCallback"
                  c:type="CinnamonScreenshotCallback"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot_window"
              c:identifier="cinnamon_screenshot_screenshot_window">
        <doc xml:space="preserve"
             filename="src/cinnamon-screenshot.c"
             line="506">Takes a screenshot of the focused window (optionally omitting the frame)
in @filename as png image.</doc>
        <source-position filename="src/cinnamon-screenshot.h" line="45"/>
        <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/cinnamon-screenshot.c"
                 line="508">the #CinnamonScreenshot</doc>
            <type name="Screenshot" c:type="CinnamonScreenshot*"/>
          </instance-parameter>
          <parameter name="include_frame" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="509">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/cinnamon-screenshot.c"
                 line="510">Whether to include the cursor or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="511">The filename for the screenshot</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="src/cinnamon-screenshot.c"
                 line="512">function to call returning success or failure
of the async grabbing</doc>
            <type name="ScreenshotCallback"
                  c:type="CinnamonScreenshotCallback"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <callback name="ScreenshotCallback" c:type="CinnamonScreenshotCallback">
      <source-position filename="src/cinnamon-screenshot.h" line="28"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="screenshot" transfer-ownership="none">
          <type name="Screenshot" c:type="CinnamonScreenshot*"/>
        </parameter>
        <parameter name="success" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="screenshot_area" transfer-ownership="none">
          <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="ScreenshotClass"
            c:type="CinnamonScreenshotClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Screenshot">
      <source-position filename="src/cinnamon-screenshot.h" line="15"/>
    </record>
    <callback name="ScreenshotPickColorCallback"
              c:type="CinnamonScreenshotPickColorCallback">
      <source-position filename="src/cinnamon-screenshot.h" line="32"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="screenshot" transfer-ownership="none">
          <type name="Screenshot" c:type="CinnamonScreenshot*"/>
        </parameter>
        <parameter name="success" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="color" transfer-ownership="none">
          <type name="Clutter.Color" c:type="ClutterColor*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="SecureTextBuffer"
           c:symbol-prefix="secure_text_buffer"
           c:type="CinnamonSecureTextBuffer"
           parent="Clutter.TextBuffer"
           glib:type-name="CinnamonSecureTextBuffer"
           glib:get-type="cinnamon_secure_text_buffer_get_type"
           glib:type-struct="SecureTextBufferClass">
      <source-position filename="src/cinnamon-secure-text-buffer.h" line="33"/>
      <constructor name="new" c:identifier="cinnamon_secure_text_buffer_new">
        <source-position filename="src/cinnamon-secure-text-buffer.h"
                         line="36"/>
        <return-value transfer-ownership="full">
          <type name="Clutter.TextBuffer" c:type="ClutterTextBuffer*"/>
        </return-value>
      </constructor>
    </class>
    <record name="SecureTextBufferClass"
            c:type="CinnamonSecureTextBufferClass"
            glib:is-gtype-struct-for="SecureTextBuffer">
      <source-position filename="src/cinnamon-secure-text-buffer.h" line="33"/>
      <field name="parent_class">
        <type name="Clutter.TextBufferClass" c:type="ClutterTextBufferClass"/>
      </field>
    </record>
    <class name="Slicer"
           c:symbol-prefix="slicer"
           c:type="CinnamonSlicer"
           parent="St.Bin"
           glib:type-name="CinnamonSlicer"
           glib:get-type="cinnamon_slicer_get_type"
           glib:type-struct="SlicerClass">
      <source-position filename="src/cinnamon-slicer.h" line="29"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <field name="parent">
        <type name="St.Bin" c:type="StBin"/>
      </field>
      <field name="priv">
        <type name="SlicerPrivate" c:type="CinnamonSlicerPrivate*"/>
      </field>
    </class>
    <record name="SlicerClass"
            c:type="CinnamonSlicerClass"
            glib:is-gtype-struct-for="Slicer">
      <source-position filename="src/cinnamon-slicer.h" line="29"/>
      <field name="parent_class">
        <type name="St.BinClass" c:type="StBinClass"/>
      </field>
    </record>
    <record name="SlicerPrivate"
            c:type="CinnamonSlicerPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-slicer.h" line="17"/>
    </record>
    <enumeration name="SnippetHook"
                 glib:type-name="CinnamonSnippetHook"
                 glib:get-type="cinnamon_snippet_hook_get_type"
                 c:type="CinnamonSnippetHook">
      <doc xml:space="preserve"
           filename="src/cinnamon-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="CINNAMON_SNIPPET_HOOK_VERTEX"
              glib:nick="vertex"
              glib:name="CINNAMON_SNIPPET_HOOK_VERTEX">
      </member>
      <member name="vertex_transform"
              value="1"
              c:identifier="CINNAMON_SNIPPET_HOOK_VERTEX_TRANSFORM"
              glib:nick="vertex-transform"
              glib:name="CINNAMON_SNIPPET_HOOK_VERTEX_TRANSFORM">
      </member>
      <member name="fragment"
              value="2048"
              c:identifier="CINNAMON_SNIPPET_HOOK_FRAGMENT"
              glib:nick="fragment"
              glib:name="CINNAMON_SNIPPET_HOOK_FRAGMENT">
      </member>
      <member name="texture_coord_transform"
              value="4096"
              c:identifier="CINNAMON_SNIPPET_HOOK_TEXTURE_COORD_TRANSFORM"
              glib:nick="texture-coord-transform"
              glib:name="CINNAMON_SNIPPET_HOOK_TEXTURE_COORD_TRANSFORM">
      </member>
      <member name="layer_fragment"
              value="6144"
              c:identifier="CINNAMON_SNIPPET_HOOK_LAYER_FRAGMENT"
              glib:nick="layer-fragment"
              glib:name="CINNAMON_SNIPPET_HOOK_LAYER_FRAGMENT">
      </member>
      <member name="texture_lookup"
              value="6145"
              c:identifier="CINNAMON_SNIPPET_HOOK_TEXTURE_LOOKUP"
              glib:nick="texture-lookup"
              glib:name="CINNAMON_SNIPPET_HOOK_TEXTURE_LOOKUP">
      </member>
    </enumeration>
    <class name="Stack"
           c:symbol-prefix="stack"
           c:type="CinnamonStack"
           parent="St.Widget"
           glib:type-name="CinnamonStack"
           glib:get-type="cinnamon_stack_get_type"
           glib:type-struct="StackClass">
      <source-position filename="src/cinnamon-stack.h" line="30"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <field name="parent">
        <type name="St.Widget" c:type="StWidget"/>
      </field>
      <field name="priv">
        <type name="StackPrivate" c:type="CinnamonStackPrivate*"/>
      </field>
    </class>
    <record name="StackClass"
            c:type="CinnamonStackClass"
            glib:is-gtype-struct-for="Stack">
      <source-position filename="src/cinnamon-stack.h" line="30"/>
      <field name="parent_class">
        <type name="St.WidgetClass" c:type="StWidgetClass"/>
      </field>
    </record>
    <record name="StackPrivate"
            c:type="CinnamonStackPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-stack.h" line="18"/>
    </record>
    <enumeration name="StageInputMode"
                 glib:type-name="CinnamonStageInputMode"
                 glib:get-type="cinnamon_stage_input_mode_get_type"
                 c:type="CinnamonStageInputMode">
      <member name="nonreactive"
              value="0"
              c:identifier="CINNAMON_STAGE_INPUT_MODE_NONREACTIVE"
              glib:nick="nonreactive"
              glib:name="CINNAMON_STAGE_INPUT_MODE_NONREACTIVE">
      </member>
      <member name="normal"
              value="1"
              c:identifier="CINNAMON_STAGE_INPUT_MODE_NORMAL"
              glib:nick="normal"
              glib:name="CINNAMON_STAGE_INPUT_MODE_NORMAL">
      </member>
      <member name="focused"
              value="2"
              c:identifier="CINNAMON_STAGE_INPUT_MODE_FOCUSED"
              glib:nick="focused"
              glib:name="CINNAMON_STAGE_INPUT_MODE_FOCUSED">
      </member>
      <member name="fullscreen"
              value="3"
              c:identifier="CINNAMON_STAGE_INPUT_MODE_FULLSCREEN"
              glib:nick="fullscreen"
              glib:name="CINNAMON_STAGE_INPUT_MODE_FULLSCREEN">
      </member>
    </enumeration>
    <function-macro name="TRAY_ICON"
                    c:identifier="CINNAMON_TRAY_ICON"
                    introspectable="0">
      <source-position filename="src/cinnamon-tray-icon.h" line="8"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TRAY_ICON_CLASS"
                    c:identifier="CINNAMON_TRAY_ICON_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-tray-icon.h" line="9"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TRAY_ICON_GET_CLASS"
                    c:identifier="CINNAMON_TRAY_ICON_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-tray-icon.h" line="12"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="ToucheggClient"
           c:symbol-prefix="touchegg_client"
           c:type="CinnamonToucheggClient"
           parent="GObject.Object"
           glib:type-name="CinnamonToucheggClient"
           glib:get-type="cinnamon_touchegg_client_get_type"
           glib:type-struct="ToucheggClientClass">
      <source-position filename="src/cinnamon-touchegg-client.h" line="9"/>
      <constructor name="new" c:identifier="cinnamon_touchegg_client_new">
        <source-position filename="src/cinnamon-touchegg-client.h" line="11"/>
        <return-value transfer-ownership="full">
          <type name="ToucheggClient" c:type="CinnamonToucheggClient*"/>
        </return-value>
      </constructor>
      <glib:signal name="gesture-begin" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p4" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="gesture-end" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p4" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="gesture-update" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p4" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ToucheggClientClass"
            c:type="CinnamonToucheggClientClass"
            glib:is-gtype-struct-for="ToucheggClient">
      <source-position filename="src/cinnamon-touchegg-client.h" line="9"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="TrayIcon"
           c:symbol-prefix="tray_icon"
           c:type="CinnamonTrayIcon"
           parent="GtkEmbed"
           glib:type-name="CinnamonTrayIcon"
           glib:get-type="cinnamon_tray_icon_get_type"
           glib:type-struct="TrayIconClass">
      <source-position filename="src/cinnamon-tray-icon.h" line="28"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="cinnamon_tray_icon_new">
        <source-position filename="src/cinnamon-tray-icon.h" line="32"/>
        <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="CinnamonEmbeddedWindow*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="handle_event"
              c:identifier="cinnamon_tray_icon_handle_event">
        <doc xml:space="preserve"
             filename="src/cinnamon-tray-icon.c"
             line="287">Converts a ClutterEvent into an XEvent.</doc>
        <source-position filename="src/cinnamon-tray-icon.h" line="34"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-tray-icon.c"
               line="295">Whether to continue the event chain.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-tray-icon.c"
                 line="289">a #CinnamonTrayIcon</doc>
            <type name="TrayIcon" c:type="CinnamonTrayIcon*"/>
          </instance-parameter>
          <parameter name="event_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-tray-icon.c"
                 line="290">a #ClutterEventType</doc>
            <type name="Clutter.EventType" c:type="ClutterEventType"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-tray-icon.c"
                 line="291">the #ClutterEvent</doc>
            <type name="Clutter.Event" c:type="ClutterEvent*"/>
          </parameter>
        </parameters>
      </method>
      <property name="pid" transfer-ownership="none" default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="title" transfer-ownership="none" default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="wm-class" transfer-ownership="none" default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GtkEmbed" c:type="CinnamonGtkEmbed"/>
      </field>
      <field name="priv">
        <type name="TrayIconPrivate" c:type="CinnamonTrayIconPrivate*"/>
      </field>
    </class>
    <record name="TrayIconClass"
            c:type="CinnamonTrayIconClass"
            glib:is-gtype-struct-for="TrayIcon">
      <source-position filename="src/cinnamon-tray-icon.h" line="28"/>
      <field name="parent_class">
        <type name="GtkEmbedClass" c:type="CinnamonGtkEmbedClass"/>
      </field>
    </record>
    <record name="TrayIconPrivate"
            c:type="CinnamonTrayIconPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-tray-icon.h" line="16"/>
    </record>
    <class name="TrayManager"
           c:symbol-prefix="tray_manager"
           c:type="CinnamonTrayManager"
           parent="GObject.Object"
           glib:type-name="CinnamonTrayManager"
           glib:get-type="cinnamon_tray_manager_get_type"
           glib:type-struct="TrayManagerClass">
      <source-position filename="src/cinnamon-tray-manager.h" line="12"/>
      <constructor name="new" c:identifier="cinnamon_tray_manager_new">
        <source-position filename="src/cinnamon-tray-manager.h" line="15"/>
        <return-value transfer-ownership="full">
          <type name="TrayManager" c:type="CinnamonTrayManager*"/>
        </return-value>
      </constructor>
      <method name="manage_screen"
              c:identifier="cinnamon_tray_manager_manage_screen">
        <source-position filename="src/cinnamon-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="CinnamonTrayManager*"/>
          </instance-parameter>
          <parameter name="theme_widget" transfer-ownership="none">
            <type name="St.Widget" c:type="StWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="redisplay" c:identifier="cinnamon_tray_manager_redisplay">
        <source-position filename="src/cinnamon-tray-manager.h" line="19"/>
        <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="CinnamonTrayManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_orientation"
              c:identifier="cinnamon_tray_manager_set_orientation">
        <source-position filename="src/cinnamon-tray-manager.h" line="20"/>
        <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="CinnamonTrayManager*"/>
          </instance-parameter>
          <parameter name="orientation" transfer-ownership="none">
            <type name="Clutter.Orientation" c:type="ClutterOrientation"/>
          </parameter>
        </parameters>
      </method>
      <method name="unmanage_screen"
              c:identifier="cinnamon_tray_manager_unmanage_screen">
        <source-position filename="src/cinnamon-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="CinnamonTrayManager*"/>
          </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="CinnamonTrayManagerClass"
            glib:is-gtype-struct-for="TrayManager">
      <source-position filename="src/cinnamon-tray-manager.h" line="12"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function-macro name="WINDOW_TRACKER"
                    c:identifier="CINNAMON_WINDOW_TRACKER"
                    introspectable="0">
      <source-position filename="src/cinnamon-window-tracker.h" line="19"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW_TRACKER_CLASS"
                    c:identifier="CINNAMON_WINDOW_TRACKER_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-window-tracker.h" line="20"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW_TRACKER_GET_CLASS"
                    c:identifier="CINNAMON_WINDOW_TRACKER_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/cinnamon-window-tracker.h" line="23"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="WM"
           c:symbol-prefix="wm"
           c:type="CinnamonWM"
           parent="GObject.Object"
           glib:type-name="CinnamonWM"
           glib:get-type="cinnamon_wm_get_type"
           glib:type-struct="WMClass">
      <source-position filename="src/cinnamon-wm.h" line="12"/>
      <constructor name="new" c:identifier="cinnamon_wm_new">
        <doc xml:space="preserve"
             filename="src/cinnamon-wm.c"
             line="473">Creates a new window management interface by hooking into @plugin.</doc>
        <source-position filename="src/cinnamon-wm.h" line="14"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-wm.c"
               line="479">the new window-management interface</doc>
          <type name="WM" c:type="CinnamonWM*"/>
        </return-value>
        <parameters>
          <parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-wm.c"
                 line="475">the #MetaPlugin</doc>
            <type name="Meta.Plugin" c:type="MetaPlugin*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="complete_display_change"
              c:identifier="cinnamon_wm_complete_display_change">
        <doc xml:space="preserve"
             filename="src/cinnamon-wm.c"
             line="309">The plugin must call this after the user responded to the confirmation dialog.</doc>
        <source-position filename="src/cinnamon-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/cinnamon-wm.c"
                 line="311">the CinnamonWM</doc>
            <type name="WM" c:type="CinnamonWM*"/>
          </instance-parameter>
          <parameter name="ok" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-wm.c"
                 line="312">if the new configuration was OK</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="completed_destroy"
              c:identifier="cinnamon_wm_completed_destroy">
        <doc xml:space="preserve"
             filename="src/cinnamon-wm.c"
             line="294">The plugin must call this when it has completed a window destroy effect.</doc>
        <source-position filename="src/cinnamon-wm.h" line="24"/>
        <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/cinnamon-wm.c"
                 line="296">the CinnamonWM</doc>
            <type name="WM" c:type="CinnamonWM*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-wm.c"
                 line="297">the MetaWindowActor actor</doc>
            <type name="Meta.WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="completed_map" c:identifier="cinnamon_wm_completed_map">
        <doc xml:space="preserve"
             filename="src/cinnamon-wm.c"
             line="279">The plugin must call this when it has completed a window map effect.</doc>
        <source-position filename="src/cinnamon-wm.h" line="22"/>
        <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/cinnamon-wm.c"
                 line="281">the CinnamonWM</doc>
            <type name="WM" c:type="CinnamonWM*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-wm.c"
                 line="282">the MetaWindowActor actor</doc>
            <type name="Meta.WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="completed_minimize"
              c:identifier="cinnamon_wm_completed_minimize">
        <doc xml:space="preserve"
             filename="src/cinnamon-wm.c"
             line="241">The plugin must call this when it has completed a window minimize effect.</doc>
        <source-position filename="src/cinnamon-wm.h" line="16"/>
        <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/cinnamon-wm.c"
                 line="243">the CinnamonWM</doc>
            <type name="WM" c:type="CinnamonWM*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-wm.c"
                 line="244">the MetaWindowActor actor</doc>
            <type name="Meta.WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="completed_size_change"
              c:identifier="cinnamon_wm_completed_size_change">
        <source-position filename="src/cinnamon-wm.h" line="20"/>
        <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="CinnamonWM*"/>
          </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="cinnamon_wm_completed_switch_workspace">
        <doc xml:space="preserve"
             filename="src/cinnamon-wm.c"
             line="226">The plugin must call this when it has finished switching the
workspace.</doc>
        <source-position filename="src/cinnamon-wm.h" line="26"/>
        <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/cinnamon-wm.c"
                 line="228">the CinnamonWM</doc>
            <type name="WM" c:type="CinnamonWM*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="completed_unminimize"
              c:identifier="cinnamon_wm_completed_unminimize">
        <doc xml:space="preserve"
             filename="src/cinnamon-wm.c"
             line="256">The plugin must call this when it has completed a window unminimize effect.</doc>
        <source-position filename="src/cinnamon-wm.h" line="18"/>
        <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/cinnamon-wm.c"
                 line="258">the CinnamonWM</doc>
            <type name="WM" c:type="CinnamonWM*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-wm.c"
                 line="259">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/cinnamon-wm.c"
             line="181">Creates a close dialog for the given window.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-wm.c"
               line="188">The close dialog instance.</doc>
          <type name="Meta.CloseDialog"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-wm.c"
                 line="184">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/cinnamon-wm.c"
             line="197">Creates an inhibit shortcuts dialog for the given window.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-wm.c"
               line="204">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/cinnamon-wm.c"
                 line="200">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="switch-workspace-complete" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </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="CinnamonWMClass"
            glib:is-gtype-struct-for="WM">
      <source-position filename="src/cinnamon-wm.h" line="12"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="WindowTracker"
           c:symbol-prefix="window_tracker"
           c:type="CinnamonWindowTracker"
           parent="GObject.Object"
           glib:type-name="CinnamonWindowTracker"
           glib:get-type="cinnamon_window_tracker_get_type"
           glib:type-struct="WindowTrackerClass">
      <source-position filename="src/cinnamon-window-tracker.h" line="28"/>
      <function name="get_default"
                c:identifier="cinnamon_window_tracker_get_default">
        <source-position filename="src/cinnamon-window-tracker.h" line="32"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-window-tracker.c"
               line="1003">The global #CinnamonWindowTracker instance</doc>
          <type name="WindowTracker" c:type="CinnamonWindowTracker*"/>
        </return-value>
      </function>
      <method name="get_app_from_pid"
              c:identifier="cinnamon_window_tracker_get_app_from_pid">
        <doc xml:space="preserve"
             filename="src/cinnamon-window-tracker.c"
             line="857">@self; A #CinnamonAppSystem
Look up the application corresponding to a process.</doc>
        <source-position filename="src/cinnamon-window-tracker.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-window-tracker.c"
               line="864">A #CinnamonApp, or %NULL if none</doc>
          <type name="App" c:type="CinnamonApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <type name="WindowTracker" c:type="CinnamonWindowTracker*"/>
          </instance-parameter>
          <parameter name="pid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-window-tracker.c"
                 line="860">A Unix process identifier</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_startup_sequences"
              c:identifier="cinnamon_window_tracker_get_startup_sequences">
        <source-position filename="src/cinnamon-window-tracker.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-window-tracker.c"
               line="964">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="CinnamonWindowTracker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_app"
              c:identifier="cinnamon_window_tracker_get_window_app">
        <source-position filename="src/cinnamon-window-tracker.h" line="34"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-window-tracker.c"
               line="836">Application associated with window</doc>
          <type name="App" c:type="CinnamonApp*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-window-tracker.c"
                 line="833">An app monitor instance</doc>
            <type name="WindowTracker" c:type="CinnamonWindowTracker*"/>
          </instance-parameter>
          <parameter name="metawin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-window-tracker.c"
                 line="834">A #MetaWindow</doc>
            <type name="Meta.Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_window_interesting"
              c:identifier="cinnamon_window_tracker_is_window_interesting">
        <doc xml:space="preserve"
             filename="src/cinnamon-window-tracker.c"
             line="125">The CinnamonWindowTracker associates certain kinds of windows with
applications; however, others we don't want to
appear in places where we want to give a list of windows
for an application, such as the alt-tab dialog.

An example of a window we don't want to show is the root
desktop window.  We skip all override-redirect types, and also
exclude other window types like tooltip explicitly, though generally
most of these should be override-redirect.</doc>
        <source-position filename="src/cinnamon-window-tracker.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-window-tracker.c"
               line="140">%TRUE if a window is "interesting"</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-window-tracker.c"
                 line="127">the CinnamonWindowTracker</doc>
            <type name="WindowTracker" c:type="CinnamonWindowTracker*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/cinnamon-window-tracker.c"
                 line="128">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="window-app-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.Window"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="WindowTrackerClass"
            c:type="CinnamonWindowTrackerClass"
            glib:is-gtype-struct-for="WindowTracker">
      <source-position filename="src/cinnamon-window-tracker.h" line="28"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="WindowTrackerPrivate"
            c:type="CinnamonWindowTrackerPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/cinnamon-window-tracker.h" line="16"/>
    </record>
    <function name="breakpoint" c:identifier="cinnamon_breakpoint">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="881">Using G_BREAKPOINT(), interrupt the current process.  This is useful
in conjunction with a debugger such as gdb.</doc>
      <source-position filename="src/cinnamon-util.h" line="62"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="calendar_server_interface_info"
              c:identifier="cinnamon_calendar_server_interface_info"
              moved-to="CalendarServer.interface_info">
      <doc xml:space="preserve"
           filename="src/cinnamon-calendar.c"
           line="546">Gets a machine-readable description of the &lt;link linkend="gdbus-interface-org-cinnamon-CalendarServer.top_of_page"&gt;org.cinnamon.CalendarServer&lt;/link&gt; D-Bus interface.</doc>
      <source-position filename="src/cinnamon-calendar.h" line="72"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="551">A #GDBusInterfaceInfo. Do not free.</doc>
        <type name="Gio.DBusInterfaceInfo" c:type="GDBusInterfaceInfo*"/>
      </return-value>
    </function>
    <function name="calendar_server_override_properties"
              c:identifier="cinnamon_calendar_server_override_properties"
              moved-to="CalendarServer.override_properties">
      <doc xml:space="preserve"
           filename="src/cinnamon-calendar.c"
           line="559">Overrides all #GObject properties in the #CinnamonCalendarServer interface for a concrete class.
The properties are overridden in the order they are defined.</doc>
      <source-position filename="src/cinnamon-calendar.h" line="73"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/cinnamon-calendar.c"
             line="567">The last property id.</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="klass" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="561">The class structure for a #GObject derived class.</doc>
          <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
        </parameter>
        <parameter name="property_id_begin" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-calendar.c"
               line="562">The property id to assign to the first overridden property.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="cinnamon-app">
      <doc xml:space="preserve"
           filename="src/cinnamon-app.c"
           line="43">This object wraps a #GMenuTreeEntry, providing methods and signals
primarily useful for running applications.</doc>
    </docsection>
    <docsection name="cinnamon-doc-system">
      <doc xml:space="preserve"
           filename="src/cinnamon-doc-system.c"
           line="10">Wraps #GtkRecentManager, caching recently used document information, and adds
APIs for asynchronous queries.</doc>
    </docsection>
    <docsection name="cinnamon-generic-container">
      <doc xml:space="preserve"
           filename="src/cinnamon-generic-container.c"
           line="3">#CinnamonGenericContainer is mainly a workaround for the current
lack of GObject subclassing + vfunc overrides in gjs.  We
implement the container interface, but proxy the virtual functions
into signals, which gjs can catch.

#CinnamonGenericContainer is an #StWidget, and automatically takes its
borders and padding into account during size request and allocation.</doc>
    </docsection>
    <docsection name="cinnamon-glsl-effect">
      <doc xml:space="preserve"
           filename="src/cinnamon-glsl-effect.c"
           line="3">A #CinnamonGLSLEffect is #ClutterOffscreenEffect that allows
running custom GLSL to the vertex fragment stages of the
graphic pipeline.</doc>
    </docsection>
    <docsection name="cinnamon-perf-log">
      <doc xml:space="preserve"
           filename="src/cinnamon-perf-log.c"
           line="15">CinnamonPerfLog 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="cinnamon-screenshot">
      <doc xml:space="preserve"
           filename="src/cinnamon-screenshot.h"
           line="5">The #CinnamonScreenshot object is used to take screenshots of screen
areas or windows and write them out as png files.</doc>
    </docsection>
    <docsection name="cinnamon-slicer">
      <doc xml:space="preserve"
           filename="src/cinnamon-slicer.c"
           line="3">A #StBin that has 0 minimum size, and will clip its child
in the middle.</doc>
    </docsection>
    <docsection name="cinnamon-stack">
      <doc xml:space="preserve"
           filename="src/cinnamon-stack.c"
           line="3">A #CinnamonStack 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="cinnamon-window-tracker">
      <doc xml:space="preserve"
           filename="src/cinnamon-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="get_event_state" c:identifier="cinnamon_get_event_state">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="613">Gets the current state of the event (the set of modifier keys that
are pressed down). This is a wrapper around
clutter_event_get_state() that strips out any un-declared modifier
flags, to make gjs happy; see
https://bugzilla.gnome.org/show_bug.cgi?id=597292.</doc>
      <source-position filename="src/cinnamon-util.h" line="27"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/cinnamon-util.c"
             line="623">the state from the event</doc>
        <type name="Clutter.ModifierType" c:type="ClutterModifierType"/>
      </return-value>
      <parameters>
        <parameter name="event" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="615">a #ClutterEvent</doc>
          <type name="Clutter.Event" c:type="ClutterEvent*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_file_contents_utf8"
              c:identifier="cinnamon_get_file_contents_utf8">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="741">Asynchronously 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/cinnamon-util.h" line="47"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="743">UTF-8 encoded filename path</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="async"
                   closure="2">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="744">The callback to call when finished</doc>
          <type name="FileContentsCallback"
                c:type="CinnamonFileContentsCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="745">data to pass with the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_file_contents_utf8_sync"
              c:identifier="cinnamon_get_file_contents_utf8_sync"
              deprecated="1"
              deprecated-version="3.1"
              throws="1">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="655">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/cinnamon-util.h" line="33"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/cinnamon-util.c"
             line="664">File contents</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="657">UTF-8 encoded filename path</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="parse_search_provider"
              c:identifier="cinnamon_parse_search_provider"
              throws="1">
      <source-position filename="src/cinnamon-util.h" line="64"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/cinnamon-util.c"
             line="902">%TRUE on success</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="895">description of provider</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="name"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="896">location to store a display name</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
        <parameter name="url"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="897">location to store template of url</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
        <parameter name="langs"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="898">list of supported languages</doc>
          <type name="GLib.List" c:type="GList**">
            <type name="utf8"/>
          </type>
        </parameter>
        <parameter name="icon_data_uri"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="899">location to store uri</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="shader_effect_set_double_uniform"
              c:identifier="cinnamon_shader_effect_set_double_uniform">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="1021">Set a double uniform on a ClutterShaderEffect.

The problem here is that JavaScript doesn't have more than
one number type, and gjs tries to automatically guess what
type we want to set a GValue to. If the number is "1.0" or
something, it will use an integer, which will cause errors
in GLSL.</doc>
      <source-position filename="src/cinnamon-util.h" line="71"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="effect" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="1023">The #ClutterShaderEffect</doc>
          <type name="Clutter.ShaderEffect" c:type="ClutterShaderEffect*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="1024">The name of the uniform</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="1025">The value to set it to.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_composite_capture_images"
              c:identifier="cinnamon_util_composite_capture_images">
      <source-position filename="src/cinnamon-util.h" line="54"/>
      <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_format_date" c:identifier="cinnamon_util_format_date">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="511">Formats a date for the current locale. This should be
used instead of the Spidermonkey Date.toLocaleFormat()
extension because Date.toLocaleFormat() is buggy for
Unicode format strings:
https://bugzilla.mozilla.org/show_bug.cgi?id=508783</doc>
      <source-position filename="src/cinnamon-util.h" line="23"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/cinnamon-util.c"
             line="524">the formatted date. If the date is
 outside of the range of a GDateTime (which contains
 any plausible dates we actually care about), will
 return an empty string.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="513">a strftime-style string format, as parsed by
  g_date_time_format()</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="time_ms" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="515">milliseconds since 1970-01-01 00:00:00 UTC; the
  value returned by Date.getTime()</doc>
          <type name="gint64" c:type="gint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_get_content_for_window_actor"
              c:identifier="cinnamon_util_get_content_for_window_actor">
      <source-position filename="src/cinnamon-util.h" line="51"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="src/cinnamon-util.c"
             line="804">a new #ClutterContent</doc>
        <type name="Clutter.Content" c:type="ClutterContent*"/>
      </return-value>
      <parameters>
        <parameter name="window_actor" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="801">a #MetaWindowActor</doc>
          <type name="Meta.WindowActor" c:type="MetaWindowActor*"/>
        </parameter>
        <parameter name="window_rect" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="802">a #MetaRectangle</doc>
          <type name="Meta.Rectangle" c:type="MetaRectangle*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_get_icon_for_uri"
              c:identifier="cinnamon_util_get_icon_for_uri">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="321">Look up the icon that should be associated with a given URI.  Handles
various special GNOME-internal cases like x-nautilus-search, etc.</doc>
      <source-position filename="src/cinnamon-util.h" line="13"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/cinnamon-util.c"
             line="328">A new #GIcon</doc>
        <type name="Gio.Icon" c:type="GIcon*"/>
      </return-value>
      <parameters>
        <parameter name="text_uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="323">A URI</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_get_label_for_uri"
              c:identifier="cinnamon_util_get_label_for_uri">
      <source-position filename="src/cinnamon-util.h" line="12"/>
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="text_uri" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_get_transformed_allocation"
              c:identifier="cinnamon_util_get_transformed_allocation">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="456">This function is similar to a combination of clutter_actor_get_transformed_position(),
and clutter_actor_get_transformed_size(), but unlike
clutter_actor_get_transformed_size(), it always returns a transform
of the current allocation, while clutter_actor_get_transformed_size() returns
bad values (the transform of the requested size) if a relayout has been
queued.

This function is more convenient to use than
clutter_actor_get_abs_allocation_vertices() if no transformation is in effect
and also works around limitations in the GJS binding of arrays.</doc>
      <source-position filename="src/cinnamon-util.h" line="18"/>
      <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/cinnamon-util.c"
               line="458">a #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </parameter>
        <parameter name="box"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="459">location to store returned box in stage coordinates</doc>
          <type name="Clutter.ActorBox" c:type="ClutterActorBox*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_get_week_start"
              c:identifier="cinnamon_util_get_week_start">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="546">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/cinnamon-util.h" line="21"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/cinnamon-util.c"
             line="553">A number representing the first week day for the current
         locale</doc>
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="util_set_hidden_from_pick"
              c:identifier="cinnamon_util_set_hidden_from_pick">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="423">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/cinnamon-util.h" line="15"/>
      <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/cinnamon-util.c"
               line="425">A #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </parameter>
        <parameter name="hidden" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="426">Whether @actor should be hidden from pick</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_wifexited" c:identifier="cinnamon_util_wifexited">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="1049">Implements libc standard WIFEXITED, that cannot be used JS
code.</doc>
      <source-position filename="src/cinnamon-util.h" line="75"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/cinnamon-util.c"
             line="1056">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/cinnamon-util.c"
               line="1051">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/cinnamon-util.c"
               line="1052">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="cinnamon_write_string_to_stream"
              throws="1">
      <doc xml:space="preserve"
           filename="src/cinnamon-util.c"
           line="635">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/cinnamon-util.h" line="29"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/cinnamon-util.c"
             line="644">%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/cinnamon-util.c"
               line="637">a #GOutputStream</doc>
          <type name="Gio.OutputStream" c:type="GOutputStream*"/>
        </parameter>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/cinnamon-util.c"
               line="638">a UTF-8 string to write to @stream</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
