summaryrefslogtreecommitdiff
path: root/src/nautilus-spatial-window.c
diff options
context:
space:
mode:
authorMaciej Stachowiak <mstachow@src.gnome.org>2000-02-24 07:20:40 +0000
committerMaciej Stachowiak <mstachow@src.gnome.org>2000-02-24 07:20:40 +0000
commit4bf409fb0c39639bd08be0d9d6dceeea250ddc88 (patch)
treea4dfcc1d83018164984d1255f3106c027357cdb6 /src/nautilus-spatial-window.c
parent1f887dce940acf963b27fb9d959848287e6ab8f1 (diff)
downloadnautilus-4bf409fb0c39639bd08be0d9d6dceeea250ddc88.tar.gz
Added `application' readonly attribute. (Application): Renamed attribute
* idl/nautilus.idl (ViewWindow): Added `application' readonly attribute. (Application): Renamed attribute from `windows' to `view_windows' and made it a sequence<ViewWindow> rather than sequence<Object>. Renamed `new_window' method to `new_view_window'. * src/ntl-window.h: Miscellaneous reformatting. (nautilus_window_close): Added prototype * src/ntl-window.c: Added implementations of Nautilus::ViewWindow's methods. For now, _get_application just returns CORBA_OBJECT_NIL because the Application object has not yet been implemented. (nautilus_window_close): New function used by `file_menu_close_cb' and `impl_POA_Nautilus_ViewWindow_close'. (would_be_in_gdk_pixbuf_if_federico_wasnt_stubborn_pixbuf_render): Added an explanatory comment.
Diffstat (limited to 'src/nautilus-spatial-window.c')
-rw-r--r--src/nautilus-spatial-window.c73
1 files changed, 67 insertions, 6 deletions
diff --git a/src/nautilus-spatial-window.c b/src/nautilus-spatial-window.c
index 6f1a4b634..36d8970d4 100644
--- a/src/nautilus-spatial-window.c
+++ b/src/nautilus-spatial-window.c
@@ -67,9 +67,27 @@ typedef struct {
NautilusWindow *window;
} impl_POA_Nautilus_ViewWindow;
+static const CORBA_char *impl_Nautilus_ViewWindow__get_current_uri (impl_POA_Nautilus_ViewWindow *servant,
+ CORBA_Environment *ev);
+
+static Nautilus_Application impl_Nautilus_ViewWindow__get_application (impl_POA_Nautilus_ViewWindow *servant,
+ CORBA_Environment *ev);
+
+static void impl_Nautilus_ViewWindow_open_uri (impl_POA_Nautilus_ViewWindow *servant,
+ CORBA_char *uri,
+ CORBA_Environment *ev);
+
+static void impl_Nautilus_ViewWindow_close (impl_POA_Nautilus_ViewWindow *servant,
+ CORBA_Environment *ev);
+
+
static POA_Nautilus_ViewWindow__epv impl_Nautilus_ViewWindow_epv =
{
- NULL
+ NULL,
+ (gpointer) &impl_Nautilus_ViewWindow__get_current_uri,
+ (gpointer) &impl_Nautilus_ViewWindow__get_application,
+ (gpointer) &impl_Nautilus_ViewWindow_open_uri,
+ (gpointer) &impl_Nautilus_ViewWindow_close
};
static PortableServer_ServantBase__epv base_epv = { NULL, NULL, NULL };
@@ -81,6 +99,36 @@ static POA_Nautilus_ViewWindow__vepv impl_Nautilus_ViewWindow_vepv =
&impl_Nautilus_ViewWindow_epv
};
+static const CORBA_char *
+impl_Nautilus_ViewWindow__get_current_uri (impl_POA_Nautilus_ViewWindow *servant,
+ CORBA_Environment *ev)
+{
+ return nautilus_window_get_requested_uri (servant->window);
+}
+
+
+static Nautilus_Application
+impl_Nautilus_ViewWindow__get_application (impl_POA_Nautilus_ViewWindow *servant,
+ CORBA_Environment *ev)
+{
+ return CORBA_OBJECT_NIL;
+}
+
+static void
+impl_Nautilus_ViewWindow_open_uri (impl_POA_Nautilus_ViewWindow *servant,
+ CORBA_char *uri,
+ CORBA_Environment *ev)
+{
+ nautilus_window_goto_uri (servant->window, uri);
+}
+
+static void
+impl_Nautilus_ViewWindow_close (impl_POA_Nautilus_ViewWindow *servant,
+ CORBA_Environment *ev)
+{
+ nautilus_window_close (servant->window);
+}
+
static void
impl_Nautilus_ViewWindow__destroy(BonoboObject *obj, impl_POA_Nautilus_ViewWindow *servant)
@@ -155,12 +203,10 @@ static void nautilus_window_about_cb (GtkWidget *widget,
static void
file_menu_close_cb (GtkWidget *widget,
- gpointer data)
+ gpointer data)
{
- GtkWidget *window;
-
- window = GTK_WIDGET (data);
- gtk_widget_destroy(window);
+ g_assert (NAUTILUS_IS_WINDOW (data));
+ nautilus_window_close (NAUTILUS_WINDOW (data));
}
static void
@@ -884,6 +930,21 @@ nautilus_window_new(const char *app_id)
return GTK_WIDGET (gtk_object_new (nautilus_window_get_type(), "app_id", app_id, NULL));
}
+void
+nautilus_window_close (NautilusWindow *window)
+{
+ g_return_if_fail (NAUTILUS_IS_WINDOW (window));
+ gtk_widget_destroy (GTK_WIDGET (window));
+}
+
+
+/* The reason for this function is that
+ `gdk_pixbuf_render_pixmap_and_mask', as currently implemented, will
+ fail on a pixbuf with no alpha channel. This function will instead
+ return with NULL in *mask_retval in such a case. If that ever gets
+ fixed, this function should be removed.
+*/
+
static void
would_be_in_gdk_pixbuf_if_federico_wasnt_stubborn_pixbuf_render(GdkPixbuf *pixbuf,
GdkPixmap **pixmap,