]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/srchctrl.h
fix GetTextExtent with non-null font argument, fixes #13750
[wxWidgets.git] / interface / wx / srchctrl.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: srchctrl.h
e54c96f1 3// Purpose: interface of wxSearchCtrl
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
526954c5 6// Licence: wxWindows licence
23324ae1
FM
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxSearchCtrl
7c913512
FM
11
12 A search control is a composite control with a search button, a text
23324ae1 13 control, and a cancel button.
7c913512 14
23324ae1 15 @beginStyleTable
8c6791e4 16 @style{wxTE_PROCESS_ENTER}
3a194bda 17 The control will generate the event @c wxEVT_COMMAND_TEXT_ENTER
23324ae1
FM
18 (otherwise pressing Enter key is either processed internally by the
19 control or used for navigation between dialog controls).
8c6791e4 20 @style{wxTE_PROCESS_TAB}
3a194bda 21 The control will receive @c wxEVT_CHAR events for TAB pressed -
23324ae1
FM
22 normally, TAB is used for passing to the next control in a dialog
23 instead. For the control created with this style, you can still use
24 Ctrl-Enter to pass to the next control from the keyboard.
8c6791e4 25 @style{wxTE_NOHIDESEL}
23324ae1
FM
26 By default, the Windows text control doesn't show the selection
27 when it doesn't have focus - use this style to force it to always
28 show it. It doesn't do anything under other platforms.
8c6791e4 29 @style{wxTE_LEFT}
23324ae1 30 The text in the control will be left-justified (default).
8c6791e4 31 @style{wxTE_CENTRE}
23324ae1
FM
32 The text in the control will be centered (currently wxMSW and
33 wxGTK2 only).
8c6791e4 34 @style{wxTE_RIGHT}
23324ae1
FM
35 The text in the control will be right-justified (currently wxMSW
36 and wxGTK2 only).
8c6791e4 37 @style{wxTE_CAPITALIZE}
23324ae1
FM
38 On PocketPC and Smartphone, causes the first letter to be
39 capitalized.
40 @endStyleTable
7c913512 41
3051a44a 42 @beginEventEmissionTable{wxCommandEvent}
e725ba4f
FM
43 To retrieve actual search queries, use EVT_TEXT and EVT_TEXT_ENTER events,
44 just as you would with wxTextCtrl.
45 @event{EVT_SEARCHCTRL_SEARCH_BTN(id, func)}
3a194bda 46 Respond to a @c wxEVT_SEARCHCTRL_SEARCH_BTN event, generated when the
ac63bc40
VZ
47 search button is clicked. Note that this does not initiate a search on
48 its own, you need to perform the appropriate action in your event
49 handler. You may use @code event.GetString() @endcode to retrieve the
50 string to search for in the event handler code.
e725ba4f 51 @event{EVT_SEARCHCTRL_CANCEL_BTN(id, func)}
3a194bda 52 Respond to a @c wxEVT_SEARCHCTRL_CANCEL_BTN event, generated when the
e725ba4f
FM
53 cancel button is clicked.
54 @endEventTable
55
23324ae1 56 @library{wxcore}
e725ba4f 57 @category{ctrl}
e4821c39 58 @appearance{searchctrl.png}
7c913512 59
e54c96f1 60 @see wxTextCtrl::Create, wxValidator
23324ae1
FM
61*/
62class wxSearchCtrl : public wxTextCtrl
63{
64public:
671600d8
RR
65 /**
66 Default constructor
67 */
68 wxSearchCtrl();
e725ba4f 69
23324ae1
FM
70 /**
71 Constructor, creating and showing a text control.
3c4f71cc 72
7c913512 73 @param parent
4cc4bfaf 74 Parent window. Should not be @NULL.
7c913512 75 @param id
4cc4bfaf 76 Control identifier. A value of -1 denotes a default value.
7c913512 77 @param value
4cc4bfaf 78 Default text value.
7c913512 79 @param pos
4cc4bfaf 80 Text control position.
7c913512 81 @param size
4cc4bfaf 82 Text control size.
7c913512 83 @param style
4cc4bfaf 84 Window style. See wxSearchCtrl.
7c913512 85 @param validator
4cc4bfaf 86 Window validator.
7c913512 87 @param name
4cc4bfaf 88 Window name.
3c4f71cc 89
4cc4bfaf 90 @see wxTextCtrl::Create, wxValidator
23324ae1 91 */
7c913512 92 wxSearchCtrl(wxWindow* parent, wxWindowID id,
11e3af6e 93 const wxString& value = wxEmptyString,
7c913512
FM
94 const wxPoint& pos = wxDefaultPosition,
95 const wxSize& size = wxDefaultSize,
96 long style = 0,
97 const wxValidator& validator = wxDefaultValidator,
98 const wxString& name = wxSearchCtrlNameStr);
23324ae1
FM
99
100 /**
101 Destructor, destroying the search control.
102 */
adaaa686 103 virtual ~wxSearchCtrl();
23324ae1 104
7cab9c41
RD
105
106 bool Create(wxWindow* parent, wxWindowID id,
107 const wxString& value = wxEmptyString,
108 const wxPoint& pos = wxDefaultPosition,
109 const wxSize& size = wxDefaultSize,
110 long style = 0,
111 const wxValidator& validator = wxDefaultValidator,
112 const wxString& name = wxSearchCtrlNameStr);
113
23324ae1 114 /**
7c913512 115 Returns a pointer to the search control's menu object or @NULL if there is no
23324ae1
FM
116 menu attached.
117 */
118 virtual wxMenu* GetMenu();
119
120 /**
7c913512 121 Returns the search button visibility value.
23324ae1 122 If there is a menu attached, the search button will be visible regardless of
e725ba4f
FM
123 the search button visibility value.
124
23324ae1
FM
125 This always returns @false in Mac OS X v10.3
126 */
adaaa686 127 virtual bool IsSearchButtonVisible() const;
23324ae1 128
7cab9c41
RD
129 /**
130 Returns the cancel button's visibility state.
131 */
132 virtual bool IsCancelButtonVisible() const;
133
23324ae1 134 /**
e725ba4f
FM
135 Sets the search control's menu object.
136 If there is already a menu associated with the search control it is deleted.
3c4f71cc 137
7c913512 138 @param menu
4cc4bfaf 139 Menu to attach to the search control.
23324ae1
FM
140 */
141 virtual void SetMenu(wxMenu* menu);
142
143 /**
144 Shows or hides the cancel button.
145 */
146 virtual void ShowCancelButton(bool show);
147
148 /**
7c913512 149 Sets the search button visibility value on the search control.
23324ae1 150 If there is a menu attached, the search button will be visible regardless of
e725ba4f
FM
151 the search button visibility value.
152
23324ae1
FM
153 This has no effect in Mac OS X v10.3
154 */
155 virtual void ShowSearchButton(bool show);
7cab9c41
RD
156
157 /**
158 Set the text to be displayed in the search control when the user has
159 not yet typed anything in it.
160 */
161 void SetDescriptiveText(const wxString& text);
162
163 /**
164 Return the text displayed when there is not yet any user input.
165 */
166 wxString GetDescriptiveText() const;
23324ae1 167};
e54c96f1 168
7cab9c41
RD
169
170wxEventType wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN;
171wxEventType wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN;