From b62a4dc07cf2b2bf1dba8e6944b6db821ca232e0 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 22 May 2007 23:11:18 +0000 Subject: replace EggTrayIcon usage with GtkStatusIcon which has been introduced in Gtk 2.10. Original Patch from lool. git-svn-id: file:///home/lennart/svn/public/padevchooser/trunk@24 e4aeda27-4315-0410-ac56-b21855d76123 --- src/padevchooser.c | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) (limited to 'src/padevchooser.c') diff --git a/src/padevchooser.c b/src/padevchooser.c index d8fa47a..3c88031 100644 --- a/src/padevchooser.c +++ b/src/padevchooser.c @@ -30,6 +30,7 @@ #include #include +#include #include #include #include @@ -38,7 +39,6 @@ #include #include -#include "eggtrayicon.h" #include "x11prop.h" #define GCONF_PREFIX "/apps/padevchooser" @@ -53,7 +53,7 @@ struct menu_item_info { static NotifyNotification *notification = NULL; static gchar *last_events = NULL; -static EggTrayIcon *tray_icon = NULL; +static GtkStatusIcon *tray_icon = NULL; static gchar *current_server = NULL, *current_sink = NULL, *current_source = NULL; static struct menu_item_info *current_source_menu_item_info = NULL, *current_sink_menu_item_info = NULL, *current_server_menu_item_info = NULL; static GtkMenu *menu = NULL, *sink_submenu = NULL, *source_submenu = NULL, *server_submenu = NULL; @@ -346,9 +346,8 @@ static void browse_cb(pa_browser *z, pa_browse_opcode_t c, const pa_browse_info look_for_current_menu_items(); } -static void tray_icon_on_click(GtkWidget *widget, GdkEventButton* event) { - if (event->type == GDK_BUTTON_PRESS) - gtk_menu_popup(menu, NULL, NULL, NULL, NULL, event->button, event->time); +static void tray_icon_on_click(GtkStatusIcon *status_icon, void * user_data) { + gtk_menu_popup(menu, NULL, NULL, gtk_status_icon_position_menu, status_icon, 1, gtk_get_current_event_time()); } static void start_manager_cb(void) { @@ -520,24 +519,15 @@ static void server_other_cb(void) { set_server(input_dialog("Other Server", "Please enter server name:", current_server)); } -static EggTrayIcon *create_tray_icon(void) { - GtkTooltips *tips; - EggTrayIcon *tray_icon; - GtkWidget *event_box, *icon; +static GtkStatusIcon *create_tray_icon(void) { + GtkStatusIcon *tray_icon; - tray_icon = egg_tray_icon_new("PulseAudio Device Chooser"); - - event_box = gtk_event_box_new(); - g_signal_connect_swapped(G_OBJECT(event_box), "button-press-event", G_CALLBACK(tray_icon_on_click), NULL); - - gtk_container_add(GTK_CONTAINER(tray_icon), event_box); - icon = gtk_image_new_from_icon_name("audio-card", GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_container_add(GTK_CONTAINER(event_box), icon); + tray_icon = gtk_status_icon_new(); - gtk_widget_show_all(GTK_WIDGET(tray_icon)); - - tips = gtk_tooltips_new(); - gtk_tooltips_set_tip(GTK_TOOLTIPS(tips), event_box, "PulseAudio Applet", "I don't know what this is."); + g_signal_connect_object(G_OBJECT(tray_icon), "activate", G_CALLBACK(tray_icon_on_click), tray_icon, 0); + gtk_status_icon_set_from_icon_name(tray_icon, "audio-card"); + gtk_status_icon_set_tooltip(tray_icon, "PulseAudio Applet"); + gtk_status_icon_set_visible(tray_icon, TRUE); return tray_icon; } -- cgit