// GtkStatusIcon is deprecated in GTK 3 but is the XEmbed tray icon that the // Xfce panel's status tray shows, and gotk3 does not wrap it. #define GDK_DISABLE_DEPRECATION_WARNINGS #include #include "tray.h" static void on_activate(GtkStatusIcon *icon, gpointer data) { dasTrayActivate(); } static void on_popup(GtkStatusIcon *icon, guint button, guint time, gpointer data) { dasTrayPopup(); } GtkStatusIcon *das_tray_new(const char *icon_name) { GtkStatusIcon *icon = gtk_status_icon_new_from_icon_name(icon_name); gtk_status_icon_set_visible(icon, FALSE); g_signal_connect(icon, "activate", G_CALLBACK(on_activate), NULL); g_signal_connect(icon, "popup-menu", G_CALLBACK(on_popup), NULL); return icon; } void das_tray_set(GtkStatusIcon *icon, gboolean visible, const char *tooltip) { gtk_status_icon_set_tooltip_text(icon, tooltip); gtk_status_icon_set_visible(icon, visible); } void das_tray_popup(uintptr_t menu) { gtk_menu_popup_at_pointer(GTK_MENU((gpointer)menu), NULL); }