1///////////////////////////////////////////////////////////////////////////// 2// Name: src/gtk1/tooltip.cpp 3// Purpose: wxToolTip implementation 4// Author: Robert Roebling 5// Id: $Id: tooltip.cpp 39021 2006-05-04 07:57:04Z ABX $ 6// Copyright: (c) 1998 Robert Roebling 7// Licence: wxWindows licence 8///////////////////////////////////////////////////////////////////////////// 9 10// For compilers that support precompilation, includes "wx.h". 11#include "wx/wxprec.h" 12 13#if wxUSE_TOOLTIPS 14 15#include "wx/tooltip.h" 16 17#ifndef WX_PRECOMP 18 #include "wx/window.h" 19#endif 20 21#include "wx/gtk1/private.h" 22 23//----------------------------------------------------------------------------- 24// global data 25//----------------------------------------------------------------------------- 26 27static GtkTooltips *ss_tooltips = (GtkTooltips*) NULL; 28 29//----------------------------------------------------------------------------- 30// wxToolTip 31//----------------------------------------------------------------------------- 32 33IMPLEMENT_ABSTRACT_CLASS(wxToolTip, wxObject) 34 35wxToolTip::wxToolTip( const wxString &tip ) 36{ 37 m_text = tip; 38 m_window = (wxWindow*) NULL; 39} 40 41void wxToolTip::SetTip( const wxString &tip ) 42{ 43 m_text = tip; 44 Apply( m_window ); 45} 46 47void wxToolTip::Apply( wxWindow *win ) 48{ 49 if (!win) return; 50 51 if (!ss_tooltips) 52 { 53 ss_tooltips = gtk_tooltips_new(); 54 } 55 56 m_window = win; 57 58 if (m_text.empty()) 59 m_window->ApplyToolTip( ss_tooltips, (wxChar*) NULL ); 60 else 61 m_window->ApplyToolTip( ss_tooltips, m_text ); 62} 63 64void wxToolTip::Enable( bool flag ) 65{ 66 if (!ss_tooltips) return; 67 68 if (flag) 69 gtk_tooltips_enable( ss_tooltips ); 70 else 71 gtk_tooltips_disable( ss_tooltips ); 72} 73 74void wxToolTip::SetDelay( long msecs ) 75{ 76 if (!ss_tooltips) 77 return; 78 79 gtk_tooltips_set_delay( ss_tooltips, (int)msecs ); 80} 81 82#endif 83