static void _panel_applets_managers_ensure_loaded (void) { GIOExtensionPoint *point; GList *extensions, *l; if (panel_applets_managers != NULL) return; panel_cleanup_register (PANEL_CLEAN_FUNC (_panel_applets_manager_cleanup), NULL); panel_modules_ensure_loaded (); point = g_io_extension_point_lookup (PANEL_APPLETS_MANAGER_EXTENSION_POINT_NAME); extensions = g_io_extension_point_get_extensions (point); if (extensions == NULL) g_error ("No PanelAppletsManager implementations exist."); for (l = extensions; l != NULL; l = l->next) { GIOExtension *extension; GType type; GObject *object; extension = l->data; type = g_io_extension_get_type (extension); object = g_object_new (type, NULL); panel_applets_managers = g_slist_prepend (panel_applets_managers, object); } panel_applets_managers = g_slist_reverse (panel_applets_managers); }
static void panel_layout_init (void) { if (layout_settings == NULL) { layout_settings = g_settings_new (PANEL_LAYOUT_SCHEMA); panel_cleanup_register (panel_cleanup_unref_and_nullify, &layout_settings); } }
PanelScreensaver * panel_screensaver_get (void) { static PanelScreensaver *screensaver = NULL; if (screensaver == NULL) { screensaver = g_object_new (PANEL_TYPE_SCREENSAVER, NULL); panel_cleanup_register (panel_cleanup_unref_and_nullify, &screensaver); } return screensaver; }
PanelSessionManager * panel_session_manager_get (void) { static PanelSessionManager *manager = NULL; if (manager == NULL) { manager = g_object_new (PANEL_TYPE_SESSION_MANAGER, NULL); panel_cleanup_register (panel_cleanup_unref_and_nullify, &manager); } return manager; }