daily pastebin goal
3%
SHARE
TWEET

Untitled

a guest Aug 27th, 2010 115 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
Top