aboutsummaryrefslogtreecommitdiff
path: root/example/simple-client.c
blob: ff718ddd0161412f3b864e2d6124996bdec6e0c9 (plain)
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

#include "libappindicator/app-indicator.h"
#include "libdbusmenu-glib/server.h"
#include "libdbusmenu-glib/menuitem.h"

GMainLoop * mainloop = NULL;

int
main (int argc, char ** argv)
{
	g_type_init();

	CustomIndicator * ci = CUSTOM_INDICATOR(g_object_new(CUSTOM_INDICATOR_TYPE, NULL));
	g_assert(ci != NULL);

	app_indicator_set_id(ci, "example-simple-client");
	app_indicator_set_category(ci, CUSTOM_INDICATOR_CATEGORY_APPLICATION_STATUS);
	app_indicator_set_status(ci, CUSTOM_INDICATOR_STATUS_ACTIVE);
	app_indicator_set_icon(ci, "indicator-messages");
	app_indicator_set_attention_icon(ci, "indicator-messages-new");

	DbusmenuMenuitem * root = dbusmenu_menuitem_new();

	DbusmenuMenuitem * item = dbusmenu_menuitem_new();
	dbusmenu_menuitem_property_set(item, DBUSMENU_MENUITEM_PROP_LABEL, "Item 1");
	dbusmenu_menuitem_child_append(root, item);

	item = dbusmenu_menuitem_new();
	dbusmenu_menuitem_property_set(item, DBUSMENU_MENUITEM_PROP_LABEL, "Item 2");
	dbusmenu_menuitem_child_append(root, item);

	DbusmenuServer * menuservice = dbusmenu_server_new ("/need/a/menu/path");
	dbusmenu_server_set_root(menuservice, root);

	app_indicator_set_menu(ci, menuservice);

	mainloop = g_main_loop_new(NULL, FALSE);
	g_main_loop_run(mainloop);

	return 0;
}