<?xml version="1.0" encoding="UTF-8"?>

<!--
   $Id$
   
   Copyright (c) 2006 Benedikt Meurer <benny@xfce.org>
  
   This program is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the Free
   Software Foundation; either version 2 of the License, or (at your option)
   any later version.
  
   This program 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 General Public License for
   more details.
  
   You should have received a copy of the GNU General Public License along with
   this program; if not, write to the Free Software Foundation, Inc., 59 Temple
   Place, Suite 330, Boston, MA  02111-1307  USA
-->

<node name="/org/xfce/FileManager">
  <!--
    org.xfce.FileManager

    The generic Xfce File Manager interface, implemented by all Xfce
    File Managers.
  -->
  <interface name="org.xfce.FileManager">
    <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="thunar_dbus_service" />

    <!--
      DisplayChooserDialog (uri : STRING, open : BOOLEAN, display : STRING) : VOID

      uri     : either a file:-URI or an absolute path.
      open    : TRUE to let the user open the file identified by the
                uri after choosing an application, FALSE to only update
                the mime database.
      display : the screen on which to display the chooser dialog or
                "" to use the default screen of the file manager.

      Displays the chooser dialog, which lets the user select an application
      to handle the file identified by the uri (and all other files of the
      same mime type). If open is TRUE the user will also be able to open
      the file after choosing an application.
    -->
    <method name="DisplayChooserDialog">
      <arg direction="in" name="uri" type="s" />
      <arg direction="in" name="open" type="b" />
      <arg direction="in" name="display" type="s" />
    </method>


    <!--
      DisplayFolder (uri : STRING, display : STRING) : VOID

      uri     : either a file:-URI or an absolute path.
      display : the screen on which to display the folder or ""
                to use the default screen of the file manager.
    -->
    <method name="DisplayFolder">
      <arg direction="in" name="uri" type="s" />
      <arg direction="in" name="display" type="s" />
    </method>


    <!--
      DisplayFolderAndSelect (uri : STRING, filename : STRING, display : STRING) : VOID

      uri        : either a file:-URI or an absolute path.
      filename   : the name of the file in the folder which should
                   be selected by the file manager after loading the
                   folder. The file manager will also scroll the view
                   to ensure that the file is visible. The filename
                   must be a name relative to the folder URI.
      display    : the screen on which to display the folder or ""
                   to use the default screen of the file manager.

      Note to implementors: Not all file managers may be able to
      implement this method properly for whatever reasons. If you
      cannot implement it properly, handle this method like an
      invocation of DisplayFolder() and ignore the filename.
    -->
    <method name="DisplayFolderAndSelect">
      <arg direction="in" name="uri" type="s" />
      <arg direction="in" name="filename" type="s" />
      <arg direction="in" name="display" type="s" />
    </method>


    <!--
      DisplayFileProperties (uri : STRING, display : STRING) : VOID

      uri     : either a file:-URI or an absolute path.
      display : the screen on which to display the file properties
                or "" to use the default screen of the file manager.
    -->
    <method name="DisplayFileProperties">
      <arg direction="in" name="uri" type="s" />
      <arg direction="in" name="display" type="s" />
    </method>


    <!--
      Launch (uri : STRING, display : STRING) : VOID

      uri     : either a file:-URI or an absolute path.
      display : the screen on which to launch the file or ""
                to use the default screen of the file manager.
    -->
    <method name="Launch">
      <arg direction="in" name="uri" type="s" />
      <arg direction="in" name="display" type="s" />
    </method>


    <!--
      DisplayPreferencesDialog (display : STRING) : VOID

      display : the screen on which to display the preferences dialog
                or "" to use the default screen of the file manager.
    -->
    <method name="DisplayPreferencesDialog">
      <arg direction="in" name="display" type="s" />
    </method>
  </interface>


  <!--
    org.xfce.Trash

    The generic Xfce Trash Bin interface, implemented by all Xfce File
    Managers that support a trash bin.
  -->
  <interface name="org.xfce.Trash">
    <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="thunar_dbus_service" />

    <!--
      DisplayTrash (display : STRING) : VOID

      display : the screen on which to display the trash folder
                contents or "" to use the default screen of the
                file manager.

      Opens a new file manager window showing the trash folder
      contents.
    -->
    <method name="DisplayTrash">
      <arg direction="in" name="display" type="s" />
    </method>

    <!--
      EmptyTrash (display : STRING) : VOID

      display : the screen on which to display the confirmation of
                the operation and the progress status or "" to use
                the default screen of the file manager.

      Tells the file manager to empty the trash bin.
    -->
    <method name="EmptyTrash">
      <arg direction="in" name="display" type="s" />
    </method>

    <!--
      MoveToTrash (uris : ARRAY OF STRING, display : STRING) : VOID

      filenames : an array of file:-URIs or absolute paths for the files
                  that should be moved to the trash can.
      display   : the screen on which to display the progress dialog
                  and possible error messages and confirmation dialogs
                  or "" to use the default screen of the file manager.

      Tells the file manager to move all files specified by the filenames
      to the trash bin.
    -->
    <method name="MoveToTrash">
      <arg direction="in" name="filenames" type="as" />
      <arg direction="in" name="display" type="s" />
    </method>

    <!--
      QueryTrash () : BOOLEAN

      Determines whether the trash bin contains atleast one
      item.

      Returns: TRUE if the trash bin is not empty, FALSE otherwise.
    -->
    <method name="QueryTrash">
      <arg direction="out" name="full" type="b" />
    </method>

    <!--
      TrashChanged (full : BOOLEAN)

      full : TRUE if the trash now contains atleast one item.

      This signal is emitted by the file manager whenever the state
      of the trash bin changes.
    -->
    <signal name="TrashChanged" />
  </interface>


  <!--
    org.xfce.Thunar

    The Thunar specific interface, which provides Thunar specific
    methods, and which should not be implemented by any other
    file manager.

    This interface is also subject to change. So, unless you know
    what you are doing, and you want to limit yourself to Thunar,
    do not use this interface, but use org.xfce.FileManager instead.
  -->
  <interface name="org.xfce.Thunar">
    <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="thunar_dbus_service" />

    <!--
      BulkRename (working-directory : STRING, filenames : ARRAY OF STRING, standalone : BOOLEAN, display : STRING) : VOID

      working-directory : the default directory for the "Add Files" dialog of the
                          bulk rename window. May also be the empty string, in
                          which case the current working directory of the file
                          manager process will be used. This is also used to
                          translated relative file paths in the filenames below
                          to absolute paths.
      filenames         : the list of file:-URIs or absolute paths that should
                          appear in the bulk renamer list by default. May also
                          be an empty list. any file that is neither an absolute
                          path nor a file:-URI will be translated into an
                          absolute path relative to the working-directory.
      standalone        : TRUE if the bulk rename dialog should appear like a
                          standalone application. This is usually what you want.
                          It should only be FALSE when invoked from another file
                          management tool and its obvious to the user that a
                          bunch of selected files will be renamed.
      display           : the screen on which to launch the filenames or ""
                          to use the default screen of the file manager.
    -->
    <method name="BulkRename">
      <arg direction="in" name="working-directory" type="s" />
      <arg direction="in" name="filenames" type="as" />
      <arg direction="in" name="standalone" type="b" />
      <arg direction="in" name="display" type="s" />
    </method>

    <!--
      LaunchFiles (working-directory : STRING, filenames : ARRAY OF STRING, display : STRING) : VOID

      working-directory : the directory, relative to which filenames should
                          be interpreted.
      filenames         : an array of file names to launch. The file names may
                          be either file:-URIs, absolute paths or paths relative
                          to the working-directory.
      display           : the screen on which to launch the filenames or ""
                          to use the default screen of the file manager.
    -->
    <method name="LaunchFiles">
      <arg direction="in" name="working-directory" type="s" />
      <arg direction="in" name="filenames" type="as" />
      <arg direction="in" name="display" type="s" />
    </method>

    <!--
      Terminate () : VOID

      Tells a running Thunar instance to terminate immediately.
    -->
    <method name="Terminate">
    </method>
  </interface>
</node>

<!-- vi:set ts=2 sw=2 et ai: -->
