]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/wizard.i
Use multi-lib build on MSW, and other tweaks
[wxWidgets.git] / wxPython / src / wizard.i
index 5a1e4dbdca239426e6494689c75afe55be7a64e1..947dfadd9467774f75b039fa018c8b9be769d5b4 100644 (file)
 %import controls.i
 
 
+//----------------------------------------------------------------------
+%{
+    // Put some wx default wxChar* values into wxStrings.
+    static const wxString wxPyEmptyString(wxT(""));
+%}
 //----------------------------------------------------------------------
 
 enum {
@@ -38,7 +43,8 @@ enum {
     wxEVT_WIZARD_PAGE_CHANGED,
     wxEVT_WIZARD_PAGE_CHANGING,
     wxEVT_WIZARD_CANCEL,
-    wxEVT_WIZARD_HELP
+    wxEVT_WIZARD_HELP,
+    wxEVT_WIZARD_FINISHED
 };
 
 
@@ -56,6 +62,9 @@ def EVT_WIZARD_CANCEL(win, id, func):
 def EVT_WIZARD_HELP(win, id, func):
     win.Connect(id, -1, wxEVT_WIZARD_HELP, func)
 
+def EVT_WIZARD_FINISHED(win, id, func):
+    win.Connect(id, -1, wxEVT_WIZARD_FINISHED, func)
+
 "
 
 //----------------------------------------------------------------------
@@ -97,12 +106,17 @@ public:
 //                  const char* resource = NULL);
 //     %name(wxPreWizardPage)wxWizardPage();
 
-    bool Create(wxWizard *parent,
-                const wxBitmap& bitmap = wxNullBitmap,
-                const char* resource = NULL);
+    %addmethods {
+        bool Create(wxWizard *parent,
+                    const wxBitmap& bitmap = wxNullBitmap,
+                    const wxString& resource = wxPyEmptyString) {
+            wxChar* res = NULL;
+            if (resource.Length())
+                res = (wxChar*)resource.c_str();
+            return self->Create(parent, bitmap, res);
+        }
+    }
 
-    // common part of ctors:
-    void Init();
 
     // these functions are used by the wizard to show another page when the
     // user chooses "Back" or "Next" button
@@ -200,14 +214,29 @@ public:
     // of the default one for this wizard (should be of the same size). Notice
     // that no other parameters are needed because the wizard will resize and
     // reposition the page anyhow
-    wxPyWizardPage(wxWizard *parent,
-                 const wxBitmap& bitmap = wxNullBitmap,
-                 const char* resource = NULL);
+    %addmethods {
+        wxPyWizardPage(wxWizard *parent,
+                       const wxBitmap* bitmap = &wxNullBitmap,
+                       const wxString* resource = &wxPyEmptyString) {
+            wxChar* res = NULL;
+            if (resource->Length())
+                res = (wxChar*)resource->c_str();
+            return new wxPyWizardPage(parent, *bitmap, res);
+        }
+    }
+
     %name(wxPrePyWizardPage)wxPyWizardPage();
 
-    bool Create(wxWizard *parent,
-                const wxBitmap& bitmap = wxNullBitmap,
-                const char* resource = NULL);
+    %addmethods {
+        bool Create(wxWizard *parent,
+                    const wxBitmap& bitmap = wxNullBitmap,
+                    const wxString& resource = wxPyEmptyString) {
+            wxChar* res = NULL;
+            if (resource.Length())
+                res = (wxChar*)resource.c_str();
+            return self->Create(parent, bitmap, res);
+        }
+    }
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyWizardPage)"
@@ -270,9 +299,6 @@ public:
     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
     %pragma(python) addtomethod = "wxPreWizardPageSimple:val._setOORInfo(val)"
 
-    // common part of ctors:
-    void Init();
-
     // the pointers may be also set later - but before starting the wizard
     void SetPrev(wxWizardPage *prev);
     void SetNext(wxWizardPage *next);
@@ -292,7 +318,8 @@ public:
              int id = -1,
              const wxString& title = wxEmptyString,
              const wxBitmap& bitmap = wxNullBitmap,
-             const wxPoint& pos = wxDefaultPosition);
+             const wxPoint& pos = wxDefaultPosition,
+             long style = wxDEFAULT_DIALOG_STYLE);
     %name(wxPreWizard)wxWizard();
 
     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
@@ -332,6 +359,13 @@ public:
     // default)
     virtual void FitToPage(const wxWizardPage *firstPage);
 
+    // Adding pages to page area sizer enlarges wizard
+    virtual wxSizer *GetPageAreaSizer() const;
+
+    // Set border around page area. Default is 0 if you add at least one
+    // page to GetPageAreaSizer and 5 if you don't.
+    virtual void SetBorder(int border);
+
     // is the wizard running?
     bool IsRunning() const { return m_page != NULL; }
 
@@ -339,10 +373,17 @@ public:
     // page first and return FALSE without changing the page if
     // TransferDataFromWindow() returns FALSE - otherwise, returns TRUE
     bool ShowPage(wxWizardPage *page, bool goingForward = TRUE);
+
+    bool HasNextPage(wxWizardPage* page);
+    bool HasPrevPage(wxWizardPage* page);
 };
 
 
 //----------------------------------------------------------------------
+
+%init %{
+%}
+
 //----------------------------------------------------------------------
 // This file gets appended to the shadow class file.
 //----------------------------------------------------------------------