From: Robin Dunn <robin@alldunn.com> Date: Fri, 14 May 2004 21:37:26 +0000 (+0000) Subject: Add SetBestSize, GetDefaultAttributes and fixed ShouldInheritColours X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/1a10485f79808b28093e87a2b4cc3d930fbc7b53?hp=d474ed7b17d227d5165d503f88ccd130304e4312 Add SetBestSize, GetDefaultAttributes and fixed ShouldInheritColours git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/wxPython/include/wx/wxPython/wxPython_int.h b/wxPython/include/wx/wxPython/wxPython_int.h index 855861601a..14686c748f 100644 --- a/wxPython/include/wx/wxPython/wxPython_int.h +++ b/wxPython/include/wx/wxPython/wxPython_int.h @@ -2448,4 +2448,35 @@ extern wxPyApp *wxPythonApp; //--------------------------------------------------------------------------- +#define DEC_PYCALLBACK_VIZATTR_(CBNAME) \ + wxVisualAttributes CBNAME() const; \ + wxVisualAttributes base_##CBNAME() + + +#define IMP_PYCALLBACK_VIZATTR_(CLASS, PCLASS, CBNAME) \ + wxVisualAttributes CLASS::CBNAME() const { \ + wxVisualAttributes rval; \ + bool found; \ + bool blocked = wxPyBeginBlockThreads(); \ + if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) { \ + PyObject* ro; \ + wxVisualAttributes* ptr; \ + ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()")); \ + if (ro) { \ + if (wxPyConvertSwigPtr(ro, (void **)&ptr, wxT("wxVisualAttributes"))) \ + rval = *ptr; \ + Py_DECREF(ro); \ + } \ + } \ + wxPyEndBlockThreads(blocked); \ + if (! found) \ + rval = PCLASS::CBNAME(); \ + return rval; \ + } \ + wxVisualAttributes CLASS::base_##CBNAME() { \ + return PCLASS::CBNAME(); \ + } + +//--------------------------------------------------------------------------- + #endif diff --git a/wxPython/src/_pycontrol.i b/wxPython/src/_pycontrol.i index 11d65af865..205dab0e90 100644 --- a/wxPython/src/_pycontrol.i +++ b/wxPython/src/_pycontrol.i @@ -17,7 +17,6 @@ %newgroup -// TODO: Virtualize ShouldInheritColours //--------------------------------------------------------------------------- @@ -35,6 +34,7 @@ public: const wxString& name = wxPyControlNameStr) : wxControl(parent, id, pos, size, style, validator, name) {} + void SetBestSize(const wxSize& size) { wxControl::SetBestSize(size); } DEC_PYCALLBACK_VOID_INT4(DoMoveWindow); DEC_PYCALLBACK_VOID_INT5(DoSetSize); @@ -60,8 +60,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; }; @@ -92,8 +93,9 @@ IMP_PYCALLBACK_SIZE_const(wxPyControl, wxControl, GetMaxSize); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyControl, wxControl, AddChild); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyControl, wxControl, RemoveChild); -IMP_PYCALLBACK_BOOL_(wxPyControl, wxControl, ShouldInheritColours); +IMP_PYCALLBACK_BOOL_const(wxPyControl, wxControl, ShouldInheritColours); IMP_PYCALLBACK__COLOUR(wxPyControl, wxControl, ApplyParentThemeBackground); +IMP_PYCALLBACK_VIZATTR_(wxPyControl, wxControl, GetDefaultAttributes); %} // And now the one for SWIG to see @@ -114,6 +116,7 @@ public: 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, @@ -146,8 +149,9 @@ public: void base_AddChild(wxWindow* child); void base_RemoveChild(wxWindow* child); - bool base_ShouldInheritColours(); + bool base_ShouldInheritColours() const; void base_ApplyParentThemeBackground(const wxColour& c); + wxVisualAttributes base_GetDefaultAttributes(); }; diff --git a/wxPython/src/_pywindows.i b/wxPython/src/_pywindows.i index d6c60712df..6a9ad8862f 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,8 +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; }; @@ -122,8 +122,9 @@ 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); %} @@ -145,6 +146,8 @@ public: 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); @@ -176,8 +179,9 @@ public: void base_AddChild(wxWindow* child); void base_RemoveChild(wxWindow* child); - bool base_ShouldInheritColours(); + bool base_ShouldInheritColours() const; void base_ApplyParentThemeBackground(const wxColour& c); + wxVisualAttributes base_GetDefaultAttributes(); }; //--------------------------------------------------------------------------- @@ -202,6 +206,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); @@ -227,8 +233,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; }; @@ -259,9 +266,11 @@ 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 class wxPyPanel : public wxPanel @@ -280,6 +289,7 @@ public: 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, @@ -312,8 +322,9 @@ public: void base_AddChild(wxWindow* child); void base_RemoveChild(wxWindow* child); - bool base_ShouldInheritColours(); + bool base_ShouldInheritColours() const ; void base_ApplyParentThemeBackground(const wxColour& c); + wxVisualAttributes base_GetDefaultAttributes(); }; //--------------------------------------------------------------------------- @@ -332,6 +343,7 @@ public: 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); @@ -357,8 +369,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; }; @@ -389,8 +402,10 @@ IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, GetMaxSize); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, AddChild); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, RemoveChild); -IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, ShouldInheritColours); +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 @@ -410,6 +425,7 @@ public: 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, @@ -442,8 +458,9 @@ public: void base_AddChild(wxWindow* child); void base_RemoveChild(wxWindow* child); - bool base_ShouldInheritColours(); + bool base_ShouldInheritColours() const; void base_ApplyParentThemeBackground(const wxColour& c); + wxVisualAttributes base_GetDefaultAttributes(); };