]>
git.saurik.com Git - wxWidgets.git/blob - src/gtk/tooltip.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxToolTip implementation
4 // Author: Robert Roebling
6 // Copyright: (c) 1998 Robert Roebling
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
11 #pragma implementation "tooltip.h"
18 #include "wx/window.h"
19 #include "wx/tooltip.h"
24 extern GdkFont
*GtkGetDefaultGuiFont();
26 //-----------------------------------------------------------------------------
28 //-----------------------------------------------------------------------------
30 static GtkTooltips
*ss_tooltips
= (GtkTooltips
*) NULL
;
31 static GdkColor ss_bg
;
32 static GdkColor ss_fg
;
34 //-----------------------------------------------------------------------------
36 //-----------------------------------------------------------------------------
38 wxToolTip::wxToolTip( const wxString
&tip
)
41 m_window
= (wxWindow
*) NULL
;
44 void wxToolTip::SetTip( const wxString
&tip
)
50 void wxToolTip::Apply( wxWindow
*win
)
56 ss_tooltips
= gtk_tooltips_new();
61 gdk_color_alloc( gtk_widget_get_default_colormap(), &ss_fg
);
66 gdk_color_alloc( gtk_widget_get_default_colormap(), &ss_bg
);
68 #if (GTK_MINOR_VERSION > 0)
69 gtk_tooltips_force_window( ss_tooltips
);
73 gtk_widget_get_style( ss_tooltips
->tip_window
) );
75 g_style
->fg
[GTK_STATE_NORMAL
] = ss_fg
;
76 g_style
->bg
[GTK_STATE_NORMAL
] = ss_bg
;
77 gdk_font_unref( g_style
->font
);
78 g_style
->font
= gdk_font_ref( GtkGetDefaultGuiFont() );
80 gtk_widget_set_style( ss_tooltips
->tip_window
, g_style
);
82 gtk_tooltips_set_colors( ss_tooltips
, &ss_bg
, &ss_fg
);
89 m_window
->ApplyToolTip( ss_tooltips
, (wxChar
*) NULL
);
91 m_window
->ApplyToolTip( ss_tooltips
, m_text
);
94 void wxToolTip::Enable( bool flag
)
96 if (!ss_tooltips
) return;
99 gtk_tooltips_enable( ss_tooltips
);
101 gtk_tooltips_disable( ss_tooltips
);
104 void wxToolTip::SetDelay( long msecs
)
109 gtk_tooltips_set_delay( ss_tooltips
, (int)msecs
);