// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
-#if wxUSE_TASKBARICON && defined(__WXGTK210__)
+#if wxUSE_TASKBARICON
#include "wx/taskbar.h"
#include "eggtrayicon.h"
#include <gtk/gtk.h>
+#if !GTK_CHECK_VERSION(2,10,0)
+ typedef struct _GtkStatusIcon GtkStatusIcon;
+#endif
+
class wxTaskBarIcon::Private
{
public:
bool wxTaskBarIconBase::IsAvailable()
{
+#ifdef GDK_WINDOWING_X11
char name[32];
g_snprintf(name, sizeof(name), "_NET_SYSTEM_TRAY_S%d",
gdk_x11_get_default_screen());
Window manager = XGetSelectionOwner(gdk_x11_get_default_xdisplay(), atom);
return manager != None;
+#else
+ return true;
+#endif
}
//-----------------------------------------------------------------------------
m_size = 0;
if (m_eggTrayIcon)
{
- GtkWidget* image = GTK_BIN(m_eggTrayIcon)->child;
+ GtkWidget* image = gtk_bin_get_child(GTK_BIN(m_eggTrayIcon));
gtk_image_set_from_pixbuf(GTK_IMAGE(image), m_bitmap.GetPixbuf());
}
else
#if GTK_CHECK_VERSION(2,10,0)
if (m_statusIcon)
- gtk_status_icon_set_tooltip(m_statusIcon, tip_text);
- else
+ {
+#if GTK_CHECK_VERSION(2,16,0)
+ if (GTK_CHECK_VERSION(3,0,0) || gtk_check_version(2,16,0) == NULL)
+ gtk_status_icon_set_tooltip_text(m_statusIcon, tip_text);
+ else
#endif
+ {
+#if !GTK_CHECK_VERSION(3,0,0) && !defined(GTK_DISABLE_DEPRECATED)
+ gtk_status_icon_set_tooltip(m_statusIcon, tip_text);
+#endif
+ }
+ }
+ else
+#endif // GTK_CHECK_VERSION(2,10,0)
{
+#if !GTK_CHECK_VERSION(3,0,0) && !defined(GTK_DISABLE_DEPRECATED)
if (tip_text && m_tooltips == NULL)
{
m_tooltips = gtk_tooltips_new();
}
if (m_tooltips)
gtk_tooltips_set_tip(m_tooltips, m_eggTrayIcon, tip_text, "");
+#endif
}
#endif // wxUSE_TOOLTIPS
}
if (h > size) h = size;
GdkPixbuf* pixbuf =
gdk_pixbuf_scale_simple(m_bitmap.GetPixbuf(), w, h, GDK_INTERP_BILINEAR);
- GtkImage* image = GTK_IMAGE(GTK_BIN(m_eggTrayIcon)->child);
+ GtkImage* image = GTK_IMAGE(gtk_bin_get_child(GTK_BIN(m_eggTrayIcon)));
gtk_image_set_from_pixbuf(image, pixbuf);
g_object_unref(pixbuf);
}