+#define wxTHICK_LINE_BORDER 2
+
+// Margin between the field text and the field rect
+#define wxFIELD_TEXT_MARGIN 2
+
+// ----------------------------------------------------------------------------
+// GTK+ signal handler
+// ----------------------------------------------------------------------------
+
+#if defined( __WXGTK20__ )
+#if GTK_CHECK_VERSION(2,12,0)
+extern "C" {
+static
+gboolean statusbar_query_tooltip(GtkWidget* WXUNUSED(widget),
+ gint x,
+ gint y,
+ gboolean WXUNUSED(keyboard_mode),
+ GtkTooltip *tooltip,
+ wxStatusBar* statbar)
+{
+ int n = statbar->GetFieldFromPoint(wxPoint(x,y));
+ if (n == wxNOT_FOUND)
+ return FALSE;
+
+ // should we show the tooltip for the n-th pane of the statusbar?
+ if (!statbar->GetField(n).IsEllipsized())
+ return FALSE; // no, it's not useful
+
+ const wxString& str = statbar->GetStatusText(n);
+ if (str.empty())
+ return FALSE;
+
+ gtk_tooltip_set_text(tooltip, wxGTK_CONV_SYS(str));
+ return TRUE;
+}
+}
+#endif
+#endif
+
+// ----------------------------------------------------------------------------
+// wxStatusBarGeneric
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(wxStatusBarGeneric, wxWindow)
+ EVT_PAINT(wxStatusBarGeneric::OnPaint)
+ EVT_SIZE(wxStatusBarGeneric::OnSize)
+#ifdef __WXGTK20__
+ EVT_LEFT_DOWN(wxStatusBarGeneric::OnLeftDown)
+ EVT_RIGHT_DOWN(wxStatusBarGeneric::OnRightDown)
+#endif
+ EVT_SYS_COLOUR_CHANGED(wxStatusBarGeneric::OnSysColourChanged)
+END_EVENT_TABLE()