~phcteam/clinica-project/master

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <libpeas/peas.h>
#include <clinica.h>
#include <stdio.h>

static void
on_extension_added (PeasExtensionSet *set,
		    PeasPluginInfo *info,
		    ClinicaUserInterfaceActivatable *activatable)
{
    clinica_user_interface_activatable_activate (activatable);
}

static void
on_extension_removed (PeasExtensionSet *set,
		      PeasPluginInfo *info,
		      ClinicaUserInterfaceActivatable *activatable)
{
    clinica_user_interface_activatable_deactivate (activatable);
}

PeasExtensionSet*
clinica_user_interface_setup_extension_set (ClinicaUserInterface *ui,
                                            ClinicaResourceManager *resources,
                                            PeasEngine *engine)
{
    PeasExtensionSet *set;

    set = peas_extension_set_new (engine, CLINICA_TYPE_USER_INTERFACE_ACTIVATABLE,
				  "user_interface", ui, "resource_manager", resources, NULL);
#ifdef HAVE_PEAS_EXTENSION_SET_FOREACH
     peas_extension_set_foreach (set,
				(PeasExtensionSetForeachFunc) on_extension_added,
				NULL);
#else
     peas_extension_set_call (set, "activate");
#endif

    g_signal_connect (set, "extension-added",
		      G_CALLBACK (on_extension_added), NULL);
    g_signal_connect (set, "extension-removed",
		      G_CALLBACK (on_extension_removed), NULL);

    return set;
}