1 /////////////////////////////////////////////////////////////////////////////
 
   3 // Purpose:     SWIG interface for wxPyWindow, and etc.  These classes support
 
   4 //              overriding many of wxWindow's virtual methods in Python derived
 
   9 // Created:     2-June-1998
 
  11 // Copyright:   (c) 2003 by Total Control Software
 
  12 // Licence:     wxWindows license
 
  13 /////////////////////////////////////////////////////////////////////////////
 
  18 //---------------------------------------------------------------------------
 
  21 // TODO:  Redo these with SWIG directors?
 
  23 // TODO:  Which (if any?) of these should be done also???
 
  37 //      GetClientAreaOrigin
 
  40 //      SetBackgroundColour
 
  44 //      SetForegroundColour
 
  46 //      SetVirtualSizeHints
 
  50 //---------------------------------------------------------------------------
 
  52 %{ // C++ version of Python aware wxWindow
 
  53 class wxPyWindow : public wxWindow
 
  55     DECLARE_DYNAMIC_CLASS(wxPyWindow)
 
  57     wxPyWindow() : wxWindow() {}
 
  58     wxPyWindow(wxWindow* parent, const wxWindowID id,
 
  59                const wxPoint& pos = wxDefaultPosition,
 
  60                const wxSize& size = wxDefaultSize,
 
  62                const wxString& name = wxPyPanelNameStr)
 
  63         : wxWindow(parent, id, pos, size, style, name) {}
 
  66     bool DoEraseBackground(wxDC* dc) {
 
  68         return wxWindow::DoEraseBackground(dc->GetHDC());
 
  70         dc->SetBackground(wxBrush(GetBackgroundColour()));
 
  76     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
 
  77     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
 
  78     DEC_PYCALLBACK_VOID_INTINT(DoSetClientSize);
 
  79     DEC_PYCALLBACK_VOID_INTINT(DoSetVirtualSize);
 
  81     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetSize);
 
  82     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetClientSize);
 
  83     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetPosition);
 
  85     DEC_PYCALLBACK_SIZE_const(DoGetVirtualSize);
 
  86     DEC_PYCALLBACK_SIZE_const(DoGetBestSize);
 
  88     DEC_PYCALLBACK__(InitDialog);
 
  89     DEC_PYCALLBACK_BOOL_(TransferDataFromWindow);
 
  90     DEC_PYCALLBACK_BOOL_(TransferDataToWindow);
 
  91     DEC_PYCALLBACK_BOOL_(Validate);
 
  93     DEC_PYCALLBACK_BOOL_const(AcceptsFocus);
 
  94     DEC_PYCALLBACK_BOOL_const(AcceptsFocusFromKeyboard);
 
  95     DEC_PYCALLBACK_SIZE_const(GetMaxSize);
 
  97     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
 
  98     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
 100     DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
 
 101     DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
 
 103     DEC_PYCALLBACK_BOOL_(HasTransparentBackground);
 
 105     DEC_PYCALLBACK_VOID_(OnInternalIdle);
 
 110 IMPLEMENT_DYNAMIC_CLASS(wxPyWindow, wxWindow);
 
 112 IMP_PYCALLBACK_VOID_INT4(wxPyWindow, wxWindow, DoMoveWindow);
 
 113 IMP_PYCALLBACK_VOID_INT5(wxPyWindow, wxWindow, DoSetSize);
 
 114 IMP_PYCALLBACK_VOID_INTINT(wxPyWindow, wxWindow, DoSetClientSize);
 
 115 IMP_PYCALLBACK_VOID_INTINT(wxPyWindow, wxWindow, DoSetVirtualSize);
 
 117 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyWindow, wxWindow, DoGetSize);
 
 118 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyWindow, wxWindow, DoGetClientSize);
 
 119 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyWindow, wxWindow, DoGetPosition);
 
 121 IMP_PYCALLBACK_SIZE_const(wxPyWindow, wxWindow, DoGetVirtualSize);
 
 122 IMP_PYCALLBACK_SIZE_const(wxPyWindow, wxWindow, DoGetBestSize);
 
 124 IMP_PYCALLBACK__(wxPyWindow, wxWindow, InitDialog);
 
 125 IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, TransferDataFromWindow);
 
 126 IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, TransferDataToWindow);
 
 127 IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, Validate);
 
 129 IMP_PYCALLBACK_BOOL_const(wxPyWindow, wxWindow, AcceptsFocus);
 
 130 IMP_PYCALLBACK_BOOL_const(wxPyWindow, wxWindow, AcceptsFocusFromKeyboard);
 
 131 IMP_PYCALLBACK_SIZE_const(wxPyWindow, wxWindow, GetMaxSize);
 
 133 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWindow, wxWindow, AddChild);
 
 134 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWindow, wxWindow, RemoveChild);
 
 136 IMP_PYCALLBACK_BOOL_const(wxPyWindow, wxWindow, ShouldInheritColours);
 
 137 IMP_PYCALLBACK_VIZATTR_(wxPyWindow, wxWindow, GetDefaultAttributes);
 
 139 IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, HasTransparentBackground);
 
 141 IMP_PYCALLBACK_VOID_(wxPyWindow, wxWindow, OnInternalIdle);
 
 144 // And now the one for SWIG to see
 
 145 MustHaveApp(wxPyWindow);
 
 146 class wxPyWindow : public wxWindow
 
 149     %pythonAppend wxPyWindow         "self._setOORInfo(self);" setCallbackInfo(PyWindow)
 
 150     %pythonAppend wxPyWindow()       ""
 
 152     wxPyWindow(wxWindow* parent, const wxWindowID id=-1,
 
 153                const wxPoint& pos = wxDefaultPosition,
 
 154                const wxSize& size = wxDefaultSize,
 
 156                const wxString& name = wxPyPanelNameStr);
 
 158     %RenameCtor(PrePyWindow, wxPyWindow());
 
 160     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 162     %pythoncode { SetBestSize = wx.Window.SetInitialSize }
 
 163     bool DoEraseBackground(wxDC* dc);
 
 165     void DoMoveWindow(int x, int y, int width, int height);
 
 166     void DoSetSize(int x, int y, int width, int height,
 
 167                    int sizeFlags = wxSIZE_AUTO);
 
 168     void DoSetClientSize(int width, int height);
 
 169     void DoSetVirtualSize( int x, int y );
 
 172         void, DoGetSize( int *OUTPUT, int *OUTPUT ) const,
 
 173         "DoGetSize() -> (width, height)");
 
 175         void, DoGetClientSize( int *OUTPUT, int *OUTPUT ) const,
 
 176         "DoGetClientSize() -> (width, height)");
 
 178         void, DoGetPosition( int *OUTPUT, int *OUTPUT ) const,
 
 179         "DoGetPosition() -> (x,y)");
 
 181     wxSize DoGetVirtualSize() const;
 
 182     wxSize DoGetBestSize() const;
 
 185     bool TransferDataToWindow();
 
 186     bool TransferDataFromWindow();
 
 189     bool AcceptsFocus() const;
 
 190     bool AcceptsFocusFromKeyboard() const;
 
 191     wxSize GetMaxSize() const;
 
 193     void AddChild(wxWindow* child);
 
 194     void RemoveChild(wxWindow* child);
 
 196     bool ShouldInheritColours() const;
 
 197     wxVisualAttributes GetDefaultAttributes();
 
 199     void OnInternalIdle();
 
 201     %MAKE_BASE_FUNC(PyWindow, DoMoveWindow);
 
 202     %MAKE_BASE_FUNC(PyWindow, DoSetSize);
 
 203     %MAKE_BASE_FUNC(PyWindow, DoSetClientSize);
 
 204     %MAKE_BASE_FUNC(PyWindow, DoSetVirtualSize);
 
 205     %MAKE_BASE_FUNC(PyWindow, DoGetSize);
 
 206     %MAKE_BASE_FUNC(PyWindow, DoGetClientSize);
 
 207     %MAKE_BASE_FUNC(PyWindow, DoGetPosition);
 
 208     %MAKE_BASE_FUNC(PyWindow, DoGetVirtualSize);
 
 209     %MAKE_BASE_FUNC(PyWindow, DoGetBestSize);
 
 210     %MAKE_BASE_FUNC(PyWindow, InitDialog);
 
 211     %MAKE_BASE_FUNC(PyWindow, TransferDataToWindow);
 
 212     %MAKE_BASE_FUNC(PyWindow, TransferDataFromWindow);
 
 213     %MAKE_BASE_FUNC(PyWindow, Validate);
 
 214     %MAKE_BASE_FUNC(PyWindow, AcceptsFocus);
 
 215     %MAKE_BASE_FUNC(PyWindow, AcceptsFocusFromKeyboard);
 
 216     %MAKE_BASE_FUNC(PyWindow, GetMaxSize);
 
 217     %MAKE_BASE_FUNC(PyWindow, AddChild);
 
 218     %MAKE_BASE_FUNC(PyWindow, RemoveChild);
 
 219     %MAKE_BASE_FUNC(PyWindow, ShouldInheritColours);
 
 220     %MAKE_BASE_FUNC(PyWindow, GetDefaultAttributes);
 
 221     %MAKE_BASE_FUNC(PyWindow, OnInternalIdle);
 
 225 //---------------------------------------------------------------------------
 
 226 // Do the same thing for wxControl
 
 228 // ** See _pycontrol.i, it was moved there because of dependency on wxControl
 
 231 //---------------------------------------------------------------------------
 
 234 %{ // C++ version of Python aware wxPanel
 
 235 class wxPyPanel : public wxPanel
 
 237     DECLARE_DYNAMIC_CLASS(wxPyPanel)
 
 239     wxPyPanel() : wxPanel() {}
 
 240     wxPyPanel(wxWindow* parent, const wxWindowID id,
 
 241                const wxPoint& pos = wxDefaultPosition,
 
 242                const wxSize& size = wxDefaultSize,
 
 244                const wxString& name = wxPyPanelNameStr)
 
 245         : wxPanel(parent, id, pos, size, style, name) {}
 
 247     bool DoEraseBackground(wxDC* dc) {
 
 249         return wxWindow::DoEraseBackground(dc->GetHDC());
 
 251         dc->SetBackground(wxBrush(GetBackgroundColour()));
 
 258     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
 
 259     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
 
 260     DEC_PYCALLBACK_VOID_INTINT(DoSetClientSize);
 
 261     DEC_PYCALLBACK_VOID_INTINT(DoSetVirtualSize);
 
 263     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetSize);
 
 264     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetClientSize);
 
 265     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetPosition);
 
 267     DEC_PYCALLBACK_SIZE_const(DoGetVirtualSize);
 
 268     DEC_PYCALLBACK_SIZE_const(DoGetBestSize);
 
 270     DEC_PYCALLBACK__(InitDialog);
 
 271     DEC_PYCALLBACK_BOOL_(TransferDataFromWindow);
 
 272     DEC_PYCALLBACK_BOOL_(TransferDataToWindow);
 
 273     DEC_PYCALLBACK_BOOL_(Validate);
 
 275     DEC_PYCALLBACK_BOOL_const(AcceptsFocus);
 
 276     DEC_PYCALLBACK_BOOL_const(AcceptsFocusFromKeyboard);
 
 277     DEC_PYCALLBACK_SIZE_const(GetMaxSize);
 
 279     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
 
 280     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
 282     DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
 
 283     DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
 
 285     DEC_PYCALLBACK_BOOL_(HasTransparentBackground);
 
 287     DEC_PYCALLBACK_VOID_(OnInternalIdle);
 
 292 IMPLEMENT_DYNAMIC_CLASS(wxPyPanel, wxPanel);
 
 294 IMP_PYCALLBACK_VOID_INT4(wxPyPanel, wxPanel, DoMoveWindow);
 
 295 IMP_PYCALLBACK_VOID_INT5(wxPyPanel, wxPanel, DoSetSize);
 
 296 IMP_PYCALLBACK_VOID_INTINT(wxPyPanel, wxPanel, DoSetClientSize);
 
 297 IMP_PYCALLBACK_VOID_INTINT(wxPyPanel, wxPanel, DoSetVirtualSize);
 
 299 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyPanel, wxPanel, DoGetSize);
 
 300 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyPanel, wxPanel, DoGetClientSize);
 
 301 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyPanel, wxPanel, DoGetPosition);
 
 303 IMP_PYCALLBACK_SIZE_const(wxPyPanel, wxPanel, DoGetVirtualSize);
 
 304 IMP_PYCALLBACK_SIZE_const(wxPyPanel, wxPanel, DoGetBestSize);
 
 306 IMP_PYCALLBACK__(wxPyPanel, wxPanel, InitDialog);
 
 307 IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, TransferDataFromWindow);
 
 308 IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, TransferDataToWindow);
 
 309 IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, Validate);
 
 311 IMP_PYCALLBACK_BOOL_const(wxPyPanel, wxPanel, AcceptsFocus);
 
 312 IMP_PYCALLBACK_BOOL_const(wxPyPanel, wxPanel, AcceptsFocusFromKeyboard);
 
 313 IMP_PYCALLBACK_SIZE_const(wxPyPanel, wxPanel, GetMaxSize);
 
 315 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyPanel, wxPanel, AddChild);
 
 316 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyPanel, wxPanel, RemoveChild);
 
 318 IMP_PYCALLBACK_BOOL_const(wxPyPanel, wxPanel, ShouldInheritColours);
 
 319 IMP_PYCALLBACK_VIZATTR_(wxPyPanel, wxPanel, GetDefaultAttributes);
 
 321 IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, HasTransparentBackground);
 
 323 IMP_PYCALLBACK_VOID_(wxPyPanel, wxPanel, OnInternalIdle);
 
 326 // And now the one for SWIG to see
 
 327 MustHaveApp(wxPyPanel);
 
 328 class wxPyPanel : public wxPanel
 
 331     %pythonAppend wxPyPanel         "self._setOORInfo(self);" setCallbackInfo(PyPanel)
 
 332     %pythonAppend wxPyPanel()       ""
 
 334     wxPyPanel(wxWindow* parent, const wxWindowID id=-1,
 
 335                const wxPoint& pos = wxDefaultPosition,
 
 336                const wxSize& size = wxDefaultSize,
 
 338                const wxString& name = wxPyPanelNameStr);
 
 340     %RenameCtor(PrePyPanel,  wxPyPanel());
 
 342     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 344     %pythoncode { SetBestSize = wx.Window.SetInitialSize }
 
 345     bool DoEraseBackground(wxDC* dc);
 
 347     void DoMoveWindow(int x, int y, int width, int height);
 
 348     void DoSetSize(int x, int y, int width, int height,
 
 349                         int sizeFlags = wxSIZE_AUTO);
 
 350     void DoSetClientSize(int width, int height);
 
 351     void DoSetVirtualSize( int x, int y );
 
 354         void, DoGetSize( int *OUTPUT, int *OUTPUT ) const,
 
 355         "DoGetSize() -> (width, height)");
 
 357         void, DoGetClientSize( int *OUTPUT, int *OUTPUT ) const,
 
 358         "DoGetClientSize() -> (width, height)");
 
 360         void, DoGetPosition( int *OUTPUT, int *OUTPUT ) const,
 
 361         "DoGetPosition() -> (x,y)");
 
 363     wxSize DoGetVirtualSize() const;
 
 364     wxSize DoGetBestSize() const;
 
 367     bool TransferDataToWindow();
 
 368     bool TransferDataFromWindow();
 
 371     bool AcceptsFocus() const;
 
 372     bool AcceptsFocusFromKeyboard() const;
 
 373     wxSize GetMaxSize() const;
 
 375     void AddChild(wxWindow* child);
 
 376     void RemoveChild(wxWindow* child);
 
 378     bool ShouldInheritColours() const ;
 
 379     wxVisualAttributes GetDefaultAttributes();
 
 381     void OnInternalIdle();
 
 383     %MAKE_BASE_FUNC(PyPanel, DoMoveWindow);
 
 384     %MAKE_BASE_FUNC(PyPanel, DoSetSize);
 
 385     %MAKE_BASE_FUNC(PyPanel, DoSetClientSize);
 
 386     %MAKE_BASE_FUNC(PyPanel, DoSetVirtualSize);
 
 387     %MAKE_BASE_FUNC(PyPanel, DoGetSize);
 
 388     %MAKE_BASE_FUNC(PyPanel, DoGetClientSize);
 
 389     %MAKE_BASE_FUNC(PyPanel, DoGetPosition);
 
 390     %MAKE_BASE_FUNC(PyPanel, DoGetVirtualSize);
 
 391     %MAKE_BASE_FUNC(PyPanel, DoGetBestSize);
 
 392     %MAKE_BASE_FUNC(PyPanel, InitDialog);
 
 393     %MAKE_BASE_FUNC(PyPanel, TransferDataToWindow);
 
 394     %MAKE_BASE_FUNC(PyPanel, TransferDataFromWindow);
 
 395     %MAKE_BASE_FUNC(PyPanel, Validate);
 
 396     %MAKE_BASE_FUNC(PyPanel, AcceptsFocus);
 
 397     %MAKE_BASE_FUNC(PyPanel, AcceptsFocusFromKeyboard);
 
 398     %MAKE_BASE_FUNC(PyPanel, GetMaxSize);
 
 399     %MAKE_BASE_FUNC(PyPanel, AddChild);
 
 400     %MAKE_BASE_FUNC(PyPanel, RemoveChild);
 
 401     %MAKE_BASE_FUNC(PyPanel, ShouldInheritColours);
 
 402     %MAKE_BASE_FUNC(PyPanel, GetDefaultAttributes);
 
 403     %MAKE_BASE_FUNC(PyPanel, OnInternalIdle);
 
 406 //---------------------------------------------------------------------------
 
 407 // and for wxScrolledWindow
 
 409 %{ // C++ version of Python aware wxScrolledWindow
 
 410 class wxPyScrolledWindow : public wxScrolledWindow
 
 412     DECLARE_DYNAMIC_CLASS(wxPyScrolledWindow)
 
 414     wxPyScrolledWindow() : wxScrolledWindow() {}
 
 415     wxPyScrolledWindow(wxWindow* parent, const wxWindowID id,
 
 416                const wxPoint& pos = wxDefaultPosition,
 
 417                const wxSize& size = wxDefaultSize,
 
 419                const wxString& name = wxPyPanelNameStr)
 
 420         : wxScrolledWindow(parent, id, pos, size, style, name) {}
 
 422     bool DoEraseBackground(wxDC* dc) {
 
 424         return wxWindow::DoEraseBackground(dc->GetHDC());
 
 426         dc->SetBackground(wxBrush(GetBackgroundColour()));
 
 432     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
 
 433     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
 
 434     DEC_PYCALLBACK_VOID_INTINT(DoSetClientSize);
 
 435     DEC_PYCALLBACK_VOID_INTINT(DoSetVirtualSize);
 
 437     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetSize);
 
 438     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetClientSize);
 
 439     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetPosition);
 
 441     DEC_PYCALLBACK_SIZE_const(DoGetVirtualSize);
 
 442     DEC_PYCALLBACK_SIZE_const(DoGetBestSize);
 
 444     DEC_PYCALLBACK__(InitDialog);
 
 445     DEC_PYCALLBACK_BOOL_(TransferDataFromWindow);
 
 446     DEC_PYCALLBACK_BOOL_(TransferDataToWindow);
 
 447     DEC_PYCALLBACK_BOOL_(Validate);
 
 449     DEC_PYCALLBACK_BOOL_const(AcceptsFocus);
 
 450     DEC_PYCALLBACK_BOOL_const(AcceptsFocusFromKeyboard);
 
 451     DEC_PYCALLBACK_SIZE_const(GetMaxSize);
 
 453     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
 
 454     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
 456     DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
 
 457     DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
 
 459     DEC_PYCALLBACK_BOOL_(HasTransparentBackground);
 
 461     DEC_PYCALLBACK_VOID_(OnInternalIdle);
 
 466 IMPLEMENT_DYNAMIC_CLASS(wxPyScrolledWindow, wxScrolledWindow);
 
 468 IMP_PYCALLBACK_VOID_INT4(wxPyScrolledWindow, wxScrolledWindow, DoMoveWindow);
 
 469 IMP_PYCALLBACK_VOID_INT5(wxPyScrolledWindow, wxScrolledWindow, DoSetSize);
 
 470 IMP_PYCALLBACK_VOID_INTINT(wxPyScrolledWindow, wxScrolledWindow, DoSetClientSize);
 
 471 IMP_PYCALLBACK_VOID_INTINT(wxPyScrolledWindow, wxScrolledWindow, DoSetVirtualSize);
 
 473 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyScrolledWindow, wxScrolledWindow, DoGetSize);
 
 474 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyScrolledWindow, wxScrolledWindow, DoGetClientSize);
 
 475 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyScrolledWindow, wxScrolledWindow, DoGetPosition);
 
 477 IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, DoGetVirtualSize);
 
 478 IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, DoGetBestSize);
 
 480 IMP_PYCALLBACK__(wxPyScrolledWindow, wxScrolledWindow, InitDialog);
 
 481 IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, TransferDataFromWindow);
 
 482 IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, TransferDataToWindow);
 
 483 IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, Validate);
 
 485 IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, AcceptsFocus);
 
 486 IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, AcceptsFocusFromKeyboard);
 
 487 IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, GetMaxSize);
 
 489 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, AddChild);
 
 490 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, RemoveChild);
 
 492 IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, ShouldInheritColours);
 
 493 IMP_PYCALLBACK_VIZATTR_(wxPyScrolledWindow, wxScrolledWindow, GetDefaultAttributes);
 
 495 IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, HasTransparentBackground);
 
 497 IMP_PYCALLBACK_VOID_(wxPyScrolledWindow, wxScrolledWindow, OnInternalIdle);
 
 500 // And now the one for SWIG to see
 
 501 MustHaveApp(wxPyScrolledWindow);
 
 502 class wxPyScrolledWindow : public wxScrolledWindow
 
 505     %pythonAppend wxPyScrolledWindow         "self._setOORInfo(self);" setCallbackInfo(PyScrolledWindow)
 
 506     %pythonAppend wxPyScrolledWindow()       ""
 
 508     wxPyScrolledWindow(wxWindow* parent, const wxWindowID id=-1,
 
 509                const wxPoint& pos = wxDefaultPosition,
 
 510                const wxSize& size = wxDefaultSize,
 
 512                const wxString& name = wxPyPanelNameStr);
 
 514     %RenameCtor(PrePyScrolledWindow,  wxPyScrolledWindow());
 
 516     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 518     %pythoncode { SetBestSize = wx.Window.SetInitialSize }
 
 519     bool DoEraseBackground(wxDC* dc);
 
 521     void DoMoveWindow(int x, int y, int width, int height);
 
 522     void DoSetSize(int x, int y, int width, int height,
 
 523                         int sizeFlags = wxSIZE_AUTO);
 
 524     void DoSetClientSize(int width, int height);
 
 525     void DoSetVirtualSize( int x, int y );
 
 528         void, DoGetSize( int *OUTPUT, int *OUTPUT ) const,
 
 529         "DoGetSize() -> (width, height)");
 
 531         void, DoGetClientSize( int *OUTPUT, int *OUTPUT ) const,
 
 532         "DoGetClientSize() -> (width, height)");
 
 534         void, DoGetPosition( int *OUTPUT, int *OUTPUT ) const,
 
 535         "DoGetPosition() -> (x,y)");
 
 537     wxSize DoGetVirtualSize() const;
 
 538     wxSize DoGetBestSize() const;
 
 541     bool TransferDataToWindow();
 
 542     bool TransferDataFromWindow();
 
 545     bool AcceptsFocus() const;
 
 546     bool AcceptsFocusFromKeyboard() const;
 
 547     wxSize GetMaxSize() const;
 
 549     void AddChild(wxWindow* child);
 
 550     void RemoveChild(wxWindow* child);
 
 552     bool ShouldInheritColours() const;
 
 553     wxVisualAttributes GetDefaultAttributes();
 
 555     void OnInternalIdle();
 
 557     %MAKE_BASE_FUNC(PyScrolledWindow, DoMoveWindow);
 
 558     %MAKE_BASE_FUNC(PyScrolledWindow, DoSetSize);
 
 559     %MAKE_BASE_FUNC(PyScrolledWindow, DoSetClientSize);
 
 560     %MAKE_BASE_FUNC(PyScrolledWindow, DoSetVirtualSize);
 
 561     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetSize);
 
 562     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetClientSize);
 
 563     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetPosition);
 
 564     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetVirtualSize);
 
 565     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetBestSize);
 
 566     %MAKE_BASE_FUNC(PyScrolledWindow, InitDialog);
 
 567     %MAKE_BASE_FUNC(PyScrolledWindow, TransferDataToWindow);
 
 568     %MAKE_BASE_FUNC(PyScrolledWindow, TransferDataFromWindow);
 
 569     %MAKE_BASE_FUNC(PyScrolledWindow, Validate);
 
 570     %MAKE_BASE_FUNC(PyScrolledWindow, AcceptsFocus);
 
 571     %MAKE_BASE_FUNC(PyScrolledWindow, AcceptsFocusFromKeyboard);
 
 572     %MAKE_BASE_FUNC(PyScrolledWindow, GetMaxSize);
 
 573     %MAKE_BASE_FUNC(PyScrolledWindow, AddChild);
 
 574     %MAKE_BASE_FUNC(PyScrolledWindow, RemoveChild);
 
 575     %MAKE_BASE_FUNC(PyScrolledWindow, ShouldInheritColours);
 
 576     %MAKE_BASE_FUNC(PyScrolledWindow, GetDefaultAttributes);
 
 577     %MAKE_BASE_FUNC(PyScrolledWindow, OnInternalIdle);
 
 582 //---------------------------------------------------------------------------
 
 583 //---------------------------------------------------------------------------