Merge the nautilus-spatial-playground branch to HEAD.

2003-09-30  Dave Camp  <dave@ximian.com>

	* Merge the nautilus-spatial-playground branch to HEAD.
This commit is contained in:
Dave Camp 2003-09-30 20:38:01 +00:00 committed by Dave Camp
parent 1f859c83a9
commit c42ab00ac6
52 changed files with 3498 additions and 10707 deletions

446
ChangeLog
View file

@ -1,3 +1,447 @@
2003-09-30 Dave Camp <dave@ximian.com>
* Merge the nautilus-spatial-playground branch to HEAD.
2003-09-30 Dave Camp <dave@ximian.com>
* src/Makefile.am:
* src/nautilus-application.c:
(nautilus_application_get_spatial_window_list),
(nautilus_application_get_existing_spatial_window),
(find_parent_spatial_window),
(nautilus_application_close_with_parent_windows),
(spatial_window_destroyed_callback),
(nautilus_application_present_spatial_window):
* src/nautilus-application.h:
* src/nautilus-desktop-window.c:
(nautilus_desktop_window_update_directory):
* src/nautilus-desktop-window.h:
* src/nautilus-object-window.c:
* src/nautilus-object-window.h:
* src/nautilus-shell.c: (open_window),
(restore_one_window_callback):
* src/nautilus-spatial-window.c: (save_window_geometry_timeout),
(nautilus_spatial_window_configure_event),
(nautilus_spatial_window_unrealize),
(nautilus_spatial_window_destroy),
(nautilus_spatial_window_finalize),
(nautilus_spatial_window_save_geometry),
(nautilus_spatial_window_save_scroll_position),
(nautilus_spatial_window_show),
(file_menu_close_with_parent_windows_callback), (real_merge_menus),
(real_set_content_view_widget), (real_delete_event),
(nautilus_spatial_window_instance_init),
(nautilus_spatial_window_class_init):
* src/nautilus-spatial-window.h:
* src/nautilus-window-manage-views.c: (open_location),
(position_and_show_window_callback):
* src/nautilus-window-private.h: Renamed NautilusObjectWindow
to NautilusSpatialWindow.
2003-09-30 Alexander Larsson <alexl@redhat.com>
* src/nautilus-window-manage-views.c (load_new_location_in_all_views):
Don't load from window->new_content_view in the view list.
2003-09-29 Dave Camp <dave@ximian.com>
* src/nautilus-navigation-window.c:
(nautilus_navigation_window_tear_down_sidebar),
(nautilus_navigation_window_clear_back_list),
(compare_view_identifier_with_iid),
(disconnect_and_destroy_sidebar_panel), (set_side_panel_image),
(side_panel_image_changed_callback),
(report_side_panel_failure_to_user),
(side_panel_view_failed_callback), (connect_side_panel),
(side_panel_view_loaded_callback),
(nautilus_navigation_window_set_sidebar_panels):
* src/nautilus-window-manage-views.c: (change_selection),
(update_title), (view_frame_info_new), (set_view_frame_info),
(nautilus_window_get_view_frame_label),
(report_content_view_failure_to_user_internal),
(load_new_location_in_all_views), (load_content_view),
(handle_view_failure), (position_and_show_window_callback),
(nautilus_window_stop_loading),
(nautilus_window_connect_extra_view),
(nautilus_window_disconnect_extra_view),
(content_view_failed_callback), (view_loaded_callback),
(connect_view), (disconnect_view), (disconnect_view_callback),
(nautilus_window_manage_views_destroy):
* src/nautilus-window-manage-views.h:
* src/nautilus-window.h: Move side-panel specific code into
the navigation window.
2003-09-28 James Willcox <james@ximian.com>
* libnautilus-private/nautilus-metadata.h:
* src/nautilus-object-window.c: (nautilus_object_window_destroy),
(nautilus_object_window_save_scroll_position), (delete_event_cb),
(nautilus_object_window_instance_init):
* src/nautilus-object-window.h:
* src/nautilus-view-frame.c:
(nautilus_view_frame_get_first_visible_file):
* src/nautilus-window-manage-views.c:
(position_and_show_window_callback):
Save the scroll position in object windows.
2003-09-24 Dave Camp <dave@ximian.com>
* src/nautilus-desktop-window.c: (real_get_title),
(nautilus_desktop_window_class_init): Return "Desktop" for everything.
* src/nautilus-navigation-window.c: (real_set_title),
(nautilus_navigation_window_class_init): Set the title to
"File Browser: foo"
* src/nautilus-object-window.c: (real_set_title),
(nautilus_object_window_class_init): Set the title to the object
name.
* src/nautilus-window-manage-views.c: (update_title): Moved
title handling to NautilusWindow.
(nautilus_window_manage_views_destroy): Destroy side panes.
* src/nautilus-window.h:
* src/nautilus-window.c: (compute_default_title), (real_get_title),
(nautilus_window_get_title), (real_set_title),
(nautilus_window_set_title), (nautilus_window_update_title),
(nautilus_window_class_init): Moved title handling here.
2003-09-24 Dave Camp <dave@ximian.com>
* src/nautilus-navigation-window.c: (activate_nth_short_list_item),
(activate_extra_viewer), (view_as_menu_switch_views_callback),
(create_view_as_menu_item), (new_gtk_separator),
(view_as_menu_choose_view_callback), (load_view_as_menu),
(real_load_view_as_menu), (real_set_content_view_widget),
(nautilus_navigation_window_class_init):
* src/nautilus-window-manage-views.c:
(location_has_really_changed):
* src/nautilus-window-private.h:
* src/nautilus-window.c: (update_extra_viewer_in_view_as_menus),
(nautilus_window_synch_view_as_menus), (real_load_view_as_menu),
(load_view_as_menus_callback), (real_set_content_view_widget),
(nautilus_window_class_init):
* src/nautilus-window.h: Fixed up the View As optionmenu for
the navigation window.
2003-09-23 Dave Camp <dave@ximian.com>
* src/nautilus-navigation-window-menus.c: (forget_history_if_yes),
(forget_history_if_confirmed), (go_menu_forget_history_callback),
(nautilus_window_remove_go_menu_callback),
(nautilus_window_remove_go_menu_items), (refresh_go_menu),
(refresh_go_menu_idle_callback), (schedule_refresh_go_menu),
(nautilus_navigation_window_initialize_go_menu),
(nautilus_navigation_window_initialize_menus_part_1),
(nautilus_navigation_window_initialize_menus_part_2):
* src/nautilus-navigation-window-ui.xml:
* src/nautilus-shell-ui.xml:
* src/nautilus-spatial-window-ui.xml:
* src/nautilus-window-menus.c:
(nautilus_window_initialize_menus_part_1):
* src/nautilus-window.c: (ui_idle_handler): Moved the Go menu
and history to the navigation window. In the spatial window,
moved Open Parent and Open Location to the File menu, and added
a Places menu with a few static bookmarks.
2003-09-23 Dave Camp <dave@ximian.com>
* libnautilus/nautilus-view-component.idl:
* libnautilus/nautilus-view.c: (call_open_location),
(nautilus_view_open_location):
* libnautilus/nautilus-view.h:
* src/nautilus-view-frame-corba.c: (open_location), (close_window),
(impl_Nautilus_ViewFrame_open_location),
(nautilus_view_frame_corba_part_class_init):
* src/nautilus-view-frame-private.h:
* src/nautilus-view-frame.c: (nautilus_view_frame_open_location),
(nautilus_view_frame_class_init):
* src/nautilus-view-frame.h:
* src/nautilus-window-manage-views.c: (new_window_show_callback),
(open_location), (nautilus_window_open_location),
(nautilus_window_open_location_with_selection),
(open_location_callback): Implemented a new open_location API.
* libnautilus-private/nautilus-icon-container.c:
(nautilus_icon_container_did_not_drag),
(nautilus_icon_container_class_init), (handle_icon_button_press),
(activate_selected_items), (activate_selected_items_alternate):
* libnautilus-private/nautilus-icon-container.h:
* src/file-manager/fm-directory-view.c: (open_callback),
(open_location), (switch_location_and_view),
(open_one_in_new_window), (open_scripts_folder_callback),
(activate_callback), (fm_directory_view_activate_file),
(fm_directory_view_activate_files):
* src/file-manager/fm-directory-view.h:
* src/file-manager/fm-icon-view.c:
(icon_container_activate_callback),
(icon_container_activate_alternate_callback),
(create_icon_container):
* src/file-manager/fm-list-view.c: (activate_selected_items),
(activate_selected_items_alternate), (fm_list_view_did_not_drag),
(button_press_callback): Use new open_location API, if an
item is middle-clicked to activate, close the window
behind it.
* src/file-manager/fm-search-list-view.c:
(reveal_selected_items_callback):
* components/adapter/nautilus-adapter.c:
(nautilus_adapter_open_location_callback):
* components/history/nautilus-history-view.c:
(row_activated_callback):
* components/tree/nautilus-tree-view.c:
(got_activation_uri_callback): Updated for new open_location API.
2003-09-21 Dave Camp <dave@ximian.com>
* src/nautilus-shell-ui.xml: Get rid of the find menu item for
now.
2003-09-21 Dave Camp <dave@ximian.com>
* src/Makefile.am: Added nautilus-spatial-window-ui.xml.
* src/nautilus-application.h:
* src/nautilus-application.c:
(nautilus_application_close_all_navigation_windows): Moved
here from nautilus_application_close_all_windows, only
close navigation windows.
(nautilus_application_get_existing_object_window),
(find_parent_object_window),
(nautilus_application_close_with_parent_windows): New functions.
* src/nautilus-navigation-window-menus.c:
(file_menu_close_all_windows_callback),
(nautilus_navigation_window_initialize_menus_part_1):
* src/nautilus-navigation-window-ui.xml: Move "Close All Windows"
to the navigation window.
* src/nautilus-object-window.h:
* src/nautilus-object-window.c:
(file_menu_close_with_parent_windows_callback), (real_merge_menus),
(nautilus_object_window_class_init): Added a "Close With Parents"
command to the spatial windows.
* src/nautilus-shell-ui.xml:
* src/nautilus-window-menus.c:
(nautilus_window_initialize_menus_part_1): Took out "close all
windows"
2003-09-18 Dave Camp <dcamp@novell.com>
* libnautilus-private/nautilus-global-preferences.c:
* libnautilus-private/nautilus-global-preferences.h: Removed
the "start with toolbar" preference.
* src/nautilus-navigation-window-menus.c:
(nautilus_navigation_window_update_show_hide_menu_items),
(nautilus_navigation_window_initialize_menus_part_1):
* src/nautilus-navigation-window-ui.xml: Removed the toolbar
toggle.
* src/nautilus-window-private.h: Removed the unused
throbber bits.
* src/nautilus-window-toolbars.c:
(nautilus_navigation_window_initialize_toolbars): Ignore the
"start with toolbar" preference.
* src/nautilus-navigation-window.c:
(nautilus_navigation_window_show): Show or hide the dock
items before showing the window.
2003-09-14 Dave Camp <dave@ximian.com>
* src/nautilus-file-management-properties.c:
(nautilus_file_management_properties_dialog_setup):
* src/nautilus-file-management-properties.glade:
* libnautilus-private/nautilus-global-preferences.c:
* libnautilus-private/nautilus-global-preferences.h: Removed the
"always use new window" preference.
* libnautilus/nautilus-view-component.idl: Updated the
documentation for the open_location functions.
* src/Makefile.am: Added new files.
* src/file-manager/fm-directory-view.c: (open_alternate_callback),
(open_location), (switch_location_and_view),
(fm_directory_view_init), (fm_directory_view_finalize),
(open_one_in_new_window), (open_scripts_folder_callback),
(real_update_menus), (fm_directory_view_activate_files): Use new
window-opening logic.
* src/file-manager/nautilus-desktop-icon-view-ui.xml:
* src/file-manager/nautilus-directory-view-ui.xml: Moved "open
in new window" to Open With.
* src/nautilus-application.h:
* src/nautilus-application.c:
(nautilus_application_get_object_window_list), (create_window),
(object_window_destroyed_callback),
(nautilus_application_present_object_window): New functions.
(nautilus_application_create_navigation_window): Moved here
from nautilus_application_create_window().
(volume_unmounted_callback): Close the window if it's the last
one.
* src/nautilus-desktop-window.h:
* src/nautilus-desktop-window.c:
(nautilus_desktop_window_update_directory), (real_merge_menus),
(nautilus_desktop_window_class_init): Derive from
NautilusObjectWindow.
* src/nautilus-location-bar.h:
* src/nautilus-location-bar.c: (nautilus_location_bar_get_window),
(drag_data_received_callback), (nautilus_location_bar_new): Take
a NautilusNavigationWindow.
* src/nautilus-navigation-window-menus.c: (go_menu_back_callback),
(go_menu_forward_callback),
(view_menu_show_hide_sidebar_state_changed_callback),
(view_menu_show_hide_toolbar_state_changed_callback),
(view_menu_show_hide_location_bar_state_changed_callback),
(nautilus_navigation_window_update_show_hide_menu_items),
(bookmarks_menu_add_bookmark_callback),
(bookmarks_menu_edit_bookmarks_callback), (append_separator),
(free_bookmark_list), (get_bookmark_list),
(remove_bookmarks_for_uri_if_yes), (show_bogus_bookmark_window),
(create_menu_item_from_node), (add_bookmark_for_current_location),
(edit_bookmarks),
(nautilus_window_bookmarks_preference_changed_callback),
(refresh_bookmarks_menu),
(nautilus_navigation_window_initialize_bookmarks_menu),
(nautilus_navigation_window_initialize_menus_part_1),
(nautilus_navigation_window_initialize_menus_part_2),
(nautilus_navigation_window_remove_bookmarks_menu_callback),
(nautilus_navigation_window_remove_bookmarks_menu_items),
(append_dynamic_bookmarks), (refresh_bookmarks_menu_idle_callback),
(schedule_refresh_bookmarks_menu): Moved all of the
navigation-window-specific menu code here.
* src/nautilus-shell-ui.xml:
* src/nautilus-shell.c: (open_window),
(restore_one_window_callback): Open navigation windows (this
needs work).
* src/nautilus-switchable-navigation-bar.c:
(create_search_bar_if_non_existant),
(nautilus_switchable_navigation_bar_new):
* src/nautilus-switchable-navigation-bar.h: Take a
NautilusNavigationWindow.
* src/nautilus-view-frame.c: (emit_zoom_parameters_changed),
(emit_zoom_parameters_changed_callback),
(emit_zoom_level_changed_callback),
(nautilus_view_frame_get_zoom_level),
(nautilus_view_frame_get_min_zoom_level),
(nautilus_view_frame_get_max_zoom_level),
(nautilus_view_frame_get_has_min_zoom_level),
(nautilus_view_frame_get_has_max_zoom_level),
(nautilus_view_frame_get_can_zoom_in),
(nautilus_view_frame_get_can_zoom_out):
* src/nautilus-view-frame.h: Store zoom parameters in the
view frame so that it can be a model for the UI rather than
the zoom control.
* src/nautilus-navigation-window.c:
(nautilus_navigation_window_instance_init), (go_to_callback),
(navigation_bar_location_changed_callback),
(navigation_bar_mode_changed_callback),
(side_pane_close_requested_callback),
(side_pane_size_allocate_callback), (setup_side_pane_width),
(set_current_side_panel), (side_pane_switch_page_callback),
(nautilus_navigation_window_set_up_sidebar),
(nautilus_navigation_window_tear_down_sidebar),
(nautilus_navigation_window_unrealize),
(nautilus_navigation_window_destroy),
(nautilus_navigation_window_finalize),
(nautilus_navigation_window_add_sidebar_panel),
(nautilus_navigation_window_remove_sidebar_panel),
(nautilus_navigation_window_go_back),
(nautilus_navigation_window_go_forward),
(nautilus_navigation_window_set_search_mode),
(nautilus_navigation_window_get_search_mode),
(nautilus_navigation_window_go_home),
(nautilus_navigation_window_allow_back),
(nautilus_navigation_window_allow_forward), (real_merge_menus),
(zoom_level_changed_callback), (zoom_parameters_changed_callback),
(connect_view), (disconnect_view), (real_set_content_view_widget),
(real_set_throbber_active),
(nautilus_navigation_window_show_location_bar_temporarily),
(real_prompt_for_location),
(nautilus_navigation_window_clear_forward_list),
(nautilus_navigation_window_clear_back_list), (add_sidebar_panels),
(show_dock_item), (hide_dock_item), (dock_item_showing),
(nautilus_navigation_window_hide_location_bar),
(nautilus_navigation_window_show_location_bar),
(nautilus_navigation_window_location_bar_showing),
(nautilus_navigation_window_hide_toolbar),
(nautilus_navigation_window_show_toolbar),
(nautilus_navigation_window_toolbar_showing),
(nautilus_navigation_window_hide_sidebar),
(nautilus_navigation_window_show_sidebar),
(nautilus_navigation_window_sidebar_showing),
(nautilus_navigation_window_get_base_page_index),
(nautilus_navigation_window_show),
(nautilus_navigation_window_class_init):
* src/nautilus-navigation-window.h:
* src/nautilus-object-window.c: (save_window_geometry_timeout),
(nautilus_object_window_configure_event),
(nautilus_object_window_unrealize),
(nautilus_object_window_destroy),
(nautilus_object_window_finalize),
(nautilus_object_window_save_geometry),
(nautilus_object_window_show), (real_set_content_view_widget),
(nautilus_object_window_instance_init),
(nautilus_object_window_class_init):
* src/nautilus-object-window.h:
* src/nautilus-window-manage-views.c: (change_selection),
(update_title), (set_displayed_location), (handle_go_back),
(handle_go_forward), (handle_go_elsewhere), (update_up_button),
(viewed_file_changed_callback), (update_history),
(update_for_new_location), (open_location),
(nautilus_window_open_location),
(nautilus_window_open_location_with_selection),
(load_new_location_in_sidebar_panels),
(load_new_location_in_all_views),
(disconnect_and_destroy_sidebar_panel), (handle_view_failure),
(position_and_show_window_callback),
(nautilus_window_stop_loading),
(nautilus_navigation_window_set_sidebar_panels),
(zoom_level_changed_callback), (zoom_parameters_changed_callback),
(go_back_callback),
(open_location_prefer_existing_window_callback),
(open_location_force_new_window_callback),
(report_redirect_callback), (set_side_panel_image),
(view_loaded_callback), (nautilus_window_manage_views_destroy),
(nautilus_navigation_window_back_or_forward):
* src/nautilus-window-manage-views.h:
* src/nautilus-window-menus.c: (bookmark_holder_new),
(show_bogus_bookmark_window), (activate_bookmark_in_menu_item),
(nautilus_menus_append_bookmark_to_menu),
(file_menu_new_window_callback), (file_menu_burn_cd_callback),
(go_menu_location_callback),
(nautilus_window_update_show_hide_menu_items),
(nautilus_window_initialize_menus_part_1),
(nautilus_window_initialize_menus_part_2), (refresh_go_menu):
* src/nautilus-window-private.h:
* src/nautilus-window-toolbars.c:
(activate_back_or_forward_menu_item),
(activate_back_menu_item_callback),
(activate_forward_menu_item_callback),
(create_back_or_forward_menu), (get_back_button),
(get_forward_button), (back_or_forward_button_pressed_callback),
(create_back_or_forward_toolbar_item), (throbber_set_throbbing),
(throbber_created_callback),
(nautilus_navigation_window_set_throbber_active),
(nautilus_navigation_window_activate_throbber),
(nautilus_navigation_window_initialize_toolbars):
* src/nautilus-window.c: (nautilus_window_instance_init),
(ui_idle_handler), (nautilus_window_go_up),
(nautilus_window_allow_up), (nautilus_window_allow_stop),
(nautilus_window_allow_reload), (nautilus_window_allow_burn_cd),
(nautilus_window_go_home), (nautilus_window_launch_cd_burner),
(nautilus_window_prompt_for_location),
(nautilus_window_get_location), (real_merge_menus),
(nautilus_window_constructed), (nautilus_window_destroy),
(nautilus_window_finalize), (nautilus_window_close),
(update_extra_viewer_in_view_as_menus),
(nautilus_window_synch_view_as_menus),
(load_view_as_menus_callback), (nautilus_window_display_error),
(real_set_content_view_widget),
(nautilus_window_set_content_view_widget), (show_dock_item),
(hide_dock_item), (dock_item_showing),
(nautilus_window_hide_status_bar),
(nautilus_window_show_status_bar),
(nautilus_window_status_bar_showing), (nautilus_window_show),
(nautilus_window_get_ui_container),
(nautilus_window_set_viewed_file), (add_to_history_list),
(real_add_current_location_to_history_list),
(nautilus_window_add_current_location_to_history_list),
(nautilus_forget_history), (nautilus_window_class_init):
* src/nautilus-window.h: Split NautilusWindow into three
classes. A NautilusWindow base class, a NautilusObjectWindow
class, and a NautilusNavigationWindow class.
2003-09-30 Alexander Larsson <alexl@redhat.com>
* libnautilus-private/nautilus-icon-container.c (nautilus_icon_container_scroll_to_icon):
@ -107,7 +551,7 @@
* cut-n-paste-code/gsequence/gsequence.c:
Patch from Soeren Sandmann to fix removes.
Thanks to Martin Wehner for tracking this down.
2003-09-11 Mathieu Lacage <mathieu@gnome.org>
* src/file-manager/fm-properties-window.c: add a wait cursor during

View file

@ -221,8 +221,9 @@ nautilus_adapter_open_location_callback (NautilusAdapterEmbedStrategy *strategy
const char *uri,
NautilusAdapter *adapter)
{
nautilus_view_open_location_in_this_window
(adapter->details->nautilus_view, uri);
nautilus_view_open_location
(adapter->details->nautilus_view,
uri, Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE, 0, NULL);
}

View file

@ -168,8 +168,9 @@ row_activated_callback (GtkTreeView *tree_view,
/* Navigate to the clicked location. */
uri = nautilus_bookmark_get_uri (NAUTILUS_BOOKMARK (bookmark));
nautilus_view_open_location_in_this_window
(NAUTILUS_VIEW (view), uri);
nautilus_view_open_location
(NAUTILUS_VIEW (view),
uri, Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE, 0, NULL);
g_free (uri);
}

View file

@ -281,7 +281,12 @@ got_activation_uri_callback (NautilusFile *file, gpointer callback_data)
/* Non-local executables don't get launched. They act like non-executables. */
if (file_uri == NULL) {
nautilus_view_open_location_in_this_window (NAUTILUS_VIEW (view), uri);
nautilus_view_open_location
(NAUTILUS_VIEW (view),
uri,
Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE,
0,
NULL);
} else {
nautilus_launch_application_from_command (screen, NULL, file_uri, NULL, FALSE);
g_free (file_uri);
@ -294,7 +299,12 @@ got_activation_uri_callback (NautilusFile *file, gpointer callback_data)
g_free (view->details->selection_location);
}
view->details->selection_location = g_strdup (uri);
nautilus_view_open_location_in_this_window (NAUTILUS_VIEW (view), uri);
nautilus_view_open_location
(NAUTILUS_VIEW (view),
uri,
Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE,
0,
NULL);
}
}

View file

@ -393,10 +393,6 @@ static const PreferenceDefault preference_defaults[] = {
NULL, NULL,
"search_bar_type"
},
{ NAUTILUS_PREFERENCES_WINDOW_ALWAYS_NEW,
PREFERENCE_BOOLEAN,
GINT_TO_POINTER (FALSE)
},
{ NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS,
PREFERENCE_STRING_LIST,
"size,date_modified,type",
@ -412,10 +408,6 @@ static const PreferenceDefault preference_defaults[] = {
PREFERENCE_INTEGER,
GINT_TO_POINTER (148)
},
{ NAUTILUS_PREFERENCES_START_WITH_TOOLBAR,
PREFERENCE_BOOLEAN,
GINT_TO_POINTER (TRUE)
},
{ NAUTILUS_PREFERENCES_START_WITH_LOCATION_BAR,
PREFERENCE_BOOLEAN,
GINT_TO_POINTER (TRUE)

View file

@ -46,9 +46,6 @@ G_BEGIN_DECLS
/* How wide the sidebar is (or how wide it will be when expanded) */
#define NAUTILUS_PREFERENCES_SIDEBAR_WIDTH "preferences/sidebar_width"
/* Window options */
#define NAUTILUS_PREFERENCES_WINDOW_ALWAYS_NEW "preferences/window_always_new"
/* Trash options */
#define NAUTILUS_PREFERENCES_CONFIRM_TRASH "preferences/confirm_trash"
#define NAUTILUS_PREFERENCES_ENABLE_DELETE "preferences/enable_delete"
@ -77,7 +74,6 @@ G_BEGIN_DECLS
#define NAUTILUS_PREFERENCES_EXECUTABLE_TEXT_ACTIVATION "preferences/executable_text_activation"
/* Which views should be displayed for new windows */
#define NAUTILUS_PREFERENCES_START_WITH_TOOLBAR "preferences/start_with_toolbar"
#define NAUTILUS_PREFERENCES_START_WITH_LOCATION_BAR "preferences/start_with_location_bar"
#define NAUTILUS_PREFERENCES_START_WITH_STATUS_BAR "preferences/start_with_status_bar"
#define NAUTILUS_PREFERENCES_START_WITH_SIDEBAR "preferences/start_with_sidebar"

View file

@ -148,6 +148,7 @@ typedef struct {
static GType nautilus_icon_container_accessible_get_type (void);
static void activate_selected_items (NautilusIconContainer *container);
static void activate_selected_items_alternate (NautilusIconContainer *container);
static void nautilus_icon_container_theme_changed (gpointer user_data);
static void compute_stretch (StretchState *start,
StretchState *current);
@ -204,6 +205,7 @@ GNOME_CLASS_BOILERPLATE (NautilusIconContainer, nautilus_icon_container,
/* The NautilusIconContainer signals. */
enum {
ACTIVATE,
ACTIVATE_ALTERNATE,
BAND_SELECT_STARTED,
BAND_SELECT_ENDED,
BUTTON_PRESS,
@ -3209,7 +3211,11 @@ nautilus_icon_container_did_not_drag (NautilusIconContainer *container,
* NautilusList goes the other way because its "links" seem
* much more link-like.
*/
activate_selected_items (container);
if (event->button == MIDDLE_BUTTON) {
activate_selected_items_alternate (container);
} else {
activate_selected_items (container);
}
}
}
}
@ -3827,6 +3833,16 @@ nautilus_icon_container_class_init (NautilusIconContainerClass *class)
g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, 1,
G_TYPE_POINTER);
signals[ACTIVATE_ALTERNATE]
= g_signal_new ("activate_alternate",
G_TYPE_FROM_CLASS (class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (NautilusIconContainerClass,
activate_alternate),
NULL, NULL,
g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, 1,
G_TYPE_POINTER);
signals[CONTEXT_CLICK_SELECTION]
= g_signal_new ("context_click_selection",
G_TYPE_FROM_CLASS (class),
@ -4237,25 +4253,28 @@ handle_icon_button_press (NautilusIconContainer *container,
return TRUE;
}
if (event->button == DRAG_BUTTON &&
if ((event->button == DRAG_BUTTON || event->button == MIDDLE_BUTTON) &&
event->type == GDK_BUTTON_PRESS) {
/* The next double click has to be on this icon */
details->double_click_icon[1] = details->double_click_icon[0];
details->double_click_icon[0] = icon;
}
if (event->type == GDK_2BUTTON_PRESS &&
event->button == DRAG_BUTTON) {
(event->button == DRAG_BUTTON || event->button == MIDDLE_BUTTON)) {
/* Double clicking does not trigger a D&D action. */
details->drag_button = 0;
details->drag_icon = NULL;
if (icon == details->double_click_icon[1] &&
!button_event_modifies_selection (event)) {
activate_selected_items (container);
if (event->button == MIDDLE_BUTTON) {
activate_selected_items_alternate (container);
} else {
activate_selected_items (container);
}
}
return TRUE;
}
if (event->button == DRAG_BUTTON
|| event->button == DRAG_MENU_BUTTON) {
details->drag_button = event->button;
@ -4572,6 +4591,22 @@ activate_selected_items (NautilusIconContainer *container)
g_list_free (selection);
}
static void
activate_selected_items_alternate (NautilusIconContainer *container)
{
GList *selection;
g_return_if_fail (NAUTILUS_IS_ICON_CONTAINER (container));
selection = nautilus_icon_container_get_selection (container);
if (selection != NULL) {
g_signal_emit (container,
signals[ACTIVATE_ALTERNATE], 0,
selection);
}
g_list_free (selection);
}
static NautilusIcon *
get_icon_being_renamed (NautilusIconContainer *container)
{

View file

@ -87,6 +87,8 @@ typedef struct {
/* Operations on icons. */
void (* activate) (NautilusIconContainer *container,
NautilusIconData *data);
void (* activate_alternate) (NautilusIconContainer *container,
NautilusIconData *data);
void (* context_click_selection) (NautilusIconContainer *container,
GdkEventButton *event);
void (* move_copy_items) (NautilusIconContainer *container,

View file

@ -60,6 +60,7 @@
#define NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_REVERSED "list_view_sort_reversed"
#define NAUTILUS_METADATA_KEY_WINDOW_GEOMETRY "window_geometry"
#define NAUTILUS_METADATA_KEY_WINDOW_SCROLL_POSITION "window_scroll_position"
#define NAUTILUS_METADATA_KEY_SIDEBAR_BACKGROUND_COLOR "sidebar_background_color"
#define NAUTILUS_METADATA_KEY_SIDEBAR_BACKGROUND_IMAGE "sidebar_background_tile_image"

View file

@ -87,18 +87,19 @@ module Nautilus {
* 'selection' - ro - URIList - the selection
*/
interface ViewFrame : ::Bonobo::Unknown {
/* Called by the view component to change the location
* shown in the window, or to open a window. The
* "prefer existing window" variant will use an
* existing window if one exists for that location and
* will otherwise open a new window (with no
* selection). In the case where you force a new
* window, you can specify the initial selection.
*/
oneway void open_location_in_this_window (in URI location);
oneway void open_location_prefer_existing_window (in URI location);
oneway void open_location_force_new_window (in URI location,
in URIList selection);
enum OpenMode {
OPEN_ACCORDING_TO_MODE,
OPEN_IN_SPATIAL,
OPEN_IN_NAVIGATION
};
typedef long OpenFlags;
const OpenFlags OPEN_FLAG_CLOSE_BEHIND = 1;
oneway void open_location (in URI location,
in OpenMode mode,
in OpenFlags flags,
in URIList selection);
/* Called by a view component when the location
* changes, but the view component is handling it

View file

@ -76,6 +76,8 @@ typedef struct {
char *location;
GList *selection;
char *title;
Nautilus_ViewFrame_OpenMode mode;
Nautilus_ViewFrame_OpenFlags flags;
} LocationPlus;
BONOBO_CLASS_BOILERPLATE_FULL (NautilusView, nautilus_view, Nautilus_View,
@ -556,38 +558,8 @@ free_location_plus_callback (gpointer callback_data)
}
static void
call_open_location_in_this_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_open_location_in_this_window
(view_frame, callback_data, &ev);
}
view_frame_call_end (view_frame, &ev);
}
static void
call_open_location_prefer_existing_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_open_location_prefer_existing_window
(view_frame, callback_data, &ev);
}
view_frame_call_end (view_frame, &ev);
}
static void
call_open_location_force_new_window (NautilusView *view,
gpointer callback_data)
call_open_location (NautilusView *view,
gpointer callback_data)
{
LocationPlus *location_plus;
CORBA_Environment ev;
@ -599,13 +571,14 @@ call_open_location_force_new_window (NautilusView *view,
view_frame = view_frame_call_begin (view, &ev);
if (view_frame != CORBA_OBJECT_NIL) {
uri_list = nautilus_uri_list_from_g_list (location_plus->selection);
Nautilus_ViewFrame_open_location_force_new_window
(view_frame, location_plus->location, uri_list, &ev);
Nautilus_ViewFrame_open_location
(view_frame, location_plus->location, location_plus->mode, location_plus->flags, uri_list, &ev);
CORBA_free (uri_list);
}
view_frame_call_end (view_frame, &ev);
}
static void
call_report_location_change (NautilusView *view,
gpointer callback_data)
@ -788,40 +761,23 @@ call_close_window (NautilusView *view,
view_frame_call_end (view_frame, &ev);
}
void
nautilus_view_open_location_in_this_window (NautilusView *view,
const char *location)
{
queue_outgoing_call (view,
call_open_location_in_this_window,
g_strdup (location),
g_free);
}
void
nautilus_view_open_location_prefer_existing_window (NautilusView *view,
const char *location)
{
queue_outgoing_call (view,
call_open_location_prefer_existing_window,
g_strdup (location),
g_free);
}
void
nautilus_view_open_location_force_new_window (NautilusView *view,
const char *location,
GList *selection)
nautilus_view_open_location (NautilusView *view,
const char *location,
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags,
GList *selection)
{
LocationPlus *location_plus;
location_plus = g_new0 (LocationPlus, 1);
location_plus->location = g_strdup (location);
location_plus->selection = str_list_copy (selection);
location_plus->mode = mode;
location_plus->flags = flags;
queue_outgoing_call (view,
call_open_location_force_new_window,
call_open_location,
location_plus,
free_location_plus_callback);
}

View file

@ -70,13 +70,11 @@ NautilusView * nautilus_view_new_from_bonobo_control (BonoboCon
BonoboControl * nautilus_view_get_bonobo_control (NautilusView *view);
/* Calls to the Nautilus shell via the view frame. See the IDL for detailed comments. */
void nautilus_view_open_location_in_this_window (NautilusView *view,
const char *location_uri);
void nautilus_view_open_location_prefer_existing_window (NautilusView *view,
const char *location_uri);
void nautilus_view_open_location_force_new_window (NautilusView *view,
void nautilus_view_open_location (NautilusView *view,
const char *location_uri,
GList *selection); /* list of URI char *s */
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags,
GList *selection);
void nautilus_view_report_location_change (NautilusView *view,
const char *location_uri,
GList *selection, /* list of URI char *s */

View file

@ -72,6 +72,8 @@ nautilus_SOURCES = \
nautilus-location-bar.c \
nautilus-main.c \
nautilus-navigation-bar.c \
nautilus-navigation-window.c \
nautilus-navigation-window-menus.c \
nautilus-profiler.c \
nautilus-property-browser.c \
nautilus-search-bar-criterion.c \
@ -82,13 +84,14 @@ nautilus_SOURCES = \
nautilus-sidebar-title.c \
nautilus-signaller.c \
nautilus-simple-search-bar.c \
nautilus-spatial-window.c \
nautilus-switchable-navigation-bar.c \
nautilus-switchable-search-bar.c \
nautilus-window-toolbars.c \
nautilus-view-frame-corba.c \
nautilus-view-frame.c \
nautilus-window-manage-views.c \
nautilus-window-menus.c \
nautilus-window-toolbars.c \
nautilus-window.c \
nautilus-zoom-control.c \
nautilus-applicable-views.h \
@ -104,6 +107,7 @@ nautilus_SOURCES = \
nautilus-location-bar.h \
nautilus-main.h \
nautilus-navigation-bar.h \
nautilus-navigation-window.h \
nautilus-profiler.h \
nautilus-property-browser.h \
nautilus-search-bar-criterion-private.h \
@ -116,6 +120,7 @@ nautilus_SOURCES = \
nautilus-sidebar-title.h \
nautilus-signaller.h \
nautilus-simple-search-bar.h \
nautilus-spatial-window.h \
nautilus-switchable-navigation-bar.h \
nautilus-switchable-search-bar.h \
nautilus-view-frame-private.h \
@ -152,6 +157,8 @@ server_DATA = $(server_in_files:.server.in=.server)
uidir = $(datadir)/gnome-2.0/ui
ui_DATA = \
nautilus-shell-ui.xml \
nautilus-navigation-window-ui.xml \
nautilus-spatial-window-ui.xml \
$(NULL)
gladedir = $(datadir)/nautilus/glade

View file

@ -188,7 +188,6 @@ static GdkAtom copied_files_atom;
static gboolean show_delete_command_auto_value;
static gboolean confirm_trash_auto_value;
static gboolean use_new_window_auto_value;
static char *scripts_directory_uri;
static int scripts_directory_uri_length;
@ -249,12 +248,6 @@ struct FMDirectoryViewDetails
NautilusFile *file_monitored_for_open_with;
};
typedef enum {
RESPECT_PREFERENCE,
PREFER_EXISTING_WINDOW,
FORCE_NEW_WINDOW
} WindowChoice;
typedef enum {
ACTIVATION_ACTION_LAUNCH,
ACTIVATION_ACTION_LAUNCH_IN_TERMINAL,
@ -265,7 +258,8 @@ typedef enum {
typedef struct {
FMDirectoryView *view;
NautilusFile *file;
WindowChoice choice;
Nautilus_ViewFrame_OpenMode mode;
Nautilus_ViewFrame_OpenFlags flags;
NautilusFileCallback callback;
} ActivateParameters;
@ -303,7 +297,8 @@ static void trash_or_delete_files (FMDirectoryView
const GList *files);
static void fm_directory_view_activate_file (FMDirectoryView *view,
NautilusFile *file,
WindowChoice choice);
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags);
static void load_directory (FMDirectoryView *view,
NautilusDirectory *directory);
static void fm_directory_view_merge_menus (FMDirectoryView *view);
@ -549,7 +544,7 @@ open_callback (BonoboUIComponent *component, gpointer callback_data, const char
view = FM_DIRECTORY_VIEW (callback_data);
selection = fm_directory_view_get_selection (view);
fm_directory_view_activate_files (view, selection);
fm_directory_view_activate_files (view, selection, Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE, 0);
nautilus_file_list_free (selection);
}
@ -558,25 +553,12 @@ open_alternate_callback (BonoboUIComponent *component, gpointer callback_data, c
{
FMDirectoryView *view;
GList *selection;
char *uri;
view = FM_DIRECTORY_VIEW (callback_data);
selection = fm_directory_view_get_selection (view);
if (use_new_window_auto_value) {
/* UI should have prevented this from being called unless exactly
* one item is selected.
*/
if (selection_contains_one_item_in_menu_callback (view, selection)) {
uri = nautilus_file_get_uri (NAUTILUS_FILE (selection->data));
nautilus_view_open_location_in_this_window
(view->details->nautilus_view, uri);
g_free (uri);
}
} else {
if (fm_directory_view_confirm_multiple_windows (view, g_list_length (selection))) {
g_list_foreach (selection, open_one_in_new_window, view);
}
if (fm_directory_view_confirm_multiple_windows (view, g_list_length (selection))) {
g_list_foreach (selection, open_one_in_new_window, view);
}
nautilus_file_list_free (selection);
@ -628,30 +610,14 @@ fm_directory_view_chose_application_callback (GnomeVFSMimeApplication *applicati
static void
open_location (FMDirectoryView *directory_view,
const char *new_uri,
WindowChoice choice)
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags)
{
g_assert (FM_IS_DIRECTORY_VIEW (directory_view));
g_assert (new_uri != NULL);
switch (choice) {
case RESPECT_PREFERENCE:
if (use_new_window_auto_value) {
nautilus_view_open_location_prefer_existing_window
(directory_view->details->nautilus_view, new_uri);
} else {
nautilus_view_open_location_in_this_window
(directory_view->details->nautilus_view, new_uri);
}
break;
case PREFER_EXISTING_WINDOW:
nautilus_view_open_location_prefer_existing_window
(directory_view->details->nautilus_view, new_uri);
break;
case FORCE_NEW_WINDOW:
nautilus_view_open_location_force_new_window
(directory_view->details->nautilus_view, new_uri, NULL);
break;
}
nautilus_view_open_location (directory_view->details->nautilus_view,
new_uri, mode, flags, NULL);
}
static void
@ -676,7 +642,7 @@ switch_location_and_view (NautilusViewIdentifier *identifier,
nautilus_mime_set_default_component_for_file (file, identifier->iid);
nautilus_file_unref (file);
open_location (directory_view, new_uri, RESPECT_PREFERENCE);
open_location (directory_view, new_uri, Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE, 0);
}
static void
@ -1385,8 +1351,6 @@ fm_directory_view_init (FMDirectoryView *view)
&confirm_trash_auto_value);
eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_ENABLE_DELETE,
&show_delete_command_auto_value);
eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_WINDOW_ALWAYS_NEW,
&use_new_window_auto_value);
}
view->details = g_new0 (FMDirectoryViewDetails, 1);
@ -1451,12 +1415,6 @@ fm_directory_view_init (FMDirectoryView *view)
filtering_changed_callback (view);
eel_preferences_add_callback (NAUTILUS_PREFERENCES_WINDOW_ALWAYS_NEW,
schedule_update_menus_callback, view);
eel_preferences_add_callback (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES,
filtering_changed_callback, view);
eel_preferences_add_callback (NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES,
filtering_changed_callback, view);
eel_preferences_add_callback (NAUTILUS_PREFERENCES_CONFIRM_TRASH,
schedule_update_menus_callback, view);
eel_preferences_add_callback (NAUTILUS_PREFERENCES_ENABLE_DELETE,
@ -1522,8 +1480,6 @@ fm_directory_view_finalize (GObject *object)
fm_directory_view_ignore_hidden_file_preferences (view);
eel_preferences_remove_callback (NAUTILUS_PREFERENCES_WINDOW_ALWAYS_NEW,
schedule_update_menus_callback, view);
eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES,
filtering_changed_callback, view);
eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES,
@ -3299,7 +3255,8 @@ open_one_in_new_window (gpointer data, gpointer callback_data)
fm_directory_view_activate_file (FM_DIRECTORY_VIEW (callback_data),
NAUTILUS_FILE (data),
FORCE_NEW_WINDOW);
Nautilus_ViewFrame_OPEN_IN_NAVIGATION,
0);
}
NautilusFile *
@ -4356,7 +4313,7 @@ open_scripts_folder_callback (BonoboUIComponent *component,
view = FM_DIRECTORY_VIEW (callback_data);
open_location (view, scripts_directory_uri, RESPECT_PREFERENCE);
open_location (view, scripts_directory_uri, Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE, 0);
eel_show_info_dialog_with_details
(_("All executable files in this folder will appear in the "
@ -4828,31 +4785,20 @@ real_update_menus (FMDirectoryView *view)
FM_DIRECTORY_VIEW_COMMAND_OPEN,
selection_count != 0);
if (use_new_window_auto_value) {
nautilus_bonobo_set_sensitive (view->details->ui,
FM_DIRECTORY_VIEW_COMMAND_OPEN_ALTERNATE,
selection_count == 1);
nautilus_bonobo_set_label
(view->details->ui,
FM_DIRECTORY_VIEW_COMMAND_OPEN_ALTERNATE,
_("Open _in This Window"));
if (selection_count <= 1) {
label_with_underscore = g_strdup (_("Navigation Window"));
} else {
if (selection_count <= 1) {
label_with_underscore = g_strdup (_("Open _in New Window"));
} else {
label_with_underscore = g_strdup_printf (_("Open _in %d New Windows"), selection_count);
}
nautilus_bonobo_set_label
(view->details->ui,
FM_DIRECTORY_VIEW_COMMAND_OPEN_ALTERNATE,
label_with_underscore);
g_free (label_with_underscore);
nautilus_bonobo_set_sensitive (view->details->ui,
FM_DIRECTORY_VIEW_COMMAND_OPEN_ALTERNATE,
selection_count != 0);
}
label_with_underscore = g_strdup_printf (_("%d Navigation Windows"), selection_count);
}
nautilus_bonobo_set_label
(view->details->ui,
FM_DIRECTORY_VIEW_COMMAND_OPEN_ALTERNATE,
label_with_underscore);
g_free (label_with_underscore);
nautilus_bonobo_set_sensitive (view->details->ui,
FM_DIRECTORY_VIEW_COMMAND_OPEN_ALTERNATE,
selection_count != 0);
/* Broken into its own function just for convenience */
reset_bonobo_open_with_menu (view, selection);
@ -5305,7 +5251,7 @@ activate_callback (NautilusFile *file, gpointer callback_data)
if (action_type == GNOME_VFS_MIME_ACTION_TYPE_COMPONENT &&
nautilus_mime_has_any_components_for_file (file)) {
open_location (view, uri, parameters->choice);
open_location (view, uri, parameters->mode, parameters->flags);
} else {
nautilus_launch_show_file
(file, fm_directory_view_get_containing_window (view));
@ -5389,7 +5335,8 @@ cancel_activate_callback (gpointer callback_data)
static void
fm_directory_view_activate_file (FMDirectoryView *view,
NautilusFile *file,
WindowChoice choice)
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags)
{
ActivateParameters *parameters;
NautilusFileAttributes attributes;
@ -5412,7 +5359,8 @@ fm_directory_view_activate_file (FMDirectoryView *view,
parameters = g_new (ActivateParameters, 1);
parameters->view = view;
parameters->file = file;
parameters->choice = choice;
parameters->mode = mode;
parameters->flags = flags;
parameters->callback = activate_activation_uri_ready_callback;
file_name = nautilus_file_get_display_name (file);
@ -5443,7 +5391,9 @@ fm_directory_view_activate_file (FMDirectoryView *view,
**/
void
fm_directory_view_activate_files (FMDirectoryView *view,
GList *files)
GList *files,
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags)
{
GList *node;
int file_count;
@ -5458,15 +5408,21 @@ fm_directory_view_activate_files (FMDirectoryView *view,
* but it proved mysterious in practice.
*/
file_count = g_list_length (files);
use_new_window = file_count > 1 || use_new_window_auto_value;
use_new_window = file_count > 1;
if (use_new_window && mode == Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE) {
#if !NEW_UI_COMPLETE
/* Match the current window type */
mode = Nautilus_ViewFrame_OPEN_IN_SPATIAL;
#endif
}
if (!use_new_window || fm_directory_view_confirm_multiple_windows (view, file_count)) {
for (node = files; node != NULL; node = node->next) {
fm_directory_view_activate_file
(view, node->data,
file_count == 1
? RESPECT_PREFERENCE
: PREFER_EXISTING_WINDOW);
/* The ui should ask for navigation or object windows
* depending on what the current one is */
fm_directory_view_activate_file
(view, node->data, mode, flags);
}
}
}

View file

@ -343,7 +343,9 @@ void fm_directory_view_end_loading (FMDirect
* FMDirectoryView and its subclasses
*/
void fm_directory_view_activate_files (FMDirectoryView *view,
GList *files);
GList *files,
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags);
void fm_directory_view_start_batching_selection_changes (FMDirectoryView *view);
void fm_directory_view_stop_batching_selection_changes (FMDirectoryView *view);
gboolean fm_directory_view_confirm_multiple_windows (FMDirectoryView *view,

View file

@ -1702,7 +1702,23 @@ icon_container_activate_callback (NautilusIconContainer *container,
g_assert (FM_IS_ICON_VIEW (icon_view));
g_assert (container == get_icon_container (icon_view));
fm_directory_view_activate_files (FM_DIRECTORY_VIEW (icon_view), file_list);
fm_directory_view_activate_files (FM_DIRECTORY_VIEW (icon_view),
file_list,
Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE, 0);
}
static void
icon_container_activate_alternate_callback (NautilusIconContainer *container,
GList *file_list,
FMIconView *icon_view)
{
g_assert (FM_IS_ICON_VIEW (icon_view));
g_assert (container == get_icon_container (icon_view));
fm_directory_view_activate_files (FM_DIRECTORY_VIEW (icon_view),
file_list,
Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE,
Nautilus_ViewFrame_OPEN_FLAG_CLOSE_BEHIND);
}
static void
@ -2444,6 +2460,8 @@ create_icon_container (FMIconView *icon_view)
g_signal_connect_object (icon_container, "activate",
G_CALLBACK (icon_container_activate_callback), icon_view, 0);
g_signal_connect_object (icon_container, "activate_alternate",
G_CALLBACK (icon_container_activate_alternate_callback), icon_view, 0);
g_signal_connect_object (icon_container, "band_select_started",
G_CALLBACK (band_select_started_callback), icon_view, 0);
g_signal_connect_object (icon_container, "band_select_ended",

View file

@ -153,7 +153,23 @@ activate_selected_items (FMListView *view)
file_list = fm_list_view_get_selection (FM_DIRECTORY_VIEW (view));
fm_directory_view_activate_files (FM_DIRECTORY_VIEW (view),
file_list);
file_list,
Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE,
0);
nautilus_file_list_free (file_list);
}
static void
activate_selected_items_alternate (FMListView *view)
{
GList *file_list;
file_list = fm_list_view_get_selection (FM_DIRECTORY_VIEW (view));
fm_directory_view_activate_files (FM_DIRECTORY_VIEW (view),
file_list,
Nautilus_ViewFrame_OPEN_ACCORDING_TO_MODE,
Nautilus_ViewFrame_OPEN_FLAG_CLOSE_BEHIND);
nautilus_file_list_free (file_list);
}
@ -185,10 +201,13 @@ fm_list_view_did_not_drag (FMListView *view,
gtk_tree_selection_select_path (selection, path);
}
if ((event->button == 1)
&& (click_policy_auto_value == NAUTILUS_CLICK_POLICY_SINGLE)
if ((click_policy_auto_value == NAUTILUS_CLICK_POLICY_SINGLE)
&& !button_event_modifies_selection(event)) {
activate_selected_items (view);
if (event->button == 1) {
activate_selected_items (view);
} else if (event->button == 2) {
activate_selected_items_alternate (view);
}
}
gtk_tree_path_free (path);
}
@ -421,7 +440,7 @@ button_press_callback (GtkWidget *widget, GdkEventButton *event, gpointer callba
allow_drag = FALSE;
if (gtk_tree_view_get_path_at_pos (tree_view, event->x, event->y,
&path, NULL, NULL, NULL)) {
if (event->button == 1 &&
if ((event->button == 1 || event->button == 2) &&
event->type == GDK_BUTTON_PRESS) {
if (view->details->double_click_path[1]) {
gtk_tree_path_free (view->details->double_click_path[1]);
@ -430,13 +449,15 @@ button_press_callback (GtkWidget *widget, GdkEventButton *event, gpointer callba
view->details->double_click_path[0] = gtk_tree_path_copy (path);
}
if (event->type == GDK_2BUTTON_PRESS &&
(event->button == 1 || event->button == 3)) {
if (event->type == GDK_2BUTTON_PRESS) {
if (view->details->double_click_path[1] &&
gtk_tree_path_compare (view->details->double_click_path[0], view->details->double_click_path[1]) == 0
&& !button_event_modifies_selection (event)) {
activate_selected_items (view);
if ((event->button == 1 || event->button == 3)) {
activate_selected_items (view);
} else if (event->button == 2) {
activate_selected_items_alternate (view);
}
}
}

View file

@ -800,9 +800,12 @@ reveal_selected_items_callback (BonoboUIComponent *component, gpointer user_data
parent_uri = nautilus_file_get_parent_uri (file);
if (parent_uri != NULL) {
file_as_list = g_list_prepend (NULL, nautilus_file_get_uri (file));
nautilus_view_open_location_force_new_window
/* FIXME: match the current window type */
nautilus_view_open_location
(fm_directory_view_get_nautilus_view (directory_view),
parent_uri,
Nautilus_ViewFrame_OPEN_IN_SPATIAL,
0,
file_as_list);
eel_g_list_free_deep (file_as_list);
}

View file

@ -26,7 +26,6 @@
<cmd name="New Launcher Desktop"
_label="Create L_auncher"
_tip="Create a new launcher"/>
<cmd name="OpenAlternate" hidden="1"/>
<cmd name="Reset Background"
_label="Use _Default Background"
_tip="Use the default desktop background"/>

View file

@ -28,8 +28,8 @@
_label="_Open"
_tip="Open the selected item in this window"/>
<cmd name="OpenAlternate"
_label="Open _in New Window"
_tip="Open each selected item in a new window"/>
_label="Navigation Window"
_tip="Open each selected item in a navigation window"/>
<cmd name="Open Scripts Folder"
_label="_Open Scripts Folder"
_tip="Show the folder containing the scripts that appear in this menu"/>
@ -94,12 +94,13 @@
accel="*Control*o"
pixtype="stock" pixname="gtk-open"
verb="Open"/>
<menuitem name="OpenAlternate"
accel="*Control**Shift*o"
verb="OpenAlternate"/>
<submenu name="Open With"
_label="Open Wit_h"
_tip="Choose a program with which to open the selected item">
<menuitem name="OpenAlternate"
accel="*Control**Shift*o"
verb="OpenAlternate"/>
<separator/>
<placeholder name="Applications Placeholder" delimit="none"/>
<menuitem name="OtherApplication"
verb="OtherApplication"/>
@ -219,12 +220,13 @@
<menuitem name="Open"
pixtype="stock" pixname="gtk-open"
verb="Open"/>
<menuitem name="OpenAlternate"
verb="OpenAlternate"/>
<submenu name="Open With"
_label="Open Wit_h"
tearoff="0"
_tip="Choose a program with which to open the selected item">
<menuitem name="OpenAlternate"
verb="OpenAlternate"/>
<separator/>
<placeholder name="Applications Placeholder" delimit="none"/>
<menuitem name="OtherApplication" verb="OtherApplication"/>
<separator/>

View file

@ -39,8 +39,11 @@
#include "nautilus-desktop-window.h"
#include "nautilus-first-time-druid.h"
#include "nautilus-main.h"
#include "nautilus-spatial-window.h"
#include "nautilus-navigation-window.h"
#include "nautilus-shell-interface.h"
#include "nautilus-shell.h"
#include "nautilus-window-private.h"
#include <bonobo/bonobo-main.h>
#include <bonobo/bonobo-object.h>
#include <eel/eel-gtk-macros.h>
@ -88,6 +91,9 @@ static GList *nautilus_application_desktop_windows;
/* Keeps track of all the nautilus windows. */
static GList *nautilus_application_window_list;
/* Keeps track of all the object windows */
static GList *nautilus_application_spatial_window_list;
static gboolean need_to_show_first_time_druid (void);
static void desktop_changed_callback (gpointer user_data);
static void desktop_location_changed_callback (gpointer user_data);
@ -140,6 +146,12 @@ nautilus_application_get_window_list (void)
return nautilus_application_window_list;
}
GList *
nautilus_application_get_spatial_window_list (void)
{
return nautilus_application_spatial_window_list;
}
static void
nautilus_application_instance_init (NautilusApplication *application)
{
@ -755,10 +767,108 @@ nautilus_application_close_desktop (void)
}
void
nautilus_application_close_all_windows (void)
nautilus_application_close_all_navigation_windows (void)
{
while (nautilus_application_window_list != NULL) {
nautilus_window_close (NAUTILUS_WINDOW (nautilus_application_window_list->data));
GList *list_copy;
GList *l;
list_copy = g_list_copy (nautilus_application_window_list);
for (l = list_copy; l != NULL; l = l->next) {
NautilusWindow *window;
window = NAUTILUS_WINDOW (l->data);
if (NAUTILUS_IS_NAVIGATION_WINDOW (window)) {
nautilus_window_close (window);
}
}
g_list_free (list_copy);
}
static NautilusSpatialWindow *
nautilus_application_get_existing_spatial_window (const char *location)
{
GList *l;
for (l = nautilus_application_get_spatial_window_list ();
l != NULL; l = l->next) {
char *window_location;
window_location = nautilus_window_get_location (NAUTILUS_WINDOW (l->data));
if (!strcmp (location, window_location)) {
g_free (window_location);
return NAUTILUS_SPATIAL_WINDOW (l->data);
}
g_free (window_location);
}
return NULL;
}
static NautilusSpatialWindow *
find_parent_spatial_window (NautilusSpatialWindow *window)
{
NautilusFile *file;
NautilusFile *parent_file;
char *location;
char *desktop_directory;
location = nautilus_window_get_location (NAUTILUS_WINDOW (window));
file = nautilus_file_get (location);
g_free (location);
if (!file) {
return NULL;
}
desktop_directory = nautilus_get_desktop_directory_uri ();
parent_file = nautilus_file_get_parent (file);
nautilus_file_unref (file);
while (parent_file) {
NautilusSpatialWindow *parent_window;
location = nautilus_file_get_uri (parent_file);
/* Stop at the desktop directory, as this is the
* conceptual root of the spatial windows */
if (!strcmp (location, desktop_directory)) {
g_free (location);
g_free (desktop_directory);
nautilus_file_unref (parent_file);
return NULL;
}
parent_window = nautilus_application_get_existing_spatial_window (location);
g_free (location);
if (parent_window) {
nautilus_file_unref (parent_file);
return parent_window;
}
file = parent_file;
parent_file = nautilus_file_get_parent (file);
nautilus_file_unref (file);
}
g_free (desktop_directory);
return NULL;
}
void
nautilus_application_close_with_parent_windows (NautilusSpatialWindow *window)
{
NautilusSpatialWindow *parent_window;
g_return_if_fail (NAUTILUS_IS_SPATIAL_WINDOW (window));
parent_window = find_parent_spatial_window (window);
nautilus_window_close (NAUTILUS_WINDOW (window));
window = parent_window;
while (parent_window) {
parent_window = find_parent_spatial_window (window);
nautilus_window_close (NAUTILUS_WINDOW (window));
window = parent_window;
}
}
@ -781,108 +891,29 @@ nautilus_window_delete_event_callback (GtkWidget *widget,
return TRUE;
}
static gboolean
save_window_geometry_timeout (gpointer callback_data)
static NautilusWindow *
create_window (NautilusApplication *application,
GType window_type,
GdkScreen *screen)
{
NautilusWindow *window;
window = NAUTILUS_WINDOW (callback_data);
nautilus_window_save_geometry (window);
window->save_geometry_timeout_id = 0;
return FALSE;
}
static gboolean
nautilus_window_configure_event_callback (GtkWidget *widget,
GdkEventConfigure *event,
gpointer callback_data)
{
NautilusWindow *window;
char *geometry_string;
window = NAUTILUS_WINDOW (widget);
/* Only save the geometry if the user hasn't resized the window
* for half a second. Otherwise delay the callback another half second.
*/
if (window->save_geometry_timeout_id != 0) {
g_source_remove (window->save_geometry_timeout_id);
}
if (GTK_WIDGET_VISIBLE (GTK_WIDGET (window)) && !NAUTILUS_IS_DESKTOP_WINDOW (window)) {
geometry_string = eel_gtk_window_get_geometry_string (GTK_WINDOW (window));
/* If the last geometry is NULL the window must have just
* been shown. No need to save geometry to disk since it
* must be the same.
*/
if (window->last_geometry == NULL) {
window->last_geometry = geometry_string;
return FALSE;
}
/* Don't save geometry if it's the same as before. */
if (!strcmp (window->last_geometry, geometry_string)) {
g_free (geometry_string);
return FALSE;
}
g_free (window->last_geometry);
window->last_geometry = geometry_string;
window->save_geometry_timeout_id =
g_timeout_add (500, save_window_geometry_timeout, window);
}
return FALSE;
}
static gboolean
nautilus_window_unrealize_event_callback (GtkWidget *widget,
GdkEvent *event,
gpointer callback_data)
{
NautilusWindow *window;
window = NAUTILUS_WINDOW (widget);
if (window->save_geometry_timeout_id != 0) {
g_source_remove (window->save_geometry_timeout_id);
window->save_geometry_timeout_id = 0;
nautilus_window_save_geometry (window);
}
return FALSE;
}
NautilusWindow *
nautilus_application_create_window (NautilusApplication *application,
GdkScreen *screen)
{
NautilusWindow *window;
g_return_val_if_fail (NAUTILUS_IS_APPLICATION (application), NULL);
window = NAUTILUS_WINDOW (gtk_widget_new (nautilus_window_get_type (),
window = NAUTILUS_WINDOW (gtk_widget_new (window_type,
"app", application,
"app_id", "nautilus",
"screen", screen,
NULL));
g_signal_connect (window, "delete_event",
G_CALLBACK (nautilus_window_delete_event_callback), NULL);
g_signal_connect_data (window, "delete_event",
G_CALLBACK (nautilus_window_delete_event_callback), NULL, NULL,
G_CONNECT_AFTER);
g_signal_connect_object (window, "destroy",
G_CALLBACK (nautilus_application_destroyed_window), application, 0);
g_signal_connect (window, "configure_event",
G_CALLBACK (nautilus_window_configure_event_callback), NULL);
g_signal_connect (window, "unrealize",
G_CALLBACK (nautilus_window_unrealize_event_callback), NULL);
nautilus_application_window_list = g_list_prepend (nautilus_application_window_list, window);
/* Do not yet show the window. It will be shown later on if it can
@ -893,6 +924,65 @@ nautilus_application_create_window (NautilusApplication *application,
return window;
}
static void
spatial_window_destroyed_callback (void *user_data, GObject *window)
{
nautilus_application_spatial_window_list = g_list_remove (nautilus_application_spatial_window_list, window);
}
NautilusWindow *
nautilus_application_present_spatial_window (NautilusApplication *application,
const char *location,
GdkScreen *screen)
{
NautilusWindow *window;
GList *l;
g_return_val_if_fail (NAUTILUS_IS_APPLICATION (application), NULL);
for (l = nautilus_application_get_spatial_window_list ();
l != NULL; l = l->next) {
NautilusWindow *existing_window;
char *existing_location;
existing_window = NAUTILUS_WINDOW (l->data);
existing_location = existing_window->details->pending_location;
if (existing_location == NULL) {
existing_location = existing_window->details->location;
}
if (eel_uris_match (existing_location, location)) {
gtk_window_present (GTK_WINDOW (existing_window));
g_object_ref (existing_window);
return existing_window;
}
}
window = create_window (application, NAUTILUS_TYPE_SPATIAL_WINDOW, screen);
nautilus_application_spatial_window_list = g_list_prepend (nautilus_application_spatial_window_list, window);
g_object_weak_ref (G_OBJECT (window),
spatial_window_destroyed_callback, NULL);
nautilus_window_go_to (window, location);
return window;
}
NautilusWindow *
nautilus_application_create_navigation_window (NautilusApplication *application,
GdkScreen *screen)
{
NautilusWindow *window;
g_return_val_if_fail (NAUTILUS_IS_APPLICATION (application), NULL);
window = create_window (application, NAUTILUS_TYPE_NAVIGATION_WINDOW, screen);
return window;
}
/* callback for changing the directory the desktop points to */
static void
desktop_location_changed_callback (gpointer user_data)
@ -977,23 +1067,6 @@ window_can_be_closed (NautilusWindow *window)
return FALSE;
}
static gboolean
is_last_closable_window (NautilusWindow *window)
{
GList *node, *window_list;
window_list = nautilus_application_get_window_list ();
for (node = window_list; node != NULL; node = node->next) {
if (window != NAUTILUS_WINDOW (node->data) && window_can_be_closed (NAUTILUS_WINDOW (node->data))) {
return FALSE;
}
}
return TRUE;
}
/* Called whenever a volume is unmounted. Check and see if there are any windows open
* displaying contents on the volume. If there are, close them.
* It would also be cool to save open window and position info.
@ -1029,12 +1102,7 @@ volume_unmounted_callback (NautilusVolumeMonitor *monitor, NautilusVolume *volum
/* Handle the windows in the close list. */
for (node = close_list; node != NULL; node = node->next) {
window = NAUTILUS_WINDOW (node->data);
if (is_last_closable_window (window)) {
/* Don't close the last or only window. Try to redirect to the default home directory. */
nautilus_window_go_home (window);
} else {
nautilus_window_close (window);
}
nautilus_window_close (window);
}
g_list_free (close_list);

View file

@ -44,6 +44,11 @@
typedef struct NautilusWindow NautilusWindow;
#endif
#ifndef NAUTILUS_SPATIAL_WINDOW_DEFINED
#define NAUTILUS_SPATIAL_WINDOW_DEFINED
typedef struct _NautilusSpatialWindow NautilusSpatialWindow;
#endif
typedef struct {
BonoboGenericFactory parent;
NautilusUndoManager *undo_manager;
@ -63,10 +68,16 @@ void nautilus_application_startup (NautilusApplication
gboolean do_first_time_druid_check,
const char *default_geometry,
const char *urls[]);
GList * nautilus_application_get_window_list (void);
NautilusWindow * nautilus_application_create_window (NautilusApplication *application,
GdkScreen *screen);
void nautilus_application_close_all_windows (void);
GList * nautilus_application_get_window_list (void);
GList * nautilus_application_get_spatial_window_list (void);
NautilusWindow * nautilus_application_present_spatial_window (NautilusApplication *application,
const char *location,
GdkScreen *screen);
NautilusWindow * nautilus_application_create_navigation_window (NautilusApplication *application,
GdkScreen *screen);
void nautilus_application_close_all_navigation_windows (void);
void nautilus_application_close_with_parent_windows (NautilusSpatialWindow *window);
void nautilus_application_open_desktop (NautilusApplication *application);
void nautilus_application_close_desktop (void);

View file

@ -24,14 +24,20 @@
#include <config.h>
#include "nautilus-desktop-window.h"
#include "nautilus-window-private.h"
#include <X11/Xatom.h>
#include <gdk/gdkx.h>
#include <gtk/gtklayout.h>
#include <eel/eel-gtk-macros.h>
#include <eel/eel-vfs-extensions.h>
#include <libgnome/gnome-macros.h>
#include <libgnomevfs/gnome-vfs-utils.h>
#include <libnautilus-private/nautilus-file-utilities.h>
#include <libnautilus-private/nautilus-bonobo-extensions.h>
#define STATUS_BAR_PATH "/status"
#define MENU_BAR_PATH "/menu"
struct NautilusDesktopWindowDetails {
int dummy;
@ -40,7 +46,7 @@ struct NautilusDesktopWindowDetails {
static void set_wmspec_desktop_hint (GdkWindow *window);
GNOME_CLASS_BOILERPLATE (NautilusDesktopWindow, nautilus_desktop_window,
NautilusWindow, NAUTILUS_TYPE_WINDOW)
NautilusSpatialWindow, NAUTILUS_TYPE_SPATIAL_WINDOW)
static void
nautilus_desktop_window_instance_init (NautilusDesktopWindow *window)
@ -68,7 +74,7 @@ nautilus_desktop_window_update_directory (NautilusDesktopWindow *window)
{
g_assert (NAUTILUS_IS_DESKTOP_WINDOW (window));
window->affect_desktop_on_next_location_change = TRUE;
NAUTILUS_SPATIAL_WINDOW (window)->affect_spatial_window_on_next_location_change = TRUE;
nautilus_window_go_to (NAUTILUS_WINDOW (window), EEL_DESKTOP_URI);
}
@ -344,6 +350,23 @@ real_add_current_location_to_history_list (NautilusWindow *window)
*/
}
static char *
real_get_title (NautilusWindow *window)
{
return g_strdup (_("Desktop"));
}
static void
real_merge_menus (NautilusWindow *window)
{
EEL_CALL_PARENT (NAUTILUS_WINDOW_CLASS, merge_menus, (window));
nautilus_bonobo_set_hidden (window->details->shell_ui,
STATUS_BAR_PATH, TRUE);
nautilus_bonobo_set_hidden (window->details->shell_ui,
MENU_BAR_PATH, TRUE);
}
static void
nautilus_desktop_window_class_init (NautilusDesktopWindowClass *class)
{
@ -356,4 +379,8 @@ nautilus_desktop_window_class_init (NautilusDesktopWindowClass *class)
NAUTILUS_WINDOW_CLASS (class)->add_current_location_to_history_list
= real_add_current_location_to_history_list;
NAUTILUS_WINDOW_CLASS (class)->merge_menus
= real_merge_menus;
NAUTILUS_WINDOW_CLASS (class)->get_title
= real_get_title;
}

View file

@ -30,6 +30,7 @@
#include "nautilus-window.h"
#include "nautilus-application.h"
#include "nautilus-spatial-window.h"
#define NAUTILUS_TYPE_DESKTOP_WINDOW (nautilus_desktop_window_get_type())
#define NAUTILUS_DESKTOP_WINDOW(object) (GTK_CHECK_CAST ((object), NAUTILUS_TYPE_DESKTOP_WINDOW, NautilusDesktopWindow))
@ -40,13 +41,13 @@
typedef struct NautilusDesktopWindowDetails NautilusDesktopWindowDetails;
typedef struct {
NautilusWindow parent_spot;
NautilusSpatialWindow parent_spot;
NautilusDesktopWindowDetails *details;
gboolean affect_desktop_on_next_location_change;
} NautilusDesktopWindow;
typedef struct {
NautilusWindowClass parent_spot;
NautilusSpatialWindowClass parent_spot;
} NautilusDesktopWindowClass;
GType nautilus_desktop_window_get_type (void);

View file

@ -324,9 +324,6 @@ nautilus_file_management_properties_dialog_setup (GladeXML *xml_dialog, GtkWindo
eel_preferences_glade_connect_bool (xml_dialog,
NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_DELETE_WIDGET,
NAUTILUS_PREFERENCES_ENABLE_DELETE);
eel_preferences_glade_connect_bool (xml_dialog,
NAUTILUS_FILE_MANAGEMENT_PROPERTIES_OPEN_NEW_WINDOW_WIDGET,
NAUTILUS_PREFERENCES_WINDOW_ALWAYS_NEW);
eel_preferences_glade_connect_bool (xml_dialog,
NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SHOW_HIDDEN_WIDGET,
NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES);

View file

@ -997,24 +997,6 @@
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="new_window_checkbutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Open activated item in a new window</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">2</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>

View file

@ -106,10 +106,10 @@ EEL_CLASS_BOILERPLATE (NautilusLocationBar,
nautilus_location_bar,
NAUTILUS_TYPE_NAVIGATION_BAR)
static NautilusWindow *
static NautilusNavigationWindow *
nautilus_location_bar_get_window (GtkWidget *bar)
{
return NAUTILUS_WINDOW (gtk_widget_get_ancestor (bar, NAUTILUS_TYPE_WINDOW));
return NAUTILUS_NAVIGATION_WINDOW (gtk_widget_get_ancestor (bar, NAUTILUS_TYPE_WINDOW));
}
static void
@ -126,7 +126,7 @@ drag_data_received_callback (GtkWidget *widget,
NautilusApplication *application;
int name_count;
NautilusWindow *new_window;
NautilusWindow *window;
NautilusNavigationWindow *window;
GdkScreen *screen;
gboolean new_windows_for_extras;
char *prompt;
@ -177,11 +177,11 @@ drag_data_received_callback (GtkWidget *widget,
nautilus_navigation_bar_location_changed (NAUTILUS_NAVIGATION_BAR (widget));
if (new_windows_for_extras) {
application = window->application;
application = NAUTILUS_WINDOW (window)->application;
screen = gtk_window_get_screen (GTK_WINDOW (window));
for (node = names->next; node != NULL; node = node->next) {
new_window = nautilus_application_create_window (application, screen);
new_window = nautilus_application_create_navigation_window (application, screen);
nautilus_window_go_to (new_window, node->data);
}
}
@ -760,7 +760,7 @@ nautilus_location_bar_init (NautilusLocationBar *bar)
}
GtkWidget *
nautilus_location_bar_new (NautilusWindow *window)
nautilus_location_bar_new (NautilusNavigationWindow *window)
{
GtkWidget *bar;
NautilusLocationBar *location_bar;
@ -771,7 +771,7 @@ nautilus_location_bar_new (NautilusWindow *window)
/* Clipboard */
nautilus_clipboard_set_up_editable
(GTK_EDITABLE (location_bar->details->entry),
nautilus_window_get_ui_container (window),
nautilus_window_get_ui_container (NAUTILUS_WINDOW (window)),
TRUE);
return bar;

View file

@ -31,7 +31,7 @@
#define NAUTILUS_LOCATION_BAR_H
#include "nautilus-navigation-bar.h"
#include "nautilus-window.h"
#include "nautilus-navigation-window.h"
#include <gtk/gtkhbox.h>
#include <gtk/gtklabel.h>
#include <gtk/gtkentry.h>
@ -56,6 +56,6 @@ typedef struct {
} NautilusLocationBarClass;
GType nautilus_location_bar_get_type (void);
GtkWidget* nautilus_location_bar_new (NautilusWindow *window);
GtkWidget* nautilus_location_bar_new (NautilusNavigationWindow *window);
#endif /* NAUTILUS_LOCATION_BAR_H */

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,163 @@
<Root>
<!-- A description of each placeholder's purpose is in libnautilus/nautilus-bonobo-ui.h -->
<commands>
<!-- We define commands here for (at least) all the items
for which we share tip or sensitivity state between more
than one item (usually 1 menuitem and 1 toolitem.
-->
<cmd name="Back" accel="*Alt*Left"
_tip="Go to the previous visited location"/>
<cmd name="Forward" accel="*Alt*Right"
_tip="Go to the next visited location"/>
<cmd name="Find"
_tip="Search this computer for files"/>
<cmd name="Toggle Find Mode"
_label="Find"
_tip="Search this computer for files"/>
</commands>
<menu>
<submenu name="File">
<placeholder name="Close Items Placeholder">
<menuitem name="Close All Windows"
_label="Close _All Windows"
_tip="Close all Navigation windows"
accel="*Control**Shift*w"
verb="Close All Windows"/>
</placeholder>
</submenu>
<submenu name="View" _label="_View">
<placeholder name="Show Hide Placeholder" delimit="top">
<menuitem name="Show Hide Sidebar"
type="toggle"
_label="_Side Pane"
_tip="Change the visibility of this window's sidebar"
accel="F9"
id="Show Hide Sidebar"/>
<menuitem name="Show Hide Location Bar"
type="toggle"
_label="Location _Bar"
_tip="Change the visibility of this window's location bar"
id="Show Hide Location Bar"/>
<menuitem name="Show Hide Statusbar"
type="toggle"
_label="St_atusbar"
_tip="Change the visibility of this window's statusbar"
id="Show Hide Statusbar"/>
</placeholder>
</submenu>
<submenu name="Go" _label="_Go">
<placeholder name="Navigation Items">
<menuitem name="Up"
_label="_Up"
accel="*Alt*Up"
pixtype="stock" pixname="gtk-go-up"
verb="Up"/>
<menuitem name="Back"
_label="_Back"
pixtype="stock" pixname="gtk-go-back"
verb="Back"/>
<menuitem name="Forward"
_label="_Forward"
pixtype="stock" pixname="gtk-go-forward"
verb="Forward"/>
</placeholder>
<separator/>
<menuitem name="Home"
_label="_Home"
accel="*Alt*Home"
pixtype="stock" pixname="gtk-home"
verb="Home"/>
<menuitem name="Go to Trash"
_label="_Trash"
_tip="Go to the trash folder"
verb="Go to Trash"/>
<menuitem name="Go to Location"
_label="_Location..."
accel="*Control*l"
verb="Go to Location"/>
<separator/>
<menuitem name="Clear History"
_label="_Clear History"
_tip="Clear contents of Go menu and Back/Forward lists"
verb="Clear History"/>
<placeholder name="History Placeholder" delimit="top"/>
</submenu>
<submenu name="Bookmarks" _label="_Bookmarks">
<menuitem name="Add Bookmark"
_label="_Add Bookmark"
_tip="Add a bookmark for the current location to this menu"
accel="*Control*d"
pixtype="stock" pixname="gtk-add"
verb="Add Bookmark"/>
<menuitem name="Edit Bookmarks"
_label="_Edit Bookmarks"
_tip="Display a window that allows editing the bookmarks in this menu"
accel="*Control*b"
verb="Edit Bookmarks"/>
<placeholder name="Built-in Bookmarks Placeholder" delimit="top"/>
<placeholder name="Bookmarks Placeholder" delimit="top"/>
</submenu>
</menu>
<dockitem name="Location Bar" behavior="exclusive,never vertical">
<control name="Wrapper" behavior="expandable"/>
</dockitem>
<dockitem name="Toolbar" behavior="exclusive">
<toolitem name="Back"
_label="Back"
priority="1"
pixtype="stock" pixname="gtk-go-back"
verb="Back"/>
<control name="BackMenu"/>
<toolitem name="Forward"
_label="Forward"
pixtype="stock" pixname="gtk-go-forward"
verb="Forward"/>
<control name="ForwardMenu"/>
<toolitem name="Up"
_label="Up"
pixtype="stock" pixname="gtk-go-up"
verb="Up"/>
<toolitem name="Stop" _label="Stop"
pixtype="stock" pixname="gtk-stop"
verb="Stop"/>
<toolitem name="Reload"
_label="Reload"
pixtype="stock" pixname="gtk-refresh"
verb="Reload"/>
<separator/>
<toolitem name="Home"
_label="Home"
priority="1"
pixtype="stock" pixname="gtk-home"
verb="Home"/>
<toolitem name="Toggle Find Mode"
priority="1"
type="toggle"
pixtype="stock" pixname="Search"
verb="Toggle Find Mode"/>
<toolitem name="Burn CD"
_label="Write to CD"
priority="1"
pixtype="stock" pixname="gtk-cdrom"
verb="Burn CD"/>
<placeholder name="Extra Buttons Placeholder" delimit="top"/>
<control name="ThrobberWrapper" behavior="pack-end"/>
</dockitem>
</Root>

File diff suppressed because it is too large Load diff

View file

@ -5,6 +5,7 @@
*
* Copyright (C) 1999, 2000 Red Hat, Inc.
* Copyright (C) 1999, 2000, 2001 Eazel, Inc.
* Copyright (C) 2003 Ximian, Inc.
*
* Nautilus is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@ -24,10 +25,10 @@
* Darin Adler <darin@bentspoon.com>
*
*/
/* nautilus-window.h: Interface of the main window object */
/* nautilus-navigation-window.h: Interface of the navigation window object */
#ifndef NAUTILUS_WINDOW_H
#define NAUTILUS_WINDOW_H
#ifndef NAUTILUS_NAVIGATION_WINDOW_H
#define NAUTILUS_NAVIGATION_WINDOW_H
#include <bonobo/bonobo-window.h>
#include <eel/eel-glib-extensions.h>
@ -38,129 +39,80 @@
#include "nautilus-application.h"
#include "nautilus-information-panel.h"
#include "nautilus-side-pane.h"
#include "nautilus-window.h"
#define NAUTILUS_TYPE_WINDOW (nautilus_window_get_type())
#define NAUTILUS_WINDOW(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_WINDOW, NautilusWindow))
#define NAUTILUS_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_WINDOW, NautilusWindowClass))
#define NAUTILUS_IS_WINDOW(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_WINDOW))
#define NAUTILUS_IS_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_WINDOW))
#define NAUTILUS_TYPE_NAVIGATION_WINDOW (nautilus_navigation_window_get_type())
#define NAUTILUS_NAVIGATION_WINDOW(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_NAVIGATION_WINDOW, NautilusNavigationWindow))
#define NAUTILUS_NAVIGATION_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_NAVIGATION_WINDOW, NautilusNavigationWindowClass))
#define NAUTILUS_IS_NAVIGATION_WINDOW(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_NAVIGATION_WINDOW))
#define NAUTILUS_IS_NAVIGATION_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_NAVIGATION_WINDOW))
#ifndef NAUTILUS_WINDOW_DEFINED
#define NAUTILUS_WINDOW_DEFINED
typedef struct NautilusWindow NautilusWindow;
#endif
typedef struct _NautilusNavigationWindow NautilusNavigationWindow;
typedef struct _NautilusNavigationWindowClass NautilusNavigationWindowClass;
typedef struct _NautilusNavigationWindowDetails NautilusNavigationWindowDetails;
typedef struct {
BonoboWindowClass parent_spot;
/* Function pointers for overriding, without corresponding signals */
/* add_current_location_to_history_list is a function pointer that
* subclasses may override if they wish to add something other than
* NautilusWindow's idea of the "current location" to the history
* list, or nothing at all.
*/
void (* add_current_location_to_history_list) (NautilusWindow *window);
} NautilusWindowClass;
typedef enum {
NAUTILUS_WINDOW_NOT_SHOWN,
NAUTILUS_WINDOW_POSITION_SET,
NAUTILUS_WINDOW_SHOULD_SHOW
} NautilusWindowShowState;
typedef struct NautilusWindowDetails NautilusWindowDetails;
struct NautilusWindow {
BonoboWindow parent_object;
struct _NautilusNavigationWindow {
NautilusWindow parent_object;
NautilusWindowDetails *details;
NautilusNavigationWindowDetails *details;
/** UI stuff **/
NautilusSidePane *sidebar;
NautilusInformationPanel *information_panel;
GtkWidget *content_hbox;
GtkWidget *view_as_option_menu;
GtkWidget *navigation_bar;
char *last_geometry;
guint save_geometry_timeout_id;
/** CORBA-related elements **/
NautilusApplication *application;
/** State information **/
/* Information about current location/selection */
/* Back/Forward chain, and history list.
* The data in these lists are NautilusBookmark pointers.
*/
GList *back_list, *forward_list;
NautilusBookmark *current_location_bookmark;
NautilusBookmark *last_location_bookmark;
/* Current views stuff */
NautilusViewFrame *content_view;
GList *sidebar_panels;
/* Widgets to keep track of (for state changes, etc) */
GtkWidget *zoom_control;
/* Pending changes */
NautilusViewFrame *new_content_view;
/* Window showed state (for saved_window_positions) */
NautilusWindowShowState show_state;
};
GType nautilus_window_get_type (void);
void nautilus_window_ui_freeze (NautilusWindow *window);
void nautilus_window_ui_thaw (NautilusWindow *window);
void nautilus_window_close (NautilusWindow *window);
char * nautilus_window_get_location (NautilusWindow *window);
void nautilus_window_go_to (NautilusWindow *window,
const char *location);
gboolean nautilus_window_get_search_mode (NautilusWindow *window);
void nautilus_window_set_search_mode (NautilusWindow *window,
struct _NautilusNavigationWindowClass {
NautilusWindowClass parent_spot;
};
GType nautilus_navigation_window_get_type (void);
gboolean nautilus_navigation_window_get_search_mode (NautilusNavigationWindow *window);
void nautilus_navigation_window_set_search_mode (NautilusNavigationWindow *window,
gboolean search_mode);
void nautilus_window_go_home (NautilusWindow *window);
void nautilus_window_display_error (NautilusWindow *window,
const char *error_msg);
void nautilus_window_allow_back (NautilusWindow *window,
void nautilus_navigation_window_go_home (NautilusNavigationWindow *window);
void nautilus_navigation_window_allow_back (NautilusNavigationWindow *window,
gboolean allow);
void nautilus_window_allow_forward (NautilusWindow *window,
void nautilus_navigation_window_allow_forward (NautilusNavigationWindow *window,
gboolean allow);
void nautilus_window_allow_up (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_reload (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_stop (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_burn_cd (NautilusWindow *window,
gboolean allow);
void nautilus_window_clear_back_list (NautilusWindow *window);
void nautilus_window_clear_forward_list (NautilusWindow *window);
void nautilus_navigation_window_clear_back_list (NautilusNavigationWindow *window);
void nautilus_navigation_window_clear_forward_list (NautilusNavigationWindow *window);
void nautilus_forget_history (void);
void nautilus_bookmarks_exiting (void);
void nautilus_window_reload (NautilusWindow *window);
gint nautilus_window_get_base_page_index (NautilusWindow *window);
void nautilus_window_hide_location_bar (NautilusWindow *window,
gint nautilus_navigation_window_get_base_page_index (NautilusNavigationWindow *window);
void nautilus_navigation_window_hide_location_bar (NautilusNavigationWindow *window,
gboolean save_preference);
void nautilus_window_show_location_bar (NautilusWindow *window,
void nautilus_navigation_window_show_location_bar (NautilusNavigationWindow *window,
gboolean save_preference);
gboolean nautilus_window_location_bar_showing (NautilusWindow *window);
void nautilus_window_hide_toolbar (NautilusWindow *window);
void nautilus_window_show_toolbar (NautilusWindow *window);
gboolean nautilus_window_toolbar_showing (NautilusWindow *window);
void nautilus_window_hide_sidebar (NautilusWindow *window);
void nautilus_window_show_sidebar (NautilusWindow *window);
gboolean nautilus_window_sidebar_showing (NautilusWindow *window);
void nautilus_window_hide_status_bar (NautilusWindow *window);
void nautilus_window_show_status_bar (NautilusWindow *window);
gboolean nautilus_window_status_bar_showing (NautilusWindow *window);
void nautilus_window_save_geometry (NautilusWindow *window);
gboolean nautilus_navigation_window_location_bar_showing (NautilusNavigationWindow *window);
void nautilus_navigation_window_hide_toolbar (NautilusNavigationWindow *window);
void nautilus_navigation_window_show_toolbar (NautilusNavigationWindow *window);
gboolean nautilus_navigation_window_toolbar_showing (NautilusNavigationWindow *window);
void nautilus_navigation_window_hide_sidebar (NautilusNavigationWindow *window);
void nautilus_navigation_window_show_sidebar (NautilusNavigationWindow *window);
gboolean nautilus_navigation_window_sidebar_showing (NautilusNavigationWindow *window);
void nautilus_navigation_window_add_sidebar_panel (NautilusNavigationWindow *window,
NautilusViewFrame *sidebar_panel);
void nautilus_navigation_window_remove_sidebar_panel (NautilusNavigationWindow *window,
NautilusViewFrame *sidebar_panel);
#endif

File diff suppressed because it is too large Load diff

View file

@ -1,166 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
/*
* Nautilus
*
* Copyright (C) 1999, 2000 Red Hat, Inc.
* Copyright (C) 1999, 2000, 2001 Eazel, Inc.
*
* Nautilus is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* Nautilus is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Authors: Elliot Lee <sopwith@redhat.com>
* Darin Adler <darin@bentspoon.com>
*
*/
/* nautilus-window.h: Interface of the main window object */
#ifndef NAUTILUS_WINDOW_H
#define NAUTILUS_WINDOW_H
#include <bonobo/bonobo-window.h>
#include <eel/eel-glib-extensions.h>
#include <libnautilus-private/nautilus-bookmark.h>
#include <libnautilus-private/nautilus-view-identifier.h>
#include "nautilus-applicable-views.h"
#include "nautilus-view-frame.h"
#include "nautilus-application.h"
#include "nautilus-information-panel.h"
#include "nautilus-side-pane.h"
#define NAUTILUS_TYPE_WINDOW (nautilus_window_get_type())
#define NAUTILUS_WINDOW(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_WINDOW, NautilusWindow))
#define NAUTILUS_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_WINDOW, NautilusWindowClass))
#define NAUTILUS_IS_WINDOW(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_WINDOW))
#define NAUTILUS_IS_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_WINDOW))
#ifndef NAUTILUS_WINDOW_DEFINED
#define NAUTILUS_WINDOW_DEFINED
typedef struct NautilusWindow NautilusWindow;
#endif
typedef struct {
BonoboWindowClass parent_spot;
/* Function pointers for overriding, without corresponding signals */
/* add_current_location_to_history_list is a function pointer that
* subclasses may override if they wish to add something other than
* NautilusWindow's idea of the "current location" to the history
* list, or nothing at all.
*/
void (* add_current_location_to_history_list) (NautilusWindow *window);
} NautilusWindowClass;
typedef enum {
NAUTILUS_WINDOW_NOT_SHOWN,
NAUTILUS_WINDOW_POSITION_SET,
NAUTILUS_WINDOW_SHOULD_SHOW
} NautilusWindowShowState;
typedef struct NautilusWindowDetails NautilusWindowDetails;
struct NautilusWindow {
BonoboWindow parent_object;
NautilusWindowDetails *details;
/** UI stuff **/
NautilusSidePane *sidebar;
NautilusInformationPanel *information_panel;
GtkWidget *content_hbox;
GtkWidget *view_as_option_menu;
GtkWidget *navigation_bar;
char *last_geometry;
guint save_geometry_timeout_id;
/** CORBA-related elements **/
NautilusApplication *application;
/** State information **/
/* Information about current location/selection */
/* Back/Forward chain, and history list.
* The data in these lists are NautilusBookmark pointers.
*/
GList *back_list, *forward_list;
NautilusBookmark *current_location_bookmark;
NautilusBookmark *last_location_bookmark;
/* Current views stuff */
NautilusViewFrame *content_view;
GList *sidebar_panels;
/* Widgets to keep track of (for state changes, etc) */
GtkWidget *zoom_control;
/* Pending changes */
NautilusViewFrame *new_content_view;
/* Window showed state (for saved_window_positions) */
NautilusWindowShowState show_state;
};
GType nautilus_window_get_type (void);
void nautilus_window_ui_freeze (NautilusWindow *window);
void nautilus_window_ui_thaw (NautilusWindow *window);
void nautilus_window_close (NautilusWindow *window);
char * nautilus_window_get_location (NautilusWindow *window);
void nautilus_window_go_to (NautilusWindow *window,
const char *location);
gboolean nautilus_window_get_search_mode (NautilusWindow *window);
void nautilus_window_set_search_mode (NautilusWindow *window,
gboolean search_mode);
void nautilus_window_go_home (NautilusWindow *window);
void nautilus_window_display_error (NautilusWindow *window,
const char *error_msg);
void nautilus_window_allow_back (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_forward (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_up (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_reload (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_stop (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_burn_cd (NautilusWindow *window,
gboolean allow);
void nautilus_window_clear_back_list (NautilusWindow *window);
void nautilus_window_clear_forward_list (NautilusWindow *window);
void nautilus_forget_history (void);
void nautilus_bookmarks_exiting (void);
void nautilus_window_reload (NautilusWindow *window);
gint nautilus_window_get_base_page_index (NautilusWindow *window);
void nautilus_window_hide_location_bar (NautilusWindow *window,
gboolean save_preference);
void nautilus_window_show_location_bar (NautilusWindow *window,
gboolean save_preference);
gboolean nautilus_window_location_bar_showing (NautilusWindow *window);
void nautilus_window_hide_toolbar (NautilusWindow *window);
void nautilus_window_show_toolbar (NautilusWindow *window);
gboolean nautilus_window_toolbar_showing (NautilusWindow *window);
void nautilus_window_hide_sidebar (NautilusWindow *window);
void nautilus_window_show_sidebar (NautilusWindow *window);
gboolean nautilus_window_sidebar_showing (NautilusWindow *window);
void nautilus_window_hide_status_bar (NautilusWindow *window);
void nautilus_window_show_status_bar (NautilusWindow *window);
gboolean nautilus_window_status_bar_showing (NautilusWindow *window);
void nautilus_window_save_geometry (NautilusWindow *window);
#endif

View file

@ -6,12 +6,7 @@
<!-- We define commands here for (at least) all the items
for which we share tip or sensitivity state between more
than one item (usually 1 menuitem and 1 toolitem.
-->
<cmd name="Back" accel="*Alt*Left"
_tip="Go to the previous visited location"/>
<cmd name="Forward" accel="*Alt*Right"
_tip="Go to the next visited location"/>
-->
<cmd name="Up"
_tip="Go up one level"/>
<cmd name="Find"
@ -19,9 +14,6 @@
<cmd name="Toggle Find Mode"
_label="Find"
_tip="Search this computer for files"/>
<cmd name="New Window"
_label="Open New _Window"
_tip="Open another Nautilus window for the displayed location"/>
<cmd name="Home"
_tip="Go to the home location"/>
<cmd name="Stop"
@ -59,15 +51,10 @@
<submenu name="File" _label="_File">
<placeholder name="New Items Placeholder" delimit="none">
<menuitem name="New Window"
accel="*Control*n"
verb="New Window"/>
</placeholder>
<placeholder name="Open Placeholder" delimit="top"/>
<menuitem name="Find"
_label="_Find"
verb="Find"/>
<placeholder name="Open Placeholder" delimit="top"/>
<placeholder name="Location Placeholder" delimit="top"/>
<placeholder name="General Status Placeholder" delimit="top"/>
<placeholder name="File Items Placeholder" delimit="top"/>
@ -79,11 +66,8 @@
<separator/>
<menuitem name="Close All Windows"
_label="Close _All Windows"
_tip="Close all Nautilus windows"
accel="*Control**Shift*w"
verb="Close All Windows"/>
<placeholder name="Close Items Placeholder"/>
<menuitem name="Close"
_label="_Close Window"
_tip="Close this window"
@ -166,28 +150,8 @@
verb="Reload"/>
<placeholder name="Show Hide Placeholder" delimit="top">
<menuitem name="Show Hide Sidebar"
type="toggle"
_label="_Side Pane"
_tip="Change the visibility of this window's sidebar"
accel="F9"
id="Show Hide Sidebar"/>
<menuitem name="Show Hide Toolbar"
type="toggle"
_label="_Toolbar"
_tip="Change the visibility of this window's toolbar"
id="Show Hide Toolbar"/>
<menuitem name="Show Hide Location Bar"
type="toggle"
_label="Location _Bar"
_tip="Change the visibility of this window's location bar"
id="Show Hide Location Bar"/>
<menuitem name="Show Hide Statusbar"
type="toggle"
_label="St_atusbar"
_tip="Change the visibility of this window's statusbar"
id="Show Hide Statusbar"/>
</placeholder>
<placeholder name="View Preferences Placeholder" delimit = "top"/>
<placeholder name="View Items Placeholder" delimit="top"/>
@ -212,70 +176,6 @@
<menuitem name="View as" _label="_View as..." verb="View as"/>
</placeholder>
</submenu>
<submenu name="Go" _label="_Go">
<menuitem name="Back"
_label="_Back"
pixtype="stock" pixname="gtk-go-back"
verb="Back"/>
<menuitem name="Forward"
_label="_Forward"
pixtype="stock" pixname="gtk-go-forward"
verb="Forward"/>
<menuitem name="Up"
_label="_Up"
accel="*Alt*Up"
pixtype="stock" pixname="gtk-go-up"
verb="Up"/>
<separator/>
<menuitem name="Home"
_label="_Home"
accel="*Alt*Home"
pixtype="stock" pixname="gtk-home"
verb="Home"/>
<menuitem name="Start Here"
_label="_Start Here"
_tip="Go to the Start Here folder"
verb="Start Here"/>
<menuitem name="Go to Trash"
_label="_Trash"
_tip="Go to the trash folder"
verb="Go to Trash"/>
<menuitem name="Go to Burn CD"
verb="Go to Burn CD"/>
<menuitem name="Go to Location"
_label="_Location..."
accel="*Control*l"
verb="Go to Location"/>
<separator/>
<menuitem name="Clear History"
_label="_Clear History"
_tip="Clear contents of Go menu and Back/Forward lists"
verb="Clear History"/>
<placeholder name="History Placeholder" delimit="top"/>
</submenu>
<submenu name="Bookmarks" _label="_Bookmarks">
<menuitem name="Add Bookmark"
_label="_Add Bookmark"
_tip="Add a bookmark for the current location to this menu"
accel="*Control*d"
pixtype="stock" pixname="gtk-add"
verb="Add Bookmark"/>
<menuitem name="Edit Bookmarks"
_label="_Edit Bookmarks"
_tip="Display a window that allows editing the bookmarks in this menu"
accel="*Control*b"
verb="Edit Bookmarks"/>
<placeholder name="Built-in Bookmarks Placeholder" delimit="top"/>
<placeholder name="Bookmarks Placeholder" delimit="top"/>
</submenu>
<placeholder/>
@ -313,58 +213,6 @@
</submenu>
</menu>
<dockitem name="Location Bar" behavior="exclusive,never vertical">
<control name="Wrapper" behavior="expandable"/>
</dockitem>
<dockitem name="Toolbar" behavior="exclusive">
<toolitem name="Back"
_label="Back"
priority="1"
pixtype="stock" pixname="gtk-go-back"
verb="Back"/>
<control name="BackMenu"/>
<toolitem name="Forward"
_label="Forward"
pixtype="stock" pixname="gtk-go-forward"
verb="Forward"/>
<control name="ForwardMenu"/>
<toolitem name="Up"
_label="Up"
pixtype="stock" pixname="gtk-go-up"
verb="Up"/>
<toolitem name="Stop" _label="Stop"
pixtype="stock" pixname="gtk-stop"
verb="Stop"/>
<toolitem name="Reload"
_label="Reload"
pixtype="stock" pixname="gtk-refresh"
verb="Reload"/>
<separator/>
<toolitem name="Home"
_label="Home"
priority="1"
pixtype="stock" pixname="gtk-home"
verb="Home"/>
<toolitem name="Toggle Find Mode"
priority="1"
type="toggle"
pixtype="stock" pixname="Search"
verb="Toggle Find Mode"/>
<toolitem name="Burn CD"
_label="Write to CD"
priority="1"
pixtype="stock" pixname="gtk-cdrom"
verb="Burn CD"/>
<placeholder name="Extra Buttons Placeholder" delimit="top"/>
<control name="ThrobberWrapper" behavior="pack-end"/>
</dockitem>
<status>
<!-- the name "main" is required by Bonobo -->
<item name="main"/>
@ -374,8 +222,6 @@
<popup name="background" tearoff="0">
<placeholder name="Before Zoom Items" delimit="none">
<placeholder name="New Window Items" delimit="none">
<menuitem name="New Window"
verb="New Window"/>
</placeholder>
<placeholder name="New Object Items" delimit="none">
</placeholder>

View file

@ -130,8 +130,10 @@ open_window (NautilusShell *shell, const char *uri, const char *geometry)
const char *existing_location;
gboolean prefer_existing_window;
prefer_existing_window = eel_preferences_get_boolean (NAUTILUS_PREFERENCES_WINDOW_ALWAYS_NEW);
#if NEW_UI_COMPLETE
/* FIXME: This needs more thought */
#endif
prefer_existing_window = TRUE;
/* If the user's preference is always_open_in_new_window
* we raise an existing window for the location if it already exists.
@ -156,9 +158,20 @@ open_window (NautilusShell *shell, const char *uri, const char *geometry)
}
/* Otherwise, open a new window. */
window = nautilus_application_create_window (shell->details->application,
gdk_screen_get_default ());
if (uri) {
window = nautilus_application_present_spatial_window (shell->details->application,
uri,
gdk_screen_get_default ());
} else {
window = nautilus_application_create_navigation_window (shell->details->application,
gdk_screen_get_default ());
if (uri == NULL) {
nautilus_window_go_home (window);
} else {
nautilus_window_go_to (window, uri);
}
}
if (geometry != NULL) {
eel_gtk_window_set_initial_geometry_from_string (GTK_WINDOW (window),
geometry,
@ -166,12 +179,6 @@ open_window (NautilusShell *shell, const char *uri, const char *geometry)
APPLICATION_WINDOW_MIN_HEIGHT,
FALSE);
}
if (uri == NULL) {
nautilus_window_go_home (window);
} else {
nautilus_window_go_to (window, uri);
}
}
static void
@ -348,11 +355,16 @@ restore_one_window_callback (const char *attributes,
screen = gdk_screen_get_default ();
}
window = nautilus_application_create_window (shell->details->application, screen);
#if NEW_UI_COMPLETE
/* don't always create object windows here */
#endif
if (eel_strlen (location) > 0) {
nautilus_window_go_to (window, location);
window = nautilus_application_present_spatial_window (shell->details->application,
location,
screen);
} else {
window = nautilus_application_create_navigation_window (shell->details->application,
screen);
nautilus_window_go_home (window);
}

View file

@ -0,0 +1,47 @@
<Root>
<!-- A description of each placeholder's purpose is in libnautilus/nautilus-bonobo-ui.h -->
<commands>
</commands>
<menu>
<submenu name="File">
<placeholder name="Location Placeholder">
<menuitem name="Up"
_label="Open _Pa_rent"
_tip="Open the parent folder"
accel="*Alt*Up"
verb="Up"/>
<menuitem name="Go to Location"
_label="Open _Location..."
accel="*Control*l"
verb="Go to Location"/>
</placeholder>
<placeholder name="Close Items Placeholder">
<menuitem name="Close With Parents"
_label="Close _All Parents"
_tip="Close all Navigation windows"
accel="*Control**Shift*w"
verb="Close With Parents"/>
</placeholder>
</submenu>
<submenu name="Places" _label="_Places">
<menuitem name="Home"
_label="_Home"
accel="*Alt*Home"
pixtype="stock" pixname="gtk-home"
verb="Home"/>
<menuitem name="Go to Trash"
_label="_Trash"
_tip="Go to the trash folder"
verb="Go to Trash"/>
<menuitem name="Go to Burn CD"
_label="CD _Creator"
_tip="Go to the CD Creator"
verb="Go to Burn CD"/>
</submenu>
</menu>
</Root>

File diff suppressed because it is too large Load diff

View file

@ -5,6 +5,7 @@
*
* Copyright (C) 1999, 2000 Red Hat, Inc.
* Copyright (C) 1999, 2000, 2001 Eazel, Inc.
* Copyright (C) 2003 Ximian, Inc.
*
* Nautilus is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@ -20,147 +21,45 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Authors: Elliot Lee <sopwith@redhat.com>
* Darin Adler <darin@bentspoon.com>
*
*/
/* nautilus-window.h: Interface of the main window object */
#ifndef NAUTILUS_WINDOW_H
#define NAUTILUS_WINDOW_H
#ifndef NAUTILUS_SPATIAL_WINDOW_H
#define NAUTILUS_SPATIAL_WINDOW_H
#include <bonobo/bonobo-window.h>
#include <eel/eel-glib-extensions.h>
#include <libnautilus-private/nautilus-bookmark.h>
#include <libnautilus-private/nautilus-view-identifier.h>
#include "nautilus-applicable-views.h"
#include "nautilus-view-frame.h"
#include "nautilus-application.h"
#include "nautilus-information-panel.h"
#include "nautilus-side-pane.h"
#include "nautilus-window.h"
#include "nautilus-window-private.h"
#define NAUTILUS_TYPE_WINDOW (nautilus_window_get_type())
#define NAUTILUS_WINDOW(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_WINDOW, NautilusWindow))
#define NAUTILUS_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_WINDOW, NautilusWindowClass))
#define NAUTILUS_IS_WINDOW(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_WINDOW))
#define NAUTILUS_IS_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_WINDOW))
#define NAUTILUS_TYPE_SPATIAL_WINDOW (nautilus_spatial_window_get_type())
#define NAUTILUS_SPATIAL_WINDOW(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_SPATIAL_WINDOW, NautilusSpatialWindow))
#define NAUTILUS_SPATIAL_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_SPATIAL_WINDOW, NautilusSpatialWindowClass))
#define NAUTILUS_IS_SPATIAL_WINDOW(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_SPATIAL_WINDOW))
#define NAUTILUS_IS_SPATIAL_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_SPATIAL_WINDOW))
#ifndef NAUTILUS_WINDOW_DEFINED
#define NAUTILUS_WINDOW_DEFINED
typedef struct NautilusWindow NautilusWindow;
#ifndef NAUTILUS_SPATIAL_WINDOW_DEFINED
#define NAUTILUS_SPATIAL_WINDOW_DEFINED
typedef struct _NautilusSpatialWindow NautilusSpatialWindow;
#endif
typedef struct _NautilusSpatialWindowClass NautilusSpatialWindowClass;
typedef struct _NautilusSpatialWindowDetails NautilusSpatialWindowDetails;
typedef struct {
BonoboWindowClass parent_spot;
struct _NautilusSpatialWindow {
NautilusWindow parent_object;
/* Function pointers for overriding, without corresponding signals */
/* add_current_location_to_history_list is a function pointer that
* subclasses may override if they wish to add something other than
* NautilusWindow's idea of the "current location" to the history
* list, or nothing at all.
*/
void (* add_current_location_to_history_list) (NautilusWindow *window);
} NautilusWindowClass;
typedef enum {
NAUTILUS_WINDOW_NOT_SHOWN,
NAUTILUS_WINDOW_POSITION_SET,
NAUTILUS_WINDOW_SHOULD_SHOW
} NautilusWindowShowState;
typedef struct NautilusWindowDetails NautilusWindowDetails;
struct NautilusWindow {
BonoboWindow parent_object;
gboolean affect_spatial_window_on_next_location_change;
NautilusWindowDetails *details;
/** UI stuff **/
NautilusSidePane *sidebar;
NautilusInformationPanel *information_panel;
GtkWidget *content_hbox;
GtkWidget *view_as_option_menu;
GtkWidget *navigation_bar;
char *last_geometry;
guint save_geometry_timeout_id;
/** CORBA-related elements **/
NautilusApplication *application;
/** State information **/
/* Information about current location/selection */
/* Back/Forward chain, and history list.
* The data in these lists are NautilusBookmark pointers.
*/
GList *back_list, *forward_list;
NautilusBookmark *current_location_bookmark;
NautilusBookmark *last_location_bookmark;
/* Current views stuff */
NautilusViewFrame *content_view;
GList *sidebar_panels;
/* Widgets to keep track of (for state changes, etc) */
GtkWidget *zoom_control;
/* Pending changes */
NautilusViewFrame *new_content_view;
/* Window showed state (for saved_window_positions) */
NautilusWindowShowState show_state;
NautilusSpatialWindowDetails *details;
};
GType nautilus_window_get_type (void);
void nautilus_window_ui_freeze (NautilusWindow *window);
void nautilus_window_ui_thaw (NautilusWindow *window);
void nautilus_window_close (NautilusWindow *window);
char * nautilus_window_get_location (NautilusWindow *window);
void nautilus_window_go_to (NautilusWindow *window,
const char *location);
gboolean nautilus_window_get_search_mode (NautilusWindow *window);
void nautilus_window_set_search_mode (NautilusWindow *window,
gboolean search_mode);
void nautilus_window_go_home (NautilusWindow *window);
void nautilus_window_display_error (NautilusWindow *window,
const char *error_msg);
void nautilus_window_allow_back (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_forward (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_up (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_reload (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_stop (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_burn_cd (NautilusWindow *window,
gboolean allow);
void nautilus_window_clear_back_list (NautilusWindow *window);
void nautilus_window_clear_forward_list (NautilusWindow *window);
void nautilus_forget_history (void);
void nautilus_bookmarks_exiting (void);
void nautilus_window_reload (NautilusWindow *window);
gint nautilus_window_get_base_page_index (NautilusWindow *window);
void nautilus_window_hide_location_bar (NautilusWindow *window,
gboolean save_preference);
void nautilus_window_show_location_bar (NautilusWindow *window,
gboolean save_preference);
gboolean nautilus_window_location_bar_showing (NautilusWindow *window);
void nautilus_window_hide_toolbar (NautilusWindow *window);
void nautilus_window_show_toolbar (NautilusWindow *window);
gboolean nautilus_window_toolbar_showing (NautilusWindow *window);
void nautilus_window_hide_sidebar (NautilusWindow *window);
void nautilus_window_show_sidebar (NautilusWindow *window);
gboolean nautilus_window_sidebar_showing (NautilusWindow *window);
void nautilus_window_hide_status_bar (NautilusWindow *window);
void nautilus_window_show_status_bar (NautilusWindow *window);
gboolean nautilus_window_status_bar_showing (NautilusWindow *window);
void nautilus_window_save_geometry (NautilusWindow *window);
struct _NautilusSpatialWindowClass {
NautilusWindowClass parent_spot;
};
GType nautilus_spatial_window_get_type (void);
GtkWidget *nautilus_spatial_window_get (const char *uri);
void nautilus_spatial_window_save_geometry (NautilusSpatialWindow *window);
void nautilus_spatial_window_save_scroll_position (NautilusSpatialWindow *window);
#endif

View file

@ -48,7 +48,7 @@ struct NautilusSwitchableNavigationBarDetails {
NautilusLocationBar *location_bar;
NautilusSwitchableSearchBar *search_bar;
NautilusWindow *window;
NautilusNavigationWindow *window;
GtkWidget *hbox;
};
@ -119,7 +119,7 @@ create_search_bar_if_non_existant (NautilusSwitchableNavigationBar *bar)
return;
}
bar->details->search_bar = NAUTILUS_SWITCHABLE_SEARCH_BAR (nautilus_switchable_search_bar_new (bar->details->window));
bar->details->search_bar = NAUTILUS_SWITCHABLE_SEARCH_BAR (nautilus_switchable_search_bar_new (NAUTILUS_WINDOW (bar->details->window)));
g_signal_connect_object (bar->details->search_bar, "location_changed",
G_CALLBACK (nautilus_navigation_bar_location_changed), bar, G_CONNECT_SWAPPED);
@ -129,7 +129,7 @@ create_search_bar_if_non_existant (NautilusSwitchableNavigationBar *bar)
GtkWidget *
nautilus_switchable_navigation_bar_new (NautilusWindow *window)
nautilus_switchable_navigation_bar_new (NautilusNavigationWindow *window)
{
GtkWidget *bar;
NautilusSwitchableNavigationBar *switchable_navigation_bar;

View file

@ -64,7 +64,7 @@ typedef struct {
} NautilusSwitchableNavigationBarClass;
GType nautilus_switchable_navigation_bar_get_type (void);
GtkWidget* nautilus_switchable_navigation_bar_new (NautilusWindow *window);
GtkWidget* nautilus_switchable_navigation_bar_new (NautilusNavigationWindow *window);
NautilusSwitchableNavigationBarMode nautilus_switchable_navigation_bar_get_mode (NautilusSwitchableNavigationBar *switchable_navigation_bar);
void nautilus_switchable_navigation_bar_set_mode (NautilusSwitchableNavigationBar *switchable_navigation_bar,
NautilusSwitchableNavigationBarMode mode);

View file

@ -53,6 +53,8 @@ typedef struct {
char *location;
GList *selection;
char *title;
Nautilus_ViewFrame_OpenMode mode;
Nautilus_ViewFrame_OpenFlags flags;
} LocationPlus;
static void
@ -75,29 +77,17 @@ free_location_plus_callback (gpointer callback_data)
}
static void
open_in_this_window (NautilusViewFrame *view,
gpointer callback_data)
{
nautilus_view_frame_open_location_in_this_window (view, callback_data);
}
static void
open_prefer_existing_window (NautilusViewFrame *view,
gpointer callback_data)
{
nautilus_view_frame_open_location_prefer_existing_window (view, callback_data);
}
static void
open_force_new_window (NautilusViewFrame *view,
gpointer callback_data)
open_location (NautilusViewFrame *view,
gpointer callback_data)
{
LocationPlus *location_plus;
location_plus = callback_data;
nautilus_view_frame_open_location_force_new_window
nautilus_view_frame_open_location
(view,
location_plus->location,
location_plus->mode,
location_plus->flags,
location_plus->selection);
}
@ -192,46 +182,25 @@ close_window (NautilusViewFrame *view,
{
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)
{
nautilus_view_frame_queue_incoming_call
(servant,
open_in_this_window,
g_strdup (location),
g_free);
}
static void
impl_Nautilus_ViewFrame_open_location_prefer_existing_window (PortableServer_Servant servant,
const CORBA_char *location,
CORBA_Environment *ev)
{
nautilus_view_frame_queue_incoming_call
(servant,
open_prefer_existing_window,
g_strdup (location),
g_free);
}
static void
impl_Nautilus_ViewFrame_open_location_force_new_window (PortableServer_Servant servant,
const CORBA_char *location,
const Nautilus_URIList *selection,
CORBA_Environment *ev)
impl_Nautilus_ViewFrame_open_location (PortableServer_Servant servant,
const CORBA_char *location,
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags,
const Nautilus_URIList *selection,
CORBA_Environment *ev)
{
LocationPlus *location_plus;
location_plus = g_new0 (LocationPlus, 1);
location_plus->location = g_strdup (location);
location_plus->selection = nautilus_g_list_from_uri_list (selection);
location_plus->mode = mode;
location_plus->flags = flags;
nautilus_view_frame_queue_incoming_call
(servant,
open_force_new_window,
open_location,
location_plus,
free_location_plus_callback);
}
@ -393,9 +362,7 @@ BONOBO_CLASS_BOILERPLATE_FULL (NautilusViewFrameCorbaPart, nautilus_view_frame_c
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;
class->epv.open_location_prefer_existing_window = impl_Nautilus_ViewFrame_open_location_prefer_existing_window;
class->epv.open_location_force_new_window = impl_Nautilus_ViewFrame_open_location_force_new_window;
class->epv.open_location = impl_Nautilus_ViewFrame_open_location;
class->epv.report_location_change = impl_Nautilus_ViewFrame_report_location_change;
class->epv.report_redirect = impl_Nautilus_ViewFrame_report_redirect;
class->epv.report_selection_change = impl_Nautilus_ViewFrame_report_selection_change;

View file

@ -43,13 +43,10 @@ void nautilus_view_frame_queue_incoming_call (Portable
BonoboObject *nautilus_view_frame_create_corba_part (NautilusViewFrame *widget);
NautilusViewFrame *nautilus_view_frame_from_servant (PortableServer_Servant servant);
/* ViewFrame */
void nautilus_view_frame_open_location_in_this_window (NautilusViewFrame *view,
const char *location);
void nautilus_view_frame_open_location_prefer_existing_window (NautilusViewFrame *view,
const char *location);
void nautilus_view_frame_open_location_force_new_window (NautilusViewFrame *view,
void nautilus_view_frame_open_location (NautilusViewFrame *view,
const char *location,
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags,
GList *selection);
void nautilus_view_frame_report_location_change (NautilusViewFrame *view,
const char *location,

View file

@ -63,9 +63,7 @@ enum {
LOAD_COMPLETE,
LOAD_PROGRESS_CHANGED,
LOAD_UNDERWAY,
OPEN_LOCATION_FORCE_NEW_WINDOW,
OPEN_LOCATION_IN_THIS_WINDOW,
OPEN_LOCATION_PREFER_EXISTING_WINDOW,
OPEN_LOCATION,
REPORT_LOCATION_CHANGE,
REPORT_REDIRECT,
TITLE_CHANGED,
@ -112,6 +110,14 @@ struct NautilusViewFrameDetails {
guint failed_idle_id;
guint socket_gone_idle_id;
/* zoom data */
float zoom_level;
float min_zoom_level;
float max_zoom_level;
gboolean has_min_zoom_level;
gboolean has_max_zoom_level;
GList *zoom_levels;
};
static void nautilus_view_frame_init (NautilusViewFrame *view);
@ -265,9 +271,23 @@ nautilus_view_frame_finalize (GObject *object)
static void
emit_zoom_parameters_changed (NautilusViewFrame *view)
{
if (view->details->zoomable_frame != NULL) {
{
eel_g_list_free_deep (view->details->zoom_levels);
if (view->details->zoomable_frame) {
view->details->min_zoom_level = bonobo_zoomable_frame_get_min_zoom_level (view->details->zoomable_frame);
view->details->max_zoom_level = bonobo_zoomable_frame_get_max_zoom_level (view->details->zoomable_frame);
view->details->has_min_zoom_level = bonobo_zoomable_frame_has_min_zoom_level (view->details->zoomable_frame);
view->details->has_max_zoom_level = bonobo_zoomable_frame_has_max_zoom_level (view->details->zoomable_frame);
view->details->zoom_levels = bonobo_zoomable_frame_get_preferred_zoom_levels (view->details->zoomable_frame);
g_signal_emit (view, signals[ZOOM_PARAMETERS_CHANGED], 0);
} else {
view->details->min_zoom_level = 0.0;
view->details->max_zoom_level = 0.0;
view->details->has_min_zoom_level = FALSE;
view->details->has_max_zoom_level = FALSE;
view->details->zoom_levels = NULL;
}
}
@ -349,7 +369,6 @@ view_frame_underway (NautilusViewFrame *view)
/* stimulus
- open_location call from component
- open_location_in_new_window
- report_selection_change
- report_status
- set_title
@ -449,6 +468,8 @@ static void
emit_zoom_parameters_changed_callback (gpointer data,
gpointer callback_data)
{
emit_zoom_parameters_changed (NAUTILUS_VIEW_FRAME (data));
}
@ -469,7 +490,13 @@ static void
emit_zoom_level_changed_callback (gpointer data,
gpointer callback_data)
{
g_signal_emit (data,
NautilusViewFrame *view;
view = NAUTILUS_VIEW_FRAME (data);
view->details->zoom_level = bonobo_zoomable_frame_get_zoom_level (view->details->zoomable_frame);
g_signal_emit (view,
signals[ZOOM_LEVEL_CHANGED], 0,
* (float *) callback_data);
}
@ -959,7 +986,7 @@ nautilus_view_frame_get_zoom_level (NautilusViewFrame *view)
return 0.0;
}
return bonobo_zoomable_frame_get_zoom_level (view->details->zoomable_frame);
return view->details->zoom_level;
}
void
@ -984,7 +1011,7 @@ nautilus_view_frame_get_min_zoom_level (NautilusViewFrame *view)
return 0.0;
}
return bonobo_zoomable_frame_get_min_zoom_level (view->details->zoomable_frame);
return view->details->min_zoom_level;
}
float
@ -996,7 +1023,7 @@ nautilus_view_frame_get_max_zoom_level (NautilusViewFrame *view)
return 0.0;
}
return bonobo_zoomable_frame_get_max_zoom_level (view->details->zoomable_frame);
return view->details->max_zoom_level;
}
gboolean
@ -1008,7 +1035,7 @@ nautilus_view_frame_get_has_min_zoom_level (NautilusViewFrame *view)
return FALSE;
}
return bonobo_zoomable_frame_has_min_zoom_level (view->details->zoomable_frame);
return view->details->has_min_zoom_level;
}
gboolean
@ -1020,7 +1047,7 @@ nautilus_view_frame_get_has_max_zoom_level (NautilusViewFrame *view)
return FALSE;
}
return bonobo_zoomable_frame_has_max_zoom_level (view->details->zoomable_frame);
return view->details->has_max_zoom_level;
}
gboolean
@ -1035,6 +1062,24 @@ nautilus_view_frame_get_is_continuous (NautilusViewFrame *view)
return bonobo_zoomable_frame_is_continuous (view->details->zoomable_frame);
}
gboolean
nautilus_view_frame_get_can_zoom_in (NautilusViewFrame *view)
{
return !view->details->has_max_zoom_level ||
(view->details->zoom_level
< view->details->max_zoom_level);
}
gboolean
nautilus_view_frame_get_can_zoom_out (NautilusViewFrame *view)
{
return !view->details->has_min_zoom_level ||
(view->details->zoom_level
> view->details->min_zoom_level);
}
GList *
nautilus_view_frame_get_preferred_zoom_levels (NautilusViewFrame *view)
{
@ -1101,6 +1146,7 @@ nautilus_view_frame_get_first_visible_file (NautilusViewFrame *view)
CORBA_free (uri);
CORBA_exception_free (&ev);
}
return ret;
}
@ -1132,37 +1178,11 @@ nautilus_view_frame_get_view_iid (NautilusViewFrame *view)
}
void
nautilus_view_frame_open_location_in_this_window (NautilusViewFrame *view,
const char *location)
{
g_return_if_fail (NAUTILUS_IS_VIEW_FRAME (view));
if (view->details->state == VIEW_FRAME_FAILED) {
return;
}
view_frame_wait_is_over (view);
g_signal_emit (view, signals[OPEN_LOCATION_IN_THIS_WINDOW], 0, location);
}
void
nautilus_view_frame_open_location_prefer_existing_window (NautilusViewFrame *view,
const char *location)
{
g_return_if_fail (NAUTILUS_IS_VIEW_FRAME (view));
if (view->details->state == VIEW_FRAME_FAILED) {
return;
}
view_frame_wait_is_over (view);
g_signal_emit (view, signals[OPEN_LOCATION_PREFER_EXISTING_WINDOW], 0, location);
}
void
nautilus_view_frame_open_location_force_new_window (NautilusViewFrame *view,
const char *location,
GList *selection)
nautilus_view_frame_open_location (NautilusViewFrame *view,
const char *location,
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags,
GList *selection)
{
g_return_if_fail (NAUTILUS_IS_VIEW_FRAME (view));
@ -1172,8 +1192,8 @@ nautilus_view_frame_open_location_force_new_window (NautilusViewFrame *view,
view_frame_wait_is_over (view);
g_signal_emit (view,
signals[OPEN_LOCATION_FORCE_NEW_WINDOW], 0,
location, selection);
signals[OPEN_LOCATION], 0,
location, mode, flags, selection);
}
void
@ -1537,33 +1557,15 @@ nautilus_view_frame_class_init (NautilusViewFrameClass *class)
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
signals[OPEN_LOCATION_FORCE_NEW_WINDOW] = g_signal_new
("open_location_force_new_window",
signals[OPEN_LOCATION] = g_signal_new
("open_location",
G_TYPE_FROM_CLASS (class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (NautilusViewFrameClass,
open_location_force_new_window),
open_location),
NULL, NULL,
eel_marshal_VOID__STRING_POINTER,
G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_POINTER);
signals[OPEN_LOCATION_IN_THIS_WINDOW] = g_signal_new
("open_location_in_this_window",
G_TYPE_FROM_CLASS (class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (NautilusViewFrameClass,
open_location_in_this_window),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
signals[OPEN_LOCATION_PREFER_EXISTING_WINDOW] = g_signal_new
("open_location_prefer_existing_window",
G_TYPE_FROM_CLASS (class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (NautilusViewFrameClass,
open_location_prefer_existing_window),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
eel_marshal_VOID__STRING_LONG_LONG_POINTER,
G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_LONG, G_TYPE_LONG, G_TYPE_POINTER);
signals[REPORT_LOCATION_CHANGE] = g_signal_new
("report_location_change",
G_TYPE_FROM_CLASS (class),

View file

@ -65,12 +65,10 @@ typedef struct {
void (* failed) (NautilusViewFrame *view);
/* These will only happen after load_underway (guaranteed). */
void (* open_location_in_this_window) (NautilusViewFrame *view,
const char *location);
void (* open_location_prefer_existing_window) (NautilusViewFrame *view,
const char *location);
void (* open_location_force_new_window) (NautilusViewFrame *view,
void (* open_location) (NautilusViewFrame *view,
const char *location,
Nautilus_ViewFrame_OpenMode mode,
Nautilus_ViewFrame_OpenFlags flags,
GList *selection); /* list of char * */
void (* report_location_change) (NautilusViewFrame *view,
const char *location,
@ -123,6 +121,9 @@ float nautilus_view_frame_get_max_zoom_level (NautilusViewFr
gboolean nautilus_view_frame_get_has_min_zoom_level (NautilusViewFrame *view);
gboolean nautilus_view_frame_get_has_max_zoom_level (NautilusViewFrame *view);
gboolean nautilus_view_frame_get_is_continuous (NautilusViewFrame *view);
gboolean nautilus_view_frame_get_can_zoom_in (NautilusViewFrame *view);
gboolean nautilus_view_frame_get_can_zoom_out (NautilusViewFrame *view);
GList * nautilus_view_frame_get_preferred_zoom_levels (NautilusViewFrame *view);
void nautilus_view_frame_zoom_in (NautilusViewFrame *view);
void nautilus_view_frame_zoom_out (NautilusViewFrame *view);

File diff suppressed because it is too large Load diff

View file

@ -28,6 +28,7 @@
#define NAUTILUS_WINDOW_MANAGE_VIEWS_H
#include "nautilus-window.h"
#include "nautilus-navigation-window.h"
void nautilus_window_manage_views_destroy (NautilusWindow *window);
void nautilus_window_manage_views_finalize (NautilusWindow *window);
@ -39,13 +40,21 @@ void nautilus_window_open_location_with_selection (NautilusWi
void nautilus_window_stop_loading (NautilusWindow *window);
void nautilus_window_set_content_view (NautilusWindow *window,
NautilusViewIdentifier *id);
void nautilus_window_set_sidebar_panels (NautilusWindow *window,
GList *view_identifier_list);
void nautilus_window_back_or_forward (NautilusWindow *window,
gboolean back,
guint distance);
gboolean nautilus_window_content_view_matches_iid (NautilusWindow *window,
const char *iid);
NautilusViewIdentifier *nautilus_window_get_content_view_id (NautilusWindow *window);
void nautilus_window_connect_extra_view (NautilusWindow *window,
NautilusViewFrame *view,
NautilusViewIdentifier *id);
void nautilus_window_disconnect_extra_view (NautilusWindow *window,
NautilusViewFrame *view);
char *nautilus_window_get_view_frame_label (NautilusViewFrame *view);
void nautilus_navigation_window_set_sidebar_panels (NautilusNavigationWindow *window,
GList *view_identifier_list);
void nautilus_navigation_window_back_or_forward (NautilusNavigationWindow *window,
gboolean back,
guint distance);
#endif /* NAUTILUS_WINDOW_MANAGE_VIEWS_H */

File diff suppressed because it is too large Load diff

View file

@ -29,6 +29,9 @@
#define NAUTILUS_WINDOW_PRIVATE_H
#include "nautilus-window.h"
#include "nautilus-spatial-window.h"
#include "nautilus-navigation-window.h"
#include <bonobo/bonobo-ui-component.h>
#include <bonobo/bonobo-ui-container.h>
#include <bonobo/bonobo-ui-toolbar-button-item.h>
@ -57,14 +60,8 @@ struct NautilusWindowDetails
gboolean ui_pending_initialize_menus_part_2;
/* Menus. */
guint refresh_bookmarks_menu_idle_id;
guint refresh_go_menu_idle_id;
/* Toolbar. */
GtkTooltips *tooltips;
GtkWidget *back_button_item;
GtkWidget *forward_button_item;
/* Current location. */
char *location;
GList *selection;
@ -84,14 +81,13 @@ struct NautilusWindowDetails
GList *short_list_viewers;
NautilusViewIdentifier *extra_viewer;
/* Throbber. */
gboolean throbber_active;
gboolean throbber_activating;
Bonobo_PropertyBag throbber_property_bag;
/* Deferred location change. */
char *location_to_change_to_at_idle;
guint location_change_at_idle_id;
};
struct _NautilusNavigationWindowDetails {
GtkWidget *content_paned;
/* Location bar */
gboolean temporary_navigation_bar;
@ -99,6 +95,20 @@ struct NautilusWindowDetails
/* Side Pane */
int side_pane_width;
GtkWidget *current_side_panel;
/* Menus */
guint refresh_bookmarks_menu_idle_id;
/* Toolbar */
GtkTooltips *tooltips;
GtkWidget *back_button_item;
GtkWidget *forward_button_item;
/* Throbber */
gboolean throbber_active;
gboolean throbber_activating;
Bonobo_PropertyBag throbber_property_bag;
};
#define NAUTILUS_MENU_PATH_BACK_ITEM "/menu/Go/Back"
@ -129,29 +139,35 @@ struct NautilusWindowDetails
#define NAUTILUS_WINDOW_MIN_WIDTH 200
#define NAUTILUS_WINDOW_MIN_HEIGHT 200
#define NAUTILUS_WINDOW_DEFAULT_WIDTH 800
#define NAUTILUS_WINDOW_DEFAULT_HEIGHT 550
#define NAUTILUS_WINDOW_DEFAULT_WIDTH 500
#define NAUTILUS_WINDOW_DEFAULT_HEIGHT 300
typedef void (*NautilusBookmarkFailedCallback) (NautilusWindow *window,
NautilusBookmark *bookmark);
void nautilus_window_set_status (NautilusWindow *window,
const char *status);
void nautilus_window_load_view_as_menus (NautilusWindow *window);
void nautilus_window_synch_view_as_menus (NautilusWindow *window);
void nautilus_window_initialize_menus_part_1 (NautilusWindow *window);
void nautilus_window_initialize_menus_part_2 (NautilusWindow *window);
void nautilus_window_initialize_toolbars (NautilusWindow *window);
void nautilus_window_activate_throbber (NautilusWindow *window);
void nautilus_menus_append_bookmark_to_menu (NautilusWindow *window,
BonoboUIComponent *uic,
NautilusBookmark *bookmark,
const char *parent_path,
guint index_in_parent,
GCallback refresh_callback,
NautilusBookmarkFailedCallback failed_callback);
void nautilus_window_handle_ui_event_callback (BonoboUIComponent *ui,
const char *id,
Bonobo_UIComponent_EventType type,
const char *state,
NautilusWindow *window);
void nautilus_window_go_back (NautilusWindow *window);
void nautilus_window_go_forward (NautilusWindow *window);
#if NEW_UI_COMPLETE
void nautilus_window_go_up (NautilusWindow *window);
#endif
void nautilus_window_update_find_menu_item (NautilusWindow *window);
void nautilus_window_remove_bookmarks_menu_callback (NautilusWindow *window);
void nautilus_window_remove_go_menu_callback (NautilusWindow *window);
void nautilus_window_remove_bookmarks_menu_items (NautilusWindow *window);
void nautilus_window_remove_go_menu_items (NautilusWindow *window);
void nautilus_window_update_show_hide_menu_items (NautilusWindow *window);
void nautilus_window_zoom_in (NautilusWindow *window);
@ -162,10 +178,6 @@ void nautilus_window_zoom_to_fit (Nautil
void nautilus_window_show_view_as_dialog (NautilusWindow *window);
void nautilus_window_set_content_view_widget (NautilusWindow *window,
NautilusViewFrame *content_view);
void nautilus_window_add_sidebar_panel (NautilusWindow *window,
NautilusViewFrame *sidebar_panel);
void nautilus_window_remove_sidebar_panel (NautilusWindow *window,
NautilusViewFrame *sidebar_panel);
Bonobo_UIContainer nautilus_window_get_ui_container (NautilusWindow *window);
void nautilus_window_set_viewed_file (NautilusWindow *window,
NautilusFile *file);
@ -176,4 +188,21 @@ GList * nautilus_get_history_list (void);
void nautilus_window_bookmarks_preference_changed_callback (gpointer user_data);
void nautilus_window_update_icon (NautilusWindow *window);
/* Navigation window menus */
void nautilus_navigation_window_initialize_menus_part_1 (NautilusNavigationWindow *window);
void nautilus_navigation_window_initialize_menus_part_2 (NautilusNavigationWindow *window);
void nautilus_navigation_window_remove_bookmarks_menu_callback (NautilusNavigationWindow *window);
void nautilus_navigation_window_remove_bookmarks_menu_items (NautilusNavigationWindow *window);
void nautilus_navigation_window_update_show_hide_menu_items (NautilusNavigationWindow *window);
/* Navigation window toolbar */
void nautilus_navigation_window_activate_throbber (NautilusNavigationWindow *window);
void nautilus_navigation_window_initialize_toolbars (NautilusNavigationWindow *window);
void nautilus_navigation_window_set_throbber_active (NautilusNavigationWindow *window,
gboolean active);
void nautilus_navigation_window_go_back (NautilusNavigationWindow *window);
void nautilus_navigation_window_go_forward (NautilusNavigationWindow *window);
#endif /* NAUTILUS_WINDOW_PRIVATE_H */

View file

@ -66,39 +66,40 @@ enum {
static void
activate_back_or_forward_menu_item (GtkMenuItem *menu_item,
NautilusWindow *window,
NautilusNavigationWindow *window,
gboolean back)
{
int index;
g_assert (GTK_IS_MENU_ITEM (menu_item));
g_assert (NAUTILUS_IS_WINDOW (window));
g_assert (NAUTILUS_IS_NAVIGATION_WINDOW (window));
index = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item), "user_data"));
nautilus_window_back_or_forward (window, back, index);
nautilus_navigation_window_back_or_forward (window, back, index);
}
static void
activate_back_menu_item_callback (GtkMenuItem *menu_item, NautilusWindow *window)
activate_back_menu_item_callback (GtkMenuItem *menu_item, NautilusNavigationWindow *window)
{
activate_back_or_forward_menu_item (menu_item, window, TRUE);
}
static void
activate_forward_menu_item_callback (GtkMenuItem *menu_item, NautilusWindow *window)
activate_forward_menu_item_callback (GtkMenuItem *menu_item, NautilusNavigationWindow *window)
{
activate_back_or_forward_menu_item (menu_item, window, FALSE);
}
static GtkMenu *
create_back_or_forward_menu (NautilusWindow *window, gboolean back)
create_back_or_forward_menu (NautilusNavigationWindow *window, gboolean back)
{
GtkMenu *menu;
GtkWidget *menu_item;
GList *list_link;
int index;
g_assert (NAUTILUS_IS_WINDOW (window));
g_assert (NAUTILUS_IS_NAVIGATION_WINDOW (window));
menu = GTK_MENU (gtk_menu_new ());
@ -124,13 +125,13 @@ create_back_or_forward_menu (NautilusWindow *window, gboolean back)
}
static GtkWidget *
get_back_button (NautilusWindow *window)
get_back_button (NautilusNavigationWindow *window)
{
return window->details->back_button_item;
}
static GtkWidget *
get_forward_button (NautilusWindow *window)
get_forward_button (NautilusNavigationWindow *window)
{
return window->details->forward_button_item;
}
@ -163,20 +164,20 @@ back_or_forward_button_pressed_callback (GtkWidget *widget,
GdkEventButton *event,
gpointer *user_data)
{
NautilusWindow *window;
NautilusNavigationWindow *window;
gboolean back;
g_return_val_if_fail (GTK_IS_BUTTON (widget), FALSE);
g_return_val_if_fail (NAUTILUS_IS_WINDOW (user_data), FALSE);
g_return_val_if_fail (NAUTILUS_IS_NAVIGATION_WINDOW (user_data), FALSE);
window = NAUTILUS_WINDOW (user_data);
window = NAUTILUS_NAVIGATION_WINDOW (user_data);
back = widget == get_back_button (window);
g_assert (back || widget == get_forward_button (window));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
gnome_popup_menu_do_popup_modal (GTK_WIDGET (create_back_or_forward_menu (NAUTILUS_WINDOW (user_data), back)),
gnome_popup_menu_do_popup_modal (GTK_WIDGET (create_back_or_forward_menu (NAUTILUS_NAVIGATION_WINDOW (user_data), back)),
menu_position_under_widget, widget, event, widget, widget);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
@ -200,7 +201,7 @@ back_or_forward_key_pressed_callback (GtkWidget *widget,
}
static GtkWidget *
create_back_or_forward_toolbar_item (NautilusWindow *window,
create_back_or_forward_toolbar_item (NautilusNavigationWindow *window,
const char *tooltip,
const char *control_path)
{
@ -226,7 +227,7 @@ create_back_or_forward_toolbar_item (NautilusWindow *window,
G_CALLBACK (back_or_forward_button_pressed_callback),
window, 0);
bonobo_ui_component_widget_set (window->details->shell_ui,
bonobo_ui_component_widget_set (NAUTILUS_WINDOW (window)->details->shell_ui,
control_path,
button,
NULL);
@ -235,7 +236,7 @@ create_back_or_forward_toolbar_item (NautilusWindow *window,
}
static void
throbber_set_throbbing (NautilusWindow *window,
throbber_set_throbbing (NautilusNavigationWindow *window,
gboolean throbbing)
{
CORBA_boolean b;
@ -256,7 +257,7 @@ throbber_created_callback (Bonobo_Unknown throbber,
gpointer user_data)
{
char *exception_as_text;
NautilusWindow *window;
NautilusNavigationWindow *window;
if (BONOBO_EX (ev)) {
exception_as_text = bonobo_exception_get_text (ev);
@ -265,13 +266,13 @@ throbber_created_callback (Bonobo_Unknown throbber,
return;
}
g_return_if_fail (NAUTILUS_IS_WINDOW (user_data));
g_return_if_fail (NAUTILUS_IS_NAVIGATION_WINDOW (user_data));
window = NAUTILUS_WINDOW (user_data);
window = NAUTILUS_NAVIGATION_WINDOW (user_data);
window->details->throbber_activating = FALSE;
bonobo_ui_component_object_set (window->details->shell_ui,
bonobo_ui_component_object_set (NAUTILUS_WINDOW (window)->details->shell_ui,
"/Toolbar/ThrobberWrapper",
throbber, ev);
CORBA_exception_free (ev);
@ -292,7 +293,8 @@ throbber_created_callback (Bonobo_Unknown throbber,
}
void
nautilus_window_allow_stop (NautilusWindow *window, gboolean allow)
nautilus_navigation_window_set_throbber_active (NautilusNavigationWindow *window,
gboolean allow)
{
if (( window->details->throbber_active && allow) ||
(!window->details->throbber_active && !allow)) {
@ -304,23 +306,17 @@ nautilus_window_allow_stop (NautilusWindow *window, gboolean allow)
else
access ("nautilus-throbber: stop", 0);
window->details->throbber_active = allow;
nautilus_window_ui_freeze (window);
nautilus_bonobo_set_sensitive (window->details->shell_ui,
nautilus_bonobo_set_sensitive (NAUTILUS_WINDOW (window)->details->shell_ui,
NAUTILUS_COMMAND_STOP, allow);
window->details->throbber_active = allow;
if (window->details->throbber_property_bag != CORBA_OBJECT_NIL) {
throbber_set_throbbing (window, allow);
}
nautilus_window_ui_thaw (window);
}
void
nautilus_window_activate_throbber (NautilusWindow *window)
nautilus_navigation_window_activate_throbber (NautilusNavigationWindow *window)
{
CORBA_Environment ev;
char *exception_as_text;
@ -355,13 +351,11 @@ nautilus_window_activate_throbber (NautilusWindow *window)
}
void
nautilus_window_initialize_toolbars (NautilusWindow *window)
nautilus_navigation_window_initialize_toolbars (NautilusNavigationWindow *window)
{
nautilus_window_ui_freeze (window);
nautilus_window_ui_freeze (NAUTILUS_WINDOW (window));
if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_START_WITH_TOOLBAR)) {
nautilus_window_activate_throbber (window);
}
nautilus_navigation_window_activate_throbber (window);
window->details->back_button_item = create_back_or_forward_toolbar_item
(window, _("Go back a few pages"),
@ -370,5 +364,5 @@ nautilus_window_initialize_toolbars (NautilusWindow *window)
(window, _("Go forward a number of pages"),
"/Toolbar/ForwardMenu");
nautilus_window_ui_thaw (window);
nautilus_window_ui_thaw (NAUTILUS_WINDOW (window));
}

File diff suppressed because it is too large Load diff

View file

@ -60,7 +60,18 @@ typedef struct {
* NautilusWindow's idea of the "current location" to the history
* list, or nothing at all.
*/
void (* add_current_location_to_history_list) (NautilusWindow *window);
void (* add_current_location_to_history_list) (NautilusWindow *window);
char * (* get_title) (NautilusWindow *window);
void (* set_title) (NautilusWindow *window, const char *title);
void (* merge_menus) (NautilusWindow *window);
void (* load_view_as_menu) (NautilusWindow *window);
void (* set_content_view_widget) (NautilusWindow *window,
NautilusViewFrame *frame);
void (* set_throbber_active) (NautilusWindow *window,
gboolean active);
void (* prompt_for_location) (NautilusWindow *window);
} NautilusWindowClass;
typedef enum {
@ -76,42 +87,24 @@ struct NautilusWindow {
NautilusWindowDetails *details;
/** UI stuff **/
NautilusSidePane *sidebar;
NautilusInformationPanel *information_panel;
GtkWidget *content_hbox;
GtkWidget *view_as_option_menu;
GtkWidget *navigation_bar;
char *last_geometry;
guint save_geometry_timeout_id;
/** CORBA-related elements **/
NautilusApplication *application;
/** State information **/
/* Information about current location/selection */
/* Back/Forward chain, and history list.
* The data in these lists are NautilusBookmark pointers.
*/
GList *back_list, *forward_list;
NautilusBookmark *current_location_bookmark;
/* Information about current location/selection */
NautilusBookmark *current_location_bookmark;
NautilusBookmark *last_location_bookmark;
/* Current views stuff */
NautilusViewFrame *content_view;
GList *sidebar_panels;
/* Widgets to keep track of (for state changes, etc) */
GtkWidget *zoom_control;
/* Pending changes */
NautilusViewFrame *new_content_view;
/* All views */
GList *views;
/* Window showed state (for saved_window_positions) */
NautilusWindowShowState show_state;
};
@ -123,44 +116,25 @@ void nautilus_window_close (NautilusWindow *window
char * nautilus_window_get_location (NautilusWindow *window);
void nautilus_window_go_to (NautilusWindow *window,
const char *location);
gboolean nautilus_window_get_search_mode (NautilusWindow *window);
void nautilus_window_set_search_mode (NautilusWindow *window,
gboolean search_mode);
void nautilus_window_go_home (NautilusWindow *window);
void nautilus_window_go_up (NautilusWindow *window);
void nautilus_window_prompt_for_location (NautilusWindow *window);
void nautilus_window_launch_cd_burner (NautilusWindow *window);
void nautilus_window_update_title (NautilusWindow *window);
void nautilus_window_display_error (NautilusWindow *window,
const char *error_msg);
void nautilus_window_allow_back (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_forward (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_up (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_reload (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_stop (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_burn_cd (NautilusWindow *window,
gboolean allow);
void nautilus_window_clear_back_list (NautilusWindow *window);
void nautilus_window_clear_forward_list (NautilusWindow *window);
void nautilus_forget_history (void);
void nautilus_bookmarks_exiting (void);
void nautilus_window_reload (NautilusWindow *window);
gint nautilus_window_get_base_page_index (NautilusWindow *window);
void nautilus_window_hide_location_bar (NautilusWindow *window,
gboolean save_preference);
void nautilus_window_show_location_bar (NautilusWindow *window,
gboolean save_preference);
gboolean nautilus_window_location_bar_showing (NautilusWindow *window);
void nautilus_window_hide_toolbar (NautilusWindow *window);
void nautilus_window_show_toolbar (NautilusWindow *window);
gboolean nautilus_window_toolbar_showing (NautilusWindow *window);
void nautilus_window_hide_sidebar (NautilusWindow *window);
void nautilus_window_show_sidebar (NautilusWindow *window);
gboolean nautilus_window_sidebar_showing (NautilusWindow *window);
void nautilus_window_hide_status_bar (NautilusWindow *window);
void nautilus_window_show_status_bar (NautilusWindow *window);
gboolean nautilus_window_status_bar_showing (NautilusWindow *window);
void nautilus_window_save_geometry (NautilusWindow *window);
void nautilus_window_allow_reload (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_up (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_stop (NautilusWindow *window,
gboolean allow);
void nautilus_window_allow_burn_cd (NautilusWindow *window,
gboolean allow);
#endif