Advertisement
Guest User

Untitled

a guest
Aug 27th, 2010
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.34 KB | None | 0 0
  1. #include <gtk/gtk.h>
  2. #include <libappindicator/app-indicator.h>
  3.  
  4.  
  5. void
  6. cb_appindicator(GtkWidget* widget,
  7.         gpointer data)
  8. {
  9.     printf("CB!\n");
  10.     AppIndicator* indicator = data;
  11.     app_indicator_set_status(indicator, APP_INDICATOR_STATUS_ATTENTION);
  12.     printf("CB done!\n");
  13. }
  14.  
  15.  
  16. GtkWidget*
  17. get_menu(AppIndicator* indicator)
  18. {
  19.     GtkWidget* menu = gtk_menu_new();
  20.  
  21.     GtkWidget* item = gtk_menu_item_new_with_label("MENU");    
  22.     gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu);
  23.  
  24.     GtkWidget* subitem = gtk_menu_item_new_with_label("SUBMENU");
  25.  
  26.     g_signal_connect(subitem,
  27.              "activate",
  28.              G_CALLBACK(cb_appindicator),
  29.              indicator);
  30.  
  31.     gtk_menu_shell_append(GTK_MENU_SHELL(menu),
  32.                   subitem);
  33.    
  34.     gtk_widget_show_all(menu);
  35.  
  36.     return menu;
  37. }
  38.  
  39.  
  40. int
  41. main(int argc, char** argv)
  42. {
  43.     gtk_init (&argc, &argv);
  44.    
  45.     GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  46.  
  47.  
  48.     AppIndicator* indicator
  49.         = app_indicator_new("TESTINDICATOR",
  50.                     "gnome-monitor",
  51.                     APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
  52.  
  53.     GtkWidget* indicatormenu = get_menu(indicator);
  54.  
  55.     app_indicator_set_status(indicator, APP_INDICATOR_STATUS_ACTIVE);
  56.     app_indicator_set_attention_icon(indicator, "dialog-warning");
  57.  
  58.     app_indicator_set_menu(indicator, GTK_MENU (indicatormenu));
  59.  
  60.     gtk_widget_show(window);
  61.  
  62.     gtk_main ();
  63.  
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement