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