[nautilus] all: move the floating bar to NautilusWindowSlot



commit b220d722a0748763ebe1370a49831c24d734f7f8
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Thu Feb 24 18:15:15 2011 -0500

    all: move the floating bar to NautilusWindowSlot

 src/nautilus-floating-bar.h        |    2 +
 src/nautilus-icon-view.c           |    9 +-
 src/nautilus-list-view.c           |    7 +-
 src/nautilus-view.c                |  181 +-----------------------------------
 src/nautilus-view.h                |    3 -
 src/nautilus-window-manage-views.c |   33 +++++++-
 src/nautilus-window-slot.c         |  124 ++++++++++++++++++++++++-
 src/nautilus-window-slot.h         |    8 ++-
 8 files changed, 172 insertions(+), 195 deletions(-)
---
diff --git a/src/nautilus-floating-bar.h b/src/nautilus-floating-bar.h
index a438e3e..99f88a5 100644
--- a/src/nautilus-floating-bar.h
+++ b/src/nautilus-floating-bar.h
@@ -30,6 +30,8 @@
 
 #include "gedit-overlay-child.h"
 
+#define NAUTILUS_FLOATING_BAR_ACTION_ID_STOP 1
+
 #define NAUTILUS_TYPE_FLOATING_BAR nautilus_floating_bar_get_type()
 #define NAUTILUS_FLOATING_BAR(obj) \
   (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_FLOATING_BAR, NautilusFloatingBar))
diff --git a/src/nautilus-icon-view.c b/src/nautilus-icon-view.c
index 69105a6..ee6b4cb 100644
--- a/src/nautilus-icon-view.c
+++ b/src/nautilus-icon-view.c
@@ -2016,7 +2016,7 @@ icon_container_preview_callback (NautilusIconContainer *container,
 			g_free (file_name);
 			nautilus_window_slot_set_status
 				(nautilus_view_get_nautilus_window_slot (NAUTILUS_VIEW (icon_view)),
-				 message);
+				 message, NULL);
 			g_free (message);
 		} else {
 			nautilus_view_display_selection_info (NAUTILUS_VIEW(icon_view));
@@ -2541,7 +2541,6 @@ static NautilusIconContainer *
 create_icon_container (NautilusIconView *icon_view)
 {
 	NautilusIconContainer *icon_container;
-	GtkWidget *overlay;
 
 	icon_container = nautilus_icon_view_container_new (icon_view);
 	icon_view->details->icon_container = GTK_WIDGET (icon_container);
@@ -2599,10 +2598,8 @@ create_icon_container (NautilusIconView *icon_view)
 	g_signal_connect_object (icon_container, "store_layout_timestamp",
 				 G_CALLBACK (store_layout_timestamp), icon_view, 0);
 
-	overlay = gedit_overlay_new (GTK_WIDGET (icon_container));
-	gtk_widget_show (overlay);
-
-	nautilus_view_setup_overlay (NAUTILUS_VIEW (icon_view), overlay);
+	gtk_container_add (GTK_CONTAINER (icon_view),
+			   GTK_WIDGET (icon_container));
 
 	nautilus_icon_view_update_click_mode (icon_view);
 
diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c
index 4f4c949..f171b9e 100644
--- a/src/nautilus-list-view.c
+++ b/src/nautilus-list-view.c
@@ -1541,7 +1541,6 @@ create_and_set_up_tree_view (NautilusListView *view)
 {
 	GtkCellRenderer *cell;
 	GtkTreeViewColumn *column;
-	GtkWidget *overlay;
 	GtkBindingSet *binding_set;
 	AtkObject *atk_obj;
 	GList *nautilus_columns;
@@ -1724,11 +1723,7 @@ create_and_set_up_tree_view (NautilusListView *view)
 				default_visible_columns);
 
 	gtk_widget_show (GTK_WIDGET (view->details->tree_view));
-
-	overlay = gedit_overlay_new (GTK_WIDGET (view->details->tree_view));
-	gtk_widget_show (overlay);
-
-	nautilus_view_setup_overlay (NAUTILUS_VIEW (view), overlay);
+	gtk_container_add (GTK_CONTAINER (view), GTK_WIDGET (view->details->tree_view));
 
         atk_obj = gtk_widget_get_accessible (GTK_WIDGET (view->details->tree_view));
         atk_object_set_name (atk_obj, _("List View"));
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index 16a98f5..8db8f74 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -31,11 +31,9 @@
 
 #include "nautilus-view.h"
 
-#include "gedit-overlay.h"
 #include "nautilus-actions.h"
 #include "nautilus-desktop-icon-view.h"
 #include "nautilus-error-reporting.h"
-#include "nautilus-floating-bar.h"
 #include "nautilus-list-view.h"
 #include "nautilus-mime-actions.h"
 #include "nautilus-properties-window.h"
@@ -125,8 +123,6 @@
 #define MAX_MENU_LEVELS 5
 #define TEMPLATE_LIMIT 30
 
-#define FLOATING_BAR_ACTION_ID_STOP 1
-
 enum {
 	ADD_FILE,
 	BEGIN_FILE_CHANGES,
@@ -147,7 +143,6 @@ enum {
 
 enum {
 	PROP_WINDOW_SLOT = 1,
-	PROP_SHOW_FLOATING_BAR,
 	PROP_SUPPORTS_ZOOMING,
 	NUM_PROPERTIES
 };
@@ -171,10 +166,6 @@ struct NautilusViewDetails
 	GtkActionGroup *dir_action_group;
 	guint dir_merge_id;
 
-	GtkWidget *overlay;
-	GtkWidget *floating_bar;
-
-	gboolean show_floating_bar;
 	gboolean supports_zooming;
 
 	GList *scripts_directory_list;
@@ -192,7 +183,6 @@ struct NautilusViewDetails
 	guint update_menus_timeout_id;
 	guint update_status_idle_id;
 	guint reveal_selection_idle_id;
-	guint set_status_timeout_id;
 
 	guint display_pending_source_id;
 	guint changes_timeout_id;
@@ -2678,11 +2668,6 @@ nautilus_view_destroy (GtkWidget *object)
 		view->details->delayed_rename_file_id = 0;
 	}
 
-	if (view->details->set_status_timeout_id != 0) {
-		g_source_remove (view->details->set_status_timeout_id);
-		view->details->set_status_timeout_id = 0;
-	}
-
 	if (view->details->model) {
 		nautilus_directory_unref (view->details->model);
 		view->details->model = NULL;
@@ -2727,90 +2712,6 @@ nautilus_view_finalize (GObject *object)
 	EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object));
 }
 
-static void
-real_view_set_status (NautilusView *view,
-		      const gchar *status)
-{
-	
-	gboolean show_statusbar;
-
-	nautilus_floating_bar_cleanup_actions (NAUTILUS_FLOATING_BAR (view->details->floating_bar));
-	nautilus_floating_bar_set_show_spinner (NAUTILUS_FLOATING_BAR (view->details->floating_bar),
-						FALSE);
-
-	show_statusbar = g_settings_get_boolean (nautilus_window_state,
-						 NAUTILUS_WINDOW_STATE_START_WITH_STATUS_BAR);
-
-	if (status == NULL || show_statusbar) {
-		gtk_widget_hide (view->details->floating_bar);
-		return;
-	}
-
-	nautilus_floating_bar_set_label (NAUTILUS_FLOATING_BAR (view->details->floating_bar), status);
-	gtk_widget_show (view->details->floating_bar);
-}
-
-typedef struct {
-	gchar *status;
-	NautilusView *view;
-} SetStatusData;
-
-static void
-set_status_data_free (gpointer data)
-{
-	SetStatusData *status_data = data;
-
-	g_free (status_data->status);
-	g_object_unref (status_data->view);
-
-	g_slice_free (SetStatusData, data);
-}
-
-static gboolean
-set_status_timeout_cb (gpointer data)
-{
-	SetStatusData *status_data = data;
-
-	status_data->view->details->set_status_timeout_id = 0;
-	real_view_set_status (status_data->view, status_data->status);
-
-	return FALSE;
-}
-
-static void
-nautilus_view_set_status (NautilusView *view,
-			  const gchar *status)
-{
-	GtkSettings *settings;
-	gint double_click_time;
-	SetStatusData *status_data;
-
-	if (view->details->set_status_timeout_id != 0) {
-		g_source_remove (view->details->set_status_timeout_id);
-		view->details->set_status_timeout_id = 0;
-	}
-
-	settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (view)));
-	g_object_get (settings,
-		      "gtk-double-click-time", &double_click_time,
-		      NULL);
-
-	status_data = g_slice_new0 (SetStatusData);
-	status_data->status = g_strdup (status);
-	status_data->view = g_object_ref (view);
-
-	/* waiting for half of the double-click-time before setting
-	 * the status seems to be a good approximation of not setting it
-	 * too often and not delaying the statusbar too much.
-	 */
-	view->details->set_status_timeout_id =
-		g_timeout_add_full (G_PRIORITY_DEFAULT,
-				    (guint) (double_click_time / 2),
-				    set_status_timeout_cb,
-				    status_data,
-				    set_status_data_free);
-}
-
 /**
  * nautilus_view_display_selection_info:
  *
@@ -3054,8 +2955,8 @@ nautilus_view_display_selection_info (NautilusView *view)
 	}
 
 	nautilus_window_slot_set_status (view->details->slot,
-					 status_string);
-	nautilus_view_set_status (view, view_status_string);
+					 status_string,
+					 view_status_string);
 
 	g_free (status_string);
 	g_free (view_status_string);
@@ -3097,13 +2998,6 @@ reveal_selection_idle_callback (gpointer data)
 }
 
 static void
-remove_loading_floating_bar (NautilusView *view)
-{
-	gtk_widget_hide (view->details->floating_bar);
-	nautilus_floating_bar_cleanup_actions (NAUTILUS_FLOATING_BAR (view->details->floating_bar));
-}
-
-static void
 done_loading (NautilusView *view,
 	      gboolean all_files_seen)
 {
@@ -3156,8 +3050,6 @@ done_loading (NautilusView *view,
 
 	g_signal_emit (view, signals[END_LOADING], 0, all_files_seen);
 
-	remove_loading_floating_bar (view);
-
 	view->details->loading = FALSE;
 }
 
@@ -5898,7 +5790,7 @@ copy_or_cut_files (NautilusView *view,
 	}
 
 	nautilus_window_slot_set_status (view->details->slot,
-					 status_string);
+					 status_string, NULL);
 	g_free (status_string);
 }
 
@@ -6067,7 +5959,8 @@ paste_clipboard_data (NautilusView *view,
 
 	if (item_uris == NULL|| destination_uri == NULL) {
 		nautilus_window_slot_set_status (view->details->slot,
-						 _("There is nothing on the clipboard to paste."));
+						 _("There is nothing on the clipboard to paste."),
+						 NULL);
 	} else {
 		nautilus_view_move_copy_items (view, item_uris, NULL, destination_uri,
 					       cut ? GDK_ACTION_MOVE : GDK_ACTION_COPY,
@@ -9209,26 +9102,6 @@ load_directory (NautilusView *view,
 }
 
 static void
-setup_loading_floating_bar (NautilusView *view)
-{
-	/* setup loading overlay */
-	if (view->details->set_status_timeout_id != 0) {
-		g_source_remove (view->details->set_status_timeout_id);
-		view->details->set_status_timeout_id = 0;
-	}
-
-	nautilus_floating_bar_set_label (NAUTILUS_FLOATING_BAR (view->details->floating_bar),
-					 NAUTILUS_IS_SEARCH_DIRECTORY (view->details->model) ?
-					 _("Searching...") : _("Loading..."));
-	nautilus_floating_bar_set_show_spinner (NAUTILUS_FLOATING_BAR (view->details->floating_bar),
-						TRUE);
-	nautilus_floating_bar_add_action (NAUTILUS_FLOATING_BAR (view->details->floating_bar),
-					  GTK_STOCK_STOP,
-					  FLOATING_BAR_ACTION_ID_STOP);
-	gtk_widget_show (view->details->floating_bar);
-}
-
-static void
 finish_loading (NautilusView *view)
 {
 	NautilusFileAttributes attributes;
@@ -9241,8 +9114,6 @@ finish_loading (NautilusView *view)
 	 */
 	g_signal_emit (view, signals[BEGIN_LOADING], 0);
 
-	setup_loading_floating_bar (view);
-
 	/* Assume we have now all information to show window */
 	nautilus_window_view_visible  (view->details->window, NAUTILUS_VIEW (view));
 
@@ -9643,38 +9514,6 @@ real_get_selected_icon_locations (NautilusView *view)
 }
 
 static void
-floating_bar_action_cb (NautilusFloatingBar *floating_bar,
-			gint action,
-			NautilusView *view)
-{
-	if (action == FLOATING_BAR_ACTION_ID_STOP) {
-		nautilus_view_stop_loading (view);
-	}
-}
-
-void
-nautilus_view_setup_overlay (NautilusView *view,
-			     GtkWidget *overlay)
-{
-	if (view->details->overlay != NULL) {
-		g_warning ("Trying to add a view overlay two times, ignoring.");
-		return;
-	}
-
-	gtk_container_add (GTK_CONTAINER (view), overlay);
-	view->details->overlay = overlay;
-
-	view->details->floating_bar = nautilus_floating_bar_new ("", FALSE);
-	gedit_overlay_add (GEDIT_OVERLAY (view->details->overlay),
-			   view->details->floating_bar,
-			   GEDIT_OVERLAY_CHILD_POSITION_SOUTH_EAST,
-			   0);
-
-	g_signal_connect (view->details->floating_bar, "action",
-			  G_CALLBACK (floating_bar_action_cb), view);
-}
-
-static void
 nautilus_view_set_property (GObject         *object,
 			    guint            prop_id,
 			    const GValue    *value,
@@ -9708,9 +9547,6 @@ nautilus_view_set_property (GObject         *object,
 					 directory_view, 0);
 		nautilus_view_init_show_hidden_files (directory_view);
 		break;
-	case PROP_SHOW_FLOATING_BAR:
-		directory_view->details->show_floating_bar = g_value_get_boolean (value);
-		break;
 	case PROP_SUPPORTS_ZOOMING:
 		directory_view->details->supports_zooming = g_value_get_boolean (value);
 		break;
@@ -9965,13 +9801,6 @@ nautilus_view_class_init (NautilusViewClass *klass)
 				     NAUTILUS_TYPE_WINDOW_SLOT,
 				     G_PARAM_WRITABLE |
 				     G_PARAM_CONSTRUCT_ONLY);
-	properties[PROP_SHOW_FLOATING_BAR] =
-		g_param_spec_boolean ("show-floating-bar",
-				      "Show floating bar",
-				      "Whether the floating bar should be shown",
-				      TRUE,
-				      G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY |
-				      G_PARAM_STATIC_STRINGS);
 	properties[PROP_SUPPORTS_ZOOMING] =
 		g_param_spec_boolean ("supports-zooming",
 				      "Supports zooming",
diff --git a/src/nautilus-view.h b/src/nautilus-view.h
index 31ab354..f83bfda 100644
--- a/src/nautilus-view.h
+++ b/src/nautilus-view.h
@@ -402,7 +402,4 @@ void              nautilus_view_update_menus               (NautilusView      *v
 void              nautilus_view_set_is_active              (NautilusView      *view,
 							    gboolean           is_active);
 
-void              nautilus_view_setup_overlay              (NautilusView      *view,
-							    GtkWidget         *overlay);
-
 #endif /* NAUTILUS_VIEW_H */
diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c
index a685888..775e14c 100644
--- a/src/nautilus-window-manage-views.c
+++ b/src/nautilus-window-manage-views.c
@@ -30,6 +30,7 @@
 
 #include "nautilus-actions.h"
 #include "nautilus-application.h"
+#include "nautilus-floating-bar.h"
 #include "nautilus-location-bar.h"
 #include "nautilus-search-bar.h"
 #include "nautilus-pathbar.h"
@@ -697,7 +698,7 @@ begin_location_change (NautilusWindowSlot *slot,
 	end_location_change (slot);
 
 	nautilus_window_slot_set_allow_stop (slot, TRUE);
-	nautilus_window_slot_set_status (slot, " ");
+	nautilus_window_slot_set_status (slot, " ", NULL);
 
 	g_assert (slot->pending_location == NULL);
 	g_assert (slot->pending_selection == NULL);
@@ -1161,6 +1162,26 @@ nautilus_window_report_location_change (NautilusWindow *window)
 	}
 }
 
+static void
+setup_loading_floating_bar (NautilusWindowSlot *slot)
+{
+	/* setup loading overlay */
+	if (slot->set_status_timeout_id != 0) {
+		g_source_remove (slot->set_status_timeout_id);
+		slot->set_status_timeout_id = 0;
+	}
+
+	nautilus_floating_bar_set_label (NAUTILUS_FLOATING_BAR (slot->floating_bar),
+					 NAUTILUS_IS_SEARCH_DIRECTORY (nautilus_view_get_model (slot->content_view)) ?
+					 _("Searching...") : _("Loading..."));
+	nautilus_floating_bar_set_show_spinner (NAUTILUS_FLOATING_BAR (slot->floating_bar),
+						TRUE);
+	nautilus_floating_bar_add_action (NAUTILUS_FLOATING_BAR (slot->floating_bar),
+					  GTK_STOCK_STOP,
+					  NAUTILUS_FLOATING_BAR_ACTION_ID_STOP);
+	gtk_widget_show (slot->floating_bar);
+}
+
 /* This is called when we have decided we can actually change to the new view/location situation. */
 static void
 location_has_really_changed (NautilusWindowSlot *slot)
@@ -1200,6 +1221,8 @@ location_has_really_changed (NautilusWindowSlot *slot)
 
 		g_object_unref (location_copy);
 	}
+
+	setup_loading_floating_bar (slot);
 }
 
 static void
@@ -1464,6 +1487,13 @@ nautilus_window_report_load_complete (NautilusWindow *window,
 }
 
 static void
+remove_loading_floating_bar (NautilusWindowSlot *slot)
+{
+	gtk_widget_hide (slot->floating_bar);
+	nautilus_floating_bar_cleanup_actions (NAUTILUS_FLOATING_BAR (slot->floating_bar));
+}
+
+static void
 end_location_change (NautilusWindowSlot *slot)
 {
 	char *uri;
@@ -1475,6 +1505,7 @@ end_location_change (NautilusWindowSlot *slot)
 	}
 
 	nautilus_window_slot_set_allow_stop (slot, FALSE);
+	remove_loading_floating_bar (slot);
 
         /* Now we can free pending_scroll_to, since the load_complete
          * callback already has been emitted.
diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c
index 5a91de0..916a5df 100644
--- a/src/nautilus-window-slot.c
+++ b/src/nautilus-window-slot.c
@@ -23,11 +23,16 @@
 */
 #include "nautilus-window-slot.h"
 
+#include "gedit-overlay.h"
 #include "nautilus-desktop-window.h"
+#include "nautilus-floating-bar.h"
 #include "nautilus-window-private.h"
 #include "nautilus-window-manage-views.h"
+
 #include <libnautilus-private/nautilus-file.h>
 #include <libnautilus-private/nautilus-file-utilities.h>
+#include <libnautilus-private/nautilus-global-preferences.h>
+
 #include <eel/eel-gtk-macros.h>
 #include <eel/eel-string.h>
 
@@ -155,6 +160,16 @@ real_inactive (NautilusWindowSlot *slot)
 }
 
 static void
+floating_bar_action_cb (NautilusFloatingBar *floating_bar,
+			gint action,
+			NautilusWindowSlot *slot)
+{
+	if (action == NAUTILUS_FLOATING_BAR_ACTION_ID_STOP) {
+		nautilus_window_slot_stop_loading (slot);
+	}
+}
+
+static void
 nautilus_window_slot_init (NautilusWindowSlot *slot)
 {
 	GtkWidget *content_box, *eventbox, *extras_vbox, *frame;
@@ -180,9 +195,20 @@ nautilus_window_slot_init (NautilusWindowSlot *slot)
 	gtk_widget_show (extras_vbox);
 
 	slot->view_box = gtk_vbox_new (FALSE, 0);
-	gtk_box_pack_start (GTK_BOX (content_box), slot->view_box, TRUE, TRUE, 0);
+	slot->view_overlay = gedit_overlay_new (slot->view_box);
+	gtk_box_pack_start (GTK_BOX (content_box), slot->view_overlay, TRUE, TRUE, 0);
+	gtk_widget_show (slot->view_overlay);
 	gtk_widget_show (slot->view_box);
 
+	slot->floating_bar = nautilus_floating_bar_new ("", FALSE);
+	gedit_overlay_add (GEDIT_OVERLAY (slot->view_overlay),
+			   slot->floating_bar,
+			   GEDIT_OVERLAY_CHILD_POSITION_SOUTH_EAST,
+			   0);
+
+	g_signal_connect (slot->floating_bar, "action",
+			  G_CALLBACK (floating_bar_action_cb), slot);
+
 	slot->title = g_strdup (_("Loading..."));
 }
 
@@ -211,6 +237,11 @@ nautilus_window_slot_dispose (GObject *object)
 		slot->new_content_view = NULL;
 	}
 
+	if (slot->set_status_timeout_id != 0) {
+		g_source_remove (slot->set_status_timeout_id);
+		slot->set_status_timeout_id = 0;
+	}
+
 	nautilus_window_slot_set_viewed_file (slot, NULL);
 	/* TODO? why do we unref here? the file is NULL.
 	 * It was already here before the slot move, though */
@@ -458,9 +489,94 @@ nautilus_window_slot_set_allow_stop (NautilusWindowSlot *slot,
 	nautilus_window_sync_allow_stop (window, slot);
 }
 
+static void
+real_slot_set_short_status (NautilusWindowSlot *slot,
+			    const gchar *status)
+{
+	
+	gboolean show_statusbar;
+
+	nautilus_floating_bar_cleanup_actions (NAUTILUS_FLOATING_BAR (slot->floating_bar));
+	nautilus_floating_bar_set_show_spinner (NAUTILUS_FLOATING_BAR (slot->floating_bar),
+						FALSE);
+
+	show_statusbar = g_settings_get_boolean (nautilus_window_state,
+						 NAUTILUS_WINDOW_STATE_START_WITH_STATUS_BAR);
+
+	if (status == NULL || show_statusbar) {
+		gtk_widget_hide (slot->floating_bar);
+		return;
+	}
+
+	nautilus_floating_bar_set_label (NAUTILUS_FLOATING_BAR (slot->floating_bar), status);
+	gtk_widget_show (slot->floating_bar);
+}
+
+typedef struct {
+	gchar *status;
+	NautilusWindowSlot *slot;
+} SetStatusData;
+
+static void
+set_status_data_free (gpointer data)
+{
+	SetStatusData *status_data = data;
+
+	g_free (status_data->status);
+	g_object_unref (status_data->slot);
+
+	g_slice_free (SetStatusData, data);
+}
+
+static gboolean
+set_status_timeout_cb (gpointer data)
+{
+	SetStatusData *status_data = data;
+
+	status_data->slot->set_status_timeout_id = 0;
+	real_slot_set_short_status (status_data->slot, status_data->status);
+
+	return FALSE;
+}
+
+static void
+set_floating_bar_status (NautilusWindowSlot *slot,
+			 const gchar *status)
+{
+	GtkSettings *settings;
+	gint double_click_time;
+	SetStatusData *status_data;
+
+	if (slot->set_status_timeout_id != 0) {
+		g_source_remove (slot->set_status_timeout_id);
+		slot->set_status_timeout_id = 0;
+	}
+
+	settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (slot->content_view)));
+	g_object_get (settings,
+		      "gtk-double-click-time", &double_click_time,
+		      NULL);
+
+	status_data = g_slice_new0 (SetStatusData);
+	status_data->status = g_strdup (status);
+	status_data->slot = g_object_ref (slot);
+
+	/* waiting for half of the double-click-time before setting
+	 * the status seems to be a good approximation of not setting it
+	 * too often and not delaying the statusbar too much.
+	 */
+	slot->set_status_timeout_id =
+		g_timeout_add_full (G_PRIORITY_DEFAULT,
+				    (guint) (double_click_time / 2),
+				    set_status_timeout_cb,
+				    status_data,
+				    set_status_data_free);
+}
+
 void
 nautilus_window_slot_set_status (NautilusWindowSlot *slot,
-				 const char *status)
+				 const char *status,
+				 const char *short_status)
 {
 	NautilusWindow *window;
 
@@ -469,6 +585,10 @@ nautilus_window_slot_set_status (NautilusWindowSlot *slot,
 	g_free (slot->status_text);
 	slot->status_text = g_strdup (status);
 
+	if (slot->content_view != NULL) {
+		set_floating_bar_status (slot, short_status);
+	}
+
 	window = NAUTILUS_WINDOW (slot->pane->window);
 	if (slot == window->details->active_pane->active_slot) {
 		nautilus_window_sync_status (window);
diff --git a/src/nautilus-window-slot.h b/src/nautilus-window-slot.h
index 7546ca1..ef23c8f 100644
--- a/src/nautilus-window-slot.h
+++ b/src/nautilus-window-slot.h
@@ -75,6 +75,11 @@ struct NautilusWindowSlot {
 	GtkWidget *extra_location_widgets;
 	GtkWidget *view_box;
 
+	GtkWidget *view_overlay;
+	GtkWidget *floating_bar;
+
+	guint set_status_timeout_id;
+
 	NautilusView *content_view;
 	NautilusView *new_content_view;
 
@@ -171,7 +176,8 @@ void    nautilus_window_slot_set_viewed_file		   (NautilusWindowSlot *slot,
 void    nautilus_window_slot_set_allow_stop		   (NautilusWindowSlot *slot,
 							    gboolean	    allow_stop);
 void    nautilus_window_slot_set_status			   (NautilusWindowSlot *slot,
-							    const char	 *status);
+							    const char	 *status,
+							    const char   *short_status);
 
 void    nautilus_window_slot_add_extra_location_widget     (NautilusWindowSlot *slot,
 							    GtkWidget       *widget);



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