]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/tooltip.h
avoiding crash for pure modifier events
[wxWidgets.git] / include / wx / msw / tooltip.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/tooltip.h
3 // Purpose: wxToolTip class - tooltip control
4 // Author: Vadim Zeitlin
5 // Modified by:
6 // Created: 31.01.99
7 // RCS-ID: $Id$
8 // Copyright: (c) 1999 Robert Roebling, Vadim Zeitlin
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_MSW_TOOLTIP_H_
13 #define _WX_MSW_TOOLTIP_H_
14
15 #include "wx/object.h"
16
17 class WXDLLIMPEXP_FWD_CORE wxWindow;
18
19 class WXDLLIMPEXP_CORE wxToolTip : public wxObject
20 {
21 public:
22 // ctor & dtor
23 wxToolTip(const wxString &tip);
24 virtual ~wxToolTip();
25
26 // accessors
27 // tip text
28 void SetTip(const wxString& tip);
29 const wxString& GetTip() const { return m_text; }
30
31 // the window we're associated with
32 void SetWindow(wxWindow *win);
33 wxWindow *GetWindow() const { return m_window; }
34
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 tooltip remains visible
41 static void SetAutoPop(long milliseconds);
42 // set the delay between subsequent tooltips to appear
43 static void SetReshow(long milliseconds);
44
45 // implementation only from now on
46 // -------------------------------
47
48 // should be called in responde to WM_MOUSEMOVE
49 static void RelayEvent(WXMSG *msg);
50
51 // add a window to the tooltip control
52 void Add(WXHWND hwnd);
53
54 // remove any tooltip from the window
55 static void Remove(WXHWND hwnd);
56
57 private:
58 // the one and only one tooltip control we use - never access it directly
59 // but use GetToolTipCtrl() which will create it when needed
60 static WXHWND ms_hwndTT;
61
62 // create the tooltip ctrl if it doesn't exist yet and return its HWND
63 static WXHWND GetToolTipCtrl();
64
65 // remove this tooltip from the tooltip control
66 void Remove();
67
68 wxString m_text; // tooltip text
69 wxWindow *m_window; // window we're associated with
70
71 DECLARE_ABSTRACT_CLASS(wxToolTip)
72 DECLARE_NO_COPY_CLASS(wxToolTip)
73 };
74
75 #endif // _WX_MSW_TOOLTIP_H_