bd5e63158f2d64ec3a9922677414b7c170350e7a
[tweakr] / libmaemo-tweaks-section / maemo-tweaks-module.h
1 /*
2  * vim:ts=4:sw=4:et:cindent:cino=(0
3  */ 
4
5 #ifndef __MAEMO_TWEAKS_MODULE_H__
6 #define __MAEMO_TWEAKS_MODULE_H__
7
8 #include <glib-object.h>
9
10 G_BEGIN_DECLS
11
12
13 #define MAEMO_TWEAKS_TYPE_MODULE \
14         (maemo_tweaks_module_get_type ())
15 #define MAEMO_TWEAKS_MODULE(o) \
16         (G_TYPE_CHECK_INSTANCE_CAST ((o), MAEMO_TWEAKS_TYPE_MODULE, \
17         MaemoTweaksModule))
18 #define MAEMO_TWEAKS_MODULE_CLASS(k) \
19         (G_TYPE_CHECK_CLASS_CAST((k), MAEMO_TWEAKS_TYPE_MODULE, \
20         MaemoTweaksModuleClass))
21 #define MAEMO_TWEAKS_IS_MODULE(o) \
22         (G_TYPE_CHECK_INSTANCE_TYPE ((o), MAEMO_TWEAKS_TYPE_MODULE))
23 #define MAEMO_TWEAKS_IS_MODULE_CLASS(k) \
24         (G_TYPE_CHECK_CLASS_TYPE ((k), MAEMO_TWEAKS_TYPE_MODULE))
25 #define MAEMO_TWEAKS_MODULE_GET_CLASS(o) \
26         (G_TYPE_INSTANCE_GET_CLASS ((o), MAEMO_TWEAKS_TYPE_MODULE, \
27         MaemoTweaksModuleClass))
28
29 typedef struct _MaemoTweaksModule      MaemoTweaksModule;
30 typedef struct _MaemoTweaksModuleClass MaemoTweaksModuleClass;
31
32 struct _MaemoTweaksModule
33 {
34     GTypeModule  parent_instance;
35
36     gchar       *filename;
37     GModule     *library;
38
39     /*  module symbols  */
40     void (* load)   (MaemoTweaksModule *module);
41     void (* unload) (MaemoTweaksModule *module);
42 };
43
44 struct _MaemoTweaksModuleClass
45 {
46     GTypeModuleClass  parent_class;
47 };
48
49 GType maemo_tweaks_module_get_type (void) G_GNUC_CONST;
50
51 MaemoTweaksModule * maemo_tweaks_module_new      (const gchar *filename);
52
53
54 /* API for the modules to implement */
55
56 void        maemo_tweaks_module_load     (MaemoTweaksModule   *module);
57 void        maemo_tweaks_module_unload   (MaemoTweaksModule   *module);
58
59
60 G_END_DECLS
61
62 #endif /* __MAEMO_TWEAKS_MODULE_H_ */