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 | |
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.
-rw-r--r-- | idl/nautilus.idl | 35 | ||||
-rw-r--r-- | src/nautilus-navigation-window.c | 73 | ||||
-rw-r--r-- | src/nautilus-navigation-window.h | 20 | ||||
-rw-r--r-- | src/nautilus-object-window.c | 73 | ||||
-rw-r--r-- | src/nautilus-object-window.h | 20 | ||||
-rw-r--r-- | src/nautilus-spatial-window.c | 73 | ||||
-rw-r--r-- | src/nautilus-spatial-window.h | 20 | ||||
-rw-r--r-- | src/nautilus-window.c | 73 | ||||
-rw-r--r-- | src/nautilus-window.h | 20 | ||||
-rw-r--r-- | src/ntl-window.c | 73 | ||||
-rw-r--r-- | src/ntl-window.h | 20 |
11 files changed, 419 insertions, 81 deletions
diff --git a/idl/nautilus.idl b/idl/nautilus.idl index fbeb0e47f..df35eb9a0 100644 --- a/idl/nautilus.idl +++ b/idl/nautilus.idl @@ -32,21 +32,22 @@ module Nautilus { }; enum ProgressType { PROGRESS_DONE_OK, PROGRESS_DONE_ERROR, PROGRESS_UNDERWAY }; + struct ProgressRequestInfo { ProgressType type; double amount; }; interface View : ::Bonobo::Unknown { - void save_state(in string config_path); - void load_state(in string config_path); - oneway void notify_location_change(in NavigationInfo navinfo); + void save_state (in string config_path); + void load_state (in string config_path); + oneway void notify_location_change (in NavigationInfo navinfo); oneway void show_properties(); // Requests that the client show its properties - oneway void notify_selection_change(in SelectionInfo selinfo); + oneway void notify_selection_change (in SelectionInfo selinfo); - oneway void stop_location_change(); + oneway void stop_location_change (); }; interface MetaView : View { @@ -59,10 +60,10 @@ module Nautilus { interface ViewFrame : ::Bonobo::Unknown { readonly attribute ViewWindow main_window; - oneway void request_status_change(in StatusRequestInfo statinfo); - oneway void request_location_change(in NavigationRequestInfo navinfo); - oneway void request_selection_change(in SelectionRequestInfo selinfo); - oneway void request_progress_change(in ProgressRequestInfo proginfo); + oneway void request_status_change (in StatusRequestInfo statinfo); + oneway void request_location_change (in NavigationRequestInfo navinfo); + oneway void request_selection_change (in SelectionRequestInfo selinfo); + oneway void request_progress_change (in ProgressRequestInfo proginfo); }; interface MetaViewFrame : ViewFrame { @@ -89,17 +90,19 @@ module Nautilus { oneway void notify_zoom_level (in double zoom_level); }; + interface Application; interface ViewWindow : ::Bonobo::Unknown { - readonly attribute string current_uri; - void open_uri(in string uri); - void close(); + readonly attribute string current_uri; + readonly attribute Application application; + void open_uri (in string uri); + void close (); }; - typedef sequence<Object> ObjectList; + typedef sequence<ViewWindow> ViewWindowList; - interface Application : ::GNOME::GenericFactory { - readonly attribute ObjectList windows; - ViewWindow new_window(); + interface Application : ::GNOME::GenericFactory, ::Bonobo::Unknown { + readonly attribute ViewWindowList view_windows; + ViewWindow new_view_window (); }; }; diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c index 6f1a4b634..36d8970d4 100644 --- a/src/nautilus-navigation-window.c +++ b/src/nautilus-navigation-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, diff --git a/src/nautilus-navigation-window.h b/src/nautilus-navigation-window.h index 122a98ece..e337cf011 100644 --- a/src/nautilus-navigation-window.h +++ b/src/nautilus-navigation-window.h @@ -113,13 +113,19 @@ struct _NautilusWindow { gboolean reset_to_idle : 1; }; -GtkType nautilus_window_get_type(void); -GtkWidget *nautilus_window_new(const char *app_id); -void nautilus_window_set_content_view(NautilusWindow *window, NautilusView *content_view); -void nautilus_window_add_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_remove_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_goto_uri(NautilusWindow *window, const char *uri); -void nautilus_window_display_error(NautilusWindow *window, const char *error_msg); +GtkType nautilus_window_get_type (void); +GtkWidget *nautilus_window_new (const char *app_id); +void nautilus_window_close (NautilusWindow *window); +void nautilus_window_set_content_view (NautilusWindow *window, + NautilusView *content_view); +void nautilus_window_add_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_remove_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_goto_uri (NautilusWindow *window, + const char *uri); +void nautilus_window_display_error (NautilusWindow *window, + const char *error_msg); const char *nautilus_window_get_requested_uri(NautilusWindow *window); BonoboUIHandler *nautilus_window_get_uih(NautilusWindow *window); diff --git a/src/nautilus-object-window.c b/src/nautilus-object-window.c index 6f1a4b634..36d8970d4 100644 --- a/src/nautilus-object-window.c +++ b/src/nautilus-object-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, diff --git a/src/nautilus-object-window.h b/src/nautilus-object-window.h index 122a98ece..e337cf011 100644 --- a/src/nautilus-object-window.h +++ b/src/nautilus-object-window.h @@ -113,13 +113,19 @@ struct _NautilusWindow { gboolean reset_to_idle : 1; }; -GtkType nautilus_window_get_type(void); -GtkWidget *nautilus_window_new(const char *app_id); -void nautilus_window_set_content_view(NautilusWindow *window, NautilusView *content_view); -void nautilus_window_add_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_remove_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_goto_uri(NautilusWindow *window, const char *uri); -void nautilus_window_display_error(NautilusWindow *window, const char *error_msg); +GtkType nautilus_window_get_type (void); +GtkWidget *nautilus_window_new (const char *app_id); +void nautilus_window_close (NautilusWindow *window); +void nautilus_window_set_content_view (NautilusWindow *window, + NautilusView *content_view); +void nautilus_window_add_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_remove_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_goto_uri (NautilusWindow *window, + const char *uri); +void nautilus_window_display_error (NautilusWindow *window, + const char *error_msg); const char *nautilus_window_get_requested_uri(NautilusWindow *window); BonoboUIHandler *nautilus_window_get_uih(NautilusWindow *window); 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, diff --git a/src/nautilus-spatial-window.h b/src/nautilus-spatial-window.h index 122a98ece..e337cf011 100644 --- a/src/nautilus-spatial-window.h +++ b/src/nautilus-spatial-window.h @@ -113,13 +113,19 @@ struct _NautilusWindow { gboolean reset_to_idle : 1; }; -GtkType nautilus_window_get_type(void); -GtkWidget *nautilus_window_new(const char *app_id); -void nautilus_window_set_content_view(NautilusWindow *window, NautilusView *content_view); -void nautilus_window_add_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_remove_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_goto_uri(NautilusWindow *window, const char *uri); -void nautilus_window_display_error(NautilusWindow *window, const char *error_msg); +GtkType nautilus_window_get_type (void); +GtkWidget *nautilus_window_new (const char *app_id); +void nautilus_window_close (NautilusWindow *window); +void nautilus_window_set_content_view (NautilusWindow *window, + NautilusView *content_view); +void nautilus_window_add_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_remove_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_goto_uri (NautilusWindow *window, + const char *uri); +void nautilus_window_display_error (NautilusWindow *window, + const char *error_msg); const char *nautilus_window_get_requested_uri(NautilusWindow *window); BonoboUIHandler *nautilus_window_get_uih(NautilusWindow *window); diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 6f1a4b634..36d8970d4 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-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, diff --git a/src/nautilus-window.h b/src/nautilus-window.h index 122a98ece..e337cf011 100644 --- a/src/nautilus-window.h +++ b/src/nautilus-window.h @@ -113,13 +113,19 @@ struct _NautilusWindow { gboolean reset_to_idle : 1; }; -GtkType nautilus_window_get_type(void); -GtkWidget *nautilus_window_new(const char *app_id); -void nautilus_window_set_content_view(NautilusWindow *window, NautilusView *content_view); -void nautilus_window_add_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_remove_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_goto_uri(NautilusWindow *window, const char *uri); -void nautilus_window_display_error(NautilusWindow *window, const char *error_msg); +GtkType nautilus_window_get_type (void); +GtkWidget *nautilus_window_new (const char *app_id); +void nautilus_window_close (NautilusWindow *window); +void nautilus_window_set_content_view (NautilusWindow *window, + NautilusView *content_view); +void nautilus_window_add_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_remove_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_goto_uri (NautilusWindow *window, + const char *uri); +void nautilus_window_display_error (NautilusWindow *window, + const char *error_msg); const char *nautilus_window_get_requested_uri(NautilusWindow *window); BonoboUIHandler *nautilus_window_get_uih(NautilusWindow *window); diff --git a/src/ntl-window.c b/src/ntl-window.c index 6f1a4b634..36d8970d4 100644 --- a/src/ntl-window.c +++ b/src/ntl-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, diff --git a/src/ntl-window.h b/src/ntl-window.h index 122a98ece..e337cf011 100644 --- a/src/ntl-window.h +++ b/src/ntl-window.h @@ -113,13 +113,19 @@ struct _NautilusWindow { gboolean reset_to_idle : 1; }; -GtkType nautilus_window_get_type(void); -GtkWidget *nautilus_window_new(const char *app_id); -void nautilus_window_set_content_view(NautilusWindow *window, NautilusView *content_view); -void nautilus_window_add_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_remove_meta_view(NautilusWindow *window, NautilusView *meta_view); -void nautilus_window_goto_uri(NautilusWindow *window, const char *uri); -void nautilus_window_display_error(NautilusWindow *window, const char *error_msg); +GtkType nautilus_window_get_type (void); +GtkWidget *nautilus_window_new (const char *app_id); +void nautilus_window_close (NautilusWindow *window); +void nautilus_window_set_content_view (NautilusWindow *window, + NautilusView *content_view); +void nautilus_window_add_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_remove_meta_view (NautilusWindow *window, + NautilusView *meta_view); +void nautilus_window_goto_uri (NautilusWindow *window, + const char *uri); +void nautilus_window_display_error (NautilusWindow *window, + const char *error_msg); const char *nautilus_window_get_requested_uri(NautilusWindow *window); BonoboUIHandler *nautilus_window_get_uih(NautilusWindow *window); |