static GList * get_extension_menus (NautilusWindow *window) { NautilusWindowSlot *slot; GList *providers; GList *items; GList *l; providers = nautilus_module_get_extensions_for_type (NAUTILUS_TYPE_MENU_PROVIDER); items = NULL; slot = nautilus_window_get_active_slot (window); for (l = providers; l != NULL; l = l->next) { NautilusMenuProvider *provider; GList *file_items; provider = NAUTILUS_MENU_PROVIDER (l->data); file_items = nautilus_menu_provider_get_background_items (provider, GTK_WIDGET (window), slot->viewed_file); items = g_list_concat (items, file_items); } nautilus_module_extension_list_free (providers); return items; }
static GList * get_extension_toolbar_items (NautilusNavigationWindow *window) { NautilusWindowSlot *slot; GList *items; GList *providers; GList *l; providers = nautilus_module_get_extensions_for_type (NAUTILUS_TYPE_MENU_PROVIDER); items = NULL; slot = NAUTILUS_WINDOW (window)->details->active_pane->active_slot; for (l = providers; l != NULL; l = l->next) { NautilusMenuProvider *provider; GList *file_items; provider = NAUTILUS_MENU_PROVIDER (l->data); file_items = nautilus_menu_provider_get_toolbar_items (provider, GTK_WIDGET (window), slot->viewed_file); items = g_list_concat (items, file_items); } nautilus_module_extension_list_free (providers); return items; }
static void menu_provider_init_callback (void) { GList *providers; GList *l; providers = nautilus_module_get_extensions_for_type (NAUTILUS_TYPE_MENU_PROVIDER); for (l = providers; l != NULL; l = l->next) { NautilusMenuProvider *provider = NAUTILUS_MENU_PROVIDER (l->data); g_signal_connect_after (G_OBJECT (provider), "items-updated", (GCallback)menu_provider_items_updated_handler, NULL); } nautilus_module_extension_list_free (providers); }
/** * 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)); }
static GList * get_extension_columns (void) { GList *columns; GList *providers; GList *l; providers = nautilus_module_get_extensions_for_type (NAUTILUS_TYPE_COLUMN_PROVIDER); columns = NULL; for (l = providers; l != NULL; l = l->next) { NautilusColumnProvider *provider; GList *provider_columns; provider = NAUTILUS_COLUMN_PROVIDER (l->data); provider_columns = nautilus_column_provider_get_columns (provider); columns = g_list_concat (columns, provider_columns); } nautilus_module_extension_list_free (providers); return columns; }