]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/choicdlg.h
Use explicit wxPGPropertyFlags enum type with wxPGProperty::SetFlag() and similar...
[wxWidgets.git] / interface / wx / choicdlg.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: choicdlg.h
ba2874ff 3// Purpose: interface of wx[Multi|Single]ChoiceDialog
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxMultiChoiceDialog
7c913512 11
bfac6166
BP
12 This class represents a dialog that shows a list of strings, and allows the
13 user to select one or more.
7c913512 14
23324ae1
FM
15 @library{wxbase}
16 @category{cmndlg}
7c913512 17
ba2874ff 18 @see @ref overview_cmndlg_multichoice, wxSingleChoiceDialog
23324ae1
FM
19*/
20class wxMultiChoiceDialog : public wxDialog
21{
22public:
23 //@{
24 /**
25 Constructor taking an array of wxString choices.
ba2874ff 26
7c913512 27 @param parent
4cc4bfaf 28 Parent window.
7c913512 29 @param message
4cc4bfaf 30 Message to show on the dialog.
7c913512 31 @param caption
4cc4bfaf 32 The dialog caption.
7c913512 33 @param n
4cc4bfaf 34 The number of choices.
7c913512 35 @param choices
4cc4bfaf 36 An array of strings, or a string list, containing the choices.
7c913512 37 @param style
4cc4bfaf 38 A dialog style (bitlist) containing flags chosen from standard
ba2874ff
BP
39 dialog style and the ones listed below. The default value is
40 equivalent to wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxOK |
41 wxCANCEL | wxCENTRE.
42 @param pos
43 Dialog position. Not Windows.
44
45 @beginStyleTable
8c6791e4 46 @style{wxOK}
4cc4bfaf 47 Show an OK button.
8c6791e4 48 @style{wxCANCEL}
4cc4bfaf 49 Show a Cancel button.
8c6791e4 50 @style{wxCENTRE}
4cc4bfaf 51 Centre the message. Not Windows.
ba2874ff
BP
52 @endStyleTable
53
23324ae1 54 @remarks Use ShowModal() to show the dialog.
bfac6166
BP
55
56 @beginWxPythonOnly
57
58 For Python the two parameters @a n and @a choices are collapsed into a
59 multi parameter @a choices which is expected to be a Python list of
60 strings.
61
62 @endWxPythonOnly
1058f652
MB
63
64 @beginWxPerlOnly
65 Not supported by wxPerl.
66 @endWxPerlOnly
23324ae1
FM
67 */
68 wxMultiChoiceDialog(wxWindow* parent, const wxString& message,
69 const wxString& caption,
bfac6166 70 int n, const wxString* choices,
23324ae1
FM
71 long style = wxCHOICEDLG_STYLE,
72 const wxPoint& pos = wxDefaultPosition);
792255cc
VZ
73 /**
74 Constructor taking an array of wxString choices.
75
76 @param parent
77 Parent window.
78 @param message
79 Message to show on the dialog.
80 @param caption
81 The dialog caption.
82 @param choices
83 An array of strings, or a string list, containing the choices.
84 @param style
85 A dialog style (bitlist) containing flags chosen from standard
86 dialog style and the ones listed below. The default value is
87 equivalent to wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxOK |
88 wxCANCEL | wxCENTRE.
89 @param pos
90 Dialog position. Not Windows.
91
92 @beginStyleTable
93 @style{wxOK}
94 Show an OK button.
95 @style{wxCANCEL}
96 Show a Cancel button.
97 @style{wxCENTRE}
98 Centre the message. Not Windows.
99 @endStyleTable
100
101 @remarks Use ShowModal() to show the dialog.
102
103 @beginWxPythonOnly
104
105 For Python the two parameters @a n and @a choices are collapsed into a
106 multi parameter @a choices which is expected to be a Python list of
107 strings.
108
109 @endWxPythonOnly
1058f652
MB
110
111 @beginWxPerlOnly
112 Use an array reference for the @a choices parameter.
113 @endWxPerlOnly
792255cc 114 */
7c913512
FM
115 wxMultiChoiceDialog(wxWindow* parent,
116 const wxString& message,
117 const wxString& caption,
118 const wxArrayString& choices,
119 long style = wxCHOICEDLG_STYLE,
120 const wxPoint& pos = wxDefaultPosition);
23324ae1
FM
121 //@}
122
123 /**
124 Returns array with indexes of selected items.
125 */
328f5751 126 wxArrayInt GetSelection() const;
23324ae1
FM
127
128 /**
129 Sets selected items from the array of selected items' indexes.
130 */
b7e94bd7 131 void SetSelections(const wxArrayInt& selections);
23324ae1
FM
132
133 /**
134 Shows the dialog, returning either wxID_OK or wxID_CANCEL.
135 */
136 int ShowModal();
137};
138
139
e54c96f1 140
23324ae1
FM
141/**
142 @class wxSingleChoiceDialog
7c913512 143
bfac6166
BP
144 This class represents a dialog that shows a list of strings, and allows the
145 user to select one. Double-clicking on a list item is equivalent to
23324ae1 146 single-clicking and then pressing OK.
7c913512 147
23324ae1
FM
148 @library{wxbase}
149 @category{cmndlg}
7c913512 150
ba2874ff 151 @see @ref overview_cmndlg_singlechoice, wxMultiChoiceDialog
23324ae1
FM
152*/
153class wxSingleChoiceDialog : public wxDialog
154{
155public:
156 //@{
157 /**
ba2874ff
BP
158 Constructor, taking an array of wxString choices and optional client
159 data.
160
7c913512 161 @param parent
4cc4bfaf 162 Parent window.
7c913512 163 @param message
4cc4bfaf 164 Message to show on the dialog.
7c913512 165 @param caption
4cc4bfaf 166 The dialog caption.
7c913512 167 @param n
4cc4bfaf 168 The number of choices.
7c913512 169 @param choices
4cc4bfaf 170 An array of strings, or a string list, containing the choices.
7c913512 171 @param clientData
bfac6166
BP
172 An array of client data to be associated with the items. See
173 GetSelectionClientData().
7c913512 174 @param style
4cc4bfaf 175 A dialog style (bitlist) containing flags chosen from standard
ba2874ff
BP
176 dialog styles and the ones listed below. The default value is
177 equivalent to wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxOK |
178 wxCANCEL | wxCENTRE.
179 @param pos
180 Dialog position. Not Windows.
181
182 @beginStyleTable
8c6791e4 183 @style{wxOK}
4cc4bfaf 184 Show an OK button.
8c6791e4 185 @style{wxCANCEL}
4cc4bfaf 186 Show a Cancel button.
8c6791e4 187 @style{wxCENTRE}
4cc4bfaf 188 Centre the message. Not Windows.
ba2874ff
BP
189 @endStyleTable
190
23324ae1 191 @remarks Use ShowModal() to show the dialog.
bfac6166
BP
192
193 @beginWxPythonOnly
194
195 For Python the two parameters @a n and @a choices are collapsed into a
196 multi parameter @a choices which is expected to be a Python list of
197 strings.
198
199 @endWxPythonOnly
1058f652
MB
200
201 @beginWxPerlOnly
202 Not supported by wxPerl.
203 @endWxPerlOnly
23324ae1
FM
204 */
205 wxSingleChoiceDialog(wxWindow* parent, const wxString& message,
206 const wxString& caption,
bfac6166 207 int n, const wxString* choices,
4cc4bfaf 208 void** clientData = NULL,
23324ae1
FM
209 long style = wxCHOICEDLG_STYLE,
210 const wxPoint& pos = wxDefaultPosition);
792255cc
VZ
211 /**
212 Constructor, taking an array of wxString choices and optional client
213 data.
214
215 @param parent
216 Parent window.
217 @param message
218 Message to show on the dialog.
219 @param caption
220 The dialog caption.
221 @param choices
222 An array of strings, or a string list, containing the choices.
223 @param clientData
224 An array of client data to be associated with the items. See
225 GetSelectionClientData().
226 @param style
227 A dialog style (bitlist) containing flags chosen from standard
228 dialog styles and the ones listed below. The default value is
229 equivalent to wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxOK |
230 wxCANCEL | wxCENTRE.
231 @param pos
232 Dialog position. Not Windows.
233
234 @beginStyleTable
235 @style{wxOK}
236 Show an OK button.
237 @style{wxCANCEL}
238 Show a Cancel button.
239 @style{wxCENTRE}
240 Centre the message. Not Windows.
241 @endStyleTable
242
243 @remarks Use ShowModal() to show the dialog.
244
245 @beginWxPythonOnly
246
247 For Python the two parameters @a n and @a choices are collapsed into a
248 multi parameter @a choices which is expected to be a Python list of
249 strings.
250
251 @endWxPythonOnly
1058f652
MB
252
253 @beginWxPerlOnly
254 Use an array reference for the @a choices parameter.
255 @endWxPerlOnly
792255cc 256 */
7c913512
FM
257 wxSingleChoiceDialog(wxWindow* parent,
258 const wxString& message,
259 const wxString& caption,
260 const wxArrayString& choices,
4cc4bfaf 261 void** clientData = NULL,
7c913512
FM
262 long style = wxCHOICEDLG_STYLE,
263 const wxPoint& pos = wxDefaultPosition);
23324ae1
FM
264 //@}
265
266 /**
267 Returns the index of selected item.
268 */
328f5751 269 int GetSelection() const;
23324ae1
FM
270
271 /**
272 Returns the client data associated with the selection.
273 */
328f5751 274 char* GetSelectionClientData() const;
23324ae1
FM
275
276 /**
277 Returns the selected string.
278 */
328f5751 279 wxString GetStringSelection() const;
23324ae1
FM
280
281 /**
282 Sets the index of the initially selected item.
283 */
b7e94bd7 284 void SetSelection(int selection);
23324ae1
FM
285
286 /**
287 Shows the dialog, returning either wxID_OK or wxID_CANCEL.
288 */
289 int ShowModal();
290};
291
292
e54c96f1 293
23324ae1
FM
294// ============================================================================
295// Global functions/macros
296// ============================================================================
297
b21126db 298/** @addtogroup group_funcmacro_dialog */
23324ae1 299//@{
ba2874ff 300
23324ae1 301/**
ba2874ff
BP
302 Same as wxGetSingleChoice() but returns the index representing the
303 selected string. If the user pressed cancel, -1 is returned.
304
305 @header{wx/choicdlg.h}
1058f652
MB
306
307 @beginWxPerlOnly
308 Use an array reference for the @a aChoices parameter.
309 @endWxPerlOnly
23324ae1
FM
310*/
311int wxGetSingleChoiceIndex(const wxString& message,
312 const wxString& caption,
313 const wxArrayString& aChoices,
4cc4bfaf 314 wxWindow* parent = NULL,
23324ae1
FM
315 int x = -1,
316 int y = -1,
4cc4bfaf
FM
317 bool centre = true,
318 int width = 150,
319 int height = 200);
7c913512
FM
320int wxGetSingleChoiceIndex(const wxString& message,
321 const wxString& caption,
322 int n,
323 const wxString& choices[],
4cc4bfaf 324 wxWindow* parent = NULL,
7c913512
FM
325 int x = -1,
326 int y = -1,
4cc4bfaf
FM
327 bool centre = true,
328 int width = 150,
329 int height = 200);
ba2874ff 330
23324ae1
FM
331//@}
332
b21126db 333/** @addtogroup group_funcmacro_dialog */
23324ae1 334//@{
ba2874ff 335
23324ae1
FM
336/**
337 Pops up a dialog box containing a message, OK/Cancel buttons and a
ba2874ff
BP
338 single-selection listbox. The user may choose an item and press OK to
339 return a string or Cancel to return the empty string. Use
340 wxGetSingleChoiceIndex() if empty string is a valid choice and if you want
341 to be able to detect pressing Cancel reliably.
342
343 You may pass the list of strings to choose from either using @c choices
4cc4bfaf 344 which is an array of @a n strings for the listbox or by using a single
ba2874ff
BP
345 @c aChoices parameter of type wxArrayString.
346
347 If @c centre is @true, the message text (which may include new line
23324ae1 348 characters) is centred; if @false, the message is left-justified.
ba2874ff
BP
349
350 @header{wx/choicdlg.h}
1058f652
MB
351
352 @beginWxPerlOnly
353 Use an array reference for the @a choices parameter.
354 @endWxPerlOnly
23324ae1
FM
355*/
356wxString wxGetSingleChoice(const wxString& message,
357 const wxString& caption,
358 const wxArrayString& aChoices,
4cc4bfaf 359 wxWindow* parent = NULL,
23324ae1
FM
360 int x = -1,
361 int y = -1,
4cc4bfaf
FM
362 bool centre = true,
363 int width = 150,
364 int height = 200);
7c913512
FM
365wxString wxGetSingleChoice(const wxString& message,
366 const wxString& caption,
367 int n,
368 const wxString& choices[],
4cc4bfaf 369 wxWindow* parent = NULL,
7c913512
FM
370 int x = -1,
371 int y = -1,
4cc4bfaf
FM
372 bool centre = true,
373 int width = 150,
374 int height = 200);
ba2874ff 375
23324ae1
FM
376//@}
377
b21126db 378/** @addtogroup group_funcmacro_dialog */
23324ae1 379//@{
ba2874ff 380
23324ae1 381/**
ba2874ff
BP
382 Same as wxGetSingleChoice but takes an array of client data pointers
383 corresponding to the strings, and returns one of these pointers or @NULL
384 if Cancel was pressed. The @c client_data array must have the same number
385 of elements as @c choices or @c aChoices!
386
387 @header{wx/choicdlg.h}
1058f652
MB
388
389 @beginWxPerlOnly
390 Use an array reference for the @a aChoices and @a client_data parameters.
391 @endWxPerlOnly
23324ae1
FM
392*/
393wxString wxGetSingleChoiceData(const wxString& message,
394 const wxString& caption,
395 const wxArrayString& aChoices,
396 const wxString& client_data[],
4cc4bfaf 397 wxWindow* parent = NULL,
23324ae1
FM
398 int x = -1,
399 int y = -1,
4cc4bfaf
FM
400 bool centre = true,
401 int width = 150,
402 int height = 200);
7c913512
FM
403wxString wxGetSingleChoiceData(const wxString& message,
404 const wxString& caption,
405 int n,
406 const wxString& choices[],
407 const wxString& client_data[],
4cc4bfaf 408 wxWindow* parent = NULL,
7c913512
FM
409 int x = -1,
410 int y = -1,
4cc4bfaf
FM
411 bool centre = true,
412 int width = 150,
413 int height = 200);
ba2874ff 414
23324ae1
FM
415//@}
416
b21126db 417/** @addtogroup group_funcmacro_dialog */
23324ae1 418//@{
ba2874ff 419
23324ae1
FM
420/**
421 Pops up a dialog box containing a message, OK/Cancel buttons and a
422 multiple-selection listbox. The user may choose an arbitrary (including 0)
423 number of items in the listbox whose indices will be returned in
ba2874ff 424 @c selections array. The initial contents of this array will be used to
e5cfb314
VZ
425 select the items when the dialog is shown. If the user cancels the dialog,
426 the function returns -1 and @c selections array is left unchanged.
ba2874ff
BP
427
428 You may pass the list of strings to choose from either using @c choices
4cc4bfaf 429 which is an array of @a n strings for the listbox or by using a single
ba2874ff
BP
430 @c aChoices parameter of type wxArrayString.
431
432 If @c centre is @true, the message text (which may include new line
23324ae1 433 characters) is centred; if @false, the message is left-justified.
ba2874ff
BP
434
435 @header{wx/choicdlg.h}
1058f652
MB
436
437 @beginWxPerlOnly
438 Use an array reference for the @a choices parameter.
439 In wxPerl there is no @a selections parameter; the function
440 returns an array containing the user selections.
441 @endWxPerlOnly
23324ae1 442*/
e5cfb314 443int wxGetSelectedChoices(wxArrayInt& selections,
23324ae1
FM
444 const wxString& message,
445 const wxString& caption,
446 const wxArrayString& aChoices,
4cc4bfaf 447 wxWindow* parent = NULL,
23324ae1
FM
448 int x = -1,
449 int y = -1,
4cc4bfaf
FM
450 bool centre = true,
451 int width = 150,
452 int height = 200);
e5cfb314 453int wxGetSelectedChoices(wxArrayInt& selections,
7c913512
FM
454 const wxString& message,
455 const wxString& caption,
456 int n,
457 const wxString& choices[],
4cc4bfaf 458 wxWindow* parent = NULL,
7c913512
FM
459 int x = -1,
460 int y = -1,
4cc4bfaf
FM
461 bool centre = true,
462 int width = 150,
463 int height = 200);
ba2874ff 464
23324ae1
FM
465//@}
466