X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d14a1e28567de23c586bc80017073d0c39f8d18f..1d1972fce1db0ae559433967255ce486b0d7494a:/wxPython/src/wizard.i diff --git a/wxPython/src/wizard.i b/wxPython/src/wizard.i index d6913b4e34..992b4af0bf 100644 --- a/wxPython/src/wizard.i +++ b/wxPython/src/wizard.i @@ -10,7 +10,12 @@ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// -%module wizard +%define DOCSTRING +"`Wizard` is a dialog class that guides the user through a sequence of steps, +or pages." +%enddef + +%module(package="wx", docstring=DOCSTRING) wizard %{ #include "wx/wxPython/wxPython.h" @@ -19,15 +24,15 @@ #include - static const wxString wxPyEmptyString(wxT("")); %} //---------------------------------------------------------------------- %import windows.i -%pythoncode { wx = core } +%pythoncode { wx = _core } +%pythoncode { __docfilter__ = wx.__DocFilter(globals()) } -%include _wizard_rename.i +MAKE_CONST_WXSTRING_NOSWIG(EmptyString); //---------------------------------------------------------------------- @@ -58,12 +63,12 @@ class wxWizardEvent : public wxNotifyEvent public: wxWizardEvent(wxEventType type = wxEVT_NULL, int id = -1, - bool direction = TRUE, + bool direction = true, wxWizardPage* page = NULL); - // for EVT_WIZARD_PAGE_CHANGING, return TRUE if we're going forward or - // FALSE otherwise and for EVT_WIZARD_PAGE_CHANGED return TRUE if we came - // from the previous page and FALSE if we returned from the next one + // for EVT_WIZARD_PAGE_CHANGING, return True if we're going forward or + // False otherwise and for EVT_WIZARD_PAGE_CHANGED return True if we came + // from the previous page and False if we returned from the next one // (this function doesn't make sense for CANCEL events) bool GetDirection() const { return m_direction; } @@ -78,6 +83,7 @@ public: // // Other than GetNext/Prev() functions, wxWizardPage is just a panel and may be // used as such (i.e. controls may be placed directly on it &c). +MustHaveApp(wxWizardPage); class wxWizardPage : public wxPanel { public: @@ -88,14 +94,14 @@ public: // wxWizardPage(wxWizard *parent, // const wxBitmap& bitmap = wxNullBitmap, // const char* resource = NULL); -// %name(PreWizardPage)wxWizardPage(); +// %RenameCtor(PreWizardPage, wxWizardPage()); %extend { bool Create(wxWizard *parent, const wxBitmap& bitmap = wxNullBitmap, const wxString& resource = wxPyEmptyString) { wxChar* res = NULL; - if (resource.Length()) + if (resource.length()) res = (wxChar*)resource.c_str(); return self->Create(parent, bitmap, res); } @@ -118,7 +124,7 @@ public: %{ // C++ Version of a Python aware class class wxPyWizardPage : public wxWizardPage { - DECLARE_ABSTRACT_CLASS(wxPyWizardPage); + DECLARE_ABSTRACT_CLASS(wxPyWizardPage) public: wxPyWizardPage() : wxWizardPage() {} wxPyWizardPage(wxWizard *parent, @@ -192,11 +198,14 @@ IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWizardPage, wxWizardPage, RemoveChild); +MustHaveApp(wxPyWizardPage); + class wxPyWizardPage : public wxWizardPage { public: - %addtofunc wxPyWizardPage "self._setCallbackInfo(self, PyWizardPage);self._setOORInfo(self)" - %addtofunc wxPyWizardPage() "" + %pythonAppend wxPyWizardPage "self._setCallbackInfo(self, PyWizardPage);self._setOORInfo(self)" + %pythonAppend wxPyWizardPage() "" + %typemap(out) wxPyWizardPage*; // turn off this typemap // ctor accepts an optional bitmap which will be used for this page instead // of the default one for this wizard (should be of the same size). Notice @@ -207,20 +216,23 @@ public: const wxBitmap* bitmap = &wxNullBitmap, const wxString* resource = &wxPyEmptyString) { wxChar* res = NULL; - if (resource->Length()) + if (resource->length()) res = (wxChar*)resource->c_str(); return new wxPyWizardPage(parent, *bitmap, res); } } - %name(PrePyWizardPage)wxPyWizardPage(); + %RenameCtor(PrePyWizardPage, wxPyWizardPage()); + + // Turn it back on again + %typemap(out) wxPyWizardPage* { $result = wxPyMake_wxObject($1, $owner); } %extend { bool Create(wxWizard *parent, const wxBitmap& bitmap = wxNullBitmap, const wxString& resource = wxPyEmptyString) { wxChar* res = NULL; - if (resource.Length()) + if (resource.length()) res = (wxChar*)resource.c_str(); return self->Create(parent, bitmap, res); } @@ -228,30 +240,64 @@ public: void _setCallbackInfo(PyObject* self, PyObject* _class); - void base_DoMoveWindow(int x, int y, int width, int height); - void base_DoSetSize(int x, int y, int width, int height, + void DoMoveWindow(int x, int y, int width, int height); + void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void base_DoSetClientSize(int width, int height); - void base_DoSetVirtualSize( int x, int y ); - - void base_DoGetSize( int *OUTPUT, int *OUTPUT ) const; - void base_DoGetClientSize( int *OUTPUT, int *OUTPUT ) const; - void base_DoGetPosition( int *OUTPUT, int *OUTPUT ) const; - - wxSize base_DoGetVirtualSize() const; - wxSize base_DoGetBestSize() const; - - void base_InitDialog(); - bool base_TransferDataToWindow(); - bool base_TransferDataFromWindow(); - bool base_Validate(); - - bool base_AcceptsFocus() const; - bool base_AcceptsFocusFromKeyboard() const; - wxSize base_GetMaxSize() const; - - void base_AddChild(wxWindow* child); - void base_RemoveChild(wxWindow* child); + void DoSetClientSize(int width, int height); + void DoSetVirtualSize( int x, int y ); + + DocDeclA( + void, DoGetSize( int *OUTPUT, int *OUTPUT ) const, + "DoGetSize() -> (width, height)"); + DocDeclA( + void, DoGetClientSize( int *OUTPUT, int *OUTPUT ) const, + "DoGetClientSize() -> (width, height)"); + DocDeclA( + void, DoGetPosition( int *OUTPUT, int *OUTPUT ) const, + "DoGetPosition() -> (x,y)"); + + wxSize DoGetVirtualSize() const; + wxSize DoGetBestSize() const; + + void InitDialog(); + bool TransferDataToWindow(); + bool TransferDataFromWindow(); + bool Validate(); + + bool AcceptsFocus() const; + bool AcceptsFocusFromKeyboard() const; + wxSize GetMaxSize() const; + + void AddChild(wxWindow* child); + void RemoveChild(wxWindow* child); + + bool ShouldInheritColours() const; + wxVisualAttributes GetDefaultAttributes(); + + void OnInternalIdle(); + + %MAKE_BASE_FUNC(PyWizardPage, DoMoveWindow); + %MAKE_BASE_FUNC(PyWizardPage, DoSetSize); + %MAKE_BASE_FUNC(PyWizardPage, DoSetClientSize); + %MAKE_BASE_FUNC(PyWizardPage, DoSetVirtualSize); + %MAKE_BASE_FUNC(PyWizardPage, DoGetSize); + %MAKE_BASE_FUNC(PyWizardPage, DoGetClientSize); + %MAKE_BASE_FUNC(PyWizardPage, DoGetPosition); + %MAKE_BASE_FUNC(PyWizardPage, DoGetVirtualSize); + %MAKE_BASE_FUNC(PyWizardPage, DoGetBestSize); + %MAKE_BASE_FUNC(PyWizardPage, InitDialog); + %MAKE_BASE_FUNC(PyWizardPage, TransferDataToWindow); + %MAKE_BASE_FUNC(PyWizardPage, TransferDataFromWindow); + %MAKE_BASE_FUNC(PyWizardPage, Validate); + %MAKE_BASE_FUNC(PyWizardPage, AcceptsFocus); + %MAKE_BASE_FUNC(PyWizardPage, AcceptsFocusFromKeyboard); + %MAKE_BASE_FUNC(PyWizardPage, GetMaxSize); + %MAKE_BASE_FUNC(PyWizardPage, AddChild); + %MAKE_BASE_FUNC(PyWizardPage, RemoveChild); + %MAKE_BASE_FUNC(PyWizardPage, ShouldInheritColours); + %MAKE_BASE_FUNC(PyWizardPage, GetDefaultAttributes); + %MAKE_BASE_FUNC(PyWizardPage, OnInternalIdle); + }; //---------------------------------------------------------------------- @@ -263,12 +309,13 @@ public: // OTOH, it is also possible to dynamicly decide which page to return (i.e. // depending on the user's choices) as the wizard sample shows - in order to do // this, you must derive from wxWizardPage directly. +MustHaveApp(wxWizardPageSimple); class wxWizardPageSimple : public wxWizardPage { public: - %addtofunc wxWizardPageSimple "self._setOORInfo(self)" - %addtofunc wxWizardPageSimple() "" + %pythonAppend wxWizardPageSimple "self._setOORInfo(self)" + %pythonAppend wxWizardPageSimple() "" // ctor takes the previous and next pages wxWizardPageSimple(wxWizard *parent, @@ -276,7 +323,7 @@ public: wxWizardPage *next = NULL, const wxBitmap& bitmap = wxNullBitmap, const wxChar* resource = NULL); - %name(PreWizardPageSimple)wxWizardPageSimple(); + %RenameCtor(PreWizardPageSimple, wxWizardPageSimple()); bool Create(wxWizard *parent = NULL, wxWizardPage *prev = NULL, @@ -295,32 +342,34 @@ public: //---------------------------------------------------------------------- +MustHaveApp(wxWizard); + class wxWizard : public wxDialog { public: - %addtofunc wxWizard "self._setOORInfo(self)" - %addtofunc wxWizard() "" + %pythonAppend wxWizard "self._setOORInfo(self)" + %pythonAppend wxWizard() "" // ctor wxWizard(wxWindow *parent, int id = -1, - const wxString& title = wxEmptyString, + const wxString& title = wxPyEmptyString, const wxBitmap& bitmap = wxNullBitmap, const wxPoint& pos = wxDefaultPosition, long style = wxDEFAULT_DIALOG_STYLE); - %name(PreWizard)wxWizard(); + %RenameCtor(PreWizard, wxWizard()); bool Create(wxWindow *parent, int id = -1, - const wxString& title = wxEmptyString, + const wxString& title = wxPyEmptyString, const wxBitmap& bitmap = wxNullBitmap, const wxPoint& pos = wxDefaultPosition); void Init(); - // executes the wizard starting from the given page, returns TRUE if it was - // successfully finished, FALSE if user cancelled it + // executes the wizard starting from the given page, returns True if it was + // successfully finished, False if user cancelled it virtual bool RunWizard(wxWizardPage *firstPage); // get the current page (NULL if RunWizard() isn't running) @@ -352,12 +401,12 @@ public: virtual void SetBorder(int border); // is the wizard running? - bool IsRunning() const { return m_page != NULL; } + bool IsRunning() const; // show the prev/next page, but call TransferDataFromWindow on the current - // page first and return FALSE without changing the page if - // TransferDataFromWindow() returns FALSE - otherwise, returns TRUE - bool ShowPage(wxWizardPage *page, bool goingForward = TRUE); + // 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);