static gint apply_list_btn_pressed(GtkWidget *widget, GdkEventButton *event, GtkTreeView *list_view) { GtkUIManager *gui_manager = gtkut_ui_manager(); if (applywindow.busy) return FALSE; if (event && event->button == 3) { GtkTreeModel *model = gtk_tree_view_get_model(list_view); GtkTreeIter iter; gboolean non_empty; if (!apply_popup_menu) { (void) cm_menu_create_action_group("EditTags", apply_popup_actions, G_N_ELEMENTS(apply_popup_actions), (gpointer)list_view); MENUITEM_ADDUI("/Menus", "EditTags", "EditTags", GTK_UI_MANAGER_MENU) MENUITEM_ADDUI("/Menus/EditTags", "Delete", "EditTags/Delete", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI("/Menus/EditTags", "DeleteAll", "EditTags/DeleteAll", GTK_UI_MANAGER_MENUITEM) apply_popup_menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM( gtk_ui_manager_get_widget(gui_manager, "/Menus/EditTags")) ); } /* grey out popup menu items if list is empty */ non_empty = gtk_tree_model_get_iter_first(model, &iter); cm_menu_set_sensitive("EditTags/Delete", non_empty); cm_menu_set_sensitive("EditTags/DeleteAll", non_empty); gtk_menu_popup(GTK_MENU(apply_popup_menu), NULL, NULL, NULL, NULL, event->button, event->time); return FALSE; } return FALSE; }
static GdkPixbuf* notification_trayicon_create(void) { GdkPixbuf *trayicon_nomail; GtkActionGroup *action_group; trayicon_nomail = notification_pixbuf_get(NOTIFICATION_TRAYICON_NOMAIL); notification_trayicon_destroy(); trayicon = gtk_status_icon_new_from_pixbuf(trayicon_nomail); g_signal_connect(G_OBJECT(trayicon), "activate", G_CALLBACK(notification_trayicon_on_activate), NULL); g_signal_connect(G_OBJECT(trayicon), "popup-menu", G_CALLBACK(notification_trayicon_on_popup_menu), NULL); g_signal_connect(G_OBJECT(trayicon), "size-changed", G_CALLBACK(notification_trayicon_on_size_changed), NULL); /* Popup-Menu */ action_group = cm_menu_create_action_group("SysTrayiconPopup", trayicon_popup_menu_entries, G_N_ELEMENTS(trayicon_popup_menu_entries), NULL); gtk_action_group_add_toggle_actions(action_group, trayicon_popup_toggle_menu_entries, G_N_ELEMENTS(trayicon_popup_toggle_menu_entries), NULL); MENUITEM_ADDUI("/Menus", "SysTrayiconPopup", "SysTrayiconPopup", GTK_UI_MANAGER_MENU) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "GetMail", "SysTrayiconPopup/GetMail", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Separator1", "SysTrayiconPopup/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Email", "SysTrayiconPopup/Email", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "EmailAcc", "SysTrayiconPopup/EmailAcc", GTK_UI_MANAGER_MENU) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Separator2", "SysTrayiconPopup/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "OpenAB", "SysTrayiconPopup/OpenAB", GTK_UI_MANAGER_MENUITEM) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Separator3", "SysTrayiconPopup/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "ToggleOffline", "SysTrayiconPopup/ToggleOffline", GTK_UI_MANAGER_MENUITEM) #ifdef HAVE_LIBNOTIFY MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "ShowBubbles", "SysTrayiconPopup/ShowBubbles", GTK_UI_MANAGER_MENUITEM) #endif MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Separator4", "SysTrayiconPopup/---", GTK_UI_MANAGER_SEPARATOR) MENUITEM_ADDUI("/Menus/SysTrayiconPopup", "Exit", "SysTrayiconPopup/Exit", GTK_UI_MANAGER_MENUITEM) traymenu_popup = gtk_menu_item_get_submenu(GTK_MENU_ITEM( gtk_ui_manager_get_widget(gtkut_ui_manager(), "/Menus/SysTrayiconPopup"))); return trayicon_nomail; }