summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@gnu.org>2002-01-08 17:35:51 +0000
committerAnders Carlsson <andersca@src.gnome.org>2002-01-08 17:35:51 +0000
commit58e06b842b70896489a2dd6b4346d199e0f8d18a (patch)
tree92591814aaca0ed2c51a81ff43db73d02ef1b07d
parent0ec2aeba115d19de54091d3326bc591cb5c1ba20 (diff)
downloadnautilus-58e06b842b70896489a2dd6b4346d199e0f8d18a.tar.gz
Implement nautilus_view_close_window ().
2002-01-08 Anders Carlsson <andersca@gnu.org> * libnautilus-private/nautilus-icon-container.c: (nautilus_icon_container_update_icon): * libnautilus/nautilus-view-component.idl: * libnautilus/nautilus-view.c: (call_close_window), (nautilus_view_close_window): * libnautilus/nautilus-view.h: * src/nautilus-profiler.c: (nautilus_profiler_bonobo_ui_report_callback): * src/nautilus-view-frame-corba.c: (close_window), (impl_Nautilus_ViewFrame_close_window), (nautilus_view_frame_corba_part_class_init): * src/nautilus-view-frame-private.h: * src/nautilus-view-frame.c: (nautilus_view_frame_close_window), (nautilus_view_frame_class_init): * src/nautilus-view-frame.h: * src/nautilus-window-manage-views.c: (close_window_callback): Implement nautilus_view_close_window ().
-rw-r--r--ChangeLog20
-rw-r--r--libnautilus/nautilus-view-component.idl1
-rw-r--r--libnautilus/nautilus-view.c26
-rw-r--r--libnautilus/nautilus-view.h1
-rw-r--r--src/nautilus-view-frame-corba.c16
-rw-r--r--src/nautilus-view-frame-private.h1
-rw-r--r--src/nautilus-view-frame.c18
-rw-r--r--src/nautilus-view-frame.h1
-rw-r--r--src/nautilus-window-manage-views.c10
9 files changed, 94 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index fce9e49b8..925dc98c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,24 @@
2002-01-08 Anders Carlsson <andersca@gnu.org>
+
+ * libnautilus-private/nautilus-icon-container.c:
+ (nautilus_icon_container_update_icon):
+ * libnautilus/nautilus-view-component.idl:
+ * libnautilus/nautilus-view.c: (call_close_window),
+ (nautilus_view_close_window):
+ * libnautilus/nautilus-view.h:
+ * src/nautilus-profiler.c:
+ (nautilus_profiler_bonobo_ui_report_callback):
+ * src/nautilus-view-frame-corba.c: (close_window),
+ (impl_Nautilus_ViewFrame_close_window),
+ (nautilus_view_frame_corba_part_class_init):
+ * src/nautilus-view-frame-private.h:
+ * src/nautilus-view-frame.c: (nautilus_view_frame_close_window),
+ (nautilus_view_frame_class_init):
+ * src/nautilus-view-frame.h:
+ * src/nautilus-window-manage-views.c: (close_window_callback):
+ Implement nautilus_view_close_window ().
+
+2002-01-08 Anders Carlsson <andersca@gnu.org>
* src/nautilus-zoom-control.c (nautilus_zoom_control_finalize): Remove
preferences calback in ::finalize.
diff --git a/libnautilus/nautilus-view-component.idl b/libnautilus/nautilus-view-component.idl
index 7a6b37f8c..0f3b0f49d 100644
--- a/libnautilus/nautilus-view-component.idl
+++ b/libnautilus/nautilus-view-component.idl
@@ -151,6 +151,7 @@ module Nautilus {
* which does nothing if there's nowhere to go.
*/
oneway void go_back ();
+ oneway void close_window ();
};
};
diff --git a/libnautilus/nautilus-view.c b/libnautilus/nautilus-view.c
index 478041663..1c13e85c3 100644
--- a/libnautilus/nautilus-view.c
+++ b/libnautilus/nautilus-view.c
@@ -763,6 +763,22 @@ call_go_back (NautilusView *view,
view_frame_call_end (view_frame, &ev);
}
+
+static void
+call_close_window (NautilusView *view,
+ gpointer callback_data)
+{
+ CORBA_Environment ev;
+ Nautilus_ViewFrame view_frame;
+
+ view_frame = view_frame_call_begin (view, &ev);
+ if (view_frame != CORBA_OBJECT_NIL) {
+ Nautilus_ViewFrame_close_window (view_frame, &ev);
+ }
+ view_frame_call_end (view_frame, &ev);
+}
+
+
void
nautilus_view_open_location_in_this_window (NautilusView *view,
const char *location)
@@ -916,6 +932,16 @@ nautilus_view_go_back (NautilusView *view)
NULL);
}
+void
+nautilus_view_close_window (NautilusView *view)
+{
+ queue_outgoing_call (view,
+ call_close_window,
+ NULL,
+ NULL);
+}
+
+
BonoboControl *
nautilus_view_get_bonobo_control (NautilusView *view)
{
diff --git a/libnautilus/nautilus-view.h b/libnautilus/nautilus-view.h
index 1b7468547..9077aae31 100644
--- a/libnautilus/nautilus-view.h
+++ b/libnautilus/nautilus-view.h
@@ -98,6 +98,7 @@ void nautilus_view_report_load_failed (NautilusV
void nautilus_view_set_title (NautilusView *view,
const char *title);
void nautilus_view_go_back (NautilusView *view);
+void nautilus_view_close_window (NautilusView *view);
/* Some utility functions useful for doing the CORBA work directly.
* Not needed by most components, but shared with the view frame code,
diff --git a/src/nautilus-view-frame-corba.c b/src/nautilus-view-frame-corba.c
index 630ebd199..b43b14e8b 100644
--- a/src/nautilus-view-frame-corba.c
+++ b/src/nautilus-view-frame-corba.c
@@ -187,6 +187,13 @@ go_back (NautilusViewFrame *view,
}
static void
+close_window (NautilusViewFrame *view,
+ gpointer callback_data)
+{
+ nautilus_view_frame_close_window (view);
+}
+
+static void
impl_Nautilus_ViewFrame_open_location_in_this_window (PortableServer_Servant servant,
const CORBA_char *location,
CORBA_Environment *ev)
@@ -367,6 +374,14 @@ impl_Nautilus_ViewFrame_go_back (PortableServer_Servant servant,
}
static void
+impl_Nautilus_ViewFrame_close_window (PortableServer_Servant servant,
+ CORBA_Environment *ev)
+{
+ nautilus_view_frame_queue_incoming_call
+ (servant, close_window, NULL, NULL);
+}
+
+static void
nautilus_view_frame_corba_part_class_init (NautilusViewFrameCorbaPartClass *class)
{
class->epv.open_location_in_this_window = impl_Nautilus_ViewFrame_open_location_in_this_window;
@@ -382,6 +397,7 @@ nautilus_view_frame_corba_part_class_init (NautilusViewFrameCorbaPartClass *clas
class->epv.report_load_failed = impl_Nautilus_ViewFrame_report_load_failed;
class->epv.set_title = impl_Nautilus_ViewFrame_set_title;
class->epv.go_back = impl_Nautilus_ViewFrame_go_back;
+ class->epv.close_window = impl_Nautilus_ViewFrame_close_window;
}
static void
diff --git a/src/nautilus-view-frame-private.h b/src/nautilus-view-frame-private.h
index bb7bbcf75..449832c66 100644
--- a/src/nautilus-view-frame-private.h
+++ b/src/nautilus-view-frame-private.h
@@ -72,6 +72,7 @@ void nautilus_view_frame_report_load_failed (Nautilus
void nautilus_view_frame_set_title (NautilusViewFrame *view,
const char *title);
void nautilus_view_frame_go_back (NautilusViewFrame *view);
+void nautilus_view_frame_close_window (NautilusViewFrame *view);
void nautilus_view_frame_quit_nautilus (NautilusViewFrame *view);
void nautilus_view_frame_close_desktop (NautilusViewFrame *view);
diff --git a/src/nautilus-view-frame.c b/src/nautilus-view-frame.c
index 02a62799a..2de18b90d 100644
--- a/src/nautilus-view-frame.c
+++ b/src/nautilus-view-frame.c
@@ -58,6 +58,7 @@ enum {
FAILED,
GET_HISTORY_LIST,
GO_BACK,
+ CLOSE_WINDOW,
LOAD_COMPLETE,
LOAD_PROGRESS_CHANGED,
LOAD_UNDERWAY,
@@ -1254,6 +1255,14 @@ nautilus_view_frame_go_back (NautilusViewFrame *view)
}
void
+nautilus_view_frame_close_window (NautilusViewFrame *view)
+{
+ g_return_if_fail (NAUTILUS_IS_VIEW_FRAME (view));
+
+ g_signal_emit (view, signals[CLOSE_WINDOW], 0);
+}
+
+void
nautilus_view_frame_set_title (NautilusViewFrame *view,
const char *title)
{
@@ -1431,6 +1440,15 @@ nautilus_view_frame_class_init (NautilusViewFrameClass *class)
NULL, NULL,
gtk_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ signals[CLOSE_WINDOW] = g_signal_new
+ ("close_window",
+ G_TYPE_FROM_CLASS (class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NautilusViewFrameClass,
+ close_window),
+ NULL, NULL,
+ gtk_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
signals[LOAD_COMPLETE] = g_signal_new
("load_complete",
G_TYPE_FROM_CLASS (class),
diff --git a/src/nautilus-view-frame.h b/src/nautilus-view-frame.h
index 4c8c33d71..bc684e4ed 100644
--- a/src/nautilus-view-frame.h
+++ b/src/nautilus-view-frame.h
@@ -92,6 +92,7 @@ typedef struct {
void (* zoom_parameters_changed) (NautilusViewFrame *view);
Nautilus_History * (* get_history_list) (NautilusViewFrame *view);
void (* go_back) (NautilusViewFrame *view);
+ void (* close_window) (NautilusViewFrame *view);
} NautilusViewFrameClass;
/* basic view management */
diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c
index 43e34d5e9..ed62de131 100644
--- a/src/nautilus-window-manage-views.c
+++ b/src/nautilus-window-manage-views.c
@@ -1704,6 +1704,15 @@ go_back_callback (NautilusViewFrame *view,
}
static void
+close_window_callback (NautilusViewFrame *view,
+ NautilusWindow *window)
+{
+ g_assert (NAUTILUS_IS_WINDOW (window));
+
+ nautilus_window_close (window);
+}
+
+static void
change_selection_callback (NautilusViewFrame *view,
GList *selection,
NautilusWindow *window)
@@ -1925,6 +1934,7 @@ view_loaded_callback (NautilusViewFrame *view,
macro (failed) \
macro (get_history_list) \
macro (go_back) \
+ macro (close_window) \
macro (load_complete) \
macro (load_underway) \
macro (open_location_force_new_window) \