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);
}
Ejemplo n.º 2
0
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);
        }
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
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;
}