// Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////////
-class wxToolTip : public wxObject
+class WXDLLEXPORT wxToolTip : public wxObject
{
public:
// ctor & dtor
void SetWindow(wxWindow *win);
wxWindow *GetWindow() const { return m_window; }
- // controlling tooltip behaviour: under MSW, these functions change the
- // behaviour of the tooltips for all controls in the same frame as this
- // one (it is an implementation limitation). Also, these functions won't
- // do anything before the tooltip control is associated with a window, so
- // SetWindow() should be called first
+ // controlling tooltip behaviour: globally change tooltip parameters
// enable or disable the tooltips globally
- void Enable(bool flag);
+ static void Enable(bool flag);
// set the delay after which the tooltip appears
- void SetDelay(long milliseconds);
+ static void SetDelay(long milliseconds);
- // implementation
+ // implementation only from now on
+ // -------------------------------
+
+ // should be called in responde to WM_MOUSEMOVE
void RelayEvent(WXMSG *msg);
private:
- // create the tooltip ctrl for our parent frame if it doesn't exist yet
- // and return its window handle
- WXHWND GetToolTipCtrl();
+ // the one and only one tooltip control we use - never access it directly
+ // but use GetToolTipCtrl() which will create it when needed
+ static WXHWND ms_hwndTT;
+
+ // create the tooltip ctrl if it doesn't exist yet and return its HWND
+ static WXHWND GetToolTipCtrl();
// remove this tooltip from the tooltip control
void Remove();
+ // add a window to the tooltip control
+ void Add(WXHWND hwnd);
+
wxString m_text; // tooltip text
wxWindow *m_window; // window we're associated with
+
+ DECLARE_ABSTRACT_CLASS(wxToolTip)
};