]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/combobox.h
docs/mac is now docs/osx.
[wxWidgets.git] / interface / wx / combobox.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: combobox.h
e54c96f1 3// Purpose: interface of wxComboBox
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxComboBox
7c913512 11
2e7789a9
VZ
12 A combobox is like a combination of an edit control and a listbox.
13
14 It can be displayed as static list with editable or read-only text field;
15 or a drop-down list with text field; or a drop-down list without a text
16 field.
7c913512 17
bd0812fe
BP
18 A combobox permits a single selection only. Combobox items are numbered
19 from zero.
7c913512 20
bd0812fe
BP
21 If you need a customized combobox, have a look at wxComboCtrl,
22 wxOwnerDrawnComboBox, wxComboPopup and the ready-to-use wxBitmapComboBox.
7c913512 23
2e7789a9
VZ
24 Please refer to wxTextEntry documentation for the description of methods
25 operating with the text entry part of the combobox.
26
23324ae1 27 @beginStyleTable
8c6791e4 28 @style{wxCB_SIMPLE}
23324ae1 29 Creates a combobox with a permanently displayed list. Windows only.
8c6791e4 30 @style{wxCB_DROPDOWN}
23324ae1 31 Creates a combobox with a drop-down list.
8c6791e4 32 @style{wxCB_READONLY}
bd0812fe
BP
33 Same as wxCB_DROPDOWN but only the strings specified as the combobox
34 choices can be selected, it is impossible to select (even from a
35 program) a string which is not in the choices list.
8c6791e4 36 @style{wxCB_SORT}
23324ae1 37 Sorts the entries in the list alphabetically.
8c6791e4 38 @style{wxTE_PROCESS_ENTER}
23324ae1
FM
39 The control will generate the event wxEVT_COMMAND_TEXT_ENTER
40 (otherwise pressing Enter key is either processed internally by the
41 control or used for navigation between dialog controls). Windows
42 only.
43 @endStyleTable
7c913512 44
3051a44a 45 @beginEventEmissionTable{wxCommandEvent}
8c6791e4 46 @event{EVT_COMBOBOX(id, func)}
23324ae1 47 Process a wxEVT_COMMAND_COMBOBOX_SELECTED event, when an item on
bd0812fe 48 the list is selected. Note that calling GetValue() returns the new
23324ae1 49 value of selection.
8c6791e4 50 @event{EVT_TEXT(id, func)}
23324ae1
FM
51 Process a wxEVT_COMMAND_TEXT_UPDATED event, when the combobox text
52 changes.
8c6791e4 53 @event{EVT_TEXT_ENTER(id, func)}
23324ae1
FM
54 Process a wxEVT_COMMAND_TEXT_ENTER event, when RETURN is pressed in
55 the combobox (notice that the combobox must have been created with
56 wxTE_PROCESS_ENTER style to receive this event).
57 @endEventTable
7c913512 58
23324ae1
FM
59 @library{wxcore}
60 @category{ctrl}
7e59b885 61 @appearance{combobox.png}
7c913512 62
e54c96f1 63 @see wxListBox, wxTextCtrl, wxChoice, wxCommandEvent
23324ae1 64*/
2e7789a9
VZ
65class wxComboBox : public wxControl,
66 public wxItemContainer,
67 public wxTextEntry
23324ae1
FM
68{
69public:
bd0812fe
BP
70 /**
71 Default constructor.
72 */
73 wxComboBox();
74
23324ae1
FM
75 //@{
76 /**
77 Constructor, creating and showing a combobox.
3c4f71cc 78
7c913512 79 @param parent
4cc4bfaf 80 Parent window. Must not be @NULL.
7c913512 81 @param id
4cc4bfaf 82 Window identifier. The value wxID_ANY indicates a default value.
7c913512 83 @param value
4cc4bfaf 84 Initial selection string. An empty string indicates no selection.
7c913512 85 @param pos
4cc4bfaf 86 Window position.
7c913512 87 @param size
bd0812fe 88 Window size. If wxDefaultSize is specified then the window is sized
4cc4bfaf 89 appropriately.
7c913512 90 @param n
4cc4bfaf 91 Number of strings with which to initialise the control.
7c913512 92 @param choices
4cc4bfaf 93 An array of strings with which to initialise the control.
7c913512 94 @param style
4cc4bfaf 95 Window style. See wxComboBox.
7c913512 96 @param validator
4cc4bfaf 97 Window validator.
7c913512 98 @param name
4cc4bfaf 99 Window name.
3c4f71cc 100
bd0812fe
BP
101 @beginWxPythonOnly
102 The wxComboBox constructor in wxPython reduces the @a n and @a choices
103 arguments are to a single argument, which is a list of strings.
104 @endWxPythonOnly
105
4cc4bfaf 106 @see Create(), wxValidator
23324ae1 107 */
7c913512 108 wxComboBox(wxWindow* parent, wxWindowID id,
e9c3992c 109 const wxString& value = wxEmptyString,
7c913512
FM
110 const wxPoint& pos = wxDefaultPosition,
111 const wxSize& size = wxDefaultSize,
112 int n = 0,
4cc4bfaf 113 const wxString choices[] = NULL,
7c913512
FM
114 long style = 0,
115 const wxValidator& validator = wxDefaultValidator,
882678eb 116 const wxString& name = wxComboBoxNameStr);
792255cc
VZ
117 /**
118 Constructor, creating and showing a combobox.
119
120 @param parent
121 Parent window. Must not be @NULL.
122 @param id
123 Window identifier. The value wxID_ANY indicates a default value.
124 @param value
125 Initial selection string. An empty string indicates no selection.
126 @param pos
127 Window position.
128 @param size
129 Window size. If wxDefaultSize is specified then the window is sized
130 appropriately.
131 @param choices
132 An array of strings with which to initialise the control.
133 @param style
134 Window style. See wxComboBox.
135 @param validator
136 Window validator.
137 @param name
138 Window name.
139
140 @beginWxPythonOnly
141 The wxComboBox constructor in wxPython reduces the @a n and @a choices
142 arguments are to a single argument, which is a list of strings.
143 @endWxPythonOnly
144
145 @see Create(), wxValidator
146 */
7c913512
FM
147 wxComboBox(wxWindow* parent, wxWindowID id,
148 const wxString& value,
149 const wxPoint& pos,
150 const wxSize& size,
151 const wxArrayString& choices,
152 long style = 0,
153 const wxValidator& validator = wxDefaultValidator,
882678eb 154 const wxString& name = wxComboBoxNameStr);
23324ae1
FM
155 //@}
156
157 /**
158 Destructor, destroying the combobox.
159 */
b7e94bd7 160 virtual ~wxComboBox();
23324ae1 161
bd0812fe 162 //@{
23324ae1 163 /**
bd0812fe
BP
164 Creates the combobox for two-step construction. Derived classes should
165 call or replace this function. See wxComboBox() for further details.
166 */
57bf907d
FM
167 bool Create(wxWindow *parent, wxWindowID id,
168 const wxString& value = wxEmptyString,
bd0812fe
BP
169 const wxPoint& pos = wxDefaultPosition,
170 const wxSize& size = wxDefaultSize,
57bf907d 171 int n = 0, const wxString choices[] = (const wxString *) NULL,
bd0812fe
BP
172 long style = 0,
173 const wxValidator& validator = wxDefaultValidator,
57bf907d
FM
174 const wxString& name = wxComboBoxNameStr);
175 bool Create(wxWindow *parent, wxWindowID id,
bd0812fe
BP
176 const wxString& value,
177 const wxPoint& pos,
178 const wxSize& size,
179 const wxArrayString& choices,
180 long style = 0,
181 const wxValidator& validator = wxDefaultValidator,
57bf907d 182 const wxString& name = wxComboBoxNameStr);
bd0812fe
BP
183 //@}
184
185 /**
2e7789a9 186 Returns the item being selected right now.
23324ae1 187
bd0812fe
BP
188 This function does the same things as wxChoice::GetCurrentSelection()
189 and returns the item currently selected in the dropdown list if it's
190 open or the same thing as wxControlWithItems::GetSelection() otherwise.
23324ae1 191 */
b7e94bd7 192 virtual int GetCurrentSelection() const;
23324ae1
FM
193
194 /**
2e7789a9 195 Same as wxTextEntry::GetInsertionPoint().
bd0812fe 196
cdbcf4c2 197 @note Under wxMSW, this function always returns 0 if the combobox
bd0812fe 198 doesn't have the focus.
23324ae1 199 */
0004982c 200 virtual long GetInsertionPoint() const;
23324ae1
FM
201
202 /**
2e7789a9 203 Same as wxTextEntry::SetSelection().
bd0812fe
BP
204
205 @beginWxPythonOnly
206 This method is called SetMark() in wxPython, "SetSelection" is kept for
207 wxControlWithItems::SetSelection().
208 @endWxPythonOnly
23324ae1 209 */
b7e94bd7 210 virtual void SetSelection(long from, long to);
23324ae1
FM
211
212 /**
213 Sets the text for the combobox text field.
1f1d2182
FM
214
215 @note For a combobox with @c wxCB_READONLY style the string must be in
bd0812fe
BP
216 the combobox choices list, otherwise the call to SetValue() is
217 ignored.
3c4f71cc 218
7c913512 219 @param text
4cc4bfaf 220 The text to set.
23324ae1 221 */
0004982c 222 virtual void SetValue(const wxString& text);
23324ae1 223};
e54c96f1 224