[nautilus: 21/47] view: reduce visibility of some methods



commit 1f734cce8b243e2c1c1fd40491ab4e38c0eb65cd
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Wed Dec 29 15:00:53 2010 +0100

    view: reduce visibility of some methods
    
    No need for them to stay public.
    Remove some useless prototypes and reorder virtual methods, while we're
    at it.

 src/file-manager/fm-icon-view.c |    3 +-
 src/nautilus-view.c             | 1753 ++++++++++++++++++---------------------
 src/nautilus-view.h             |   76 +--
 3 files changed, 831 insertions(+), 1001 deletions(-)
---
diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c
index 164e1dc..5333221 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -46,6 +46,7 @@
 #include <libnautilus-private/nautilus-clipboard-monitor.h>
 #include <libnautilus-private/nautilus-directory.h>
 #include <libnautilus-private/nautilus-dnd.h>
+#include <libnautilus-private/nautilus-file-dnd.h>
 #include <libnautilus-private/nautilus-file-utilities.h>
 #include <libnautilus-private/nautilus-ui-utilities.h>
 #include <libnautilus-private/nautilus-global-preferences.h>
@@ -2646,7 +2647,7 @@ icon_view_can_accept_item (NautilusIconContainer *container,
 			   const char *item_uri,
 			   FMDirectoryView *view)
 {
-	return fm_directory_view_can_accept_item (target_item, item_uri, view);
+	return nautilus_drag_can_accept_item (target_item, item_uri);
 }
 
 static char *
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index 739e299..3084186 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -265,8 +265,6 @@ typedef struct {
 /* forward declarations */
 
 static gboolean display_selection_info_idle_callback           (gpointer              data);
-static void     fm_directory_view_class_init                   (FMDirectoryViewClass *klass);
-static void     fm_directory_view_init                         (FMDirectoryView      *view);
 static void     fm_directory_view_duplicate_selection          (FMDirectoryView      *view,
 								GList                *files,
 								GArray               *item_locations);
@@ -314,57 +312,6 @@ static void     user_dirs_changed                              (FMDirectoryView
 
 static gboolean file_list_all_are_folders                      (GList *file_list);
 
-static void action_open_scripts_folder_callback    (GtkAction *action,
-						    gpointer   callback_data);
-static void action_cut_files_callback              (GtkAction *action,
-						    gpointer   callback_data);
-static void action_copy_files_callback             (GtkAction *action,
-						    gpointer   callback_data);
-static void action_paste_files_callback            (GtkAction *action,
-						    gpointer   callback_data);
-static void action_copy_to_next_pane_callback      (GtkAction *action,
-						    gpointer   callback_data);
-static void action_move_to_next_pane_callback      (GtkAction *action,
-						    gpointer   callback_data);
-static void action_rename_callback                 (GtkAction *action,
-						    gpointer   callback_data);
-static void action_rename_select_all_callback      (GtkAction *action,
-						    gpointer   callback_data);
-static void action_paste_files_into_callback       (GtkAction *action,
-						    gpointer   callback_data);
-static void action_connect_to_server_link_callback (GtkAction *action,
-						    gpointer   data);
-static void action_mount_volume_callback           (GtkAction *action,
-						    gpointer   data);
-static void action_unmount_volume_callback         (GtkAction *action,
-						    gpointer   data);
-static void action_format_volume_callback          (GtkAction *action,
-						    gpointer   data);
-static void action_start_volume_callback           (GtkAction *action,
-						    gpointer   data);
-static void action_stop_volume_callback            (GtkAction *action,
-						    gpointer   data);
-static void action_detect_media_callback           (GtkAction *action,
-						    gpointer   data);
-
-/* location popup-related actions */
-
-static void action_location_open_alternate_callback (GtkAction *action,
-						     gpointer   callback_data);
-static void action_location_open_folder_window_callback (GtkAction *action,
-							 gpointer   callback_data);
-
-static void action_location_cut_callback            (GtkAction *action,
-						     gpointer   callback_data);
-static void action_location_copy_callback           (GtkAction *action,
-						     gpointer   callback_data);
-static void action_location_trash_callback          (GtkAction *action,
-						     gpointer   callback_data);
-static void action_location_delete_callback         (GtkAction *action,
-						     gpointer   callback_data);
-static void action_location_properties_callback     (GtkAction *action,
-						     gpointer   callback_data);
-
 static void unschedule_pop_up_location_context_menu (FMDirectoryView *view);
 
 static inline void fm_directory_view_widget_to_file_operation_position (FMDirectoryView *view,
@@ -372,7 +319,8 @@ static inline void fm_directory_view_widget_to_file_operation_position (FMDirect
 static void        fm_directory_view_widget_to_file_operation_position_xy (FMDirectoryView *view,
 									   int *x, int *y);
 
-EEL_CLASS_BOILERPLATE (FMDirectoryView, fm_directory_view, GTK_TYPE_SCROLLED_WINDOW)
+G_DEFINE_TYPE (FMDirectoryView, fm_directory_view, GTK_TYPE_SCROLLED_WINDOW);
+#define parent_class fm_directory_view_parent_class
 
 EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, add_file)
 EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, bump_zoom_level)
@@ -392,6 +340,442 @@ EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, zoom_to_level)
 EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, get_zoom_level)
 EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, invert_selection)
 
+/* virtual methods (public and non-public) */
+
+/**
+ * fm_directory_view_merge_menus:
+ * 
+ * Add this view's menus to the window's menu bar.
+ * @view: FMDirectoryView in question.
+ */
+static void
+fm_directory_view_merge_menus (FMDirectoryView *view)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 merge_menus, (view));
+}
+
+static void
+fm_directory_view_unmerge_menus (FMDirectoryView *view)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 unmerge_menus, (view));
+}
+
+/**
+ * fm_directory_view_select_all:
+ *
+ * select all the items in the view
+ * 
+ **/
+static void
+fm_directory_view_select_all (FMDirectoryView *view)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 select_all, (view));
+}
+
+/**
+ * fm_directory_view_set_selection:
+ *
+ * set the selection to the items identified in @selection. @selection
+ * should be a list of NautilusFiles
+ * 
+ **/
+static void
+fm_directory_view_set_selection (FMDirectoryView *view, GList *selection)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 set_selection, (view, selection));
+}
+
+static GList *
+fm_directory_view_get_selection_for_file_transfer (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 get_selection_for_file_transfer, (view));
+}
+
+/**
+ * fm_directory_view_get_selected_icon_locations:
+ *
+ * return an array of locations of selected icons if available
+ * Return value: GArray of GdkPoints
+ * 
+ **/
+static GArray *
+fm_directory_view_get_selected_icon_locations (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 get_selected_icon_locations, (view));
+}
+
+static void
+fm_directory_view_invert_selection (FMDirectoryView *view)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 invert_selection, (view));
+}
+
+/**
+ * fm_directory_view_reveal_selection:
+ *
+ * Scroll as necessary to reveal the selected items.
+ **/
+static void
+fm_directory_view_reveal_selection (FMDirectoryView *view)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 reveal_selection, (view));
+}
+
+/**
+ * fm_directory_view_reset_to_defaults:
+ *
+ * set sorting order, zoom level, etc. to match defaults
+ * 
+ **/
+static void
+fm_directory_view_reset_to_defaults (FMDirectoryView *view)
+{
+	NautilusWindowShowHiddenFilesMode mode;
+
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+	
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 reset_to_defaults, (view));
+	mode = nautilus_window_get_hidden_files_mode (view->details->window);
+	if (mode != NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT) {
+		nautilus_window_set_hidden_files_mode (view->details->window,
+							    NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT);
+	}
+}
+
+static gboolean
+fm_directory_view_using_manual_layout (FMDirectoryView  *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 using_manual_layout, (view));
+}
+
+static guint
+fm_directory_view_get_item_count (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), 0);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 get_item_count, (view));
+}
+
+/**
+ * fm_directory_view_can_rename_file
+ *
+ * Determine whether a file can be renamed.
+ * @file: A NautilusFile
+ * 
+ * Return value: TRUE if @file can be renamed, FALSE otherwise.
+ * 
+ **/
+static gboolean
+fm_directory_view_can_rename_file (FMDirectoryView *view, NautilusFile *file)
+{
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 can_rename_file, (view, file));
+}
+
+static gboolean
+fm_directory_view_is_read_only (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 is_read_only, (view));
+}
+
+static gboolean
+fm_directory_view_supports_creating_files (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 supports_creating_files, (view));
+}
+
+static gboolean
+fm_directory_view_supports_properties (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 supports_properties, (view));
+}
+
+static gboolean
+fm_directory_view_is_empty (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 is_empty, (view));
+}
+
+/**
+ * nautilus_view_bump_zoom_level:
+ *
+ * bump the current zoom level by invoking the relevant subclass through the slot
+ * 
+ **/
+void
+nautilus_view_bump_zoom_level (NautilusView *view,
+			       int zoom_increment)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	if (!nautilus_view_supports_zooming (view)) {
+		return;
+	}
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 bump_zoom_level, (view, zoom_increment));
+}
+
+/**
+ * nautilus_view_zoom_to_level:
+ *
+ * Set the current zoom level by invoking the relevant subclass through the slot
+ * 
+ **/
+void
+nautilus_view_zoom_to_level (NautilusView *view,
+			     NautilusZoomLevel zoom_level)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	if (!nautilus_view_supports_zooming (view)) {
+		return;
+	}
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 zoom_to_level, (view, zoom_level));
+}
+
+NautilusZoomLevel
+nautilus_view_get_zoom_level (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NAUTILUS_ZOOM_LEVEL_STANDARD);
+
+	if (!nautilus_view_supports_zooming (view)) {
+		return NAUTILUS_ZOOM_LEVEL_STANDARD;
+	}
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 get_zoom_level, (view));
+}
+
+/**
+ * nautilus_view_can_zoom_in:
+ *
+ * Determine whether the view can be zoomed any closer.
+ * @view: The zoomable FMDirectoryView.
+ * 
+ * Return value: TRUE if @view can be zoomed any closer, FALSE otherwise.
+ * 
+ **/
+gboolean
+nautilus_view_can_zoom_in (NautilusView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
+
+	if (!nautilus_view_supports_zooming (view)) {
+		return FALSE;
+	}
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 can_zoom_in, (view));
+}
+
+/**
+ * nautilus_view_can_zoom_out:
+ *
+ * Determine whether the view can be zoomed any further away.
+ * @view: The zoomable FMDirectoryView.
+ * 
+ * Return value: TRUE if @view can be zoomed any further away, FALSE otherwise.
+ * 
+ **/
+gboolean
+nautilus_view_can_zoom_out (NautilusView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
+
+	if (!nautilus_view_supports_zooming (view)) {
+		return FALSE;
+	}
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 can_zoom_out, (view));
+}
+
+gboolean
+nautilus_view_supports_zooming (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 supports_zooming, (view));
+}
+
+/**
+ * nautilus_view_restore_default_zoom_level:
+ *
+ * restore to the default zoom level by invoking the relevant subclass through the slot
+ * 
+ **/
+void
+nautilus_view_restore_default_zoom_level (NautilusView *view)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	if (!nautilus_view_supports_zooming (view)) {
+		return;
+	}
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 restore_default_zoom_level, (view));
+}
+
+const char *
+nautilus_view_get_view_id (NautilusView *view)
+{
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 get_view_id, (view));
+}
+
+char *
+nautilus_view_get_first_visible_file (NautilusView *view)
+{
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 get_first_visible_file, (view));
+}
+
+void
+nautilus_view_scroll_to_file (NautilusView *view,
+			      const char *uri)
+{
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 scroll_to_file, (view, uri));
+}
+
+char **
+fm_directory_view_get_emblem_names_to_exclude (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 get_emblem_names_to_exclude, (view));
+}
+
+void
+nautilus_view_set_is_active (FMDirectoryView *view,
+			     gboolean is_active)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	EEL_CALL_METHOD (FM_DIRECTORY_VIEW_CLASS, view,
+			 set_is_active, (view, is_active));
+}
+
+/**
+ * fm_directory_view_get_selection:
+ *
+ * Get a list of NautilusFile pointers that represents the
+ * currently-selected items in this view. Subclasses must override
+ * the signal handler for the 'get_selection' signal. Callers are
+ * responsible for g_free-ing the list (but not its data).
+ * @view: FMDirectoryView whose selected items are of interest.
+ * 
+ * Return value: GList of NautilusFile pointers representing the selection.
+ * 
+ **/
+GList *
+fm_directory_view_get_selection (FMDirectoryView *view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
+
+	return EEL_CALL_METHOD_WITH_RETURN_VALUE
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 get_selection, (view));
+}
+
+
+/**
+ * nautilus_view_update_menus:
+ * 
+ * Update the sensitivity and wording of dynamic menu items.
+ * @view: FMDirectoryView in question.
+ */
+void
+nautilus_view_update_menus (NautilusView *view)
+{
+	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
+
+	if (!view->details->active) {
+		return;
+	}
+
+
+	EEL_CALL_METHOD
+		(FM_DIRECTORY_VIEW_CLASS, view,
+		 update_menus, (view));
+
+	view->details->menu_states_untrustworthy = FALSE;
+}
+
 typedef struct {
 	GAppInfo *application;
 	GList *files;
@@ -582,7 +966,7 @@ fm_directory_view_get_nautilus_window_slot (FMDirectoryView  *view)
  * if at the moment this directory view is not in a GtkWindow or the
  * GtkWindow cannot be determined. Primarily used for parenting dialogs.
  */
-GtkWindow *
+static GtkWindow *
 fm_directory_view_get_containing_window (FMDirectoryView *view)
 {
 	GtkWidget *window;
@@ -708,7 +1092,7 @@ fm_directory_view_activate_files (FMDirectoryView *view,
 	g_free (path);
 }
 
-void
+static void
 fm_directory_view_activate_file (FMDirectoryView *view,
 				 NautilusFile *file,
 				 NautilusWindowOpenMode mode,
@@ -915,6 +1299,34 @@ action_other_application_callback (GtkAction *action,
 	open_with_other_program (FM_DIRECTORY_VIEW (callback_data));
 }
 
+/* Get the real directory where files will be stored and created */
+char *
+nautilus_view_get_backing_uri (NautilusView *view)
+{
+	NautilusDirectory *directory;
+	char *uri;
+	
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
+
+	if (view->details->model == NULL) {
+		return NULL;
+	}
+	
+	directory = view->details->model;
+	
+	if (NAUTILUS_IS_DESKTOP_DIRECTORY (directory)) {
+		directory = nautilus_desktop_directory_get_real_directory (NAUTILUS_DESKTOP_DIRECTORY (directory));
+	} else {
+		nautilus_directory_ref (directory);
+	}
+	
+	uri = nautilus_directory_get_uri (directory);
+
+	nautilus_directory_unref (directory);
+
+	return uri;
+}
+
 static void
 trash_or_delete_selected_files (FMDirectoryView *view)
 {
@@ -1084,7 +1496,6 @@ action_invert_selection_callback (GtkAction *action,
 	fm_directory_view_invert_selection (callback_data);
 }
 
-
 static void
 pattern_select_response_cb (GtkWidget *dialog, int response, gpointer user_data)
 {
@@ -1374,6 +1785,313 @@ action_empty_trash_callback (GtkAction *action,
 	nautilus_file_operations_empty_trash (GTK_WIDGET (callback_data));
 }
 
+typedef struct {
+	FMDirectoryView *view;
+	NautilusFile *new_file;
+} RenameData;
+
+static gboolean
+delayed_rename_file_hack_callback (RenameData *data)
+{
+	FMDirectoryView *view;
+	NautilusFile *new_file;
+
+	view = data->view;
+	new_file = data->new_file;
+
+	if (view->details->window != NULL &&
+	    view->details->active) {
+		EEL_CALL_METHOD (FM_DIRECTORY_VIEW_CLASS, view, start_renaming_file, (view, new_file, FALSE));
+		fm_directory_view_reveal_selection (view);
+	}
+
+	return FALSE;
+}
+
+static void
+delayed_rename_file_hack_removed (RenameData *data)
+{
+	g_object_unref (data->view);
+	nautilus_file_unref (data->new_file);
+	g_free (data);
+}
+
+
+static void
+rename_file (FMDirectoryView *view, NautilusFile *new_file)
+{
+	RenameData *data;
+
+	/* HACK!!!!
+	   This is a work around bug in listview. After the rename is
+	   enabled we will get file changes due to info about the new
+	   file being read, which will cause the model to change. When
+	   the model changes GtkTreeView clears the editing. This hack just
+	   delays editing for some time to try to avoid this problem.
+	   A major problem is that the selection of the row causes us
+	   to load the slow mimetype for the file, which leads to a
+	   file_changed. So, before we delay we select the row.
+	*/
+	if (FM_IS_LIST_VIEW (view)) {
+		fm_directory_view_select_file (view, new_file);
+		
+		data = g_new (RenameData, 1);
+		data->view = g_object_ref (view);
+		data->new_file = nautilus_file_ref (new_file);
+		if (view->details->delayed_rename_file_id != 0) {
+			g_source_remove (view->details->delayed_rename_file_id);
+		}
+		view->details->delayed_rename_file_id = 
+			g_timeout_add_full (G_PRIORITY_DEFAULT,
+					    100, (GSourceFunc)delayed_rename_file_hack_callback,
+					    data, (GDestroyNotify) delayed_rename_file_hack_removed);
+		
+		return;
+	}
+
+	/* no need to select because start_renaming_file selects
+	 * fm_directory_view_select_file (view, new_file);
+	 */
+	EEL_CALL_METHOD (FM_DIRECTORY_VIEW_CLASS, view, start_renaming_file, (view, new_file, FALSE));
+	fm_directory_view_reveal_selection (view);
+}
+
+static void
+reveal_newly_added_folder (FMDirectoryView *view, NautilusFile *new_file,
+			   NautilusDirectory *directory, GFile *target_location)
+{
+	GFile *location;
+
+	location = nautilus_file_get_location (new_file);
+	if (g_file_equal (location, target_location)) {
+		g_signal_handlers_disconnect_by_func (view,
+						      G_CALLBACK (reveal_newly_added_folder),
+						      (void *) target_location);
+		rename_file (view, new_file);
+	}
+	g_object_unref (location);
+}
+
+typedef struct {
+	FMDirectoryView *directory_view;
+	GHashTable *added_locations;
+} NewFolderData;
+
+
+static void
+track_newly_added_locations (FMDirectoryView *view, NautilusFile *new_file,
+			     NautilusDirectory *directory, gpointer user_data)
+{
+	NewFolderData *data;
+
+	data = user_data;
+
+	g_hash_table_insert (data->added_locations, nautilus_file_get_location (new_file), NULL);
+}
+
+static void
+new_folder_done (GFile *new_folder, gpointer user_data)
+{
+	FMDirectoryView *directory_view;
+	NautilusFile *file;
+	char screen_string[32];
+	GdkScreen *screen;
+	NewFolderData *data;
+
+	data = (NewFolderData *)user_data;
+
+	directory_view = data->directory_view;
+
+	if (directory_view == NULL) {
+		goto fail;
+	}
+
+	g_signal_handlers_disconnect_by_func (directory_view,
+					      G_CALLBACK (track_newly_added_locations),
+					      (void *) data);
+
+	if (new_folder == NULL) {
+		goto fail;
+	}
+	
+	screen = gtk_widget_get_screen (GTK_WIDGET (directory_view));
+	g_snprintf (screen_string, sizeof (screen_string), "%d", gdk_screen_get_number (screen));
+
+	
+	file = nautilus_file_get (new_folder);
+	nautilus_file_set_metadata
+		(file, NAUTILUS_METADATA_KEY_SCREEN,
+		 NULL,
+		 screen_string);
+
+	if (g_hash_table_lookup_extended (data->added_locations, new_folder, NULL, NULL)) {
+		/* The file was already added */
+		rename_file (directory_view, file);
+	} else {
+		/* We need to run after the default handler adds the folder we want to
+		 * operate on. The ADD_FILE signal is registered as G_SIGNAL_RUN_LAST, so we
+		 * must use connect_after.
+		 */
+		g_signal_connect_data (directory_view,
+				       "add_file",
+				       G_CALLBACK (reveal_newly_added_folder),
+				       g_object_ref (new_folder),
+				       (GClosureNotify)g_object_unref,
+				       G_CONNECT_AFTER);
+	}
+	nautilus_file_unref (file);
+
+ fail:
+	g_hash_table_destroy (data->added_locations);
+	eel_remove_weak_pointer (&data->directory_view);
+	g_free (data);
+}
+
+
+static NewFolderData *
+new_folder_data_new (FMDirectoryView *directory_view)
+{
+	NewFolderData *data;
+
+	data = g_new (NewFolderData, 1);
+	data->directory_view = directory_view;
+	data->added_locations = g_hash_table_new_full (g_file_hash, (GEqualFunc)g_file_equal,
+						       g_object_unref, NULL);
+	eel_add_weak_pointer (&data->directory_view);
+
+	return data;
+}
+
+static GdkPoint *
+context_menu_to_file_operation_position (FMDirectoryView *directory_view)
+{
+	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (directory_view), NULL);
+
+	if (fm_directory_view_using_manual_layout (directory_view)
+	    && directory_view->details->context_menu_position.x >= 0
+	    && directory_view->details->context_menu_position.y >= 0) {
+		EEL_CALL_METHOD (FM_DIRECTORY_VIEW_CLASS, directory_view,
+				 widget_to_file_operation_position,
+				 (directory_view, &directory_view->details->context_menu_position));
+		return &directory_view->details->context_menu_position;
+	} else {
+		return NULL;
+	}
+}
+
+static void
+fm_directory_view_new_folder (FMDirectoryView *directory_view)
+{
+	char *parent_uri;
+	NewFolderData *data;
+	GdkPoint *pos;
+
+	data = new_folder_data_new (directory_view);
+
+	g_signal_connect_data (directory_view,
+			       "add_file",
+			       G_CALLBACK (track_newly_added_locations),
+			       data,
+			       (GClosureNotify)NULL,
+			       G_CONNECT_AFTER);
+
+	pos = context_menu_to_file_operation_position (directory_view);
+
+	parent_uri = nautilus_view_get_backing_uri (directory_view);
+	nautilus_file_operations_new_folder (GTK_WIDGET (directory_view),
+					     pos, parent_uri,
+					     new_folder_done, data);
+
+	g_free (parent_uri);
+}
+
+static NewFolderData *
+setup_new_folder_data (FMDirectoryView *directory_view)
+{
+	NewFolderData *data;
+
+	data = new_folder_data_new (directory_view);
+
+	g_signal_connect_data (directory_view,
+			       "add_file",
+			       G_CALLBACK (track_newly_added_locations),
+			       data,
+			       (GClosureNotify)NULL,
+			       G_CONNECT_AFTER);
+
+	return data;
+}
+
+void
+nautilus_view_new_file_with_initial_contents (NautilusView *view,
+					      const char *parent_uri,
+					      const char *filename,
+					      const char *initial_contents,
+					      int length,
+					      GdkPoint *pos)
+{
+	NewFolderData *data;
+
+	g_assert (parent_uri != NULL);
+
+	data = setup_new_folder_data (view);
+
+	if (pos == NULL) {
+		pos = context_menu_to_file_operation_position (view);
+	}
+
+	nautilus_file_operations_new_file (GTK_WIDGET (view),
+					   pos, parent_uri, filename,
+					   initial_contents, length,
+					   new_folder_done, data);
+}
+
+static void
+fm_directory_view_new_file (FMDirectoryView *directory_view,
+			    const char *parent_uri,
+			    NautilusFile *source)
+{
+	GdkPoint *pos;
+	NewFolderData *data;
+	char *source_uri;
+	char *container_uri;
+
+	container_uri = NULL;
+	if (parent_uri == NULL) {
+		container_uri = nautilus_view_get_backing_uri (directory_view);
+		g_assert (container_uri != NULL);
+	}
+
+	if (source == NULL) {
+		nautilus_view_new_file_with_initial_contents (directory_view,
+							      parent_uri != NULL ? parent_uri : container_uri,
+							      NULL,
+							      NULL,
+							      0,
+							      NULL);
+		g_free (container_uri);
+		return;
+	}
+
+	g_return_if_fail (nautilus_file_is_local (source));
+
+	pos = context_menu_to_file_operation_position (directory_view);
+
+	data = setup_new_folder_data (directory_view);
+
+	source_uri = nautilus_file_get_uri (source);
+
+	nautilus_file_operations_new_file_from_template (GTK_WIDGET (directory_view),
+							 pos,
+							 parent_uri != NULL ? parent_uri : container_uri,
+							 NULL,
+							 source_uri,
+							 new_folder_done, data);
+
+	g_free (source_uri);
+	g_free (container_uri);
+}
+
 static void
 action_new_folder_callback (GtkAction *action,
 			    gpointer callback_data)
@@ -1404,7 +2122,7 @@ action_new_launcher_callback (GtkAction *action,
 
 	view = FM_DIRECTORY_VIEW (callback_data);
 
-	parent_uri = fm_directory_view_get_backing_uri (view);
+	parent_uri = nautilus_view_get_backing_uri (view);
 
 	window = fm_directory_view_get_containing_window (view);
 	DEBUG ("Create new launcher in window=%p: %s", window, parent_uri);
@@ -1989,7 +2707,7 @@ fm_directory_view_destroy (GtkWidget *object)
 	view->details->window = NULL;
 	
 	nautilus_view_stop_loading (view);
-	fm_directory_view_clear (view);
+	g_signal_emit (view, signals[CLEAR], 0);
 
 	for (node = view->details->scripts_directory_list; node != NULL; node = next) {
 		next = node->next;
@@ -2311,7 +3029,7 @@ fm_directory_view_display_selection_info (FMDirectoryView *view)
 	g_free (status_string);
 }
 
-void
+static void
 fm_directory_view_send_selection_change (FMDirectoryView *view)
 {
 	g_signal_emit (view, signals[SELECTION_CHANGED], 0);
@@ -2412,7 +3130,7 @@ done_loading (FMDirectoryView *view,
 		fm_directory_view_display_selection_info (view);
 	}
 
-	fm_directory_view_end_loading (view, all_files_seen);
+	g_signal_emit (view, signals[END_LOADING], 0, all_files_seen);
 
 	view->details->loading = FALSE;
 }
@@ -3239,58 +3957,6 @@ fm_directory_view_remove_subdirectory (FMDirectoryView  *view,
 }
 
 /**
- * fm_directory_view_clear:
- *
- * Emit the signal to clear the contents of the view. Subclasses must
- * override the signal handler for this signal. This is normally called
- * only by FMDirectoryView.
- * @view: FMDirectoryView to empty.
- * 
- **/
-void
-fm_directory_view_clear (FMDirectoryView *view)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	g_signal_emit (view, signals[CLEAR], 0);
-}
-
-/**
- * fm_directory_view_begin_loading:
- *
- * Emit the signal to prepare for loading the contents of a new location. 
- * Subclasses might want to override the signal handler for this signal. 
- * This is normally called only by FMDirectoryView.
- * @view: FMDirectoryView that is switching to view a new location.
- * 
- **/
-void
-fm_directory_view_begin_loading (FMDirectoryView *view)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	g_signal_emit (view, signals[BEGIN_LOADING], 0);
-}
-
-/**
- * fm_directory_view_end_loading:
- *
- * Emit the signal after loading the contents of a new location. 
- * Subclasses might want to override the signal handler for this signal. 
- * This is normally called only by FMDirectoryView.
- * @view: FMDirectoryView that is switching to view a new location.
- * 
- **/
-void
-fm_directory_view_end_loading (FMDirectoryView *view,
-			       gboolean all_files_seen)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	g_signal_emit (view, signals[END_LOADING], 0, all_files_seen);
-}
-
-/**
  * fm_directory_view_get_loading:
  * @view: an #FMDirectoryView.
  *
@@ -3305,232 +3971,6 @@ fm_directory_view_get_loading (FMDirectoryView *view)
 	return view->details->loading;
 }
 
-/**
- * nautilus_view_bump_zoom_level:
- *
- * bump the current zoom level by invoking the relevant subclass through the slot
- * 
- **/
-void
-nautilus_view_bump_zoom_level (NautilusView *view,
-			       int zoom_increment)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	if (!nautilus_view_supports_zooming (view)) {
-		return;
-	}
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 bump_zoom_level, (view, zoom_increment));
-}
-
-/**
- * nautilus_view_zoom_to_level:
- *
- * Set the current zoom level by invoking the relevant subclass through the slot
- * 
- **/
-void
-nautilus_view_zoom_to_level (NautilusView *view,
-			     NautilusZoomLevel zoom_level)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	if (!nautilus_view_supports_zooming (view)) {
-		return;
-	}
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 zoom_to_level, (view, zoom_level));
-}
-
-NautilusZoomLevel
-nautilus_view_get_zoom_level (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NAUTILUS_ZOOM_LEVEL_STANDARD);
-
-	if (!nautilus_view_supports_zooming (view)) {
-		return NAUTILUS_ZOOM_LEVEL_STANDARD;
-	}
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 get_zoom_level, (view));
-}
-
-/**
- * nautilus_view_restore_default_zoom_level:
- *
- * restore to the default zoom level by invoking the relevant subclass through the slot
- * 
- **/
-void
-nautilus_view_restore_default_zoom_level (NautilusView *view)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	if (!nautilus_view_supports_zooming (view)) {
-		return;
-	}
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 restore_default_zoom_level, (view));
-}
-
-const char *
-nautilus_view_get_view_id (NautilusView *view)
-{
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 get_view_id, (view));
-}
-
-char *
-nautilus_view_get_first_visible_file (NautilusView *view)
-{
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 get_first_visible_file, (view));
-}
-
-void
-nautilus_view_scroll_to_file (NautilusView *view,
-			      const char *uri)
-{
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 scroll_to_file, (view, uri));
-}
-
-/**
- * nautilus_view_can_zoom_in:
- *
- * Determine whether the view can be zoomed any closer.
- * @view: The zoomable FMDirectoryView.
- * 
- * Return value: TRUE if @view can be zoomed any closer, FALSE otherwise.
- * 
- **/
-gboolean
-nautilus_view_can_zoom_in (NautilusView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	if (!nautilus_view_supports_zooming (view)) {
-		return FALSE;
-	}
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 can_zoom_in, (view));
-}
-
-/**
- * fm_directory_view_can_rename_file
- *
- * Determine whether a file can be renamed.
- * @file: A NautilusFile
- * 
- * Return value: TRUE if @file can be renamed, FALSE otherwise.
- * 
- **/
-static gboolean
-fm_directory_view_can_rename_file (FMDirectoryView *view, NautilusFile *file)
-{
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 can_rename_file, (view, file));
-}
-
-/**
- * nautilus_view_can_zoom_out:
- *
- * Determine whether the view can be zoomed any further away.
- * @view: The zoomable FMDirectoryView.
- * 
- * Return value: TRUE if @view can be zoomed any further away, FALSE otherwise.
- * 
- **/
-gboolean
-nautilus_view_can_zoom_out (NautilusView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	if (!nautilus_view_supports_zooming (view)) {
-		return FALSE;
-	}
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 can_zoom_out, (view));
-}
-
-void
-nautilus_view_set_is_active (FMDirectoryView *view,
-			     gboolean is_active)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	EEL_CALL_METHOD (FM_DIRECTORY_VIEW_CLASS, view,
-			 set_is_active, (view, is_active));
-}
-
-/**
- * fm_directory_view_get_selection:
- *
- * Get a list of NautilusFile pointers that represents the
- * currently-selected items in this view. Subclasses must override
- * the signal handler for the 'get_selection' signal. Callers are
- * responsible for g_free-ing the list (but not its data).
- * @view: FMDirectoryView whose selected items are of interest.
- * 
- * Return value: GList of NautilusFile pointers representing the selection.
- * 
- **/
-GList *
-fm_directory_view_get_selection (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 get_selection, (view));
-}
-
-void
-fm_directory_view_invert_selection (FMDirectoryView *view)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 invert_selection, (view));
-}
-
-GList *
-fm_directory_view_get_selection_for_file_transfer (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 get_selection_for_file_transfer, (view));
-}
-
-guint
-fm_directory_view_get_item_count (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), 0);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 get_item_count, (view));
-}
-
 GtkUIManager *
 fm_directory_view_get_ui_manager (FMDirectoryView  *view)
 {
@@ -3623,7 +4063,7 @@ fm_directory_view_create_links_for_files (FMDirectoryView *view, GList *files,
 			    DUPLICATE_VERTICAL_ICON_OFFSET);
 
         copy_move_done_data = pre_copy_move (view);
-	dir_uri = fm_directory_view_get_backing_uri (view);
+	dir_uri = nautilus_view_get_backing_uri (view);
 	nautilus_file_operations_copy_move (uris, relative_item_points, dir_uri, GDK_ACTION_LINK, 
 					    GTK_WIDGET (view), copy_move_done_callback, copy_move_done_data);
 	g_free (dir_uri);
@@ -3782,200 +4222,6 @@ start_renaming_file (FMDirectoryView *view,
 	}
 }
 
-typedef struct {
-	FMDirectoryView *view;
-	NautilusFile *new_file;
-} RenameData;
-
-static gboolean
-delayed_rename_file_hack_callback (RenameData *data)
-{
-	FMDirectoryView *view;
-	NautilusFile *new_file;
-
-	view = data->view;
-	new_file = data->new_file;
-
-	if (view->details->window != NULL &&
-	    view->details->active) {
-		EEL_CALL_METHOD (FM_DIRECTORY_VIEW_CLASS, view, start_renaming_file, (view, new_file, FALSE));
-		fm_directory_view_reveal_selection (view);
-	}
-
-	return FALSE;
-}
-
-static void
-delayed_rename_file_hack_removed (RenameData *data)
-{
-	g_object_unref (data->view);
-	nautilus_file_unref (data->new_file);
-	g_free (data);
-}
-
-
-static void
-rename_file (FMDirectoryView *view, NautilusFile *new_file)
-{
-	RenameData *data;
-
-	/* HACK!!!!
-	   This is a work around bug in listview. After the rename is
-	   enabled we will get file changes due to info about the new
-	   file being read, which will cause the model to change. When
-	   the model changes GtkTreeView clears the editing. This hack just
-	   delays editing for some time to try to avoid this problem.
-	   A major problem is that the selection of the row causes us
-	   to load the slow mimetype for the file, which leads to a
-	   file_changed. So, before we delay we select the row.
-	*/
-	if (FM_IS_LIST_VIEW (view)) {
-		fm_directory_view_select_file (view, new_file);
-		
-		data = g_new (RenameData, 1);
-		data->view = g_object_ref (view);
-		data->new_file = nautilus_file_ref (new_file);
-		if (view->details->delayed_rename_file_id != 0) {
-			g_source_remove (view->details->delayed_rename_file_id);
-		}
-		view->details->delayed_rename_file_id = 
-			g_timeout_add_full (G_PRIORITY_DEFAULT,
-					    100, (GSourceFunc)delayed_rename_file_hack_callback,
-					    data, (GDestroyNotify) delayed_rename_file_hack_removed);
-		
-		return;
-	}
-
-	/* no need to select because start_renaming_file selects
-	 * fm_directory_view_select_file (view, new_file);
-	 */
-	EEL_CALL_METHOD (FM_DIRECTORY_VIEW_CLASS, view, start_renaming_file, (view, new_file, FALSE));
-	fm_directory_view_reveal_selection (view);
-}
-
-static void
-reveal_newly_added_folder (FMDirectoryView *view, NautilusFile *new_file,
-			   NautilusDirectory *directory, GFile *target_location)
-{
-	GFile *location;
-
-	location = nautilus_file_get_location (new_file);
-	if (g_file_equal (location, target_location)) {
-		g_signal_handlers_disconnect_by_func (view,
-						      G_CALLBACK (reveal_newly_added_folder),
-						      (void *) target_location);
-		rename_file (view, new_file);
-	}
-	g_object_unref (location);
-}
-
-typedef struct {
-	FMDirectoryView *directory_view;
-	GHashTable *added_locations;
-} NewFolderData;
-
-
-static void
-track_newly_added_locations (FMDirectoryView *view, NautilusFile *new_file,
-			     NautilusDirectory *directory, gpointer user_data)
-{
-	NewFolderData *data;
-
-	data = user_data;
-
-	g_hash_table_insert (data->added_locations, nautilus_file_get_location (new_file), NULL);
-}
-
-static void
-new_folder_done (GFile *new_folder, gpointer user_data)
-{
-	FMDirectoryView *directory_view;
-	NautilusFile *file;
-	char screen_string[32];
-	GdkScreen *screen;
-	NewFolderData *data;
-
-	data = (NewFolderData *)user_data;
-
-	directory_view = data->directory_view;
-
-	if (directory_view == NULL) {
-		goto fail;
-	}
-
-	g_signal_handlers_disconnect_by_func (directory_view,
-					      G_CALLBACK (track_newly_added_locations),
-					      (void *) data);
-
-	if (new_folder == NULL) {
-		goto fail;
-	}
-	
-	screen = gtk_widget_get_screen (GTK_WIDGET (directory_view));
-	g_snprintf (screen_string, sizeof (screen_string), "%d", gdk_screen_get_number (screen));
-
-	
-	file = nautilus_file_get (new_folder);
-	nautilus_file_set_metadata
-		(file, NAUTILUS_METADATA_KEY_SCREEN,
-		 NULL,
-		 screen_string);
-
-	if (g_hash_table_lookup_extended (data->added_locations, new_folder, NULL, NULL)) {
-		/* The file was already added */
-		rename_file (directory_view, file);
-	} else {
-		/* We need to run after the default handler adds the folder we want to
-		 * operate on. The ADD_FILE signal is registered as G_SIGNAL_RUN_LAST, so we
-		 * must use connect_after.
-		 */
-		g_signal_connect_data (directory_view,
-				       "add_file",
-				       G_CALLBACK (reveal_newly_added_folder),
-				       g_object_ref (new_folder),
-				       (GClosureNotify)g_object_unref,
-				       G_CONNECT_AFTER);
-	}
-	nautilus_file_unref (file);
-
- fail:
-	g_hash_table_destroy (data->added_locations);
-	eel_remove_weak_pointer (&data->directory_view);
-	g_free (data);
-}
-
-
-static NewFolderData *
-new_folder_data_new (FMDirectoryView *directory_view)
-{
-	NewFolderData *data;
-
-	data = g_new (NewFolderData, 1);
-	data->directory_view = directory_view;
-	data->added_locations = g_hash_table_new_full (g_file_hash, (GEqualFunc)g_file_equal,
-						       g_object_unref, NULL);
-	eel_add_weak_pointer (&data->directory_view);
-
-	return data;
-}
-
-static GdkPoint *
-context_menu_to_file_operation_position (FMDirectoryView *directory_view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (directory_view), NULL);
-
-	if (fm_directory_view_using_manual_layout (directory_view)
-	    && directory_view->details->context_menu_position.x >= 0
-	    && directory_view->details->context_menu_position.y >= 0) {
-		EEL_CALL_METHOD (FM_DIRECTORY_VIEW_CLASS, directory_view,
-				 widget_to_file_operation_position,
-				 (directory_view, &directory_view->details->context_menu_position));
-		return &directory_view->details->context_menu_position;
-	} else {
-		return NULL;
-	}
-}
-
 static void
 update_context_menu_position_from_event (FMDirectoryView *view,
 					 GdkEventButton  *event)
@@ -3991,119 +4237,6 @@ update_context_menu_position_from_event (FMDirectoryView *view,
 	}
 }
 
-void
-fm_directory_view_new_folder (FMDirectoryView *directory_view)
-{
-	char *parent_uri;
-	NewFolderData *data;
-	GdkPoint *pos;
-
-	data = new_folder_data_new (directory_view);
-
-	g_signal_connect_data (directory_view,
-			       "add_file",
-			       G_CALLBACK (track_newly_added_locations),
-			       data,
-			       (GClosureNotify)NULL,
-			       G_CONNECT_AFTER);
-
-	pos = context_menu_to_file_operation_position (directory_view);
-
-	parent_uri = fm_directory_view_get_backing_uri (directory_view);
-	nautilus_file_operations_new_folder (GTK_WIDGET (directory_view),
-					     pos, parent_uri,
-					     new_folder_done, data);
-
-	g_free (parent_uri);
-}
-
-static NewFolderData *
-setup_new_folder_data (FMDirectoryView *directory_view)
-{
-	NewFolderData *data;
-
-	data = new_folder_data_new (directory_view);
-
-	g_signal_connect_data (directory_view,
-			       "add_file",
-			       G_CALLBACK (track_newly_added_locations),
-			       data,
-			       (GClosureNotify)NULL,
-			       G_CONNECT_AFTER);
-
-	return data;
-}
-
-static void
-fm_directory_view_new_file_with_initial_contents (FMDirectoryView *directory_view,
-						  const char *parent_uri,
-						  const char *filename,
-						  const char *initial_contents,
-						  int length,
-						  GdkPoint *pos)
-{
-	NewFolderData *data;
-
-	g_assert (parent_uri != NULL);
-
-	data = setup_new_folder_data (directory_view);
-
-	if (pos == NULL) {
-		pos = context_menu_to_file_operation_position (directory_view);
-	}
-
-	nautilus_file_operations_new_file (GTK_WIDGET (directory_view),
-					   pos, parent_uri, filename,
-					   initial_contents, length,
-					   new_folder_done, data);
-}
-
-void
-fm_directory_view_new_file (FMDirectoryView *directory_view,
-			    const char *parent_uri,
-			    NautilusFile *source)
-{
-	GdkPoint *pos;
-	NewFolderData *data;
-	char *source_uri;
-	char *container_uri;
-
-	container_uri = NULL;
-	if (parent_uri == NULL) {
-		container_uri = fm_directory_view_get_backing_uri (directory_view);
-		g_assert (container_uri != NULL);
-	}
-
-	if (source == NULL) {
-		fm_directory_view_new_file_with_initial_contents (directory_view,
-								  parent_uri != NULL ? parent_uri : container_uri,
-								  NULL,
-								  NULL,
-								  0,
-								  NULL);
-		g_free (container_uri);
-		return;
-	}
-
-	g_return_if_fail (nautilus_file_is_local (source));
-
-	pos = context_menu_to_file_operation_position (directory_view);
-
-	data = setup_new_folder_data (directory_view);
-
-	source_uri = nautilus_file_get_uri (source);
-
-	nautilus_file_operations_new_file_from_template (GTK_WIDGET (directory_view),
-							 pos,
-							 parent_uri != NULL ? parent_uri : container_uri,
-							 NULL,
-							 source_uri,
-							 new_folder_done, data);
-
-	g_free (source_uri);
-	g_free (container_uri);
-}
-
 /* handle the open command */
 
 static void
@@ -5780,10 +5913,9 @@ move_copy_selection_to_location (FMDirectoryView *view,
 	}
 	uris = g_list_reverse (uris);
 
-	fm_directory_view_move_copy_items (uris, NULL, target_uri,
-					   copy_action,
-					   0, 0,
-					   view);
+	nautilus_view_move_copy_items (view, uris, NULL, target_uri,
+				       copy_action,
+				       0, 0);
 
 	g_list_free_full (uris, g_free);
 	nautilus_file_list_free (selection);
@@ -5915,10 +6047,9 @@ paste_clipboard_data (FMDirectoryView *view,
 		nautilus_window_slot_set_status (view->details->slot,
 						      _("There is nothing on the clipboard to paste."));
 	} else {
-		fm_directory_view_move_copy_items (item_uris, NULL, destination_uri,
-						   cut ? GDK_ACTION_MOVE : GDK_ACTION_COPY,
-						   0, 0,
-						   view);
+		nautilus_view_move_copy_items (view, item_uris, NULL, destination_uri,
+					       cut ? GDK_ACTION_MOVE : GDK_ACTION_COPY,
+					       0, 0);
 
 		/* If items are cut then remove from clipboard */
 		if (cut) {
@@ -5939,7 +6070,7 @@ paste_clipboard_received_callback (GtkClipboard     *clipboard,
 
 	view = FM_DIRECTORY_VIEW (data);
 
-	view_uri = fm_directory_view_get_backing_uri (view);
+	view_uri = nautilus_view_get_backing_uri (view);
 
 	if (view->details->window != NULL) {
 		paste_clipboard_data (view, selection_data, view_uri);
@@ -6125,6 +6256,16 @@ file_mount_callback (NautilusFile  *file,
 }
 
 static void
+fm_directory_view_set_initiated_unmount (FMDirectoryView *view,
+					 gboolean initiated_unmount)
+{
+	if (view->details->window != NULL) {
+		nautilus_window_set_initiated_unmount(view->details->window,
+							   initiated_unmount);
+	}
+}
+
+static void
 file_unmount_callback (NautilusFile  *file,
 		       GFile         *result_location,
 		       GError        *error,
@@ -9001,7 +9142,7 @@ nautilus_view_drop_proxy_received_uris (NautilusView *view,
 
 	container_uri = NULL;
 	if (target_uri == NULL) {
-		container_uri = fm_directory_view_get_backing_uri (view);
+		container_uri = nautilus_view_get_backing_uri (view);
 		g_assert (container_uri != NULL);
 	}
 
@@ -9018,9 +9159,9 @@ nautilus_view_drop_proxy_received_uris (NautilusView *view,
 						    source_uri_list,
 						    fm_directory_view_get_copied_files_atom (view));
 
-	fm_directory_view_move_copy_items (source_uri_list, NULL,
-					   target_uri != NULL ? target_uri : container_uri,
-					   action, 0, 0, view);
+	nautilus_view_move_copy_items (view, source_uri_list, NULL,
+				       target_uri != NULL ? target_uri : container_uri,
+				       action, 0, 0);
 
 	g_free (container_uri);
 }
@@ -9191,7 +9332,7 @@ load_directory (FMDirectoryView *view,
 	g_assert (NAUTILUS_IS_DIRECTORY (directory));
 
 	nautilus_view_stop_loading (view);
-	fm_directory_view_clear (view);
+	g_signal_emit (view, signals[CLEAR], 0);
 
 	view->details->loading = TRUE;
 
@@ -9266,7 +9407,7 @@ finish_loading (FMDirectoryView *view)
 	/* Tell interested parties that we've begun loading this directory now.
 	 * Subclasses use this to know that the new metadata is now available.
 	 */
-	fm_directory_view_begin_loading (view);
+	g_signal_emit (view, signals[BEGIN_LOADING], 0);
 
 	/* Assume we have now all information to show window */
 	nautilus_window_view_visible  (view->details->window, NAUTILUS_VIEW (view));
@@ -9361,16 +9502,6 @@ metadata_for_files_in_directory_ready_callback (NautilusDirectory *directory,
 	finish_loading_if_all_metadata_loaded (view);
 }
 
-char **
-fm_directory_view_get_emblem_names_to_exclude (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 get_emblem_names_to_exclude, (view));
-}
-
 static char **
 real_get_emblem_names_to_exclude (FMDirectoryView *view)
 {
@@ -9393,32 +9524,6 @@ real_get_emblem_names_to_exclude (FMDirectoryView *view)
 	return excludes;
 }
 
-/**
- * fm_directory_view_merge_menus:
- * 
- * Add this view's menus to the window's menu bar.
- * @view: FMDirectoryView in question.
- */
-static void
-fm_directory_view_merge_menus (FMDirectoryView *view)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 merge_menus, (view));
-}
-
-static void
-fm_directory_view_unmerge_menus (FMDirectoryView *view)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 unmerge_menus, (view));
-}
-
 static void
 disconnect_handler (GObject *object, int *id)
 {
@@ -9463,62 +9568,6 @@ disconnect_model_handlers (FMDirectoryView *view)
 				      &view->details->directory_as_file);
 }
 
-/**
- * fm_directory_view_reset_to_defaults:
- *
- * set sorting order, zoom level, etc. to match defaults
- * 
- **/
-void
-fm_directory_view_reset_to_defaults (FMDirectoryView *view)
-{
-	NautilusWindowShowHiddenFilesMode mode;
-
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-	
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 reset_to_defaults, (view));
-	mode = nautilus_window_get_hidden_files_mode (view->details->window);
-	if (mode != NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT) {
-		nautilus_window_set_hidden_files_mode (view->details->window,
-							    NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT);
-	}
-}
-
-/**
- * fm_directory_view_select_all:
- *
- * select all the items in the view
- * 
- **/
-void
-fm_directory_view_select_all (FMDirectoryView *view)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 select_all, (view));
-}
-
-/**
- * fm_directory_view_set_selection:
- *
- * set the selection to the items identified in @selection. @selection
- * should be a list of NautilusFiles
- * 
- **/
-void
-fm_directory_view_set_selection (FMDirectoryView *view, GList *selection)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 set_selection, (view, selection));
-}
-
 static void
 fm_directory_view_select_file (FMDirectoryView *view, NautilusFile *file)
 {
@@ -9530,38 +9579,6 @@ fm_directory_view_select_file (FMDirectoryView *view, NautilusFile *file)
 	fm_directory_view_set_selection (view, &file_list);
 }
 
-/**
- * fm_directory_view_get_selected_icon_locations:
- *
- * return an array of locations of selected icons if available
- * Return value: GArray of GdkPoints
- * 
- **/
-GArray *
-fm_directory_view_get_selected_icon_locations (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 get_selected_icon_locations, (view));
-}
-
-/**
- * fm_directory_view_reveal_selection:
- *
- * Scroll as necessary to reveal the selected items.
- **/
-void
-fm_directory_view_reveal_selection (FMDirectoryView *view)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 reveal_selection, (view));
-}
-
 static gboolean
 remove_all (gpointer key, gpointer value, gpointer callback_data)
 {
@@ -9603,26 +9620,6 @@ nautilus_view_stop_loading (FMDirectoryView *view)
 }
 
 gboolean
-fm_directory_view_is_read_only (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 is_read_only, (view));
-}
-
-gboolean
-fm_directory_view_is_empty (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 is_empty, (view));
-}
-
-gboolean
 fm_directory_view_is_editable (FMDirectoryView *view)
 {
 	NautilusDirectory *directory;
@@ -9636,16 +9633,6 @@ fm_directory_view_is_editable (FMDirectoryView *view)
 	return TRUE;
 }
 
-void
-fm_directory_view_set_initiated_unmount (FMDirectoryView *view,
-					 gboolean initiated_unmount)
-{
-	if (view->details->window != NULL) {
-		nautilus_window_set_initiated_unmount(view->details->window,
-							   initiated_unmount);
-	}
-}
-
 static gboolean
 real_is_read_only (FMDirectoryView *view)
 {
@@ -9662,26 +9649,6 @@ real_is_read_only (FMDirectoryView *view)
 	return FALSE;
 }
 
-gboolean
-fm_directory_view_supports_creating_files (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 supports_creating_files, (view));
-}
-
-gboolean
-fm_directory_view_accepts_dragged_files (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 accepts_dragged_files, (view));
-}
-
 /**
  * fm_directory_view_should_show_file
  * 
@@ -9705,24 +9672,6 @@ real_supports_creating_files (FMDirectoryView *view)
 }
 
 static gboolean
-real_accepts_dragged_files (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	return !fm_directory_view_is_read_only (view);
-}
-
-gboolean
-fm_directory_view_supports_properties (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 supports_properties, (view));
-}
-
-static gboolean
 real_supports_properties (FMDirectoryView *view)
 {
 	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
@@ -9730,16 +9679,6 @@ real_supports_properties (FMDirectoryView *view)
 	return TRUE;
 }
 
-gboolean
-nautilus_view_supports_zooming (FMDirectoryView *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 supports_zooming, (view));
-}
-
 static gboolean
 real_supports_zooming (FMDirectoryView *view)
 {
@@ -9748,16 +9687,6 @@ real_supports_zooming (FMDirectoryView *view)
 	return TRUE;
 }
 
-gboolean
-fm_directory_view_using_manual_layout (FMDirectoryView  *view)
-{
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	return EEL_CALL_METHOD_WITH_RETURN_VALUE
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 using_manual_layout, (view));
-}
-
 static gboolean
 real_using_manual_layout (FMDirectoryView *view)
 {
@@ -9766,29 +9695,6 @@ real_using_manual_layout (FMDirectoryView *view)
 	return FALSE;
 }
 
-/**
- * nautilus_view_update_menus:
- * 
- * Update the sensitivity and wording of dynamic menu items.
- * @view: FMDirectoryView in question.
- */
-void
-nautilus_view_update_menus (NautilusView *view)
-{
-	g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
-
-	if (!view->details->active) {
-		return;
-	}
-
-
-	EEL_CALL_METHOD
-		(FM_DIRECTORY_VIEW_CLASS, view,
-		 update_menus, (view));
-
-	view->details->menu_states_untrustworthy = FALSE;
-}
-
 static void
 schedule_update_menus_callback (gpointer callback_data)
 {
@@ -9825,41 +9731,13 @@ fm_directory_view_get_uri (FMDirectoryView *view)
 	return nautilus_directory_get_uri (view->details->model);
 }
 
-/* Get the real directory where files will be stored and created */
-char *
-fm_directory_view_get_backing_uri (FMDirectoryView *view)
-{
-	NautilusDirectory *directory;
-	char *uri;
-	
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
-
-	if (view->details->model == NULL) {
-		return NULL;
-	}
-	
-	directory = view->details->model;
-	
-	if (NAUTILUS_IS_DESKTOP_DIRECTORY (directory)) {
-		directory = nautilus_desktop_directory_get_real_directory (NAUTILUS_DESKTOP_DIRECTORY (directory));
-	} else {
-		nautilus_directory_ref (directory);
-	}
-	
-	uri = nautilus_directory_get_uri (directory);
-
-	nautilus_directory_unref (directory);
-
-	return uri;
-}
-
 void
-fm_directory_view_move_copy_items (const GList *item_uris,
-				   GArray *relative_item_points,
-				   const char *target_uri,
-				   int copy_action,
-				   int x, int y,
-				   FMDirectoryView *view)
+nautilus_view_move_copy_items (NautilusView *view,
+			       const GList *item_uris,
+			       GArray *relative_item_points,
+			       const char *target_uri,
+			       int copy_action,
+			       int x, int y)
 {
 	NautilusFile *target_file;
 	
@@ -9923,18 +9801,6 @@ fm_directory_view_move_copy_items (const GList *item_uris,
 		 copy_move_done_callback, pre_copy_move (view));
 }
 
-gboolean
-fm_directory_view_can_accept_item (NautilusFile *target_item,
-				   const char *item_uri,
-				   FMDirectoryView *view)
-{
-	g_return_val_if_fail (NAUTILUS_IS_FILE (target_item), FALSE);
-	g_return_val_if_fail (item_uri != NULL, FALSE);
-	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
-
-	return nautilus_drag_can_accept_item (target_item, item_uri);
-}
-
 static void
 fm_directory_view_trash_state_changed_callback (NautilusTrashMonitor *trash_monitor,
 						gboolean state, gpointer callback_data)
@@ -10717,7 +10583,6 @@ fm_directory_view_class_init (FMDirectoryViewClass *klass)
 			      g_cclosure_marshal_VOID__VOID,
 			      G_TYPE_NONE, 0);
 
-	klass->accepts_dragged_files = real_accepts_dragged_files;
 	klass->file_still_belongs = real_file_still_belongs;
 	klass->get_emblem_names_to_exclude = real_get_emblem_names_to_exclude;
 	klass->get_selected_icon_locations = real_get_selected_icon_locations;
diff --git a/src/nautilus-view.h b/src/nautilus-view.h
index 2c03196..b605e85 100644
--- a/src/nautilus-view.h
+++ b/src/nautilus-view.h
@@ -288,12 +288,6 @@ struct FMDirectoryViewClass {
 	 */
 	gboolean (* supports_creating_files)	(FMDirectoryView *view);
 
-	/* accepts_dragged_files is a function pointer that subclasses may
-	 * override to control whether or not files can be dropped in this
-	 * location. The default implementation returns TRUE.
-	 */
-	gboolean (* accepts_dragged_files)	(FMDirectoryView *view);
-
 	gboolean (* can_rename_file)            (FMDirectoryView *view,
 						 NautilusFile *file);
 	/* select_all specifies whether the whole filename should be selected
@@ -353,34 +347,10 @@ GType               fm_directory_view_get_type                         (void);
 NautilusWindow     *fm_directory_view_get_nautilus_window              (FMDirectoryView  *view);
 NautilusWindowSlot *fm_directory_view_get_nautilus_window_slot     (FMDirectoryView  *view);
 char *              fm_directory_view_get_uri                          (FMDirectoryView  *view);
-char *              fm_directory_view_get_backing_uri                  (FMDirectoryView  *view);
-gboolean            fm_directory_view_can_accept_item                  (NautilusFile     *target_item,
-									const char       *item_uri,
-									FMDirectoryView  *view);
+
 void                fm_directory_view_display_selection_info           (FMDirectoryView  *view);
 GList *             fm_directory_view_get_selection                    (FMDirectoryView  *view);
-GList *             fm_directory_view_get_selection_for_file_transfer  (FMDirectoryView  *view);
-void                fm_directory_view_invert_selection                 (FMDirectoryView  *view);
-guint               fm_directory_view_get_item_count                   (FMDirectoryView  *view);
-void                fm_directory_view_reset_to_defaults                (FMDirectoryView  *view);
-void                fm_directory_view_select_all                       (FMDirectoryView  *view);
-void                fm_directory_view_set_selection                    (FMDirectoryView  *view,
-									GList            *selection);
-GArray *            fm_directory_view_get_selected_icon_locations      (FMDirectoryView  *view);
-void                fm_directory_view_reveal_selection                 (FMDirectoryView  *view);
-gboolean            fm_directory_view_is_empty                         (FMDirectoryView  *view);
-gboolean            fm_directory_view_is_read_only                     (FMDirectoryView  *view);
-gboolean            fm_directory_view_supports_creating_files          (FMDirectoryView  *view);
-gboolean            fm_directory_view_accepts_dragged_files            (FMDirectoryView  *view);
-gboolean            fm_directory_view_supports_properties              (FMDirectoryView  *view);
-gboolean            fm_directory_view_using_manual_layout              (FMDirectoryView  *view);
-void                fm_directory_view_move_copy_items                  (const GList      *item_uris,
-									GArray           *relative_item_points,
-									const char       *target_uri,
-									int               copy_action,
-									int               x,
-									int               y,
-									FMDirectoryView  *view);
+
 GdkAtom	            fm_directory_view_get_copied_files_atom            (FMDirectoryView  *view);
 gboolean            fm_directory_view_get_active                       (FMDirectoryView  *view);
 
@@ -388,11 +358,6 @@ gboolean            fm_directory_view_get_active                       (FMDirect
  * only by FMDirectoryView itself. They have corresponding signals
  * that observers might want to connect with.
  */
-void                fm_directory_view_clear                            (FMDirectoryView  *view);
-void                fm_directory_view_begin_loading                    (FMDirectoryView  *view);
-void                fm_directory_view_end_loading                      (FMDirectoryView  *view,
-									gboolean          all_files_seen);
-
 gboolean            fm_directory_view_get_loading                      (FMDirectoryView  *view);
 
 /* Hooks for subclasses to call. These are normally called only by 
@@ -403,33 +368,21 @@ void                fm_directory_view_activate_files                   (FMDirect
 									NautilusWindowOpenMode  mode,
 									NautilusWindowOpenFlags flags,
 									gboolean                confirm_multiple);
-void                fm_directory_view_activate_file                    (FMDirectoryView        *view,
-									NautilusFile           *file,
-									NautilusWindowOpenMode  mode,
-									NautilusWindowOpenFlags flags);
 void                fm_directory_view_start_batching_selection_changes (FMDirectoryView  *view);
 void                fm_directory_view_stop_batching_selection_changes  (FMDirectoryView  *view);
-void                fm_directory_view_queue_file_change                (FMDirectoryView  *view,
-									NautilusFile     *file);
 void                fm_directory_view_notify_selection_changed         (FMDirectoryView  *view);
 GtkUIManager *      fm_directory_view_get_ui_manager                   (FMDirectoryView  *view);
 char **             fm_directory_view_get_emblem_names_to_exclude      (FMDirectoryView  *view);
 NautilusDirectory  *fm_directory_view_get_model                        (FMDirectoryView  *view);
-GtkWindow	   *fm_directory_view_get_containing_window	       (FMDirectoryView  *view);
 NautilusFile       *fm_directory_view_get_directory_as_file            (FMDirectoryView  *view);
 gboolean            fm_directory_view_get_allow_moves                  (FMDirectoryView  *view);
 void                fm_directory_view_pop_up_background_context_menu   (FMDirectoryView  *view,
 									GdkEventButton   *event);
 void                fm_directory_view_pop_up_selection_context_menu    (FMDirectoryView  *view,
 									GdkEventButton   *event); 
-void                fm_directory_view_send_selection_change            (FMDirectoryView *view);
 gboolean            fm_directory_view_should_show_file                 (FMDirectoryView  *view,
 									NautilusFile     *file);
 gboolean	    fm_directory_view_should_sort_directories_first    (FMDirectoryView  *view);
-void                fm_directory_view_new_folder                       (FMDirectoryView  *view);
-void                fm_directory_view_new_file                         (FMDirectoryView  *view,
-									const char       *parent_uri,
-									NautilusFile     *source);
 void                fm_directory_view_ignore_hidden_file_preferences   (FMDirectoryView  *view);
 void                fm_directory_view_set_show_foreign                 (FMDirectoryView  *view,
 		                                                        gboolean          show_foreign);
@@ -469,16 +422,27 @@ void                fm_directory_view_remove_subdirectory             (FMDirecto
 									NautilusDirectory*directory);
 
 gboolean            fm_directory_view_is_editable                     (FMDirectoryView *view);
-void		    fm_directory_view_set_initiated_unmount	      (FMDirectoryView *view,
-									gboolean inititated_unmount);
-
-/* operations affecting two directory views */
-void                fm_directory_view_move_copy_items_between_views   (FMDirectoryView *source, FMDirectoryView *target, gboolean copy);
-
 
 /* NautilusView methods */
 const char *      nautilus_view_get_view_id                (NautilusView      *view);
 GtkWidget *       nautilus_view_get_widget                 (NautilusView      *view);
+
+/* file operations */
+char *            nautilus_view_get_backing_uri            (NautilusView      *view);
+void              nautilus_view_move_copy_items            (NautilusView      *view,
+							    const GList       *item_uris,
+							    GArray            *relative_item_points,
+							    const char        *target_uri,
+							    int                copy_action,
+							    int                x,
+							    int                y);
+void nautilus_view_new_file_with_initial_contents (NautilusView *view,
+						   const char *parent_uri,
+						   const char *filename,
+						   const char *initial_contents,
+						   int length,
+						   GdkPoint *pos);
+
 void              nautilus_view_load_location              (NautilusView      *view,
 							    const char        *location_uri);
 void              nautilus_view_stop_loading               (NautilusView      *view);
@@ -486,7 +450,7 @@ int               nautilus_view_get_selection_count        (NautilusView      *v
 GList *           nautilus_view_get_selection              (NautilusView      *view);
 void              nautilus_view_set_selection              (NautilusView      *view,
 							    GList             *list);
-void              nautilus_view_invert_selection           (NautilusView      *view);
+
 char *            nautilus_view_get_first_visible_file     (NautilusView      *view);
 void              nautilus_view_scroll_to_file             (NautilusView      *view,
 							    const char        *uri);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]