X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/322913cef36b156a4a9722ce6a68845e3219e615..3a9becbd5439254a77e7dbc0278d80117a397264:/wxPython/src/_pycontrol.i diff --git a/wxPython/src/_pycontrol.i b/wxPython/src/_pycontrol.i index 868e9b5143..add81220a4 100644 --- a/wxPython/src/_pycontrol.i +++ b/wxPython/src/_pycontrol.i @@ -17,7 +17,6 @@ %newgroup -// TODO: Virtualize ShouldInheritColours //--------------------------------------------------------------------------- @@ -35,6 +34,17 @@ public: const wxString& name = wxPyControlNameStr) : wxControl(parent, id, pos, size, style, validator, name) {} + void SetBestSize(const wxSize& size) { wxControl::SetBestSize(size); } + + bool DoEraseBackground(wxDC* dc) { +#ifdef __WXMSW__ + return wxWindow::DoEraseBackground(dc->GetHDC()); +#else + dc->SetBackground(wxBrush(GetBackgroundColour())); + dc->Clear(); + return true; +#endif + } DEC_PYCALLBACK_VOID_INT4(DoMoveWindow); DEC_PYCALLBACK_VOID_INT5(DoSetSize); @@ -60,6 +70,11 @@ public: DEC_PYCALLBACK_VOID_WXWINBASE(AddChild); DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild); + DEC_PYCALLBACK_BOOL_const(ShouldInheritColours); + DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes); + + DEC_PYCALLBACK_BOOL_(HasTransparentBackground); + PYPRIVATE; }; @@ -89,26 +104,34 @@ IMP_PYCALLBACK_SIZE_const(wxPyControl, wxControl, GetMaxSize); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyControl, wxControl, AddChild); IMP_PYCALLBACK_VOID_WXWINBASE(wxPyControl, wxControl, RemoveChild); -%} +IMP_PYCALLBACK_BOOL_const(wxPyControl, wxControl, ShouldInheritColours); +IMP_PYCALLBACK_VIZATTR_(wxPyControl, wxControl, GetDefaultAttributes); + +IMP_PYCALLBACK_BOOL_(wxPyControl, wxControl, HasTransparentBackground); + %} // And now the one for SWIG to see +MustHaveApp(wxPyControl); class wxPyControl : public wxControl { public: - %addtofunc wxPyControl "self._setOORInfo(self); self._setCallbackInfo(self, PyControl)" + %pythonAppend wxPyControl "self._setOORInfo(self); self._setCallbackInfo(self, PyControl)" + %pythonAppend wxPyControl() "" - wxPyControl(wxWindow* parent, const wxWindowID id, + wxPyControl(wxWindow* parent, const wxWindowID id=-1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator=wxDefaultValidator, const wxString& name = wxPyControlNameStr); + %RenameCtor(PrePyControl, wxPyControl()); + void _setCallbackInfo(PyObject* self, PyObject* _class); - %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyControl)" - %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" - + void SetBestSize(const wxSize& size); + bool DoEraseBackground(wxDC* dc); + 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); @@ -139,6 +162,9 @@ public: void base_AddChild(wxWindow* child); void base_RemoveChild(wxWindow* child); + + bool base_ShouldInheritColours() const; + wxVisualAttributes base_GetDefaultAttributes(); };