static NautilusSidebar * nautilus_emblem_sidebar_create (NautilusSidebarProvider *provider, NautilusWindowInfo *window) { NautilusEmblemSidebar *sidebar; sidebar = g_object_new (nautilus_emblem_sidebar_get_type (), NULL); nautilus_emblem_sidebar_set_parent_window (sidebar, window); g_object_ref (sidebar); return NAUTILUS_SIDEBAR (sidebar); }
static void side_pane_switch_page_callback (NautilusSidePane *side_pane, GtkWidget *widget, NautilusNavigationWindow *window) { const char *id; NautilusSidebar *sidebar; sidebar = NAUTILUS_SIDEBAR (widget); if (sidebar == NULL) { return; } set_current_side_panel (window, sidebar); id = nautilus_sidebar_get_sidebar_id (sidebar); if (eel_preferences_key_is_writable (NAUTILUS_PREFERENCES_SIDE_PANE_VIEW)) { eel_preferences_set (NAUTILUS_PREFERENCES_SIDE_PANE_VIEW, id); } }
static void nautilus_navigation_window_tear_down_sidebar (NautilusNavigationWindow *window) { GList *node, *next; NautilusSidebar *sidebar_panel; g_signal_handlers_disconnect_by_func (window->sidebar, side_pane_switch_page_callback, window); for (node = window->sidebar_panels; node != NULL; node = next) { next = node->next; sidebar_panel = NAUTILUS_SIDEBAR (node->data); nautilus_navigation_window_remove_sidebar_panel (window, sidebar_panel); } gtk_widget_destroy (GTK_WIDGET (window->sidebar)); window->sidebar = NULL; }
/** * add_sidebar_panels: * @window: A NautilusNavigationWindow * * Adds all sidebars available * */ static void add_sidebar_panels (NautilusNavigationWindow *window) { GtkWidget *current; GList *providers; GList *p; NautilusSidebar *sidebar_panel; g_assert (NAUTILUS_IS_NAVIGATION_WINDOW (window)); if (window->sidebar == NULL) { return; } providers = nautilus_module_get_extensions_for_type (NAUTILUS_TYPE_SIDEBAR_PROVIDER); for (p = providers; p != NULL; p = p->next) { NautilusSidebarProvider *provider; provider = NAUTILUS_SIDEBAR_PROVIDER (p->data); sidebar_panel = nautilus_sidebar_provider_create (provider, NAUTILUS_WINDOW_INFO (window)); nautilus_navigation_window_add_sidebar_panel (window, sidebar_panel); g_object_unref (sidebar_panel); } nautilus_module_extension_list_free (providers); current = nautilus_side_pane_get_current_panel (window->sidebar); set_current_side_panel (window, NAUTILUS_SIDEBAR (current)); }