X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4d2962b127e734c37095f72a578457bea84c89da..11207aefcfea0f5fbd5507ccd1d5d0a39c32c9de:/wxPython/src/_pywindows.i diff --git a/wxPython/src/_pywindows.i b/wxPython/src/_pywindows.i index 9592dfa288..8edd2a3f37 100644 --- a/wxPython/src/_pywindows.i +++ b/wxPython/src/_pywindows.i @@ -47,8 +47,6 @@ // Show -// TODO: Virtualize ShouldInheritColours - //--------------------------------------------------------------------------- @@ -65,6 +63,7 @@ public: const wxString& name = wxPyPanelNameStr) : wxWindow(parent, id, pos, size, style, name) {} + void SetBestSize(const wxSize& size) { wxWindow::SetBestSize(size); } DEC_PYCALLBACK_VOID_INT4(DoMoveWindow); DEC_PYCALLBACK_VOID_INT5(DoSetSize); @@ -90,7 +89,9 @@ public: DEC_PYCALLBACK_VOID_WXWINBASE(AddChild); DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild); - DEC_PYCALLBACK_BOOL_(ShouldInheritColours); + DEC_PYCALLBACK_BOOL_const(ShouldInheritColours); + DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground); + DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes); PYPRIVATE; }; @@ -121,24 +122,33 @@ IMP_PYCALLBACK_SIZE_const(wxPyWindow, wxWindow, GetMaxSize); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWindow, wxWindow, AddChild); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWindow, wxWindow, RemoveChild); -IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, ShouldInheritColours); +IMP_PYCALLBACK_BOOL_const(wxPyWindow, wxWindow, ShouldInheritColours); +IMP_PYCALLBACK__COLOUR(wxPyWindow, wxWindow, ApplyParentThemeBackground); +IMP_PYCALLBACK_VIZATTR_(wxPyWindow, wxWindow, GetDefaultAttributes); + %} // And now the one for SWIG to see +MustHaveApp(wxPyWindow); class wxPyWindow : public wxWindow { public: %pythonAppend wxPyWindow "self._setOORInfo(self); self._setCallbackInfo(self, PyWindow)" + %pythonAppend wxPyWindow() "" - wxPyWindow(wxWindow* parent, const wxWindowID id, + wxPyWindow(wxWindow* parent, const wxWindowID id=-1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPyPanelNameStr); + %name(PrePyWindow) wxPyWindow(); + void _setCallbackInfo(PyObject* self, PyObject* _class); + void SetBestSize(const wxSize& size); + void base_DoMoveWindow(int x, int y, int width, int height); void base_DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); @@ -169,6 +179,10 @@ public: void base_AddChild(wxWindow* child); void base_RemoveChild(wxWindow* child); + + bool base_ShouldInheritColours() const; + void base_ApplyParentThemeBackground(const wxColour& c); + wxVisualAttributes base_GetDefaultAttributes(); }; //--------------------------------------------------------------------------- @@ -193,6 +207,8 @@ public: const wxString& name = wxPyPanelNameStr) : wxPanel(parent, id, pos, size, style, name) {} + void SetBestSize(const wxSize& size) { wxPanel::SetBestSize(size); } + DEC_PYCALLBACK_VOID_INT4(DoMoveWindow); DEC_PYCALLBACK_VOID_INT5(DoSetSize); @@ -218,7 +234,9 @@ public: DEC_PYCALLBACK_VOID_WXWINBASE(AddChild); DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild); - DEC_PYCALLBACK_BOOL_(ShouldInheritColours); + DEC_PYCALLBACK_BOOL_const(ShouldInheritColours); + DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground); + DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes); PYPRIVATE; }; @@ -249,25 +267,31 @@ IMP_PYCALLBACK_SIZE_const(wxPyPanel, wxPanel, GetMaxSize); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyPanel, wxPanel, AddChild); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyPanel, wxPanel, RemoveChild); -IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, ShouldInheritColours); -%} +IMP_PYCALLBACK_BOOL_const(wxPyPanel, wxPanel, ShouldInheritColours); +IMP_PYCALLBACK__COLOUR(wxPyPanel, wxPanel, ApplyParentThemeBackground); +IMP_PYCALLBACK_VIZATTR_(wxPyPanel, wxPanel, GetDefaultAttributes); + + %} // And now the one for SWIG to see +MustHaveApp(wxPyPanel); class wxPyPanel : public wxPanel { public: %pythonAppend wxPyPanel "self._setOORInfo(self); self._setCallbackInfo(self, PyPanel)" + %pythonAppend wxPyPanel() "" - wxPyPanel(wxWindow* parent, const wxWindowID id, + wxPyPanel(wxWindow* parent, const wxWindowID id=-1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPyPanelNameStr); + %name(PrePyPanel) wxPyPanel(); + void _setCallbackInfo(PyObject* self, PyObject* _class); - %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyPanel)" - %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" + void SetBestSize(const wxSize& size); void base_DoMoveWindow(int x, int y, int width, int height); void base_DoSetSize(int x, int y, int width, int height, @@ -299,6 +323,147 @@ public: void base_AddChild(wxWindow* child); void base_RemoveChild(wxWindow* child); + + bool base_ShouldInheritColours() const ; + void base_ApplyParentThemeBackground(const wxColour& c); + wxVisualAttributes base_GetDefaultAttributes(); +}; + +//--------------------------------------------------------------------------- +// and for wxScrolledWindow + +%{ // C++ version of Python aware wxScrolledWindow +class wxPyScrolledWindow : public wxScrolledWindow +{ + DECLARE_DYNAMIC_CLASS(wxPyScrolledWindow) +public: + wxPyScrolledWindow() : wxScrolledWindow() {} + wxPyScrolledWindow(wxWindow* parent, const wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxPyPanelNameStr) + : wxScrolledWindow(parent, id, pos, size, style, name) {} + + void SetBestSize(const wxSize& size) { wxScrolledWindow::SetBestSize(size); } + + DEC_PYCALLBACK_VOID_INT4(DoMoveWindow); + DEC_PYCALLBACK_VOID_INT5(DoSetSize); + DEC_PYCALLBACK_VOID_INTINT(DoSetClientSize); + DEC_PYCALLBACK_VOID_INTINT(DoSetVirtualSize); + + DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetSize); + DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetClientSize); + DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetPosition); + + DEC_PYCALLBACK_SIZE_const(DoGetVirtualSize); + DEC_PYCALLBACK_SIZE_const(DoGetBestSize); + + DEC_PYCALLBACK__(InitDialog); + DEC_PYCALLBACK_BOOL_(TransferDataFromWindow); + DEC_PYCALLBACK_BOOL_(TransferDataToWindow); + DEC_PYCALLBACK_BOOL_(Validate); + + DEC_PYCALLBACK_BOOL_const(AcceptsFocus); + DEC_PYCALLBACK_BOOL_const(AcceptsFocusFromKeyboard); + DEC_PYCALLBACK_SIZE_const(GetMaxSize); + + DEC_PYCALLBACK_VOID_WXWINBASE(AddChild); + DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild); + + DEC_PYCALLBACK_BOOL_const(ShouldInheritColours); + DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground); + DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes); + + PYPRIVATE; +}; + +IMPLEMENT_DYNAMIC_CLASS(wxPyScrolledWindow, wxScrolledWindow); + +IMP_PYCALLBACK_VOID_INT4(wxPyScrolledWindow, wxScrolledWindow, DoMoveWindow); +IMP_PYCALLBACK_VOID_INT5(wxPyScrolledWindow, wxScrolledWindow, DoSetSize); +IMP_PYCALLBACK_VOID_INTINT(wxPyScrolledWindow, wxScrolledWindow, DoSetClientSize); +IMP_PYCALLBACK_VOID_INTINT(wxPyScrolledWindow, wxScrolledWindow, DoSetVirtualSize); + +IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyScrolledWindow, wxScrolledWindow, DoGetSize); +IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyScrolledWindow, wxScrolledWindow, DoGetClientSize); +IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyScrolledWindow, wxScrolledWindow, DoGetPosition); + +IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, DoGetVirtualSize); +IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, DoGetBestSize); + +IMP_PYCALLBACK__(wxPyScrolledWindow, wxScrolledWindow, InitDialog); +IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, TransferDataFromWindow); +IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, TransferDataToWindow); +IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, Validate); + +IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, AcceptsFocus); +IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, AcceptsFocusFromKeyboard); +IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, GetMaxSize); + +IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, AddChild); +IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, RemoveChild); + +IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, ShouldInheritColours); +IMP_PYCALLBACK__COLOUR(wxPyScrolledWindow, wxScrolledWindow, ApplyParentThemeBackground); +IMP_PYCALLBACK_VIZATTR_(wxPyScrolledWindow, wxScrolledWindow, GetDefaultAttributes); + +%} + +// And now the one for SWIG to see +MustHaveApp(wxPyScrolledWindow); +class wxPyScrolledWindow : public wxScrolledWindow +{ +public: + %pythonAppend wxPyScrolledWindow "self._setOORInfo(self); self._setCallbackInfo(self, PyPanel)" + %pythonAppend wxPyScrolledWindow() "" + + wxPyScrolledWindow(wxWindow* parent, const wxWindowID id=-1, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxPyPanelNameStr); + + %name(PrePyScrolledWindow) wxPyScrolledWindow(); + + void _setCallbackInfo(PyObject* self, PyObject* _class); + + void SetBestSize(const wxSize& size); + + void base_DoMoveWindow(int x, int y, int width, int height); + void base_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 ); + + DocDeclA( + void, base_DoGetSize( int *OUTPUT, int *OUTPUT ) const, + "base_DoGetSize() -> (width, height)"); + DocDeclA( + void, base_DoGetClientSize( int *OUTPUT, int *OUTPUT ) const, + "base_DoGetClientSize() -> (width, height)"); + DocDeclA( + void, base_DoGetPosition( int *OUTPUT, int *OUTPUT ) const, + "base_DoGetPosition() -> (x,y)"); + + 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); + + bool base_ShouldInheritColours() const; + void base_ApplyParentThemeBackground(const wxColour& c); + wxVisualAttributes base_GetDefaultAttributes(); };