void meta_plugin_manager_initialize (MetaPluginManager *plugin_mgr) { GList *iter; if (!plugin_mgr->plugins) { /* * If no plugins are specified, load the default plugin. */ meta_plugin_manager_load (plugin_mgr, "default"); } for (iter = plugin_mgr->plugins; iter; iter = iter->next) { MetaPlugin *plugin = (MetaPlugin*) iter->data; MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin); g_object_set (plugin, "screen", plugin_mgr->screen, NULL); if (klass->start) klass->start (plugin); } }
MetaPluginManager * meta_plugin_manager_new (MetaScreen *screen) { MetaPluginManager *plugin_mgr; MetaPluginClass *klass; MetaPlugin *plugin; plugin_mgr = g_new0 (MetaPluginManager, 1); plugin_mgr->screen = screen; plugin_mgr->plugin = plugin = g_object_new (plugin_type, "screen", screen, NULL); klass = META_PLUGIN_GET_CLASS (plugin); if (klass->start) klass->start (plugin); return plugin_mgr; }
MetaPluginManager * meta_plugin_manager_new (MetaScreen *screen) { MetaPluginManager *plugin_mgr; MetaPluginClass *klass; MetaPlugin *plugin; MetaMonitorManager *monitors; plugin_mgr = g_new0 (MetaPluginManager, 1); plugin_mgr->screen = screen; plugin_mgr->plugin = plugin = g_object_new (plugin_type, "screen", screen, NULL); klass = META_PLUGIN_GET_CLASS (plugin); if (klass->start) klass->start (plugin); monitors = meta_monitor_manager_get (); g_signal_connect (monitors, "confirm-display-change", G_CALLBACK (on_confirm_display_change), plugin_mgr); return plugin_mgr; }