1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: SWIG interface for the "Common Dialog" classes
7 // Created: 25-July-1998
9 // Copyright: (c) 2003 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
16 //---------------------------------------------------------------------------
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);
26 //---------------------------------------------------------------------------
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
32 `wx.ColourDialog`.", "");
34 class wxColourData : public wxObject {
38 "Constructor, sets default values.", "");
44 bool , GetChooseFull(),
45 "Under Windows, determines whether the Windows colour dialog will
46 display the full dialog with custom colour selection controls. Has no
47 meaning under other platforms. The default value is true.", "");
50 wxColour , GetColour(),
51 "Gets the colour (pre)selected by the dialog.", "");
54 wxColour , GetCustomColour(int i),
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
60 void , SetChooseFull(int flag),
61 "Under Windows, tells the Windows colour dialog to display the full
62 dialog with custom colour selection controls. Under other platforms,
63 has no effect. The default value is true.", "");
66 void , SetColour(const wxColour& colour),
67 "Sets the default colour for the colour dialog. The default colour is
71 void , SetCustomColour(int i, const wxColour& colour),
72 "Sets the i'th custom colour for the colour dialog. i should be an
73 integer between 0 and 15. The default custom colours are all white.", "");
80 DocStr(wxColourDialog,
81 "This class represents the colour chooser dialog.", "");
83 MustHaveApp(wxColourDialog);
85 class wxColourDialog : public wxDialog {
87 %pythonAppend wxColourDialog "self._setOORInfo(self)"
90 wxColourDialog(wxWindow* parent, wxColourData* data = NULL),
91 "Constructor. Pass a parent window, and optionally a `wx.ColourData`,
92 which will be copied to the colour dialog's internal ColourData
96 wxColourData& , GetColourData(),
97 "Returns a reference to the `wx.ColourData` used by the dialog.", "");
101 //--------------------------------------------------------------------------------
105 "wx.DirDialog allows the user to select a directory by browising the
110 ==================== ==========================================
111 wx.DD_NEW_DIR_BUTTON Add 'Create new directory' button and allow
112 directory names to be editable. On Windows
113 the new directory button is only available
114 with recent versions of the common dialogs.
115 ==================== ==========================================
118 MustHaveApp(wxDirDialog);
120 class wxDirDialog : public wxDialog {
122 %pythonAppend wxDirDialog "self._setOORInfo(self)"
125 wxDirDialog(wxWindow* parent,
126 const wxString& message = wxPyDirSelectorPromptStr,
127 const wxString& defaultPath = wxPyEmptyString,
129 const wxPoint& pos = wxDefaultPosition,
130 const wxSize& size = wxDefaultSize,
131 const wxString& name = wxPyDirDialogNameStr),
132 "Constructor. Use ShowModal method to show the dialog.", "");
136 wxString , GetPath(),
137 "Returns the default or user-selected path.", "");
140 wxString , GetMessage(),
141 "Returns the message that will be displayed on the dialog.", "");
145 "Returns the dialog style.", "");
148 void , SetMessage(const wxString& message),
149 "Sets the message that will be displayed on the dialog.", "");
152 void , SetPath(const wxString& path),
153 "Sets the default path.", "");
158 //---------------------------------------------------------------------------
161 "wx.FileDialog allows the user to select one or more files from the
164 In Windows, this is the common file selector dialog. On X based
165 platforms a generic alternative is used. The path and filename are
166 distinct elements of a full file pathname. If path is \"\", the
167 current directory will be used. If filename is \"\", no default
168 filename will be supplied. The wildcard determines what files are
169 displayed in the file selector, and file extension supplies a type
170 extension for the required filename.
172 Both the X and Windows versions implement a wildcard filter. Typing a
173 filename containing wildcards (\*, ?) in the filename text item, and
174 clicking on Ok, will result in only those files matching the pattern
175 being displayed. The wildcard may be a specification for multiple
176 types of file with a description for each, such as::
178 \"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif\"
183 =================== ==========================================
184 wx.OPEN This is an open dialog.
186 wx.SAVE This is a save dialog.
188 wx.HIDE_READONLY For open dialog only: hide the checkbox
189 allowing to open the file in read-only mode.
191 wx.OVERWRITE_PROMPT For save dialog only: prompt for a confirmation
192 if a file will be overwritten.
194 wx.MULTIPLE For open dialog only: allows selecting multiple
197 wx.CHANGE_DIR Change the current working directory to the
198 directory where the file(s) chosen by the user
200 =================== ==========================================
205 MustHaveApp(wxFileDialog);
207 class wxFileDialog : public wxDialog {
209 %pythonAppend wxFileDialog "self._setOORInfo(self)"
212 wxFileDialog(wxWindow* parent,
213 const wxString& message = wxPyFileSelectorPromptStr,
214 const wxString& defaultDir = wxPyEmptyString,
215 const wxString& defaultFile = wxPyEmptyString,
216 const wxString& wildcard = wxPyFileSelectorDefaultWildcardStr,
218 const wxPoint& pos = wxDefaultPosition),
219 "Constructor. Use ShowModal method to show the dialog.", "");
223 void , SetMessage(const wxString& message),
224 "Sets the message that will be displayed on the dialog.", "");
227 void , SetPath(const wxString& path),
228 "Sets the path (the combined directory and filename that will be
229 returned when the dialog is dismissed).", "");
232 void , SetDirectory(const wxString& dir),
233 "Sets the default directory.", "");
236 void , SetFilename(const wxString& name),
237 "Sets the default filename.", "");
240 void , SetWildcard(const wxString& wildCard),
241 "Sets the wildcard, which can contain multiple file types, for
244 \"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif\"
248 void , SetStyle(long style),
249 "Sets the dialog style.", "");
252 void , SetFilterIndex(int filterIndex),
253 "Sets the default filter index, starting from zero.", "");
257 wxString , GetMessage() const,
258 "Returns the message that will be displayed on the dialog.", "");
261 wxString , GetPath() const,
262 "Returns the full path (directory and filename) of the selected file.", "");
265 wxString , GetDirectory() const,
266 "Returns the default directory.", "");
269 wxString , GetFilename() const,
270 "Returns the default filename.", "");
273 wxString , GetWildcard() const,
274 "Returns the file dialog wildcard.", "");
277 long , GetStyle() const,
278 "Returns the dialog style.", "");
281 int , GetFilterIndex() const,
282 "Returns the index into the list of filters supplied, optionally, in
283 the wildcard parameter. Before the dialog is shown, this is the index
284 which will be used when the dialog is first displayed. After the
285 dialog is shown, this is the index selected by the user.", "");
289 "Returns a list of filenames chosen in the dialog. This function
290 should only be used with the dialogs which have wx.MULTIPLE style, use
291 GetFilename for the others.", "");
294 "Fills the array paths with the full paths of the files chosen. This
295 function should only be used with the dialogs which have wx.MULTIPLE
296 style, use GetPath for the others.", "");
299 PyObject* GetFilenames() {
301 self->GetFilenames(arr);
302 return wxArrayString2PyList_helper(arr);
305 PyObject* GetPaths() {
308 return wxArrayString2PyList_helper(arr);
313 // // Utility functions
315 // // Parses the wildCard, returning the number of filters.
316 // // Returns 0 if none or if there's a problem,
317 // // The arrays will contain an equal number of items found before the error.
318 // // wildCard is in the form:
319 // // "All files (*)|*|Image Files (*.jpeg *.png)|*.jpg;*.png"
320 // static int ParseWildcard(const wxString& wildCard,
321 // wxArrayString& descriptions,
322 // wxArrayString& filters);
324 // // Append first extension to filePath from a ';' separated extensionList
325 // // if filePath = "path/foo.bar" just return it as is
326 // // if filePath = "foo[.]" and extensionList = "*.jpg;*.png" return "foo.jpg"
327 // // if the extension is "*.j?g" (has wildcards) or "jpg" then return filePath
328 // static wxString AppendExtension(const wxString &filePath,
329 // const wxString &extensionList);
335 //---------------------------------------------------------------------------
337 enum { wxCHOICEDLG_STYLE };
340 DocStr(wxMultiChoiceDialog,
341 "A simple dialog with a multi selection listbox.", "");
343 MustHaveApp(wxMultiChoiceDialog);
345 class wxMultiChoiceDialog : public wxDialog
348 %pythonAppend wxMultiChoiceDialog "self._setOORInfo(self)"
351 wxMultiChoiceDialog(wxWindow *parent,
352 const wxString& message,
353 const wxString& caption,
354 int choices=0, wxString* choices_array,
355 long style = wxCHOICEDLG_STYLE,
356 const wxPoint& pos = wxDefaultPosition),
357 "__init__(Window parent, String message, String caption,
358 List choices=[], long style=CHOICEDLG_STYLE,
359 Point pos=DefaultPosition) -> MultiChoiceDialog",
360 "Constructor. Use ShowModal method to show the dialog.", "");
364 void, SetSelections(const wxArrayInt& selections),
365 "SetSelections(List selections)",
366 "Specify the items in the list that should be selected, using a list of
369 DocAStr(GetSelections,
370 "GetSelections() -> [selections]",
371 "Returns a list of integers representing the items that are selected.", "");
373 PyObject* GetSelections() {
374 return wxArrayInt2PyList_helper(self->GetSelections());
380 //---------------------------------------------------------------------------
382 DocStr(wxSingleChoiceDialog,
383 "A simple dialog with a single selection listbox.", "");
385 MustHaveApp(wxSingleChoiceDialog);
387 class wxSingleChoiceDialog : public wxDialog {
389 %pythonAppend wxSingleChoiceDialog "self._setOORInfo(self)"
391 DocAStr(wxSingleChoiceDialog,
392 "__init__(Window parent, String message, String caption,
393 List choices=[], long style=CHOICEDLG_STYLE,
394 Point pos=DefaultPosition) -> SingleChoiceDialog",
395 "Constructor. Use ShowModal method to show the dialog.", "");
398 // TODO: ignoring clientData for now... FIX THIS
399 // SWIG is messing up the &/*'s for some reason.
400 wxSingleChoiceDialog(wxWindow* parent,
401 const wxString& message,
402 const wxString& caption,
403 int choices, wxString* choices_array,
404 //char** clientData = NULL,
405 long style = wxCHOICEDLG_STYLE,
406 const wxPoint& pos = wxDefaultPosition) {
407 return new wxSingleChoiceDialog(parent, message, caption,
408 choices, choices_array, NULL, style, pos);
413 int , GetSelection(),
414 "Get the index of teh currently selected item.", "");
417 wxString , GetStringSelection(),
418 "Returns the string value of the currently selected item", "");
421 void , SetSelection(int sel),
422 "Set the current selected item to sel", "");
426 //---------------------------------------------------------------------------
428 DocStr(wxTextEntryDialog,
429 "A dialog with text control, [ok] and [cancel] buttons", "");
431 MustHaveApp(wxTextEntryDialog);
433 class wxTextEntryDialog : public wxDialog {
435 %pythonAppend wxTextEntryDialog "self._setOORInfo(self)"
438 wxTextEntryDialog(wxWindow* parent,
439 const wxString& message,
440 const wxString& caption = wxPyGetTextFromUserPromptStr,
441 const wxString& defaultValue = wxPyEmptyString,
442 long style = wxOK | wxCANCEL | wxCENTRE,
443 const wxPoint& pos = wxDefaultPosition),
444 "Constructor. Use ShowModal method to show the dialog.", "");
447 wxString , GetValue(),
448 "Returns the text that the user has entered if the user has pressed OK,
449 or the original value if the user has pressed Cancel.", "");
452 void , SetValue(const wxString& value),
453 "Sets the default text value.", "");
456 //---------------------------------------------------------------------------
460 "This class holds a variety of information related to font dialogs and
461 is used to transfer settings to and results from a `wx.FontDialog`.", "");
464 class wxFontData : public wxObject {
470 void , EnableEffects(bool enable),
471 "Enables or disables 'effects' under MS Windows only. This refers to
472 the controls for manipulating colour, strikeout and underline
473 properties. The default value is true.", "");
476 bool , GetAllowSymbols(),
477 "Under MS Windows, returns a flag determining whether symbol fonts can
478 be selected. Has no effect on other platforms. The default value is
482 wxColour , GetColour(),
483 "Gets the colour associated with the font dialog. The default value is
487 wxFont , GetChosenFont(),
488 "Gets the font chosen by the user.", "");
491 bool , GetEnableEffects(),
492 "Determines whether 'effects' are enabled under Windows.", "");
495 wxFont , GetInitialFont(),
496 "Gets the font that will be initially used by the font dialog. This
497 should have previously been set by the application.", "");
500 bool , GetShowHelp(),
501 "Returns true if the Help button will be shown (Windows only). The
502 default value is false.", "");
505 void , SetAllowSymbols(bool allowSymbols),
506 "Under MS Windows, determines whether symbol fonts can be selected. Has
507 no effect on other platforms. The default value is true.", "");
510 void , SetChosenFont(const wxFont& font),
511 "Sets the font that will be returned to the user (normally for internal
515 void , SetColour(const wxColour& colour),
516 "Sets the colour that will be used for the font foreground colour. The
517 default colour is black.", "");
520 void , SetInitialFont(const wxFont& font),
521 "Sets the font that will be initially used by the font dialog.", "");
524 void , SetRange(int min, int max),
525 "Sets the valid range for the font point size (Windows only). The
526 default is 0, 0 (unrestricted range).", "");
529 void , SetShowHelp(bool showHelp),
530 "Determines whether the Help button will be displayed in the font
531 dialog (Windows only). The default value is false.", "");
538 "wx.FontDialog allows the user to select a system font and its attributes.
543 MustHaveApp(wxFontDialog);
545 class wxFontDialog : public wxDialog {
547 %pythonAppend wxFontDialog "self._setOORInfo(self)"
550 "Constructor. Pass a parent window and the `wx.FontData` object to be
551 used to initialize the dialog controls. Call `ShowModal` to display
552 the dialog. If ShowModal returns ``wx.ID_OK`` then you can fetch the
553 results with via the `wx.FontData` returned by `GetFontData`.", "");
554 wxFontDialog(wxWindow* parent, const wxFontData& data);
558 wxFontData& , GetFontData(),
559 "Returns a reference to the internal `wx.FontData` used by the
560 wx.FontDialog.", "");
564 //---------------------------------------------------------------------------
567 DocStr(wxMessageDialog,
568 "This class provides a simple dialog that shows a single or multi-line
569 message, with a choice of OK, Yes, No and/or Cancel buttons.", "
573 =================== =============================================
574 wx.OK Show an OK button.
575 wx.CANCEL Show a Cancel button.
576 wx.YES_NO Show Yes and No buttons.
577 wx.YES_DEFAULT Used with wxYES_NO, makes Yes button the
578 default - which is the default behaviour.
579 wx.NO_DEFAULT Used with wxYES_NO, makes No button the default.
580 wx.ICON_EXCLAMATION Shows an exclamation mark icon.
581 wx.ICON_HAND Shows an error icon.
582 wx.ICON_ERROR Shows an error icon - the same as wxICON_HAND.
583 wx.ICON_QUESTION Shows a question mark icon.
584 wx.ICON_INFORMATION Shows an information (i) icon.
585 wx.STAY_ON_TOP The message box stays on top of all other
586 window, even those of the other applications
588 =================== =============================================
592 MustHaveApp(wxMessageDialog);
594 class wxMessageDialog : public wxDialog {
596 %pythonAppend wxMessageDialog "self._setOORInfo(self)"
599 wxMessageDialog(wxWindow* parent,
600 const wxString& message,
601 const wxString& caption = wxPyMessageBoxCaptionStr,
602 long style = wxOK | wxCANCEL | wxCENTRE,
603 const wxPoint& pos = wxDefaultPosition),
604 "Constructor, use `ShowModal` to display the dialog.", "");
608 //---------------------------------------------------------------------------
611 DocStr(wxProgressDialog,
612 "A dialog that shows a short message and a progress bar. Optionally, it
613 can display an ABORT button.", "
617 ==================== =============================================
618 wx.PD_APP_MODAL Make the progress dialog modal. If this flag is
619 not given, it is only \"locally\" modal -
620 that is the input to the parent window is
621 disabled, but not to the other ones.
623 wx.PD_AUTO_HIDE Causes the progress dialog to disappear from
624 screen as soon as the maximum value of the
625 progress meter has been reached.
627 wx.PD_CAN_ABORT This flag tells the dialog that it should have
628 a \"Cancel\" button which the user may press. If
629 this happens, the next call to Update() will
632 wx.PD_ELAPSED_TIME This flag tells the dialog that it should show
633 elapsed time (since creating the dialog).
635 wx.PD_ESTIMATED_TIME This flag tells the dialog that it should show
638 wx.PD_REMAINING_TIME This flag tells the dialog that it should show
640 ==================== =============================================
644 MustHaveApp(wxProgressDialog);
646 class wxProgressDialog : public wxFrame {
648 %pythonAppend wxProgressDialog "self._setOORInfo(self)"
651 wxProgressDialog(const wxString& title,
652 const wxString& message,
654 wxWindow* parent = NULL,
655 int style = wxPD_AUTO_HIDE | wxPD_APP_MODAL ),
656 "Constructor. Creates the dialog, displays it and disables user input
657 for other windows, or, if wx.PD_APP_MODAL flag is not given, for its
658 parent window only.", "");
661 virtual bool , Update(int value, const wxString& newmsg = wxPyEmptyString),
662 "Updates the dialog, setting the progress bar to the new value and, if
663 given changes the message above it. Returns true unless the Cancel
664 button has been pressed.
666 If false is returned, the application can either immediately destroy
667 the dialog or ask the user for the confirmation and if the abort is
668 not confirmed the dialog may be resumed with Resume function.", "");
672 "Can be used to continue with the dialog, after the user had chosen to
677 //---------------------------------------------------------------------------
679 enum wxFindReplaceFlags
681 // downward search/replace selected (otherwise - upwards)
684 // whole word search/replace selected
687 // case sensitive search/replace selected (otherwise - case insensitive)
692 enum wxFindReplaceDialogStyles
694 // replace dialog (otherwise find dialog)
695 wxFR_REPLACEDIALOG = 1,
697 // don't allow changing the search direction
700 // don't allow case sensitive searching
701 wxFR_NOMATCHCASE = 4,
703 // don't allow whole word searching
709 %constant wxEventType wxEVT_COMMAND_FIND;
710 %constant wxEventType wxEVT_COMMAND_FIND_NEXT;
711 %constant wxEventType wxEVT_COMMAND_FIND_REPLACE;
712 %constant wxEventType wxEVT_COMMAND_FIND_REPLACE_ALL;
713 %constant wxEventType wxEVT_COMMAND_FIND_CLOSE;
717 EVT_FIND = wx.PyEventBinder( wxEVT_COMMAND_FIND, 1 )
718 EVT_FIND_NEXT = wx.PyEventBinder( wxEVT_COMMAND_FIND_NEXT, 1 )
719 EVT_FIND_REPLACE = wx.PyEventBinder( wxEVT_COMMAND_FIND_REPLACE, 1 )
720 EVT_FIND_REPLACE_ALL = wx.PyEventBinder( wxEVT_COMMAND_FIND_REPLACE_ALL, 1 )
721 EVT_FIND_CLOSE = wx.PyEventBinder( wxEVT_COMMAND_FIND_CLOSE, 1 )
723 %# For backwards compatibility. Should they be removed?
724 EVT_COMMAND_FIND = EVT_FIND
725 EVT_COMMAND_FIND_NEXT = EVT_FIND_NEXT
726 EVT_COMMAND_FIND_REPLACE = EVT_FIND_REPLACE
727 EVT_COMMAND_FIND_REPLACE_ALL = EVT_FIND_REPLACE_ALL
728 EVT_COMMAND_FIND_CLOSE = EVT_FIND_CLOSE
732 DocStr(wxFindDialogEvent,
733 "Events for the FindReplaceDialog", "");
735 class wxFindDialogEvent : public wxCommandEvent
738 wxFindDialogEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
742 "Get the currently selected flags: this is the combination of
743 wx.FR_DOWN, wx.FR_WHOLEWORD and wx.FR_MATCHCASE flags.", "");
746 const wxString& , GetFindString(),
747 "Return the string to find (never empty).", "");
750 const wxString& , GetReplaceString(),
751 "Return the string to replace the search string with (only for replace
752 and replace all events).", "");
755 wxFindReplaceDialog *, GetDialog(),
756 "Return the pointer to the dialog which generated this event.", "");
759 void , SetFlags(int flags),
763 void , SetFindString(const wxString& str),
767 void , SetReplaceString(const wxString& str),
773 DocStr(wxFindReplaceData,
774 "wx.FindReplaceData holds the data for wx.FindReplaceDialog. It is used
775 to initialize the dialog with the default values and will keep the
776 last values from the dialog when it is closed. It is also updated each
777 time a `wx.FindDialogEvent` is generated so instead of using the
778 `wx.FindDialogEvent` methods you can also directly query this object.
780 Note that all SetXXX() methods may only be called before showing the
781 dialog and calling them has no effect later.", "
785 ================ ===============================================
786 wx.FR_DOWN Downward search/replace selected (otherwise,
789 wx.FR_WHOLEWORD Whole word search/replace selected
791 wx.FR_MATCHCASE Case sensitive search/replace selected
792 (otherwise, case insensitive)
793 ================ ===============================================
799 class wxFindReplaceData : public wxObject
803 wxFindReplaceData(int flags=0),
804 "Constuctor initializes the flags to default value (0).", "");
806 ~wxFindReplaceData();
810 const wxString& , GetFindString(),
811 "Get the string to find.", "");
814 const wxString& , GetReplaceString(),
815 "Get the replacement string.", "");
819 "Get the combination of flag values.", "");
822 void , SetFlags(int flags),
823 "Set the flags to use to initialize the controls of the dialog.", "");
826 void , SetFindString(const wxString& str),
827 "Set the string to find (used as initial value by the dialog).", "");
830 void , SetReplaceString(const wxString& str),
831 "Set the replacement string (used as initial value by the dialog).", "");
838 DocStr(wxFindReplaceDialog,
839 "wx.FindReplaceDialog is a standard modeless dialog which is used to
840 allow the user to search for some text (and possibly replace it with
841 something else). The actual searching is supposed to be done in the
842 owner window which is the parent of this dialog. Note that it means
843 that unlike for the other standard dialogs this one must have a parent
844 window. Also note that there is no way to use this dialog in a modal
845 way; it is always, by design and implementation, modeless.", "
851 ===================== =========================================
852 wx.FR_REPLACEDIALOG replace dialog (otherwise find dialog)
854 wx.FR_NOUPDOWN don't allow changing the search direction
856 wx.FR_NOMATCHCASE don't allow case sensitive searching
858 wx.FR_NOWHOLEWORD don't allow whole word searching
859 ===================== =========================================
862 MustHaveApp(wxFindReplaceDialog);
864 class wxFindReplaceDialog : public wxDialog {
866 %pythonAppend wxFindReplaceDialog "self._setOORInfo(self)"
867 %pythonAppend wxFindReplaceDialog() ""
870 wxFindReplaceDialog(wxWindow *parent,
871 wxFindReplaceData *data,
872 const wxString &title,
874 "Create a FindReplaceDialog. The parent and data parameters must be
875 non-None. Use Show to display the dialog.", "");
878 wxFindReplaceDialog(),
879 "Precreate a FindReplaceDialog for 2-phase creation", "",
880 PreFindReplaceDialog);
884 bool , Create(wxWindow *parent, wxFindReplaceData *data,
885 const wxString &title, int style = 0),
886 "Create the dialog, for 2-phase create.", "");
890 const wxFindReplaceData *, GetData(),
891 "Get the FindReplaceData object used by this dialog.", "");
894 void , SetData(wxFindReplaceData *data),
895 "Set the FindReplaceData object used by this dialog.", "");
899 //---------------------------------------------------------------------------
900 //---------------------------------------------------------------------------