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

	AppIndicator * ci = APP_INDICATOR(g_object_new(APP_INDICATOR_TYPE, NULL));
	g_assert(ci != NULL);

	app_indicator_set_id(ci, "example-simple-client");
	app_indicator_set_category(ci, APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
	app_indicator_set_status(ci, APP_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;
}