diff --git a/include/wx/gtk/tooltip.h b/include/wx/gtk/tooltip.h index f79618899a..ad476e5ecb 100644 --- a/include/wx/gtk/tooltip.h +++ b/include/wx/gtk/tooltip.h @@ -28,12 +28,12 @@ class WXDLLIMPEXP_CORE wxWindow; class WXDLLIMPEXP_CORE wxToolTip : public wxObject { public: + wxToolTip( const wxString &tip ); + // globally change the tooltip parameters static void Enable( bool flag ); static void SetDelay( long msecs ); - wxToolTip( const wxString &tip ); - // get/set the tooltip text void SetTip( const wxString &tip ); wxString GetTip() const { return m_text; } @@ -41,9 +41,17 @@ public: wxWindow *GetWindow() const { return m_window; } bool IsOk() const { return m_window != NULL; } - // implementation + + // wxGTK-only from now on + + // this forwards back to wxWindow::ApplyToolTip() void Apply( wxWindow *win ); + // this just sets the given tooltip for the specified widget + // + // tip must be already UTF-8 encoded + static void Apply(GtkWidget *w, const wxCharBuffer& tip); + private: wxString m_text; wxWindow *m_window; diff --git a/src/gtk/tooltip.cpp b/src/gtk/tooltip.cpp index 19bc0e985f..c46b6f9190 100644 --- a/src/gtk/tooltip.cpp +++ b/src/gtk/tooltip.cpp @@ -46,12 +46,11 @@ void wxToolTip::SetTip( const wxString &tip ) void wxToolTip::Apply( wxWindow *win ) { - if (!win) return; + if (!win) + return; - if (!gs_tooltips) - { + if ( !gs_tooltips ) gs_tooltips = gtk_tooltips_new(); - } m_window = win; @@ -61,9 +60,19 @@ void wxToolTip::Apply( wxWindow *win ) m_window->ApplyToolTip( gs_tooltips, m_text ); } +/* static */ +void wxToolTip::Apply(GtkWidget *w, const wxCharBuffer& tip) +{ + if ( !gs_tooltips ) + gs_tooltips = gtk_tooltips_new(); + + gtk_tooltips_set_tip(gs_tooltips, w, tip, NULL); +} + void wxToolTip::Enable( bool flag ) { - if (!gs_tooltips) return; + if (!gs_tooltips) + return; if (flag) gtk_tooltips_enable( gs_tooltips );