1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/tooltip.h
3 // Purpose: wxToolTip class - tooltip control
4 // Author: Vadim Zeitlin
8 // Copyright: (c) 1999 Robert Roebling, Vadim Zeitlin
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_MSW_TOOLTIP_H_
13 #define _WX_MSW_TOOLTIP_H_
15 #include "wx/object.h"
17 class WXDLLIMPEXP_FWD_CORE wxWindow
;
19 class WXDLLIMPEXP_CORE wxToolTip
: public wxObject
23 wxToolTip(const wxString
&tip
);
28 void SetTip(const wxString
& tip
);
29 const wxString
& GetTip() const { return m_text
; }
31 // the window we're associated with
32 void SetWindow(wxWindow
*win
);
33 wxWindow
*GetWindow() const { return m_window
; }
35 // controlling tooltip behaviour: globally change tooltip parameters
36 // enable or disable the tooltips globally
37 static void Enable(bool flag
);
38 // set the delay after which the tooltip appears
39 static void SetDelay(long milliseconds
);
40 // set the delay after which the tooltip disappears or how long the
41 // tooltip remains visible
42 static void SetAutoPop(long milliseconds
);
43 // set the delay between subsequent tooltips to appear
44 static void SetReshow(long milliseconds
);
45 // set maximum width for the new tooltips: -1 disables wrapping
46 // entirely, 0 restores the default behaviour
47 static void SetMaxWidth(int width
);
49 // implementation only from now on
50 // -------------------------------
52 // should be called in responde to WM_MOUSEMOVE
53 static void RelayEvent(WXMSG
*msg
);
55 // add a window to the tooltip control
56 void Add(WXHWND hwnd
);
58 // remove any tooltip from the window
59 static void Remove(WXHWND hwnd
);
62 // the one and only one tooltip control we use - never access it directly
63 // but use GetToolTipCtrl() which will create it when needed
64 static WXHWND ms_hwndTT
;
66 // create the tooltip ctrl if it doesn't exist yet and return its HWND
67 static WXHWND
GetToolTipCtrl();
69 // new tooltip maximum width, defaults to min(display width, 400)
70 static int ms_maxWidth
;
72 // remove this tooltip from the tooltip control
75 wxString m_text
; // tooltip text
76 wxWindow
*m_window
; // window we're associated with
78 DECLARE_ABSTRACT_CLASS(wxToolTip
)
79 DECLARE_NO_COPY_CLASS(wxToolTip
)
82 #endif // _WX_MSW_TOOLTIP_H_