gboolean tray_appindicator_create(gpointer data) { if (is_exist_tray_appindicator()) return FALSE; if (tray_appindicator) { if (app_indicator_get_status (tray_appindicator) != APP_INDICATOR_STATUS_ACTIVE) { app_indicator_set_status (tray_appindicator, APP_INDICATOR_STATUS_ACTIVE); destroy_other_tray(); } } else { destroy_other_tray(); if (!tray_appindicator_load_icon(HIME_TRAY_PNG, HIME_TRAY_PNG, iconame, icondir)) return FALSE; tray_appindicator = app_indicator_new_with_path ("hime", iconame, APP_INDICATOR_CATEGORY_APPLICATION_STATUS, icondir); if(tray_appindicator == NULL) return TRUE; app_indicator_set_status (tray_appindicator, APP_INDICATOR_STATUS_ACTIVE); GtkWidget *menu = NULL; menu = create_tray_menu(mitems); app_indicator_set_secondary_activate_target(tray_appindicator, mitems[0].item); app_indicator_set_menu (tray_appindicator, GTK_MENU (menu)); } load_tray_appindicator(); return FALSE; }
static void indicator_build_menu(PurplePlugin *plugin, AppIndicator *indicator) { GtkMenu *menu = GTK_MENU(docklet_menu()); GList *items = gtk_container_get_children(GTK_CONTAINER(menu)); app_indicator_set_menu(indicator, menu); app_indicator_set_secondary_activate_target(indicator, GTK_WIDGET(items->data)); }
int main (int argc, char ** argv) { GtkWidget *menu = NULL; AppIndicator *ci = NULL; gtk_init (&argc, &argv); ci = app_indicator_new ("example-simple-client", "indicator-messages", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); g_assert (IS_APP_INDICATOR (ci)); g_assert (G_IS_OBJECT (ci)); app_indicator_set_status (ci, APP_INDICATOR_STATUS_ACTIVE); app_indicator_set_attention_icon_full(ci, "indicator-messages-new", "System Messages Icon Highlighted"); app_indicator_set_label (ci, "1%", "100%"); app_indicator_set_title (ci, "Test Inidcator"); g_signal_connect (ci, "act", G_CALLBACK (scroll_event_cb), NULL); g_timeout_add_seconds(1, percent_change, ci); menu = gtk_menu_new (); GtkWidget *item = gtk_check_menu_item_new_with_label ("1"); g_signal_connect (item, "activate", G_CALLBACK (item_clicked_cb), "1"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); item = gtk_radio_menu_item_new_with_label (NULL, "2"); g_signal_connect (item, "activate", G_CALLBACK (item_clicked_cb), "2"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); item = gtk_menu_item_new_with_label ("3"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); append_submenu (item); gtk_widget_show (item); GtkWidget *toggle_item = gtk_menu_item_new_with_label ("Toggle 3"); g_signal_connect (toggle_item, "activate", G_CALLBACK (toggle_sensitivity_cb), item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), toggle_item); gtk_widget_show(toggle_item); item = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, NULL); g_signal_connect (item, "activate", G_CALLBACK (image_clicked_cb), NULL); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show(item); item = gtk_menu_item_new_with_label ("Get Attention"); g_signal_connect (item, "activate", G_CALLBACK (activate_clicked_cb), ci); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show(item); app_indicator_set_secondary_activate_target(ci, item); item = gtk_menu_item_new_with_label ("Show label"); label_toggle_cb(item, ci); g_signal_connect (item, "activate", G_CALLBACK (label_toggle_cb), ci); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show(item); item = gtk_check_menu_item_new_with_label ("Set Local Icon"); g_signal_connect (item, "activate", G_CALLBACK (local_icon_toggle_cb), ci); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show(item); app_indicator_set_menu (ci, GTK_MENU (menu)); mainloop = g_main_loop_new(NULL, FALSE); g_main_loop_run(mainloop); return 0; }