]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_cmndlgs.i
use the right number in the tarball filename
[wxWidgets.git] / wxPython / src / _cmndlgs.i
CommitLineData
7bf85405 1/////////////////////////////////////////////////////////////////////////////
d14a1e28
RD
2// Name: _cmndlgs.i
3// Purpose: SWIG interface for the "Common Dialog" classes
7bf85405
RD
4//
5// Author: Robin Dunn
6//
d14a1e28 7// Created: 25-July-1998
7bf85405 8// RCS-ID: $Id$
d14a1e28 9// Copyright: (c) 2003 by Total Control Software
7bf85405
RD
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
d14a1e28 13// Not a %module
7bf85405 14
7bf85405 15
d14a1e28
RD
16//---------------------------------------------------------------------------
17%newgroup
7bf85405 18
b2dc1044
RD
19MAKE_CONST_WXSTRING(FileSelectorPromptStr);
20MAKE_CONST_WXSTRING(DirSelectorPromptStr);
21MAKE_CONST_WXSTRING(DirDialogNameStr);
22MAKE_CONST_WXSTRING(FileSelectorDefaultWildcardStr);
23MAKE_CONST_WXSTRING(GetTextFromUserPromptStr);
24MAKE_CONST_WXSTRING(MessageBoxCaptionStr);
137b5242 25
d14a1e28
RD
26//---------------------------------------------------------------------------
27
137b5242 28
fcafa8a9 29DocStr(wxColourData,
dce2bd22
RD
30"This class holds a variety of information related to the colour
31chooser dialog, used to transfer settings and results to and from the
d07d2bc9 32`wx.ColourDialog`.", "");
d0e2ede0 33
9416aa89 34class wxColourData : public wxObject {
7bf85405 35public:
fcafa8a9
RD
36 DocCtorStr(
37 wxColourData(),
d07d2bc9 38 "Constructor, sets default values.", "");
d0e2ede0 39
7bf85405
RD
40 ~wxColourData();
41
d0e2ede0 42
fcafa8a9
RD
43 DocDeclStr(
44 bool , GetChooseFull(),
dce2bd22
RD
45 "Under Windows, determines whether the Windows colour dialog will
46display the full dialog with custom colour selection controls. Has no
d07d2bc9 47meaning under other platforms. The default value is true.", "");
d0e2ede0 48
fcafa8a9
RD
49 DocDeclStr(
50 wxColour , GetColour(),
d07d2bc9 51 "Gets the colour (pre)selected by the dialog.", "");
d0e2ede0 52
fcafa8a9
RD
53 DocDeclStr(
54 wxColour , GetCustomColour(int i),
dce2bd22
RD
55 "Gets the i'th custom colour associated with the colour dialog. i
56should be an integer between 0 and 15. The default custom colours are
da397248 57all invalid colours.", "");
d0e2ede0 58
fcafa8a9
RD
59 DocDeclStr(
60 void , SetChooseFull(int flag),
dce2bd22
RD
61 "Under Windows, tells the Windows colour dialog to display the full
62dialog with custom colour selection controls. Under other platforms,
d07d2bc9 63has no effect. The default value is true.", "");
d0e2ede0 64
fcafa8a9
RD
65 DocDeclStr(
66 void , SetColour(const wxColour& colour),
dce2bd22 67 "Sets the default colour for the colour dialog. The default colour is
d07d2bc9 68black.", "");
d0e2ede0 69
fcafa8a9
RD
70 DocDeclStr(
71 void , SetCustomColour(int i, const wxColour& colour),
dce2bd22 72 "Sets the i'th custom colour for the colour dialog. i should be an
da397248 73integer between 0 and 15. The default custom colours are all invalid colours.", "");
d0e2ede0 74
0eae5d09
RD
75
76 %property(ChooseFull, GetChooseFull, SetChooseFull, doc="See `GetChooseFull` and `SetChooseFull`");
77 %property(Colour, GetColour, SetColour, doc="See `GetColour` and `SetColour`");
78 %property(CustomColour, GetCustomColour, SetCustomColour, doc="See `GetCustomColour` and `SetCustomColour`");
79
7bf85405
RD
80};
81
82
dce2bd22
RD
83
84
fcafa8a9 85DocStr(wxColourDialog,
d07d2bc9 86 "This class represents the colour chooser dialog.", "");
fcafa8a9 87
ab1f7d2a
RD
88MustHaveApp(wxColourDialog);
89
7bf85405
RD
90class wxColourDialog : public wxDialog {
91public:
2b9048c5 92 %pythonAppend wxColourDialog "self._setOORInfo(self)"
7bf85405 93
fcafa8a9
RD
94 DocCtorStr(
95 wxColourDialog(wxWindow* parent, wxColourData* data = NULL),
dce2bd22
RD
96 "Constructor. Pass a parent window, and optionally a `wx.ColourData`,
97which will be copied to the colour dialog's internal ColourData
d07d2bc9 98instance.", "");
0122b7e3 99
fcafa8a9
RD
100 DocDeclStr(
101 wxColourData& , GetColourData(),
d07d2bc9 102 "Returns a reference to the `wx.ColourData` used by the dialog.", "");
0eae5d09
RD
103
104 %property(ColourData, GetColourData, doc="See `GetColourData`");
7bf85405
RD
105};
106
107
1979aa58
RD
108wxColour wxGetColourFromUser(wxWindow *parent = (wxWindow *)NULL,
109 const wxColour& colInit = wxNullColour,
110 const wxString& caption = wxPyEmptyString);
111
112
d14a1e28 113//--------------------------------------------------------------------------------
7bf85405 114
d0e2ede0
RD
115enum {
116 wxDD_NEW_DIR_BUTTON,
117 wxDD_DEFAULT_STYLE,
118 wxDD_CHANGE_DIR,
119};
fcafa8a9
RD
120
121DocStr(wxDirDialog,
dce2bd22 122 "wx.DirDialog allows the user to select a directory by browising the
d07d2bc9 123file system.", "
dce2bd22
RD
124
125Window Styles
126--------------
127 ==================== ==========================================
d0e2ede0
RD
128 wx.DD_DEFAULT_STYLE Equivalent to a combination of
129 wx.DEFAULT_DIALOG_STYLE, wx.DD_NEW_DIR_BUTTON
130 and wx.RESIZE_BORDER.
131
dce2bd22
RD
132 wx.DD_NEW_DIR_BUTTON Add 'Create new directory' button and allow
133 directory names to be editable. On Windows
134 the new directory button is only available
135 with recent versions of the common dialogs.
d0e2ede0
RD
136
137 wx.DD_CHANGE_DIR Change the current working directory to the
138 directory chosen by the user.
dce2bd22
RD
139 ==================== ==========================================
140");
fcafa8a9 141
ab1f7d2a
RD
142MustHaveApp(wxDirDialog);
143
7bf85405
RD
144class wxDirDialog : public wxDialog {
145public:
2b9048c5 146 %pythonAppend wxDirDialog "self._setOORInfo(self)"
41d4305c 147 %pythonAppend wxDirDialog() ""
d0e2ede0 148
fcafa8a9
RD
149 DocCtorStr(
150 wxDirDialog(wxWindow* parent,
151 const wxString& message = wxPyDirSelectorPromptStr,
152 const wxString& defaultPath = wxPyEmptyString,
d0e2ede0 153 long style = wxDD_DEFAULT_STYLE,
fcafa8a9
RD
154 const wxPoint& pos = wxDefaultPosition,
155 const wxSize& size = wxDefaultSize,
156 const wxString& name = wxPyDirDialogNameStr),
d07d2bc9 157 "Constructor. Use ShowModal method to show the dialog.", "");
fcafa8a9 158
2daad280
RD
159// %RenameCtor(PreDirDialog, wxDirDialog());
160
161// bool Create(wxWindow *parent,
162// const wxString& title = wxDirSelectorPromptStr,
163// const wxString& defaultPath = wxEmptyString,
164// long style = wxDD_DEFAULT_STYLE,
165// const wxPoint& pos = wxDefaultPosition,
166// const wxSize& sz = wxDefaultSize,
167// const wxString& name = wxPyDirDialogNameStr);
fcafa8a9
RD
168
169 DocDeclStr(
170 wxString , GetPath(),
d07d2bc9 171 "Returns the default or user-selected path.", "");
d0e2ede0 172
fcafa8a9
RD
173 DocDeclStr(
174 wxString , GetMessage(),
d07d2bc9 175 "Returns the message that will be displayed on the dialog.", "");
d0e2ede0 176
fcafa8a9
RD
177 DocDeclStr(
178 void , SetMessage(const wxString& message),
d07d2bc9 179 "Sets the message that will be displayed on the dialog.", "");
d0e2ede0 180
fcafa8a9
RD
181 DocDeclStr(
182 void , SetPath(const wxString& path),
d07d2bc9 183 "Sets the default path.", "");
d0e2ede0 184
0eae5d09
RD
185 %property(Message, GetMessage, SetMessage, doc="See `GetMessage` and `SetMessage`");
186 %property(Path, GetPath, SetPath, doc="See `GetPath` and `SetPath`");
7bf85405
RD
187};
188
68320e40 189
d14a1e28 190//---------------------------------------------------------------------------
7bf85405 191
16182b7b
RD
192%{
193// for compatibility only
194#define wxHIDE_READONLY 0
195%}
196
d0e2ede0
RD
197enum {
198 // These will dissappear in 2.8
199 wxOPEN,
200 wxSAVE,
d0e2ede0
RD
201 wxOVERWRITE_PROMPT,
202 wxFILE_MUST_EXIST,
203 wxMULTIPLE,
204 wxCHANGE_DIR,
16182b7b 205 wxHIDE_READONLY,
d0e2ede0
RD
206
207 wxFD_OPEN,
208 wxFD_SAVE,
209 wxFD_OVERWRITE_PROMPT,
210 wxFD_FILE_MUST_EXIST,
211 wxFD_MULTIPLE,
212 wxFD_CHANGE_DIR,
6aaca5ba 213 wxFD_PREVIEW,
d0e2ede0
RD
214 wxFD_DEFAULT_STYLE,
215};
216
fcafa8a9 217DocStr(wxFileDialog,
dce2bd22 218"wx.FileDialog allows the user to select one or more files from the
d07d2bc9 219filesystem.", "
dce2bd22
RD
220
221In Windows, this is the common file selector dialog. On X based
222platforms a generic alternative is used. The path and filename are
223distinct elements of a full file pathname. If path is \"\", the
224current directory will be used. If filename is \"\", no default
225filename will be supplied. The wildcard determines what files are
226displayed in the file selector, and file extension supplies a type
227extension for the required filename.
228
229Both the X and Windows versions implement a wildcard filter. Typing a
d07d2bc9 230filename containing wildcards (\*, ?) in the filename text item, and
dce2bd22
RD
231clicking on Ok, will result in only those files matching the pattern
232being displayed. The wildcard may be a specification for multiple
233types of file with a description for each, such as::
fcafa8a9
RD
234
235 \"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif\"
236
dce2bd22
RD
237
238Window Styles
239--------------
d0e2ede0
RD
240 ====================== ==========================================
241 wx.FD_OPEN This is an open dialog.
fcafa8a9 242
d0e2ede0 243 wx.FD_SAVE This is a save dialog.
fcafa8a9 244
d0e2ede0
RD
245 wx.FD_OVERWRITE_PROMPT For save dialog only: prompt for a confirmation
246 if a file will be overwritten.
fcafa8a9 247
d0e2ede0
RD
248 wx.FD_MULTIPLE For open dialog only: allows selecting multiple
249 files.
fcafa8a9 250
d0e2ede0
RD
251 wx.FD_CHANGE_DIR Change the current working directory to the
252 directory where the file(s) chosen by the user
253 are.
254 ====================== ==========================================
fcafa8a9
RD
255");
256
257
258
ab1f7d2a
RD
259MustHaveApp(wxFileDialog);
260
7bf85405
RD
261class wxFileDialog : public wxDialog {
262public:
2b9048c5 263 %pythonAppend wxFileDialog "self._setOORInfo(self)"
fcafa8a9
RD
264
265 DocCtorStr(
266 wxFileDialog(wxWindow* parent,
267 const wxString& message = wxPyFileSelectorPromptStr,
268 const wxString& defaultDir = wxPyEmptyString,
269 const wxString& defaultFile = wxPyEmptyString,
270 const wxString& wildcard = wxPyFileSelectorDefaultWildcardStr,
d0e2ede0 271 long style = wxFD_DEFAULT_STYLE,
fcafa8a9 272 const wxPoint& pos = wxDefaultPosition),
d07d2bc9 273 "Constructor. Use ShowModal method to show the dialog.", "");
fcafa8a9
RD
274
275
276 DocDeclStr(
277 void , SetMessage(const wxString& message),
d07d2bc9 278 "Sets the message that will be displayed on the dialog.", "");
d0e2ede0 279
fcafa8a9
RD
280 DocDeclStr(
281 void , SetPath(const wxString& path),
dce2bd22 282 "Sets the path (the combined directory and filename that will be
d07d2bc9 283returned when the dialog is dismissed).", "");
d0e2ede0 284
fcafa8a9
RD
285 DocDeclStr(
286 void , SetDirectory(const wxString& dir),
d07d2bc9 287 "Sets the default directory.", "");
d0e2ede0 288
fcafa8a9
RD
289 DocDeclStr(
290 void , SetFilename(const wxString& name),
d07d2bc9 291 "Sets the default filename.", "");
d0e2ede0 292
fcafa8a9
RD
293 DocDeclStr(
294 void , SetWildcard(const wxString& wildCard),
dce2bd22
RD
295 "Sets the wildcard, which can contain multiple file types, for
296example::
297
298 \"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif\"
d07d2bc9 299", "");
d0e2ede0 300
fcafa8a9
RD
301 DocDeclStr(
302 void , SetFilterIndex(int filterIndex),
d07d2bc9 303 "Sets the default filter index, starting from zero.", "");
d0e2ede0 304
fcafa8a9
RD
305 DocDeclStr(
306 wxString , GetMessage() const,
d07d2bc9 307 "Returns the message that will be displayed on the dialog.", "");
d0e2ede0 308
fcafa8a9
RD
309 DocDeclStr(
310 wxString , GetPath() const,
d07d2bc9 311 "Returns the full path (directory and filename) of the selected file.", "");
d0e2ede0 312
fcafa8a9
RD
313 DocDeclStr(
314 wxString , GetDirectory() const,
d07d2bc9 315 "Returns the default directory.", "");
d0e2ede0 316
fcafa8a9
RD
317 DocDeclStr(
318 wxString , GetFilename() const,
d07d2bc9 319 "Returns the default filename.", "");
d0e2ede0 320
fcafa8a9
RD
321 DocDeclStr(
322 wxString , GetWildcard() const,
d07d2bc9 323 "Returns the file dialog wildcard.", "");
d0e2ede0 324
fcafa8a9
RD
325 DocDeclStr(
326 int , GetFilterIndex() const,
dce2bd22
RD
327 "Returns the index into the list of filters supplied, optionally, in
328the wildcard parameter. Before the dialog is shown, this is the index
329which will be used when the dialog is first displayed. After the
d07d2bc9 330dialog is shown, this is the index selected by the user.", "");
f6bcfd97 331
fcafa8a9 332
214c4fbe
RD
333 %extend {
334 DocStr(GetFilenames,
335 "Returns a list of filenames chosen in the dialog. This function
dce2bd22 336should only be used with the dialogs which have wx.MULTIPLE style, use
d07d2bc9 337GetFilename for the others.", "");
f6bcfd97
BP
338 PyObject* GetFilenames() {
339 wxArrayString arr;
340 self->GetFilenames(arr);
b37c7e1d 341 return wxArrayString2PyList_helper(arr);
f6bcfd97
BP
342 }
343
214c4fbe
RD
344 DocStr(GetPaths,
345 "Fills the array paths with the full paths of the files chosen. This
346function should only be used with the dialogs which have wx.MULTIPLE
d0e2ede0
RD
347style, use GetPath for the others.", "");
348
f6bcfd97
BP
349 PyObject* GetPaths() {
350 wxArrayString arr;
351 self->GetPaths(arr);
b37c7e1d 352 return wxArrayString2PyList_helper(arr);
f6bcfd97
BP
353 }
354 }
3ef86e32
RD
355
356// TODO
357// // Utility functions
358
359// // Parses the wildCard, returning the number of filters.
360// // Returns 0 if none or if there's a problem,
361// // The arrays will contain an equal number of items found before the error.
362// // wildCard is in the form:
363// // "All files (*)|*|Image Files (*.jpeg *.png)|*.jpg;*.png"
364// static int ParseWildcard(const wxString& wildCard,
365// wxArrayString& descriptions,
366// wxArrayString& filters);
367
368// // Append first extension to filePath from a ';' separated extensionList
369// // if filePath = "path/foo.bar" just return it as is
370// // if filePath = "foo[.]" and extensionList = "*.jpg;*.png" return "foo.jpg"
371// // if the extension is "*.j?g" (has wildcards) or "jpg" then return filePath
372// static wxString AppendExtension(const wxString &filePath,
373// const wxString &extensionList);
374
375
42e2bbb9
RD
376 %property(Directory, GetDirectory, SetDirectory, doc="See `GetDirectory` and `SetDirectory`");
377 %property(Filename, GetFilename, SetFilename, doc="See `GetFilename` and `SetFilename`");
378 %property(Filenames, GetFilenames, doc="See `GetFilenames`");
379 %property(FilterIndex, GetFilterIndex, SetFilterIndex, doc="See `GetFilterIndex` and `SetFilterIndex`");
380 %property(Message, GetMessage, SetMessage, doc="See `GetMessage` and `SetMessage`");
381 %property(Path, GetPath, SetPath, doc="See `GetPath` and `SetPath`");
382 %property(Paths, GetPaths, doc="See `GetPaths`");
383 %property(Wildcard, GetWildcard, SetWildcard, doc="See `GetWildcard` and `SetWildcard`");
384
7bf85405
RD
385};
386
387
d14a1e28 388//---------------------------------------------------------------------------
7bf85405 389
293a0a86
RD
390enum { wxCHOICEDLG_STYLE };
391
e5868095
RD
392
393DocStr(wxMultiChoiceDialog,
d07d2bc9 394 "A simple dialog with a multi selection listbox.", "");
e5868095 395
ab1f7d2a
RD
396MustHaveApp(wxMultiChoiceDialog);
397
293a0a86
RD
398class wxMultiChoiceDialog : public wxDialog
399{
400public:
2b9048c5 401 %pythonAppend wxMultiChoiceDialog "self._setOORInfo(self)"
293a0a86 402
e5868095
RD
403 DocCtorAStr(
404 wxMultiChoiceDialog(wxWindow *parent,
405 const wxString& message,
406 const wxString& caption,
d5573410 407 int choices=0, wxString* choices_array=NULL,
e5868095
RD
408 long style = wxCHOICEDLG_STYLE,
409 const wxPoint& pos = wxDefaultPosition),
870b7ef0 410 "__init__(self, Window parent, String message, String caption,
40a0d6ca 411 List choices=EmptyList, long style=CHOICEDLG_STYLE,
dce2bd22 412 Point pos=DefaultPosition) -> MultiChoiceDialog",
870b7ef0
RD
413 "Constructor. Use the `ShowModal` method to show the dialog.
414
415 :param parent: The parent window.
416 :param message: Text to display above the list of selections.
417 :param caption: Text to use in the title bar of the dialog.
418 :param choices: A list of strings or unicode objects that the
419 user is allowed to choose from.
420 :param style: Styles to apply to the dialog. The default value is
421 equivallent to wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.OK|wx.CANCEL|wx.CENTER.
422 :param pos: Where to position the dialog (not used on Windows)
423
424", "");
e5868095 425
d0e2ede0 426
e5868095
RD
427 DocDeclAStr(
428 void, SetSelections(const wxArrayInt& selections),
429 "SetSelections(List selections)",
dce2bd22 430 "Specify the items in the list that should be selected, using a list of
870b7ef0
RD
431integers. The list should specify the indexes of the items that
432should be selected.", "");
293a0a86 433
e5868095
RD
434 DocAStr(GetSelections,
435 "GetSelections() -> [selections]",
870b7ef0
RD
436 "Returns a list of integers representing the items that are selected.
437If an item is selected then its index will appear in the list.", "");
d14a1e28 438 %extend {
293a0a86
RD
439 PyObject* GetSelections() {
440 return wxArrayInt2PyList_helper(self->GetSelections());
441 }
442 }
203bfdca
RD
443
444 %property(Selections, GetSelections, SetSelections, doc="See `GetSelections` and `SetSelections`");
293a0a86
RD
445};
446
7bf85405 447
d14a1e28 448//---------------------------------------------------------------------------
7bf85405 449
e5868095 450DocStr(wxSingleChoiceDialog,
d07d2bc9 451 "A simple dialog with a single selection listbox.", "");
e5868095 452
ab1f7d2a
RD
453MustHaveApp(wxSingleChoiceDialog);
454
7bf85405
RD
455class wxSingleChoiceDialog : public wxDialog {
456public:
2b9048c5 457 %pythonAppend wxSingleChoiceDialog "self._setOORInfo(self)"
e5868095
RD
458
459 DocAStr(wxSingleChoiceDialog,
dce2bd22 460 "__init__(Window parent, String message, String caption,
40a0d6ca 461 List choices=EmptyList, long style=CHOICEDLG_STYLE,
dce2bd22 462 Point pos=DefaultPosition) -> SingleChoiceDialog",
d07d2bc9 463 "Constructor. Use ShowModal method to show the dialog.", "");
e5868095 464
d14a1e28
RD
465 %extend {
466 // TODO: ignoring clientData for now... FIX THIS
7bf85405
RD
467 // SWIG is messing up the &/*'s for some reason.
468 wxSingleChoiceDialog(wxWindow* parent,
d14a1e28
RD
469 const wxString& message,
470 const wxString& caption,
471 int choices, wxString* choices_array,
7bf85405 472 //char** clientData = NULL,
293a0a86 473 long style = wxCHOICEDLG_STYLE,
d14a1e28
RD
474 const wxPoint& pos = wxDefaultPosition) {
475 return new wxSingleChoiceDialog(parent, message, caption,
476 choices, choices_array, NULL, style, pos);
7bf85405 477 }
09f3d4e6 478 }
9c039d08 479
e5868095
RD
480 DocDeclStr(
481 int , GetSelection(),
6aaca5ba 482 "Get the index of the currently selected item.", "");
d0e2ede0 483
e5868095
RD
484 DocDeclStr(
485 wxString , GetStringSelection(),
d07d2bc9 486 "Returns the string value of the currently selected item", "");
d0e2ede0 487
e5868095
RD
488 DocDeclStr(
489 void , SetSelection(int sel),
d07d2bc9 490 "Set the current selected item to sel", "");
7012bb9f
RD
491
492 %property(Selection, GetSelection, SetSelection, doc="See `GetSelection` and `SetSelection`");
493 %property(StringSelection, GetStringSelection, doc="See `GetStringSelection`");
7bf85405
RD
494};
495
496
d14a1e28 497//---------------------------------------------------------------------------
7bf85405 498
e5868095 499DocStr(wxTextEntryDialog,
d07d2bc9 500 "A dialog with text control, [ok] and [cancel] buttons", "");
e5868095 501
ab1f7d2a
RD
502MustHaveApp(wxTextEntryDialog);
503
f63a6e0c
RD
504enum { wxTextEntryDialogStyle };
505
7bf85405
RD
506class wxTextEntryDialog : public wxDialog {
507public:
2b9048c5 508 %pythonAppend wxTextEntryDialog "self._setOORInfo(self)"
7bf85405 509
e5868095
RD
510 DocCtorStr(
511 wxTextEntryDialog(wxWindow* parent,
512 const wxString& message,
513 const wxString& caption = wxPyGetTextFromUserPromptStr,
514 const wxString& defaultValue = wxPyEmptyString,
7aada1e0 515 long style = wxTextEntryDialogStyle,
e5868095 516 const wxPoint& pos = wxDefaultPosition),
d07d2bc9 517 "Constructor. Use ShowModal method to show the dialog.", "");
e5868095
RD
518
519 DocDeclStr(
520 wxString , GetValue(),
dce2bd22 521 "Returns the text that the user has entered if the user has pressed OK,
d07d2bc9 522or the original value if the user has pressed Cancel.", "");
d0e2ede0 523
e5868095
RD
524 DocDeclStr(
525 void , SetValue(const wxString& value),
d07d2bc9 526 "Sets the default text value.", "");
994453b8
RD
527
528 %property(Value, GetValue, SetValue, doc="See `GetValue` and `SetValue`");
7bf85405
RD
529};
530
d14a1e28 531//---------------------------------------------------------------------------
7bf85405 532
7aada1e0
RD
533MAKE_CONST_WXSTRING(GetPasswordFromUserPromptStr);
534
535class wxPasswordEntryDialog : public wxTextEntryDialog
536{
537public:
538 wxPasswordEntryDialog(wxWindow *parent,
539 const wxString& message,
540 const wxString& caption = wxPyGetPasswordFromUserPromptStr,
541 const wxString& value = wxPyEmptyString,
542 long style = wxTextEntryDialogStyle,
543 const wxPoint& pos = wxDefaultPosition);
544};
545
546//---------------------------------------------------------------------------
547
9165401f
RD
548DocStr( wxNumberEntryDialog,
549"A dialog with spin control, ok and cancel buttons.", "")
550
551MustHaveApp(wxNumberEntryDialog);
552
553class wxNumberEntryDialog : public wxDialog
554{
555public:
556 %pythonAppend wxNumberEntryDialog "self._setOORInfo(self)"
557
558 DocCtorStr(
559 wxNumberEntryDialog(wxWindow *parent,
560 const wxString& message,
561 const wxString& prompt,
562 const wxString& caption,
563 long value, long min, long max,
564 const wxPoint& pos = wxDefaultPosition),
565 "Constructor. Use ShowModal method to show the dialog.", "");
566
567 long GetValue();
203bfdca
RD
568
569 %property(Value, GetValue, doc="See `GetValue`");
570
9165401f
RD
571};
572
573//---------------------------------------------------------------------------
574
e5868095
RD
575
576DocStr(wxFontData,
dce2bd22 577 "This class holds a variety of information related to font dialogs and
d07d2bc9 578is used to transfer settings to and results from a `wx.FontDialog`.", "");
e5868095
RD
579
580
9416aa89 581class wxFontData : public wxObject {
7bf85405
RD
582public:
583 wxFontData();
584 ~wxFontData();
585
e5868095
RD
586 DocDeclStr(
587 void , EnableEffects(bool enable),
dce2bd22
RD
588 "Enables or disables 'effects' under MS Windows only. This refers to
589the controls for manipulating colour, strikeout and underline
d07d2bc9 590properties. The default value is true.", "");
d0e2ede0 591
e5868095
RD
592 DocDeclStr(
593 bool , GetAllowSymbols(),
dce2bd22
RD
594 "Under MS Windows, returns a flag determining whether symbol fonts can
595be selected. Has no effect on other platforms. The default value is
d07d2bc9 596true.", "");
d0e2ede0 597
e5868095
RD
598 DocDeclStr(
599 wxColour , GetColour(),
dce2bd22 600 "Gets the colour associated with the font dialog. The default value is
d07d2bc9 601black.", "");
d0e2ede0 602
e5868095
RD
603 DocDeclStr(
604 wxFont , GetChosenFont(),
d07d2bc9 605 "Gets the font chosen by the user.", "");
d0e2ede0 606
e5868095
RD
607 DocDeclStr(
608 bool , GetEnableEffects(),
d07d2bc9 609 "Determines whether 'effects' are enabled under Windows.", "");
d0e2ede0 610
e5868095
RD
611 DocDeclStr(
612 wxFont , GetInitialFont(),
dce2bd22 613 "Gets the font that will be initially used by the font dialog. This
d07d2bc9 614should have previously been set by the application.", "");
d0e2ede0 615
e5868095
RD
616 DocDeclStr(
617 bool , GetShowHelp(),
dce2bd22 618 "Returns true if the Help button will be shown (Windows only). The
d07d2bc9 619default value is false.", "");
d0e2ede0 620
e5868095
RD
621 DocDeclStr(
622 void , SetAllowSymbols(bool allowSymbols),
dce2bd22 623 "Under MS Windows, determines whether symbol fonts can be selected. Has
d07d2bc9 624no effect on other platforms. The default value is true.", "");
d0e2ede0 625
e5868095
RD
626 DocDeclStr(
627 void , SetChosenFont(const wxFont& font),
dce2bd22 628 "Sets the font that will be returned to the user (normally for internal
d07d2bc9 629use only).", "");
d0e2ede0 630
e5868095
RD
631 DocDeclStr(
632 void , SetColour(const wxColour& colour),
dce2bd22 633 "Sets the colour that will be used for the font foreground colour. The
d07d2bc9 634default colour is black.", "");
d0e2ede0 635
e5868095
RD
636 DocDeclStr(
637 void , SetInitialFont(const wxFont& font),
d07d2bc9 638 "Sets the font that will be initially used by the font dialog.", "");
d0e2ede0 639
e5868095
RD
640 DocDeclStr(
641 void , SetRange(int min, int max),
dce2bd22 642 "Sets the valid range for the font point size (Windows only). The
d07d2bc9 643default is 0, 0 (unrestricted range).", "");
d0e2ede0 644
e5868095
RD
645 DocDeclStr(
646 void , SetShowHelp(bool showHelp),
dce2bd22 647 "Determines whether the Help button will be displayed in the font
d07d2bc9 648dialog (Windows only). The default value is false.", "");
42e2bbb9
RD
649
650 %property(AllowSymbols, GetAllowSymbols, SetAllowSymbols, doc="See `GetAllowSymbols` and `SetAllowSymbols`");
651 %property(ChosenFont, GetChosenFont, SetChosenFont, doc="See `GetChosenFont` and `SetChosenFont`");
652 %property(Colour, GetColour, SetColour, doc="See `GetColour` and `SetColour`");
d1cf7e2a 653// %property(EnableEffects, GetEnableEffects, doc="See `GetEnableEffects`");
42e2bbb9
RD
654 %property(InitialFont, GetInitialFont, SetInitialFont, doc="See `GetInitialFont` and `SetInitialFont`");
655 %property(ShowHelp, GetShowHelp, SetShowHelp, doc="See `GetShowHelp` and `SetShowHelp`");
656
7bf85405
RD
657};
658
659
e5868095
RD
660
661
662DocStr(wxFontDialog,
dce2bd22
RD
663 "wx.FontDialog allows the user to select a system font and its attributes.
664
665:see: `wx.FontData`
d07d2bc9 666", "");
e5868095 667
ab1f7d2a
RD
668MustHaveApp(wxFontDialog);
669
7bf85405
RD
670class wxFontDialog : public wxDialog {
671public:
2b9048c5 672 %pythonAppend wxFontDialog "self._setOORInfo(self)"
e5868095
RD
673
674 DocStr(wxFontDialog,
dce2bd22
RD
675 "Constructor. Pass a parent window and the `wx.FontData` object to be
676used to initialize the dialog controls. Call `ShowModal` to display
677the dialog. If ShowModal returns ``wx.ID_OK`` then you can fetch the
d07d2bc9 678results with via the `wx.FontData` returned by `GetFontData`.", "");
557a93b9 679 wxFontDialog(wxWindow* parent, const wxFontData& data);
7bf85405 680
d0e2ede0 681
e5868095
RD
682 DocDeclStr(
683 wxFontData& , GetFontData(),
dce2bd22 684 "Returns a reference to the internal `wx.FontData` used by the
d0e2ede0 685wx.FontDialog.", "");
42e2bbb9
RD
686
687 %property(FontData, GetFontData, doc="See `GetFontData`");
7bf85405
RD
688};
689
690
1979aa58
RD
691wxFont wxGetFontFromUser(wxWindow *parent = NULL,
692 const wxFont& fontInit = wxNullFont,
693 const wxString& caption = wxPyEmptyString);
694
695
d14a1e28 696//---------------------------------------------------------------------------
7bf85405 697
e5868095
RD
698
699DocStr(wxMessageDialog,
dce2bd22 700"This class provides a simple dialog that shows a single or multi-line
d07d2bc9 701message, with a choice of OK, Yes, No and/or Cancel buttons.", "
dce2bd22
RD
702
703Window Styles
704--------------
d07d2bc9
RD
705 =================== =============================================
706 wx.OK Show an OK button.
707 wx.CANCEL Show a Cancel button.
708 wx.YES_NO Show Yes and No buttons.
709 wx.YES_DEFAULT Used with wxYES_NO, makes Yes button the
710 default - which is the default behaviour.
711 wx.NO_DEFAULT Used with wxYES_NO, makes No button the default.
712 wx.ICON_EXCLAMATION Shows an exclamation mark icon.
713 wx.ICON_HAND Shows an error icon.
714 wx.ICON_ERROR Shows an error icon - the same as wxICON_HAND.
715 wx.ICON_QUESTION Shows a question mark icon.
716 wx.ICON_INFORMATION Shows an information (i) icon.
717 wx.STAY_ON_TOP The message box stays on top of all other
718 window, even those of the other applications
719 (Windows only).
720 =================== =============================================
e5868095
RD
721");
722
723
ab1f7d2a
RD
724MustHaveApp(wxMessageDialog);
725
7bf85405
RD
726class wxMessageDialog : public wxDialog {
727public:
2b9048c5 728 %pythonAppend wxMessageDialog "self._setOORInfo(self)"
d0e2ede0 729
dce2bd22
RD
730 DocCtorStr(
731 wxMessageDialog(wxWindow* parent,
732 const wxString& message,
733 const wxString& caption = wxPyMessageBoxCaptionStr,
734 long style = wxOK | wxCANCEL | wxCENTRE,
735 const wxPoint& pos = wxDefaultPosition),
d07d2bc9 736 "Constructor, use `ShowModal` to display the dialog.", "");
7bf85405 737
7bf85405
RD
738};
739
d14a1e28 740//---------------------------------------------------------------------------
7bf85405 741
e81851eb
RD
742enum {
743 wxPD_AUTO_HIDE,
744 wxPD_APP_MODAL,
745 wxPD_CAN_ABORT,
746 wxPD_ELAPSED_TIME,
747 wxPD_ESTIMATED_TIME,
748 wxPD_REMAINING_TIME,
749 wxPD_SMOOTH,
750 wxPD_CAN_SKIP
751};
752
e5868095
RD
753
754DocStr(wxProgressDialog,
dce2bd22 755"A dialog that shows a short message and a progress bar. Optionally, it
d07d2bc9 756can display an ABORT button.", "
dce2bd22
RD
757
758Window Styles
759--------------
d07d2bc9
RD
760 ==================== =============================================
761 wx.PD_APP_MODAL Make the progress dialog modal. If this flag is
762 not given, it is only \"locally\" modal -
763 that is the input to the parent window is
764 disabled, but not to the other ones.
765
766 wx.PD_AUTO_HIDE Causes the progress dialog to disappear from
767 screen as soon as the maximum value of the
768 progress meter has been reached.
769
770 wx.PD_CAN_ABORT This flag tells the dialog that it should have
771 a \"Cancel\" button which the user may press. If
772 this happens, the next call to Update() will
4ba3af91
RD
773 return False in the first component of its return
774 value.
775
776 wx.PD_CAN_SKIP This flag tells the dialog that it should have a
777 \"Skip\" button which the user may press. If this
778 happens, the next call to Update() will return
779 True in the second component of its return value.
d07d2bc9
RD
780
781 wx.PD_ELAPSED_TIME This flag tells the dialog that it should show
782 elapsed time (since creating the dialog).
783
784 wx.PD_ESTIMATED_TIME This flag tells the dialog that it should show
785 estimated time.
786
787 wx.PD_REMAINING_TIME This flag tells the dialog that it should show
788 remaining time.
191dea6d
RD
789
790 wx.PD_SMOOTH Uses the wx.GA_SMOOTH style on the embedded
791 wx.Gauge widget.
d07d2bc9 792 ==================== =============================================
e5868095
RD
793");
794
795
191dea6d
RD
796// TODO: wxPD_CAN_SKIP
797
ab1f7d2a
RD
798MustHaveApp(wxProgressDialog);
799
bb0054cd
RD
800class wxProgressDialog : public wxFrame {
801public:
2b9048c5 802 %pythonAppend wxProgressDialog "self._setOORInfo(self)"
7bf85405 803
e5868095
RD
804 DocCtorStr(
805 wxProgressDialog(const wxString& title,
806 const wxString& message,
807 int maximum = 100,
808 wxWindow* parent = NULL,
809 int style = wxPD_AUTO_HIDE | wxPD_APP_MODAL ),
dce2bd22
RD
810 "Constructor. Creates the dialog, displays it and disables user input
811for other windows, or, if wx.PD_APP_MODAL flag is not given, for its
d07d2bc9 812parent window only.", "");
e5868095 813
191dea6d
RD
814 // TODO: support getting the skipped value back in the return value, but
815 // only if style is set. This is so the API doesn't change for existing
816 // users...
4ba3af91 817 DocDeclAStr(
e81851eb
RD
818 virtual bool , Update(int value,
819 const wxString& newmsg = wxPyEmptyString,
4ba3af91
RD
820 bool *OUTPUT),
821 "Update(self, int value, String newmsg) --> (continue, skip)",
dce2bd22 822 "Updates the dialog, setting the progress bar to the new value and, if
e4836488
RD
823given changes the message above it. The value given should be less
824than or equal to the maximum value given to the constructor and the
4ba3af91
RD
825dialog is closed if it is equal to the maximum. Returns a tuple of
826boolean values, ``(continue, skip)`` where ``continue`` is ``True``
827unless the Cancel button has been pressed, and ``skip`` is ``False``
828unless the Skip button (if any) has been pressed.
829
dba7934c 830If the ``continue`` return value is ``False``, the application can either
4ba3af91
RD
831immediately destroy the dialog or ask the user for confirmation, and if the
832abort is not confirmed the dialog may be resumed with `Resume` function.
833", "");
d0e2ede0 834
e81851eb
RD
835
836 DocDeclAStr(
837 virtual bool , UpdatePulse(const wxString& newmsg = wxPyEmptyString,
838 bool *OUTPUT),
839 "UpdatePulse(self, String newmsg) --> (continue, skip)",
840 "Just like `Update` but switches the dialog to use a gauge in
841interminante mode and calls `wx.Gauge.Pulse` to show the user a bit of
842progress.", "");
843
844
e5868095
RD
845 DocDeclStr(
846 void , Resume(),
dce2bd22 847 "Can be used to continue with the dialog, after the user had chosen to
d07d2bc9 848abort.", "");
d0e2ede0 849
d14a1e28 850};
bb0054cd 851
d14a1e28 852//---------------------------------------------------------------------------
0122b7e3
RD
853
854enum wxFindReplaceFlags
855{
856 // downward search/replace selected (otherwise - upwards)
857 wxFR_DOWN = 1,
858
859 // whole word search/replace selected
860 wxFR_WHOLEWORD = 2,
861
862 // case sensitive search/replace selected (otherwise - case insensitive)
863 wxFR_MATCHCASE = 4
864};
865
866
867enum wxFindReplaceDialogStyles
868{
869 // replace dialog (otherwise find dialog)
870 wxFR_REPLACEDIALOG = 1,
871
872 // don't allow changing the search direction
873 wxFR_NOUPDOWN = 2,
874
875 // don't allow case sensitive searching
876 wxFR_NOMATCHCASE = 4,
877
878 // don't allow whole word searching
879 wxFR_NOWHOLEWORD = 8
880};
881
0122b7e3 882
0122b7e3 883
d14a1e28
RD
884%constant wxEventType wxEVT_COMMAND_FIND;
885%constant wxEventType wxEVT_COMMAND_FIND_NEXT;
886%constant wxEventType wxEVT_COMMAND_FIND_REPLACE;
887%constant wxEventType wxEVT_COMMAND_FIND_REPLACE_ALL;
888%constant wxEventType wxEVT_COMMAND_FIND_CLOSE;
0122b7e3 889
0122b7e3 890
d14a1e28
RD
891%pythoncode {
892EVT_FIND = wx.PyEventBinder( wxEVT_COMMAND_FIND, 1 )
893EVT_FIND_NEXT = wx.PyEventBinder( wxEVT_COMMAND_FIND_NEXT, 1 )
894EVT_FIND_REPLACE = wx.PyEventBinder( wxEVT_COMMAND_FIND_REPLACE, 1 )
895EVT_FIND_REPLACE_ALL = wx.PyEventBinder( wxEVT_COMMAND_FIND_REPLACE_ALL, 1 )
896EVT_FIND_CLOSE = wx.PyEventBinder( wxEVT_COMMAND_FIND_CLOSE, 1 )
0122b7e3 897
d14a1e28 898%# For backwards compatibility. Should they be removed?
d0e2ede0 899EVT_COMMAND_FIND = EVT_FIND
d14a1e28
RD
900EVT_COMMAND_FIND_NEXT = EVT_FIND_NEXT
901EVT_COMMAND_FIND_REPLACE = EVT_FIND_REPLACE
902EVT_COMMAND_FIND_REPLACE_ALL = EVT_FIND_REPLACE_ALL
d0e2ede0 903EVT_COMMAND_FIND_CLOSE = EVT_FIND_CLOSE
d14a1e28 904}
0122b7e3 905
0122b7e3 906
e5868095 907DocStr(wxFindDialogEvent,
d07d2bc9 908 "Events for the FindReplaceDialog", "");
e5868095 909
0122b7e3
RD
910class wxFindDialogEvent : public wxCommandEvent
911{
912public:
913 wxFindDialogEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
d0e2ede0 914
e5868095
RD
915 DocDeclStr(
916 int , GetFlags(),
dce2bd22 917 "Get the currently selected flags: this is the combination of
d07d2bc9 918wx.FR_DOWN, wx.FR_WHOLEWORD and wx.FR_MATCHCASE flags.", "");
d0e2ede0 919
e5868095
RD
920 DocDeclStr(
921 const wxString& , GetFindString(),
d07d2bc9 922 "Return the string to find (never empty).", "");
d0e2ede0 923
e5868095
RD
924 DocDeclStr(
925 const wxString& , GetReplaceString(),
dce2bd22 926 "Return the string to replace the search string with (only for replace
d07d2bc9 927and replace all events).", "");
d0e2ede0 928
e5868095
RD
929 DocDeclStr(
930 wxFindReplaceDialog *, GetDialog(),
d07d2bc9 931 "Return the pointer to the dialog which generated this event.", "");
d0e2ede0 932
e5868095
RD
933 DocDeclStr(
934 void , SetFlags(int flags),
d07d2bc9 935 "", "");
d0e2ede0 936
e5868095
RD
937 DocDeclStr(
938 void , SetFindString(const wxString& str),
d07d2bc9 939 "", "");
d0e2ede0 940
e5868095
RD
941 DocDeclStr(
942 void , SetReplaceString(const wxString& str),
d07d2bc9 943 "", "");
42e2bbb9
RD
944
945 %property(Dialog, GetDialog, doc="See `GetDialog`");
946 %property(FindString, GetFindString, SetFindString, doc="See `GetFindString` and `SetFindString`");
947 %property(Flags, GetFlags, SetFlags, doc="See `GetFlags` and `SetFlags`");
948 %property(ReplaceString, GetReplaceString, SetReplaceString, doc="See `GetReplaceString` and `SetReplaceString`");
0122b7e3
RD
949};
950
951
952
d0e2ede0 953DocStr(wxFindReplaceData,
dce2bd22
RD
954"wx.FindReplaceData holds the data for wx.FindReplaceDialog. It is used
955to initialize the dialog with the default values and will keep the
956last values from the dialog when it is closed. It is also updated each
957time a `wx.FindDialogEvent` is generated so instead of using the
958`wx.FindDialogEvent` methods you can also directly query this object.
959
960Note that all SetXXX() methods may only be called before showing the
d07d2bc9 961dialog and calling them has no effect later.", "
dce2bd22
RD
962
963Flags
964-----
d0e2ede0 965 ================ ===============================================
dce2bd22
RD
966 wx.FR_DOWN Downward search/replace selected (otherwise,
967 upwards)
968
969 wx.FR_WHOLEWORD Whole word search/replace selected
970
971 wx.FR_MATCHCASE Case sensitive search/replace selected
972 (otherwise, case insensitive)
d0e2ede0 973 ================ ===============================================
e5868095
RD
974");
975
976
977
978
0122b7e3
RD
979class wxFindReplaceData : public wxObject
980{
981public:
e5868095
RD
982 DocCtorStr(
983 wxFindReplaceData(int flags=0),
d07d2bc9 984 "Constuctor initializes the flags to default value (0).", "");
d0e2ede0 985
0122b7e3 986 ~wxFindReplaceData();
d0e2ede0 987
0122b7e3 988
e5868095
RD
989 DocDeclStr(
990 const wxString& , GetFindString(),
d07d2bc9 991 "Get the string to find.", "");
d0e2ede0 992
e5868095
RD
993 DocDeclStr(
994 const wxString& , GetReplaceString(),
d07d2bc9 995 "Get the replacement string.", "");
d0e2ede0 996
e5868095
RD
997 DocDeclStr(
998 int , GetFlags(),
d07d2bc9 999 "Get the combination of flag values.", "");
d0e2ede0 1000
e5868095
RD
1001 DocDeclStr(
1002 void , SetFlags(int flags),
d07d2bc9 1003 "Set the flags to use to initialize the controls of the dialog.", "");
d0e2ede0 1004
e5868095
RD
1005 DocDeclStr(
1006 void , SetFindString(const wxString& str),
d07d2bc9 1007 "Set the string to find (used as initial value by the dialog).", "");
d0e2ede0 1008
e5868095
RD
1009 DocDeclStr(
1010 void , SetReplaceString(const wxString& str),
d07d2bc9 1011 "Set the replacement string (used as initial value by the dialog).", "");
d0e2ede0 1012
42e2bbb9
RD
1013 %property(FindString, GetFindString, SetFindString, doc="See `GetFindString` and `SetFindString`");
1014 %property(Flags, GetFlags, SetFlags, doc="See `GetFlags` and `SetFlags`");
1015 %property(ReplaceString, GetReplaceString, SetReplaceString, doc="See `GetReplaceString` and `SetReplaceString`");
0122b7e3
RD
1016};
1017
1018
e5868095
RD
1019
1020
1021DocStr(wxFindReplaceDialog,
dce2bd22
RD
1022"wx.FindReplaceDialog is a standard modeless dialog which is used to
1023allow the user to search for some text (and possibly replace it with
1024something else). The actual searching is supposed to be done in the
1025owner window which is the parent of this dialog. Note that it means
1026that unlike for the other standard dialogs this one must have a parent
1027window. Also note that there is no way to use this dialog in a modal
d07d2bc9 1028way; it is always, by design and implementation, modeless.", "
dce2bd22
RD
1029
1030
1031Window Styles
1032-------------
e5868095 1033
dce2bd22
RD
1034 ===================== =========================================
1035 wx.FR_REPLACEDIALOG replace dialog (otherwise find dialog)
e5868095 1036
dce2bd22 1037 wx.FR_NOUPDOWN don't allow changing the search direction
e5868095 1038
dce2bd22 1039 wx.FR_NOMATCHCASE don't allow case sensitive searching
e5868095 1040
dce2bd22
RD
1041 wx.FR_NOWHOLEWORD don't allow whole word searching
1042 ===================== =========================================
e5868095
RD
1043");
1044
ab1f7d2a
RD
1045MustHaveApp(wxFindReplaceDialog);
1046
0122b7e3
RD
1047class wxFindReplaceDialog : public wxDialog {
1048public:
2b9048c5
RD
1049 %pythonAppend wxFindReplaceDialog "self._setOORInfo(self)"
1050 %pythonAppend wxFindReplaceDialog() ""
d14a1e28 1051
e5868095
RD
1052 DocCtorStr(
1053 wxFindReplaceDialog(wxWindow *parent,
1054 wxFindReplaceData *data,
1055 const wxString &title,
1056 int style = 0),
dce2bd22 1057 "Create a FindReplaceDialog. The parent and data parameters must be
d07d2bc9 1058non-None. Use Show to display the dialog.", "");
e5868095
RD
1059
1060 DocCtorStrName(
1061 wxFindReplaceDialog(),
d07d2bc9 1062 "Precreate a FindReplaceDialog for 2-phase creation", "",
e5868095 1063 PreFindReplaceDialog);
0122b7e3 1064
d0e2ede0 1065
e5868095 1066 DocDeclStr(
dce2bd22
RD
1067 bool , Create(wxWindow *parent, wxFindReplaceData *data,
1068 const wxString &title, int style = 0),
d07d2bc9 1069 "Create the dialog, for 2-phase create.", "");
d0e2ede0 1070
0122b7e3 1071
e5868095
RD
1072 DocDeclStr(
1073 const wxFindReplaceData *, GetData(),
d07d2bc9 1074 "Get the FindReplaceData object used by this dialog.", "");
d0e2ede0 1075
e5868095
RD
1076 DocDeclStr(
1077 void , SetData(wxFindReplaceData *data),
d07d2bc9 1078 "Set the FindReplaceData object used by this dialog.", "");
d0e2ede0 1079
42e2bbb9 1080 %property(Data, GetData, SetData, doc="See `GetData` and `SetData`");
0122b7e3
RD
1081};
1082
d14a1e28
RD
1083//---------------------------------------------------------------------------
1084//---------------------------------------------------------------------------