<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node name="/">
  <interface name="org.mate.MateConf.Defaults">
    <!--
      includes: an array of MateConf paths to copy from the
                callers MateConf database to the system database
      excludes: an array of MateConf paths to omit

      Copies values from the callers MateConf database to the system-wide
      database. The subtree below each included path is copied recursively,
      skipping the excluded subtrees.
      To decide which PolicyKit privilege to require for the copying of
      each path in includes, the mechanism looks for a privilege with an
      annotation with key org.mate.mateconf.defaults.set-system.prefix whose
      value is a prefix of the path. If no privilege is found this way, the
      org.mate.mateconf.defaults.set-system privilege is required.
    -->
    <method name="SetSystem">
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="includes" direction="in" type="as"/>
      <arg name="excludes" direction="in" type="as"/>
    </method>

    <!--
      path: a path to a mateconf key
      value: a value, as encoded by mateconf_value_encode

      Sets the key at path to value in the system-wide database.
      To decide which PolicyKit privilege to require for the copying of
      each path in includes, the mechanism looks for a privilege with an
      annotation with key org.mate.mateconf.defaults.set-system.prefix whose
      value is a prefix of the path. If no privilege is found this way, the
      org.mate.mateconf.defaults.set-system privilege is required.
    -->
    <method name="SetSystemValue">
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="path"  direction="in" type="s"/>
      <arg name="value" direction="in" type="s"/>
    </method>

    <method name="CanSetSystem">
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="includes" direction="in" type="as"/>
      <arg name="result" direction="out" type="u"/>
     </method>

    <signal name="SystemSet">
      <arg name="keys" type="as"/>
    </signal>
    <!--
      includes: an array of MateConf paths to copy from the
                callers MateConf database to the mandatory database
      excludes: an array of MateConf paths to omit

      Copies values from the callers MateConf database to the system-wide
      mandatory database. The subtree below each included path is copied
      recursively, skipping the excluded subtrees.
      To decide which PolicyKit privilege to require for the copying of
      each path in includes, the mechanism looks for a privilege with an
      annotation with key org.mate.mateconf.defaults.set-mandatory.prefix whose
      value is a prefix of the path. If no privilege is found this way, the
      org.mate.mateconf.defaults.set-mandatory privilege is required.
    -->
    <method name="SetMandatory">
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="includes" direction="in" type="as"/>
      <arg name="excludes" direction="in" type="as"/>
    </method>

    <!--
      path: a path to a mateconf key
      value: a value, as encoded by mateconf_value_encode

      Sets the key at path to value in the system-wide mandatory database.
      To decide which PolicyKit privilege to require for the copying of
      each path in includes, the mechanism looks for a privilege with an
      annotation with key org.mate.mateconf.defaults.set-mandatory.prefix whose
      value is a prefix of the path. If no privilege is found this way, the
      org.mate.mateconf.defaults.set-mandatory privilege is required.
    -->
    <method name="SetMandatoryValue">
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="path"  direction="in" type="s"/>
      <arg name="value" direction="in" type="s"/>
    </method>

    <!--
      Unsets keys in the system-wide mandatory MateConf database, making the
      keys writable again. The subtree below each included path is copied
      recursively, skipping the excluded subtrees.
      To decide which PolicyKit privilege to require for the copying of
      each path in includes, the mechanism looks for a privilege with an
      annotation with key org.mate.mateconf.defaults.set-mandatory.prefix whose
      value is a prefix of the path. If no privilege is found this way, the
      org.mate.mateconf.defaults.set-mandatory privilege is required.
    -->
    <method name="UnsetMandatory">
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="includes" direction="in" type="as"/>
      <arg name="excludes" direction="in" type="as"/>
    </method>

    <method name="CanSetMandatory">
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="includes" direction="in" type="as"/>
      <arg name="result" direction="out" type="u"/>
    </method>

  </interface>
</node>
