/* To compile: gcc -Wall -g test-libappindicator-set-menu.c \ -o test-libappindicator-set-menu \ `pkg-config --cflags gtk+-2.0 appindicator-0.1` \ `pkg-config --libs gtk+-2.0 appindicator-0.1` */ #include #include static AppIndicator *indicator; static void create_menu() { GtkWidget *menu, *item; g_debug("%s()", __func__); menu = gtk_menu_new (); item = gtk_menu_item_new_with_mnemonic ("foo"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show_all (menu); app_indicator_set_menu (indicator, GTK_MENU (menu)); } gboolean timeout_cb(gpointer user_data) { create_menu(); return TRUE; } int main (int argc, char **argv) { gtk_init (&argc, &argv); indicator = app_indicator_new ("example-simple-client", "indicator-messages", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); app_indicator_set_status (indicator, APP_INDICATOR_STATUS_ACTIVE); app_indicator_set_attention_icon (indicator, "indicator-messages-new"); app_indicator_set_icon (indicator, "bash"); create_menu(); g_timeout_add_seconds (5, timeout_cb, NULL); gtk_main (); return 0; }