]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/tooltip.h
Small fixes to defs.h; change "windows.h" to <windows.h> in filefn.cpp
[wxWidgets.git] / include / wx / msw / tooltip.h
index d2ece32c85f9009175a8cd880a6c13b66aaee52f..d79dbfd01dda0dbd0b995d30cca54e6ee8a9b1d7 100644 (file)
@@ -9,7 +9,7 @@
 // Licence:     wxWindows license
 ///////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows license
 ///////////////////////////////////////////////////////////////////////////////
 
-class wxToolTip : public wxObject
+class WXDLLEXPORT wxToolTip : public wxObject
 {
 public:
     // ctor & dtor
 {
 public:
     // ctor & dtor
@@ -25,27 +25,32 @@ public:
     void SetWindow(wxWindow *win);
     wxWindow *GetWindow() const { return m_window; }
 
     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
         // enable or disable the tooltips globally
-    void Enable(bool flag);
+    static void Enable(bool flag);
         // set the delay after which the tooltip appears
         // 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:
     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();
 
 
     // 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
 };
     wxString  m_text;           // tooltip text
     wxWindow *m_window;         // window we're associated with
 };