Add SetBestSize, GetDefaultAttributes and fixed ShouldInheritColours

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2004-05-14 21:37:26 +00:00
parent d474ed7b17
commit 1a10485f79
3 changed files with 68 additions and 16 deletions

View File

@@ -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 #endif

View File

@@ -17,7 +17,6 @@
%newgroup %newgroup
// TODO: Virtualize ShouldInheritColours
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -35,6 +34,7 @@ public:
const wxString& name = wxPyControlNameStr) const wxString& name = wxPyControlNameStr)
: wxControl(parent, id, pos, size, style, validator, name) {} : wxControl(parent, id, pos, size, style, validator, name) {}
void SetBestSize(const wxSize& size) { wxControl::SetBestSize(size); }
DEC_PYCALLBACK_VOID_INT4(DoMoveWindow); DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
DEC_PYCALLBACK_VOID_INT5(DoSetSize); DEC_PYCALLBACK_VOID_INT5(DoSetSize);
@@ -60,8 +60,9 @@ public:
DEC_PYCALLBACK_VOID_WXWINBASE(AddChild); DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild); DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
DEC_PYCALLBACK_BOOL_(ShouldInheritColours); DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground); DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground);
DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
PYPRIVATE; 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, AddChild);
IMP_PYCALLBACK_VOID_WXWINBASE(wxPyControl, wxControl, RemoveChild); 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__COLOUR(wxPyControl, wxControl, ApplyParentThemeBackground);
IMP_PYCALLBACK_VIZATTR_(wxPyControl, wxControl, GetDefaultAttributes);
%} %}
// And now the one for SWIG to see // And now the one for SWIG to see
@@ -114,6 +116,7 @@ public:
void _setCallbackInfo(PyObject* self, PyObject* _class); void _setCallbackInfo(PyObject* self, PyObject* _class);
void SetBestSize(const wxSize& size);
void base_DoMoveWindow(int x, int y, int width, int height); void base_DoMoveWindow(int x, int y, int width, int height);
void base_DoSetSize(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_AddChild(wxWindow* child);
void base_RemoveChild(wxWindow* child); void base_RemoveChild(wxWindow* child);
bool base_ShouldInheritColours(); bool base_ShouldInheritColours() const;
void base_ApplyParentThemeBackground(const wxColour& c); void base_ApplyParentThemeBackground(const wxColour& c);
wxVisualAttributes base_GetDefaultAttributes();
}; };

View File

@@ -47,8 +47,6 @@
// Show // Show
// TODO: Virtualize ShouldInheritColours
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -65,6 +63,7 @@ public:
const wxString& name = wxPyPanelNameStr) const wxString& name = wxPyPanelNameStr)
: wxWindow(parent, id, pos, size, style, name) {} : wxWindow(parent, id, pos, size, style, name) {}
void SetBestSize(const wxSize& size) { wxWindow::SetBestSize(size); }
DEC_PYCALLBACK_VOID_INT4(DoMoveWindow); DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
DEC_PYCALLBACK_VOID_INT5(DoSetSize); DEC_PYCALLBACK_VOID_INT5(DoSetSize);
@@ -90,8 +89,9 @@ public:
DEC_PYCALLBACK_VOID_WXWINBASE(AddChild); DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild); DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
DEC_PYCALLBACK_BOOL_(ShouldInheritColours); DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground); DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground);
DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
PYPRIVATE; 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, AddChild);
IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWindow, wxWindow, RemoveChild); 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__COLOUR(wxPyWindow, wxWindow, ApplyParentThemeBackground);
IMP_PYCALLBACK_VIZATTR_(wxPyWindow, wxWindow, GetDefaultAttributes);
%} %}
@@ -145,6 +146,8 @@ public:
void _setCallbackInfo(PyObject* self, PyObject* _class); void _setCallbackInfo(PyObject* self, PyObject* _class);
void SetBestSize(const wxSize& size);
void base_DoMoveWindow(int x, int y, int width, int height); void base_DoMoveWindow(int x, int y, int width, int height);
void base_DoSetSize(int x, int y, int width, int height, void base_DoSetSize(int x, int y, int width, int height,
int sizeFlags = wxSIZE_AUTO); int sizeFlags = wxSIZE_AUTO);
@@ -176,8 +179,9 @@ public:
void base_AddChild(wxWindow* child); void base_AddChild(wxWindow* child);
void base_RemoveChild(wxWindow* child); void base_RemoveChild(wxWindow* child);
bool base_ShouldInheritColours(); bool base_ShouldInheritColours() const;
void base_ApplyParentThemeBackground(const wxColour& c); void base_ApplyParentThemeBackground(const wxColour& c);
wxVisualAttributes base_GetDefaultAttributes();
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -202,6 +206,8 @@ public:
const wxString& name = wxPyPanelNameStr) const wxString& name = wxPyPanelNameStr)
: wxPanel(parent, id, pos, size, style, name) {} : wxPanel(parent, id, pos, size, style, name) {}
void SetBestSize(const wxSize& size) { wxPanel::SetBestSize(size); }
DEC_PYCALLBACK_VOID_INT4(DoMoveWindow); DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
DEC_PYCALLBACK_VOID_INT5(DoSetSize); DEC_PYCALLBACK_VOID_INT5(DoSetSize);
@@ -227,8 +233,9 @@ public:
DEC_PYCALLBACK_VOID_WXWINBASE(AddChild); DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild); DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
DEC_PYCALLBACK_BOOL_(ShouldInheritColours); DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground); DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground);
DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
PYPRIVATE; 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, AddChild);
IMP_PYCALLBACK_VOID_WXWINBASE(wxPyPanel, wxPanel, RemoveChild); 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__COLOUR(wxPyPanel, wxPanel, ApplyParentThemeBackground);
%} IMP_PYCALLBACK_VIZATTR_(wxPyPanel, wxPanel, GetDefaultAttributes);
%}
// And now the one for SWIG to see // And now the one for SWIG to see
class wxPyPanel : public wxPanel class wxPyPanel : public wxPanel
@@ -280,6 +289,7 @@ public:
void _setCallbackInfo(PyObject* self, PyObject* _class); void _setCallbackInfo(PyObject* self, PyObject* _class);
void SetBestSize(const wxSize& size);
void base_DoMoveWindow(int x, int y, int width, int height); void base_DoMoveWindow(int x, int y, int width, int height);
void base_DoSetSize(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_AddChild(wxWindow* child);
void base_RemoveChild(wxWindow* child); void base_RemoveChild(wxWindow* child);
bool base_ShouldInheritColours(); bool base_ShouldInheritColours() const ;
void base_ApplyParentThemeBackground(const wxColour& c); void base_ApplyParentThemeBackground(const wxColour& c);
wxVisualAttributes base_GetDefaultAttributes();
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -332,6 +343,7 @@ public:
const wxString& name = wxPyPanelNameStr) const wxString& name = wxPyPanelNameStr)
: wxScrolledWindow(parent, id, pos, size, style, name) {} : wxScrolledWindow(parent, id, pos, size, style, name) {}
void SetBestSize(const wxSize& size) { wxScrolledWindow::SetBestSize(size); }
DEC_PYCALLBACK_VOID_INT4(DoMoveWindow); DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
DEC_PYCALLBACK_VOID_INT5(DoSetSize); DEC_PYCALLBACK_VOID_INT5(DoSetSize);
@@ -357,8 +369,9 @@ public:
DEC_PYCALLBACK_VOID_WXWINBASE(AddChild); DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild); DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
DEC_PYCALLBACK_BOOL_(ShouldInheritColours); DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground); DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground);
DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
PYPRIVATE; 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, AddChild);
IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, RemoveChild); 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__COLOUR(wxPyScrolledWindow, wxScrolledWindow, ApplyParentThemeBackground);
IMP_PYCALLBACK_VIZATTR_(wxPyScrolledWindow, wxScrolledWindow, GetDefaultAttributes);
%} %}
// And now the one for SWIG to see // And now the one for SWIG to see
@@ -410,6 +425,7 @@ public:
void _setCallbackInfo(PyObject* self, PyObject* _class); void _setCallbackInfo(PyObject* self, PyObject* _class);
void SetBestSize(const wxSize& size);
void base_DoMoveWindow(int x, int y, int width, int height); void base_DoMoveWindow(int x, int y, int width, int height);
void base_DoSetSize(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_AddChild(wxWindow* child);
void base_RemoveChild(wxWindow* child); void base_RemoveChild(wxWindow* child);
bool base_ShouldInheritColours(); bool base_ShouldInheritColours() const;
void base_ApplyParentThemeBackground(const wxColour& c); void base_ApplyParentThemeBackground(const wxColour& c);
wxVisualAttributes base_GetDefaultAttributes();
}; };