[Controller] Disallow multiple TildaWindows to bind to the same key
[tilda-gobject.git] / tilda-controller.h
1 #ifndef TILDA_CONTROLLER_H
2 #define TILDA_CONTROLLER_H
3
4 #include <glib.h>
5
6 #define TILDA_TYPE_CONTROLLER                           (tilda_controller_get_type ())
7 #define TILDA_CONTROLLER(obj)                           (G_TYPE_CHECK_INSTANCE_CAST ((obj), TILDA_TYPE_CONTROLLER, TildaController))
8 #define TILDA_CONTROLLER_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST ((klass), TILDA_TYPE_CONTROLLER, TildaControllerClass))
9 #define TILDA_IS_CONTROLLER(obj)                        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TILDA_TYPE_CONTROLLER))
10 #define TILDA_IS_CONTROLLER_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), TILDA_TYPE_CONTROLLER))
11 #define TILDA_CONTROLLER_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), TILDA_TYPE_CONTROLLER, TildaControllerClass))
12
13 typedef struct _TildaController TildaController;
14 typedef struct _TildaControllerClass TildaControllerClass;
15
16 struct _TildaController {
17         GObject parent;
18         gboolean dispose_has_run;
19
20         /* instance members */
21         GPtrArray *windows;
22 };
23
24 struct _TildaControllerClass {
25         GObjectClass parent;
26 };
27
28 /* Used by TILDA_TYPE_CONTROLLER */
29 GType tilda_controller_get_type (void);
30
31 /* DBus API */
32 gboolean tilda_controller_add_window (TildaController *self); // FIXME: needs GError
33 gboolean tilda_controller_quit (TildaController *self, GError **error);
34
35 /* API */
36 gboolean tilda_controller_remove_window (TildaController *self, gint window_number);
37 gboolean tilda_controller_global_key_in_use (const TildaController *self, const gchar *keystr);
38
39 #endif /* TILDA_CONTROLLER_H */
40
41 /* vim: set ts=4 sts=4 sw=4 noet tw=112: */