1 2 /* nautilus-file-operations: execute file operations. 3 4 Copyright (C) 1999, 2000 Free Software Foundation 5 Copyright (C) 2000, 2001 Eazel, Inc. 6 7 This program is free software; you can redistribute it and/or 8 modify it under the terms of the GNU General Public License as 9 published by the Free Software Foundation; either version 2 of the 10 License, or (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 General Public License for more details. 16 17 You should have received a copy of the GNU General Public 18 License along with this program; if not, see <http://www.gnu.org/licenses/>. 19 20 Authors: Ettore Perazzoli <ettore@gnu.org>, 21 Pavel Cisler <pavel@eazel.com> 22 */ 23 24 #pragma once 25 26 #include <gtk/gtk.h> 27 #include <gio/gio.h> 28 #include <gnome-autoar/gnome-autoar.h> 29 30 #include "nautilus-file-operations-dbus-data.h" 31 32 #define SECONDS_NEEDED_FOR_APROXIMATE_TRANSFER_RATE 1 33 34 typedef void (* NautilusCopyCallback) (GHashTable *debuting_uris, 35 gboolean success, 36 gpointer callback_data); 37 typedef void (* NautilusCreateCallback) (GFile *new_file, 38 gboolean success, 39 gpointer callback_data); 40 typedef void (* NautilusOpCallback) (gboolean success, 41 gpointer callback_data); 42 typedef void (* NautilusDeleteCallback) (GHashTable *debuting_uris, 43 gboolean user_cancel, 44 gpointer callback_data); 45 typedef void (* NautilusMountCallback) (GVolume *volume, 46 gboolean success, 47 GObject *callback_data_object); 48 typedef void (* NautilusUnmountCallback) (gpointer callback_data); 49 typedef void (* NautilusExtractCallback) (GList *outputs, 50 gpointer callback_data); 51 52 /* FIXME: int copy_action should be an enum */ 53 54 void nautilus_file_operations_copy_move (const GList *item_uris, 55 const char *target_dir_uri, 56 GdkDragAction copy_action, 57 GtkWidget *parent_view, 58 NautilusFileOperationsDBusData *dbus_data, 59 NautilusCopyCallback done_callback, 60 gpointer done_callback_data); 61 void nautilus_file_operations_empty_trash (GtkWidget *parent_view, 62 gboolean ask_confirmation, 63 NautilusFileOperationsDBusData *dbus_data); 64 void nautilus_file_operations_new_folder (GtkWidget *parent_view, 65 NautilusFileOperationsDBusData *dbus_data, 66 const char *parent_dir_uri, 67 const char *folder_name, 68 NautilusCreateCallback done_callback, 69 gpointer done_callback_data); 70 void nautilus_file_operations_new_file (GtkWidget *parent_view, 71 const char *parent_dir, 72 const char *target_filename, 73 const char *initial_contents, 74 int length, 75 NautilusCreateCallback done_callback, 76 gpointer data); 77 void nautilus_file_operations_new_file_from_template (GtkWidget *parent_view, 78 const char *parent_dir, 79 const char *target_filename, 80 const char *template_uri, 81 NautilusCreateCallback done_callback, 82 gpointer data); 83 84 void nautilus_file_operations_trash_or_delete_sync (GList *files); 85 void nautilus_file_operations_delete_sync (GList *files); 86 void nautilus_file_operations_trash_or_delete_async (GList *files, 87 GtkWindow *parent_window, 88 NautilusFileOperationsDBusData *dbus_data, 89 NautilusDeleteCallback done_callback, 90 gpointer done_callback_data); 91 void nautilus_file_operations_delete_async (GList *files, 92 GtkWindow *parent_window, 93 NautilusFileOperationsDBusData *dbus_data, 94 NautilusDeleteCallback done_callback, 95 gpointer done_callback_data); 96 97 void nautilus_file_set_permissions_recursive (const char *directory, 98 guint32 file_permissions, 99 guint32 file_mask, 100 guint32 folder_permissions, 101 guint32 folder_mask, 102 NautilusOpCallback callback, 103 gpointer callback_data); 104 105 void nautilus_file_operations_unmount_mount (GtkWindow *parent_window, 106 GMount *mount, 107 gboolean eject, 108 gboolean check_trash); 109 void nautilus_file_operations_unmount_mount_full (GtkWindow *parent_window, 110 GMount *mount, 111 GMountOperation *mount_operation, 112 gboolean eject, 113 gboolean check_trash, 114 NautilusUnmountCallback callback, 115 gpointer callback_data); 116 void nautilus_file_operations_mount_volume (GtkWindow *parent_window, 117 GVolume *volume); 118 void nautilus_file_operations_mount_volume_full (GtkWindow *parent_window, 119 GVolume *volume, 120 NautilusMountCallback mount_callback, 121 GObject *mount_callback_data_object); 122 123 void nautilus_file_operations_copy_async (GList *files, 124 GFile *target_dir, 125 GtkWindow *parent_window, 126 NautilusFileOperationsDBusData *dbus_data, 127 NautilusCopyCallback done_callback, 128 gpointer done_callback_data); 129 void nautilus_file_operations_copy_sync (GList *files, 130 GFile *target_dir); 131 132 void nautilus_file_operations_move_async (GList *files, 133 GFile *target_dir, 134 GtkWindow *parent_window, 135 NautilusFileOperationsDBusData *dbus_data, 136 NautilusCopyCallback done_callback, 137 gpointer done_callback_data); 138 void nautilus_file_operations_move_sync (GList *files, 139 GFile *target_dir); 140 141 void nautilus_file_operations_duplicate (GList *files, 142 GtkWindow *parent_window, 143 NautilusFileOperationsDBusData *dbus_data, 144 NautilusCopyCallback done_callback, 145 gpointer done_callback_data); 146 void nautilus_file_operations_link (GList *files, 147 GFile *target_dir, 148 GtkWindow *parent_window, 149 NautilusFileOperationsDBusData *dbus_data, 150 NautilusCopyCallback done_callback, 151 gpointer done_callback_data); 152 void nautilus_file_operations_extract_files (GList *files, 153 GFile *destination_directory, 154 GtkWindow *parent_window, 155 NautilusFileOperationsDBusData *dbus_data, 156 NautilusExtractCallback done_callback, 157 gpointer done_callback_data); 158 void nautilus_file_operations_compress (GList *files, 159 GFile *output, 160 AutoarFormat format, 161 AutoarFilter filter, 162 const gchar *passphrase, 163 GtkWindow *parent_window, 164 NautilusFileOperationsDBusData *dbus_data, 165 NautilusCreateCallback done_callback, 166 gpointer done_callback_data); 167