1 #ifndef JAYATANAWINDOW_H
2 #define JAYATANAWINDOW_H
3 
4 #include <gio/gio.h>
5 
6 #include <jawt_md.h>
7 #include <libdbusmenu-glib/server.h>
8 #include <stdbool.h>
9 
10 G_BEGIN_DECLS
11 
12 /**
13  * Control structure of global menu
14  */
15 typedef struct
16 {
17 	jlong windowXID;
18 	jobject globalThat;
19 
20 	int menu_counter;
21 	char *windowXIDPath;
22 	bool gdBusProxyRegistered;
23 	guint gBusWatcher;
24 	GDBusProxy *dbBusProxy;
25 	GVariant *dbBusProxyCallSync;
26 
27 	DbusmenuServer *dbusMenuServer;
28 	DbusmenuMenuitem *dbusMenuRoot;
29 
30 	jint registerState;
31 	GHashTable *menu_items;
32 } JAyatanaWindow;
33 
34 JAyatanaWindow *jayatana_window_new();
35 JAyatanaWindow *jayatana_window_copy(JAyatanaWindow *src);
36 void jayatana_window_free(JAyatanaWindow *window);
37 
38 void jayatana_window_remove_unparented(JAyatanaWindow *win);
39 DbusmenuMenuitem *jayatana_window_get_dbusmenu_item(JAyatanaWindow *win, jint id,
40                                                     const char *cclabel);
41 
42 G_END_DECLS
43 
44 #endif // JAYATANAWINDOW_H
45