]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/tooltip.h
use WXDLLIMPEXP_FWD_CORE instead of WXDLLIMPEXP_CORE to avoid mingw32 warnings
[wxWidgets.git] / include / wx / msw / tooltip.h
CommitLineData
3a19e16d 1///////////////////////////////////////////////////////////////////////////////
623d5f80 2// Name: wx/msw/tooltip.h
3a19e16d
VZ
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
65571936 9// Licence: wxWindows licence
3a19e16d
VZ
10///////////////////////////////////////////////////////////////////////////////
11
20ceebaa
MW
12#ifndef _WX_MSW_TOOLTIP_H_
13#define _WX_MSW_TOOLTIP_H_
14
4a6b1d28
VZ
15#include "wx/object.h"
16
b5dbe15d 17class WXDLLIMPEXP_FWD_CORE wxWindow;
623d5f80 18
53a2db12 19class WXDLLIMPEXP_CORE wxToolTip : public wxObject
3a19e16d
VZ
20{
21public:
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
16f6dfd8 35 // controlling tooltip behaviour: globally change tooltip parameters
3a19e16d 36 // enable or disable the tooltips globally
16f6dfd8 37 static void Enable(bool flag);
3a19e16d 38 // set the delay after which the tooltip appears
16f6dfd8 39 static void SetDelay(long milliseconds);
be8b4385
VZ
40 // set the delay after which the tooltip disappears or how long the
41 // tooltip remains visible
becac1ef
VZ
42 static void SetAutoPop(long milliseconds);
43 // set the delay between subsequent tooltips to appear
44 static void SetReshow(long milliseconds);
be8b4385
VZ
45 // set maximum width for the new tooltips: -1 disables wrapping
46 // entirely, 0 restores the default behaviour
47 static void SetMaxWidth(int width);
3a19e16d 48
8614c467
VZ
49 // implementation only from now on
50 // -------------------------------
51
52 // should be called in responde to WM_MOUSEMOVE
4453b38d 53 static void RelayEvent(WXMSG *msg);
3a19e16d 54
1306e7d6
VZ
55 // add a window to the tooltip control
56 void Add(WXHWND hwnd);
57
0c5405b7
VZ
58 // remove any tooltip from the window
59 static void Remove(WXHWND hwnd);
60
3a19e16d 61private:
8614c467
VZ
62 // the one and only one tooltip control we use - never access it directly
63 // but use GetToolTipCtrl() which will create it when needed
f048e32f
VZ
64 static WXHWND ms_hwndTT;
65
66 // create the tooltip ctrl if it doesn't exist yet and return its HWND
8614c467 67 static WXHWND GetToolTipCtrl();
3a19e16d 68
be8b4385
VZ
69 // new tooltip maximum width, defaults to min(display width, 400)
70 static int ms_maxWidth;
71
3a19e16d
VZ
72 // remove this tooltip from the tooltip control
73 void Remove();
74
75 wxString m_text; // tooltip text
76 wxWindow *m_window; // window we're associated with
b342f8f0
RD
77
78 DECLARE_ABSTRACT_CLASS(wxToolTip)
c0c133e1 79 wxDECLARE_NO_COPY_CLASS(wxToolTip);
3a19e16d 80};
d098a357 81
20ceebaa 82#endif // _WX_MSW_TOOLTIP_H_