]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/caret.h
avoid infinite recursion for richtooltops, (hopefully) fixes #15070
[wxWidgets.git] / interface / wx / caret.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: caret.h
e54c96f1 3// Purpose: interface of wxCaret
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
526954c5 6// Licence: wxWindows licence
23324ae1
FM
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxCaret
7c913512 11
23324ae1 12 A caret is a blinking cursor showing the position where the typed text will
bfac6166
BP
13 appear. Text controls usually have their own caret but wxCaret provides a
14 way to use a caret in other windows.
7c913512 15
bfac6166
BP
16 Currently, the caret appears as a rectangle of the given size. In the
17 future, it will be possible to specify a bitmap to be used for the caret
18 shape.
7c913512 19
23324ae1 20 A caret is always associated with a window and the current caret can be
bfac6166
BP
21 retrieved using wxWindow::GetCaret(). The same caret can't be reused in two
22 different windows.
7c913512 23
23324ae1
FM
24 @library{wxcore}
25 @category{misc}
23324ae1 26*/
7c913512 27class wxCaret
23324ae1
FM
28{
29public:
23324ae1 30 /**
bfac6166 31 Default constructor.
23324ae1
FM
32 */
33 wxCaret();
bfac6166
BP
34
35 //@{
36 /**
37 Creates a caret with the given size (in pixels) and associates it with
38 the @a window.
39 */
7c913512 40 wxCaret(wxWindow* window, int width, int height);
37a181d5 41 wxCaret(wxWindow* window, const wxSize& size);
23324ae1
FM
42 //@}
43
44 //@{
45 /**
bfac6166
BP
46 Creates a caret with the given size (in pixels) and associates it with
47 the @a window (same as the equivalent constructors).
23324ae1 48 */
37a181d5
RD
49 bool Create(wxWindow* window, int width, int height);
50 bool Create(wxWindow* window, const wxSize& size);
23324ae1
FM
51 //@}
52
53 /**
bfac6166
BP
54 Returns the blink time which is measured in milliseconds and is the
55 time elapsed between 2 inversions of the caret (blink time of the caret
56 is the same for all carets, so this functions is static).
23324ae1
FM
57 */
58 static int GetBlinkTime();
59
60 //@{
61 /**
62 Get the caret position (in pixels).
1058f652
MB
63
64 @beginWxPerlOnly
65 In wxPerl there are two methods instead of a single overloaded
66 method:
67 - GetPosition(): returns a Wx::Point object.
68 - GetPositionXY(): returns a 2-element list (x, y).
69 @endWxPerlOnly
23324ae1 70 */
328f5751 71 void GetPosition(int* x, int* y) const;
882678eb 72 wxPoint GetPosition() const;
23324ae1
FM
73 //@}
74
75 //@{
76 /**
77 Get the caret size.
1058f652
MB
78
79 @beginWxPerlOnly
80 In wxPerl there are two methods instead of a single overloaded
81 method:
82 - GetSize(): returns a Wx::Size object.
83 - GetSizeWH(): returns a 2-element list (width, height).
84 @endWxPerlOnly
23324ae1 85 */
328f5751 86 void GetSize(int* width, int* height) const;
882678eb 87 wxSize GetSize() const;
23324ae1
FM
88 //@}
89
90 /**
91 Get the window the caret is associated with.
92 */
328f5751 93 wxWindow* GetWindow() const;
23324ae1
FM
94
95 /**
bfac6166 96 Hides the caret, same as Show(@false).
23324ae1 97 */
9d9c1c24 98 virtual void Hide();
23324ae1
FM
99
100 /**
101 Returns @true if the caret was created successfully.
102 */
328f5751 103 bool IsOk() const;
23324ae1
FM
104
105 /**
106 Returns @true if the caret is visible and @false if it is permanently
d13b34d3 107 hidden (if it is blinking and not shown currently but will be after
bfac6166 108 the next blink, this method still returns @true).
23324ae1 109 */
328f5751 110 bool IsVisible() const;
23324ae1
FM
111
112 //@{
113 /**
114 Move the caret to given position (in logical coordinates).
115 */
116 void Move(int x, int y);
7c913512 117 void Move(const wxPoint& pt);
23324ae1
FM
118 //@}
119
120 /**
121 Sets the blink time for all the carets.
3c4f71cc 122
bfac6166
BP
123 @warning Under Windows, this function will change the blink time for
124 all carets permanently (until the next time it is called),
125 even for carets in other applications.
3c4f71cc 126
4cc4bfaf 127 @see GetBlinkTime()
23324ae1
FM
128 */
129 static void SetBlinkTime(int milliseconds);
130
131 //@{
132 /**
133 Changes the size of the caret.
134 */
135 void SetSize(int width, int height);
7c913512 136 void SetSize(const wxSize& size);
23324ae1
FM
137 //@}
138
139 /**
bfac6166
BP
140 Shows or hides the caret. Notice that if the caret was hidden N times,
141 it must be shown N times as well to reappear on the screen.
23324ae1 142 */
9d9c1c24 143 virtual void Show(bool show = true);
23324ae1 144};
e54c96f1 145