[nautilus] Add nautilus_window_info_get_extra_slot
- From: Alexander Larsson <alexl src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nautilus] Add nautilus_window_info_get_extra_slot
- Date: Wed, 16 Dec 2009 12:14:18 +0000 (UTC)
commit 6a71f0f996e7c946a10e263951a906dd9795c4dc
Author: Alexander Larsson <alexl redhat com>
Date: Wed Dec 16 10:09:43 2009 +0100
Add nautilus_window_info_get_extra_slot
libnautilus-private/nautilus-window-info.c | 8 +++++++
libnautilus-private/nautilus-window-info.h | 3 ++
src/nautilus-window-private.h | 1 +
src/nautilus-window.c | 31 ++++++++++++++++++++++++++++
4 files changed, 43 insertions(+), 0 deletions(-)
---
diff --git a/libnautilus-private/nautilus-window-info.c b/libnautilus-private/nautilus-window-info.c
index 60da170..23cb812 100644
--- a/libnautilus-private/nautilus-window-info.c
+++ b/libnautilus-private/nautilus-window-info.c
@@ -286,6 +286,14 @@ nautilus_window_info_get_active_slot (NautilusWindowInfo *window)
return (* NAUTILUS_WINDOW_INFO_GET_IFACE (window)->get_active_slot) (window);
}
+NautilusWindowSlotInfo *
+nautilus_window_info_get_extra_slot (NautilusWindowInfo *window)
+{
+ g_return_val_if_fail (NAUTILUS_IS_WINDOW_INFO (window), NULL);
+
+ return (* NAUTILUS_WINDOW_INFO_GET_IFACE (window)->get_extra_slot) (window);
+}
+
struct FMDirectoryView *
nautilus_window_info_get_directory_view_of_next_pane (NautilusWindowInfo *window)
{
diff --git a/libnautilus-private/nautilus-window-info.h b/libnautilus-private/nautilus-window-info.h
index 3c2bdec..d3d347c 100644
--- a/libnautilus-private/nautilus-window-info.h
+++ b/libnautilus-private/nautilus-window-info.h
@@ -137,11 +137,13 @@ struct _NautilusWindowInfoIface
NautilusWindowShowHiddenFilesMode mode);
NautilusWindowSlotInfo * (* get_active_slot) (NautilusWindowInfo *window);
+ NautilusWindowSlotInfo * (* get_extra_slot) (NautilusWindowInfo *window);
void (* view_visible) (NautilusWindowInfo *window,
NautilusView *view);
void (* close_window) (NautilusWindowInfo *window);
GtkUIManager * (* get_ui_manager) (NautilusWindowInfo *window);
+
/* return TRUE if other pane is writable (files can be moved/copied
* there), FALSE if it is not writable or no other pane exists */
gboolean (* next_pane_is_writable) (NautilusWindowInfo *window);
@@ -159,6 +161,7 @@ void nautilus_window_info_report_view_failed
NautilusView *view);
void nautilus_window_info_report_selection_changed (NautilusWindowInfo *window);
NautilusWindowSlotInfo * nautilus_window_info_get_active_slot (NautilusWindowInfo *window);
+NautilusWindowSlotInfo * nautilus_window_info_get_extra_slot (NautilusWindowInfo *window);
void nautilus_window_info_view_visible (NautilusWindowInfo *window,
NautilusView *view);
void nautilus_window_info_close (NautilusWindowInfo *window);
diff --git a/src/nautilus-window-private.h b/src/nautilus-window-private.h
index a3f3f43..c4334b1 100644
--- a/src/nautilus-window-private.h
+++ b/src/nautilus-window-private.h
@@ -190,6 +190,7 @@ NautilusWindowSlot *nautilus_window_get_slot_for_view (Nautil
GList * nautilus_window_get_slots (NautilusWindow *window);
NautilusWindowSlot * nautilus_window_get_active_slot (NautilusWindow *window);
+NautilusWindowSlot * nautilus_window_get_extra_slot (NautilusWindow *window);
void nautilus_window_set_active_slot (NautilusWindow *window,
NautilusWindowSlot *slot);
void nautilus_window_set_active_pane (NautilusWindow *window,
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 3bdc516..91ed61e 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -1933,6 +1933,36 @@ nautilus_window_get_active_slot (NautilusWindow *window)
return window->details->active_pane->active_slot;
}
+NautilusWindowSlot *
+nautilus_window_get_extra_slot (NautilusWindow *window)
+{
+ NautilusWindowPane *extra_pane;
+ GList *node;
+
+ g_assert (NAUTILUS_IS_WINDOW (window));
+
+
+ /* return NULL if there is only one pane */
+ if (window->details->panes == NULL ||
+ window->details->panes->next == NULL) {
+ return NULL;
+ }
+
+ /* get next pane in the (wrapped around) list */
+ node = g_list_find (window->details->panes,
+ window->details->active_pane);
+ g_return_val_if_fail (node, FALSE);
+
+ if (node->next) {
+ extra_pane = node->next->data;
+ }
+ else {
+ extra_pane = window->details->panes->data;
+ }
+
+ return extra_pane->active_slot;
+}
+
static FMDirectoryView *
nautilus_window_get_directory_view_of_next_pane (NautilusWindow *window)
{
@@ -1987,6 +2017,7 @@ nautilus_window_info_iface_init (NautilusWindowInfoIface *iface)
iface->get_hidden_files_mode = nautilus_window_get_hidden_files_mode;
iface->set_hidden_files_mode = nautilus_window_set_hidden_files_mode;
iface->get_active_slot = nautilus_window_get_active_slot;
+ iface->get_extra_slot = nautilus_window_get_extra_slot;
iface->get_directory_view_of_next_pane = nautilus_window_get_directory_view_of_next_pane;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]