]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/cmndlgs.i
Use the OOR typemap for wxTreeCtrls too.
[wxWidgets.git] / wxPython / src / cmndlgs.i
index 8b4252a4ed0684f926d9c8d5574826f218882bdf..5ab14a8693d8c3f6558de504db1d7a7d30bbd804 100644 (file)
 
 //----------------------------------------------------------------------
 
+%{
+    // 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();
@@ -68,8 +80,8 @@ 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);
 
@@ -83,15 +95,16 @@ 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);
 
@@ -117,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);
         }
     }
 };
@@ -143,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());
+        }
+    }
+};
+
 
 //----------------------------------------------------------------------
 
@@ -157,7 +181,7 @@ 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);
@@ -178,9 +202,9 @@ 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);
 
@@ -229,8 +253,8 @@ 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__:self._setOORInfo(self)"
@@ -249,7 +273,7 @@ public:
                      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();
 }
 
@@ -354,7 +378,7 @@ public:
                  int style = 0);
 
     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
-    %pragma(python) addtomethod = "wxPreFindReplaceDialog:val._setOORInfo(self)"
+    %pragma(python) addtomethod = "wxPreFindReplaceDialog:val._setOORInfo(val)"
 
     const wxFindReplaceData *GetData();
     void SetData(wxFindReplaceData *data);