static GList * get_extension_menus (NemoWindow *window) { NemoWindowSlot *slot; GList *providers; GList *items; GList *l; providers = nemo_module_get_extensions_for_type (NEMO_TYPE_MENU_PROVIDER); items = NULL; slot = nemo_window_get_active_slot (window); for (l = providers; l != NULL; l = l->next) { NemoMenuProvider *provider; GList *file_items; provider = NEMO_MENU_PROVIDER (l->data); file_items = nemo_menu_provider_get_background_items (provider, GTK_WIDGET (window), slot->viewed_file); items = g_list_concat (items, file_items); } nemo_module_extension_list_free (providers); return items; }
static void menu_provider_init_callback (void) { GList *providers; GList *l; providers = nemo_module_get_extensions_for_type (NEMO_TYPE_MENU_PROVIDER); for (l = providers; l != NULL; l = l->next) { NemoMenuProvider *provider = NEMO_MENU_PROVIDER (l->data); g_signal_connect_after (G_OBJECT (provider), "items_updated", (GCallback)menu_provider_items_updated_handler, NULL); } nemo_module_extension_list_free (providers); }
static GList * get_extension_columns (void) { GList *columns; GList *providers; GList *l; providers = nemo_module_get_extensions_for_type (NEMO_TYPE_COLUMN_PROVIDER); columns = NULL; for (l = providers; l != NULL; l = l->next) { NemoColumnProvider *provider; GList *provider_columns; provider = NEMO_COLUMN_PROVIDER (l->data); provider_columns = nemo_column_provider_get_columns (provider); columns = g_list_concat (columns, provider_columns); } nemo_module_extension_list_free (providers); return columns; }