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 
27 static GtkTooltips *ss_tooltips = (GtkTooltips*) NULL;
28 
29 //-----------------------------------------------------------------------------
30 // wxToolTip
31 //-----------------------------------------------------------------------------
32 
IMPLEMENT_ABSTRACT_CLASS(wxToolTip,wxObject)33 IMPLEMENT_ABSTRACT_CLASS(wxToolTip, wxObject)
34 
35 wxToolTip::wxToolTip( const wxString &tip )
36 {
37     m_text = tip;
38     m_window = (wxWindow*) NULL;
39 }
40 
SetTip(const wxString & tip)41 void wxToolTip::SetTip( const wxString &tip )
42 {
43     m_text = tip;
44     Apply( m_window );
45 }
46 
Apply(wxWindow * win)47 void 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 
Enable(bool flag)64 void 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 
SetDelay(long msecs)74 void 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