diff options
author | Maciej Stachowiak <mstachow@src.gnome.org> | 2000-02-24 07:20:40 +0000 |
---|---|---|
committer | Maciej Stachowiak <mstachow@src.gnome.org> | 2000-02-24 07:20:40 +0000 |
commit | 4bf409fb0c39639bd08be0d9d6dceeea250ddc88 (patch) | |
tree | a4dfcc1d83018164984d1255f3106c027357cdb6 /src/nautilus-spatial-window.c | |
parent | 1f887dce940acf963b27fb9d959848287e6ab8f1 (diff) | |
download | nautilus-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.c | 73 |
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, |