X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4d2962b127e734c37095f72a578457bea84c89da..5172800e29f9c4b3f4dfa9737f80114a61e55f1f:/wxPython/src/_pycontrol.i diff --git a/wxPython/src/_pycontrol.i b/wxPython/src/_pycontrol.i index 2037153d70..8658b597f6 100644 --- a/wxPython/src/_pycontrol.i +++ b/wxPython/src/_pycontrol.i @@ -17,7 +17,6 @@ %newgroup -// TODO: Virtualize ShouldInheritColours //--------------------------------------------------------------------------- @@ -36,6 +35,16 @@ public: : wxControl(parent, id, pos, size, style, validator, name) {} + 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); DEC_PYCALLBACK_VOID_INTINT(DoSetClientSize); @@ -60,8 +69,13 @@ public: DEC_PYCALLBACK_VOID_WXWINBASE(AddChild); DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild); - DEC_PYCALLBACK_BOOL_(ShouldInheritColours); + DEC_PYCALLBACK_BOOL_const(ShouldInheritColours); + DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes); + DEC_PYCALLBACK_BOOL_(HasTransparentBackground); + + DEC_PYCALLBACK_VOID_(OnInternalIdle); + PYPRIVATE; }; @@ -91,57 +105,94 @@ 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_VIZATTR_(wxPyControl, wxControl, GetDefaultAttributes); + +IMP_PYCALLBACK_BOOL_(wxPyControl, wxControl, HasTransparentBackground); + +IMP_PYCALLBACK_VOID_(wxPyControl, wxControl, OnInternalIdle); %} // And now the one for SWIG to see +MustHaveApp(wxPyControl); class wxPyControl : public wxControl { public: %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 base_DoMoveWindow(int x, int y, int width, int height); - void base_DoSetSize(int x, int y, int width, int height, + %pythoncode { SetBestSize = wx.Window.SetInitialSize } + bool DoEraseBackground(wxDC* dc); + + 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 DoSetClientSize(int width, int height); + void DoSetVirtualSize( int x, int y ); DocDeclA( - void, base_DoGetSize( int *OUTPUT, int *OUTPUT ) const, - "base_DoGetSize() -> (width, height)"); + void, DoGetSize( int *OUTPUT, int *OUTPUT ) const, + "DoGetSize() -> (width, height)"); DocDeclA( - void, base_DoGetClientSize( int *OUTPUT, int *OUTPUT ) const, - "base_DoGetClientSize() -> (width, height)"); + void, DoGetClientSize( int *OUTPUT, int *OUTPUT ) const, + "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, 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(PyScrolledWindow, DoMoveWindow); + %MAKE_BASE_FUNC(PyScrolledWindow, DoSetSize); + %MAKE_BASE_FUNC(PyScrolledWindow, DoSetClientSize); + %MAKE_BASE_FUNC(PyScrolledWindow, DoSetVirtualSize); + %MAKE_BASE_FUNC(PyScrolledWindow, DoGetSize); + %MAKE_BASE_FUNC(PyScrolledWindow, DoGetClientSize); + %MAKE_BASE_FUNC(PyScrolledWindow, DoGetPosition); + %MAKE_BASE_FUNC(PyScrolledWindow, DoGetVirtualSize); + %MAKE_BASE_FUNC(PyScrolledWindow, DoGetBestSize); + %MAKE_BASE_FUNC(PyScrolledWindow, InitDialog); + %MAKE_BASE_FUNC(PyScrolledWindow, TransferDataToWindow); + %MAKE_BASE_FUNC(PyScrolledWindow, TransferDataFromWindow); + %MAKE_BASE_FUNC(PyScrolledWindow, Validate); + %MAKE_BASE_FUNC(PyScrolledWindow, AcceptsFocus); + %MAKE_BASE_FUNC(PyScrolledWindow, AcceptsFocusFromKeyboard); + %MAKE_BASE_FUNC(PyScrolledWindow, GetMaxSize); + %MAKE_BASE_FUNC(PyScrolledWindow, AddChild); + %MAKE_BASE_FUNC(PyScrolledWindow, RemoveChild); + %MAKE_BASE_FUNC(PyScrolledWindow, ShouldInheritColours); + %MAKE_BASE_FUNC(PyScrolledWindow, GetDefaultAttributes); + %MAKE_BASE_FUNC(PyScrolledWindow, OnInternalIdle); - void base_AddChild(wxWindow* child); - void base_RemoveChild(wxWindow* child); };