]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/cmndlgs.i
In GetPath(), don't append separator if there's already one at the end
[wxWidgets.git] / wxPython / src / cmndlgs.i
index 321c4e7ddd3f3043ad529d088dafabcb3d21567c..5ab14a8693d8c3f6558de504db1d7a7d30bbd804 100644 (file)
@@ -18,6 +18,7 @@
 #include <wx/dirdlg.h>
 #include <wx/fontdlg.h>
 #include <wx/progdlg.h>
+#include <wx/fdrepdlg.h>
 %}
 
 //----------------------------------------------------------------------
 %import misc.i
 %import gdi.i
 %import windows.i
+%import events.i
 %import frames.i
 
 %pragma(python) code = "import wx"
 
 //----------------------------------------------------------------------
 
+%{
+    // Put some wx default wxChar* values into wxStrings.
+    DECLARE_DEF_STRING(FileSelectorPromptStr);
+    DECLARE_DEF_STRING(FileSelectorDefaultWildcardStr);
+    DECLARE_DEF_STRING(GetTextFromUserPromptStr);
+    DECLARE_DEF_STRING(MessageBoxCaptionStr);
+    static const wxString wxPyEmptyString(wxT(""));
+
+%}
+
+//----------------------------------------------------------------------
+
 class wxColourData : public wxObject {
 public:
     wxColourData();
@@ -54,7 +68,7 @@ class wxColourDialog : public wxDialog {
 public:
     wxColourDialog(wxWindow* parent, wxColourData* data = NULL);
 
-    %pragma(python) addtomethod = "__init__:#wx._StdDialogCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     wxColourData& GetColourData();
     int ShowModal();
@@ -66,12 +80,12 @@ public:
 class wxDirDialog : public wxDialog {
 public:
     wxDirDialog(wxWindow* parent,
-                char* message = "Choose a directory",
-                char* defaultPath = "",
+                const wxString& message = wxPyFileSelectorPromptStr,
+                const wxString& defaultPath = wxPyEmptyString,
                 long style = 0,
                 const wxPoint& pos = wxDefaultPosition);
 
-    %pragma(python) addtomethod = "__init__:#wx._StdDialogCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     wxString GetPath();
     wxString GetMessage();
@@ -81,19 +95,20 @@ public:
     int ShowModal();
 };
 
+
 //----------------------------------------------------------------------
 
 class wxFileDialog : public wxDialog {
 public:
     wxFileDialog(wxWindow* parent,
-                 char* message = "Choose a file",
-                 char* defaultDir = "",
-                 char* defaultFile = "",
-                 char* wildcard = "*.*",
+                 const wxString& message = wxPyFileSelectorPromptStr,
+                 const wxString& defaultDir = wxPyEmptyString,
+                 const wxString& defaultFile = wxPyEmptyString,
+                 const wxString& wildcard = wxPyFileSelectorDefaultWildcardStr,
                  long style = 0,
                  const wxPoint& pos = wxDefaultPosition);
 
-    %pragma(python) addtomethod = "__init__:#wx._StdDialogCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     wxString GetDirectory();
     wxString GetFilename();
@@ -115,25 +130,13 @@ public:
         PyObject* GetFilenames() {
             wxArrayString arr;
             self->GetFilenames(arr);
-            size_t count = arr.GetCount();
-            PyObject* listObj = PyList_New(0);
-            for(size_t x=0; x<count; x++) {
-                PyObject* name = PyString_FromString(arr[x]);
-                PyList_Append(listObj, name);
-            }
-            return listObj;
+            return wxArrayString2PyList_helper(arr);
         }
 
         PyObject* GetPaths() {
             wxArrayString arr;
             self->GetPaths(arr);
-            size_t count = arr.GetCount();
-            PyObject* listObj = PyList_New(0);
-            for(size_t x=0; x<count; x++) {
-                PyObject* name = PyString_FromString(arr[x]);
-                PyList_Append(listObj, name);
-            }
-            return listObj;
+            return wxArrayString2PyList_helper(arr);
         }
     }
 };
@@ -141,7 +144,30 @@ public:
 
 //----------------------------------------------------------------------
 
-//TODO: wxMultipleChoiceDialog
+enum { wxCHOICEDLG_STYLE };
+
+class wxMultiChoiceDialog : public wxDialog
+{
+public:
+    wxMultiChoiceDialog(wxWindow *parent,
+                        const wxString& message,
+                        const wxString& caption,
+                        int LCOUNT, wxString *choices,
+                        long style = wxCHOICEDLG_STYLE,
+                        const wxPoint& pos = wxDefaultPosition);
+
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+
+    void SetSelections(const wxArrayInt& selections);
+
+    // wxArrayInt GetSelections() const;
+    %addmethods {
+        PyObject* GetSelections() {
+            return wxArrayInt2PyList_helper(self->GetSelections());
+        }
+    }
+};
+
 
 //----------------------------------------------------------------------
 
@@ -155,14 +181,14 @@ public:
                              wxString* caption,
                              int LCOUNT, wxString* choices,
                              //char** clientData = NULL,
-                             long style = wxOK | wxCANCEL | wxCENTRE,
+                             long style = wxCHOICEDLG_STYLE,
                              wxPoint* pos = &wxDefaultPosition) {
             return new wxSingleChoiceDialog(parent, *message, *caption,
                                             LCOUNT, choices, NULL, style, *pos);
         }
-    }
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
-    %pragma(python) addtomethod = "__init__:#wx._StdDialogCallbacks(self)"
+    }
 
     int GetSelection();
     wxString GetStringSelection();
@@ -176,13 +202,13 @@ public:
 class wxTextEntryDialog : public wxDialog {
 public:
     wxTextEntryDialog(wxWindow* parent,
-                      char* message,
-                      char* caption = "Input Text",
-                      char* defaultValue = "",
+                      const wxString& message,
+                      const wxString& caption = wxPyGetTextFromUserPromptStr,
+                      const wxString& defaultValue = wxPyEmptyString,
                       long style = wxOK | wxCANCEL | wxCENTRE,
                       const wxPoint& pos = wxDefaultPosition);
 
-    %pragma(python) addtomethod = "__init__:#wx._StdDialogCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     wxString GetValue();
     void SetValue(const wxString& value);
@@ -215,8 +241,7 @@ public:
 class wxFontDialog : public wxDialog {
 public:
     wxFontDialog(wxWindow* parent, wxFontData* data);
-
-    %pragma(python) addtomethod = "__init__:#wx._StdDialogCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     wxFontData& GetFontData();
     int ShowModal();
@@ -228,12 +253,11 @@ public:
 class wxMessageDialog : public wxDialog {
 public:
     wxMessageDialog(wxWindow* parent,
-                    char* message,
-                    char* caption = "Message box",
+                    const wxString& message,
+                    const wxString& caption = wxPyMessageBoxCaptionStr,
                     long style = wxOK | wxCANCEL | wxCENTRE,
                     const wxPoint& pos = wxDefaultPosition);
-
-    %pragma(python) addtomethod = "__init__:#wx._StdDialogCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     int ShowModal();
 };
@@ -247,10 +271,117 @@ public:
                      int maximum = 100,
                      wxWindow* parent = NULL,
                      int style = wxPD_AUTO_HIDE | wxPD_APP_MODAL );
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
-
-    bool Update(int value = -1, const char* newmsg = NULL);
+    bool Update(int value, const wxString& newmsg = wxPyEmptyString);
     void Resume();
 }
 
 //----------------------------------------------------------------------
+
+enum wxFindReplaceFlags
+{
+    // downward search/replace selected (otherwise - upwards)
+    wxFR_DOWN       = 1,
+
+    // whole word search/replace selected
+    wxFR_WHOLEWORD  = 2,
+
+    // case sensitive search/replace selected (otherwise - case insensitive)
+    wxFR_MATCHCASE  = 4
+};
+
+
+enum wxFindReplaceDialogStyles
+{
+    // replace dialog (otherwise find dialog)
+    wxFR_REPLACEDIALOG = 1,
+
+    // don't allow changing the search direction
+    wxFR_NOUPDOWN      = 2,
+
+    // don't allow case sensitive searching
+    wxFR_NOMATCHCASE   = 4,
+
+    // don't allow whole word searching
+    wxFR_NOWHOLEWORD   = 8
+};
+
+enum {
+    wxEVT_COMMAND_FIND,
+    wxEVT_COMMAND_FIND_NEXT,
+    wxEVT_COMMAND_FIND_REPLACE,
+    wxEVT_COMMAND_FIND_REPLACE_ALL,
+    wxEVT_COMMAND_FIND_CLOSE,
+};
+
+%pragma(python) code = "
+
+def EVT_COMMAND_FIND(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_FIND, func)
+
+def EVT_COMMAND_FIND_NEXT(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_FIND_NEXT, func)
+
+def EVT_COMMAND_FIND_REPLACE(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_FIND_REPLACE, func)
+
+def EVT_COMMAND_FIND_REPLACE_ALL(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_FIND_REPLACE_ALL, func)
+
+def EVT_COMMAND_FIND_CLOSE(win, id, func):
+    win.Connect(id, -1, wxEVT_COMMAND_FIND_CLOSE, func)
+
+"
+
+class wxFindDialogEvent : public wxCommandEvent
+{
+public:
+    wxFindDialogEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
+    int GetFlags();
+    wxString GetFindString();
+    const wxString& GetReplaceString();
+    wxFindReplaceDialog *GetDialog();
+    void SetFlags(int flags);
+    void SetFindString(const wxString& str);
+    void SetReplaceString(const wxString& str);
+};
+
+
+
+class wxFindReplaceData : public wxObject
+{
+public:
+    wxFindReplaceData(int flags=0);
+    ~wxFindReplaceData();
+
+    const wxString& GetFindString();
+    const wxString& GetReplaceString();
+    int GetFlags();
+    void SetFlags(int flags);
+    void SetFindString(const wxString& str);
+    void SetReplaceString(const wxString& str);
+};
+
+
+class wxFindReplaceDialog : public wxDialog {
+public:
+    wxFindReplaceDialog(wxWindow *parent,
+                        wxFindReplaceData *data,
+                        const wxString &title,
+                        int style = 0);
+    %name(wxPreFindReplaceDialog)wxFindReplaceDialog();
+
+     bool Create(wxWindow *parent,
+                 wxFindReplaceData *data,
+                 const wxString &title,
+                 int style = 0);
+
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+    %pragma(python) addtomethod = "wxPreFindReplaceDialog:val._setOORInfo(val)"
+
+    const wxFindReplaceData *GetData();
+    void SetData(wxFindReplaceData *data);
+};
+
+//----------------------------------------------------------------------