<?xml version="1.0"?>
<!--
 Copyright (C) 2016 Red Hat, Inc.

 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library. If not, see <http://www.gnu.org/licenses/>.

 Author: Matthias Clasen <mclasen@redhat.com>
-->

<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
  <!--
      org.freedesktop.portal.Trash:
      @short_description: Portal for trashing files

      This simple interface lets sandboxed applications send files to
      the trashcan.

      This documentation describes version 1 of this interface.
  -->
  <interface name="org.freedesktop.portal.Trash">
    <!--
        TrashFile:
	@fd: file descriptor for the file to trash
        @result: the result. 0 if trashing failed, 1 if trashing succeeded, other values may be returned in the future

        Sends a file to the trashcan. Applications are allowed to
        trash a file if they can open it in r/w mode.
    -->
    <method name="TrashFile">
      <annotation name="org.gtk.GDBus.C.UnixFD" value="true"/>
      <arg type="h" name="fd" direction="in"/>
      <arg type="u" name="result" direction="out"/>
    </method>

    <property name="version" type="u" access="read"/>
  </interface>
</node>
