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) {}
 
  65     void SetBestSize(const wxSize& size) { wxWindow::SetBestSize(size); }
 
  67     bool DoEraseBackground(wxDC* dc) {
 
  69         return wxWindow::DoEraseBackground(dc->GetHDC());
 
  71         dc->SetBackground(wxBrush(GetBackgroundColour()));
 
  77     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
 
  78     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
 
  79     DEC_PYCALLBACK_VOID_INTINT(DoSetClientSize);
 
  80     DEC_PYCALLBACK_VOID_INTINT(DoSetVirtualSize);
 
  82     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetSize);
 
  83     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetClientSize);
 
  84     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetPosition);
 
  86     DEC_PYCALLBACK_SIZE_const(DoGetVirtualSize);
 
  87     DEC_PYCALLBACK_SIZE_const(DoGetBestSize);
 
  89     DEC_PYCALLBACK__(InitDialog);
 
  90     DEC_PYCALLBACK_BOOL_(TransferDataFromWindow);
 
  91     DEC_PYCALLBACK_BOOL_(TransferDataToWindow);
 
  92     DEC_PYCALLBACK_BOOL_(Validate);
 
  94     DEC_PYCALLBACK_BOOL_const(AcceptsFocus);
 
  95     DEC_PYCALLBACK_BOOL_const(AcceptsFocusFromKeyboard);
 
  96     DEC_PYCALLBACK_SIZE_const(GetMaxSize);
 
  98     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
 
  99     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
 101     DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
 
 102     DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
 
 104     DEC_PYCALLBACK_BOOL_(HasTransparentBackground);
 
 106     DEC_PYCALLBACK_VOID_(OnInternalIdle);
 
 111 IMPLEMENT_DYNAMIC_CLASS(wxPyWindow, wxWindow);
 
 113 IMP_PYCALLBACK_VOID_INT4(wxPyWindow, wxWindow, DoMoveWindow);
 
 114 IMP_PYCALLBACK_VOID_INT5(wxPyWindow, wxWindow, DoSetSize);
 
 115 IMP_PYCALLBACK_VOID_INTINT(wxPyWindow, wxWindow, DoSetClientSize);
 
 116 IMP_PYCALLBACK_VOID_INTINT(wxPyWindow, wxWindow, DoSetVirtualSize);
 
 118 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyWindow, wxWindow, DoGetSize);
 
 119 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyWindow, wxWindow, DoGetClientSize);
 
 120 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyWindow, wxWindow, DoGetPosition);
 
 122 IMP_PYCALLBACK_SIZE_const(wxPyWindow, wxWindow, DoGetVirtualSize);
 
 123 IMP_PYCALLBACK_SIZE_const(wxPyWindow, wxWindow, DoGetBestSize);
 
 125 IMP_PYCALLBACK__(wxPyWindow, wxWindow, InitDialog);
 
 126 IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, TransferDataFromWindow);
 
 127 IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, TransferDataToWindow);
 
 128 IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, Validate);
 
 130 IMP_PYCALLBACK_BOOL_const(wxPyWindow, wxWindow, AcceptsFocus);
 
 131 IMP_PYCALLBACK_BOOL_const(wxPyWindow, wxWindow, AcceptsFocusFromKeyboard);
 
 132 IMP_PYCALLBACK_SIZE_const(wxPyWindow, wxWindow, GetMaxSize);
 
 134 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWindow, wxWindow, AddChild);
 
 135 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWindow, wxWindow, RemoveChild);
 
 137 IMP_PYCALLBACK_BOOL_const(wxPyWindow, wxWindow, ShouldInheritColours);
 
 138 IMP_PYCALLBACK_VIZATTR_(wxPyWindow, wxWindow, GetDefaultAttributes);
 
 140 IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, HasTransparentBackground);
 
 142 IMP_PYCALLBACK_VOID_(wxPyWindow, wxWindow, OnInternalIdle);
 
 145 // And now the one for SWIG to see
 
 146 MustHaveApp(wxPyWindow);
 
 147 class wxPyWindow : public wxWindow
 
 150     %pythonAppend wxPyWindow         "self._setOORInfo(self); self._setCallbackInfo(self, PyWindow)"
 
 151     %pythonAppend wxPyWindow()       ""
 
 153     wxPyWindow(wxWindow* parent, const wxWindowID id=-1,
 
 154                const wxPoint& pos = wxDefaultPosition,
 
 155                const wxSize& size = wxDefaultSize,
 
 157                const wxString& name = wxPyPanelNameStr);
 
 159     %RenameCtor(PrePyWindow, wxPyWindow());
 
 161     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 163     void SetBestSize(const wxSize& size);
 
 164     bool DoEraseBackground(wxDC* dc);
 
 166     void DoMoveWindow(int x, int y, int width, int height);
 
 167     void DoSetSize(int x, int y, int width, int height,
 
 168                    int sizeFlags = wxSIZE_AUTO);
 
 169     void DoSetClientSize(int width, int height);
 
 170     void DoSetVirtualSize( int x, int y );
 
 173         void, DoGetSize( int *OUTPUT, int *OUTPUT ) const,
 
 174         "DoGetSize() -> (width, height)");
 
 176         void, DoGetClientSize( int *OUTPUT, int *OUTPUT ) const,
 
 177         "DoGetClientSize() -> (width, height)");
 
 179         void, DoGetPosition( int *OUTPUT, int *OUTPUT ) const,
 
 180         "DoGetPosition() -> (x,y)");
 
 182     wxSize DoGetVirtualSize() const;
 
 183     wxSize DoGetBestSize() const;
 
 186     bool TransferDataToWindow();
 
 187     bool TransferDataFromWindow();
 
 190     bool AcceptsFocus() const;
 
 191     bool AcceptsFocusFromKeyboard() const;
 
 192     wxSize GetMaxSize() const;
 
 194     void AddChild(wxWindow* child);
 
 195     void RemoveChild(wxWindow* child);
 
 197     bool ShouldInheritColours() const;
 
 198     wxVisualAttributes GetDefaultAttributes();
 
 200     void OnInternalIdle();
 
 202     %MAKE_BASE_FUNC(PyWindow, DoMoveWindow);
 
 203     %MAKE_BASE_FUNC(PyWindow, DoSetSize);
 
 204     %MAKE_BASE_FUNC(PyWindow, DoSetClientSize);
 
 205     %MAKE_BASE_FUNC(PyWindow, DoSetVirtualSize);
 
 206     %MAKE_BASE_FUNC(PyWindow, DoGetSize);
 
 207     %MAKE_BASE_FUNC(PyWindow, DoGetClientSize);
 
 208     %MAKE_BASE_FUNC(PyWindow, DoGetPosition);
 
 209     %MAKE_BASE_FUNC(PyWindow, DoGetVirtualSize);
 
 210     %MAKE_BASE_FUNC(PyWindow, DoGetBestSize);
 
 211     %MAKE_BASE_FUNC(PyWindow, InitDialog);
 
 212     %MAKE_BASE_FUNC(PyWindow, TransferDataToWindow);
 
 213     %MAKE_BASE_FUNC(PyWindow, TransferDataFromWindow);
 
 214     %MAKE_BASE_FUNC(PyWindow, Validate);
 
 215     %MAKE_BASE_FUNC(PyWindow, AcceptsFocus);
 
 216     %MAKE_BASE_FUNC(PyWindow, AcceptsFocusFromKeyboard);
 
 217     %MAKE_BASE_FUNC(PyWindow, GetMaxSize);
 
 218     %MAKE_BASE_FUNC(PyWindow, AddChild);
 
 219     %MAKE_BASE_FUNC(PyWindow, RemoveChild);
 
 220     %MAKE_BASE_FUNC(PyWindow, ShouldInheritColours);
 
 221     %MAKE_BASE_FUNC(PyWindow, GetDefaultAttributes);
 
 222     %MAKE_BASE_FUNC(PyWindow, OnInternalIdle);
 
 226 //---------------------------------------------------------------------------
 
 227 // Do the same thing for wxControl
 
 229 // ** See _pycontrol.i, it was moved there because of dependency on wxControl
 
 232 //---------------------------------------------------------------------------
 
 235 %{ // C++ version of Python aware wxPanel
 
 236 class wxPyPanel : public wxPanel
 
 238     DECLARE_DYNAMIC_CLASS(wxPyPanel)
 
 240     wxPyPanel() : wxPanel() {}
 
 241     wxPyPanel(wxWindow* parent, const wxWindowID id,
 
 242                const wxPoint& pos = wxDefaultPosition,
 
 243                const wxSize& size = wxDefaultSize,
 
 245                const wxString& name = wxPyPanelNameStr)
 
 246         : wxPanel(parent, id, pos, size, style, name) {}
 
 248     void SetBestSize(const wxSize& size) { wxPanel::SetBestSize(size); }
 
 249     bool DoEraseBackground(wxDC* dc) {
 
 251         return wxWindow::DoEraseBackground(dc->GetHDC());
 
 253         dc->SetBackground(wxBrush(GetBackgroundColour()));
 
 260     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
 
 261     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
 
 262     DEC_PYCALLBACK_VOID_INTINT(DoSetClientSize);
 
 263     DEC_PYCALLBACK_VOID_INTINT(DoSetVirtualSize);
 
 265     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetSize);
 
 266     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetClientSize);
 
 267     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetPosition);
 
 269     DEC_PYCALLBACK_SIZE_const(DoGetVirtualSize);
 
 270     DEC_PYCALLBACK_SIZE_const(DoGetBestSize);
 
 272     DEC_PYCALLBACK__(InitDialog);
 
 273     DEC_PYCALLBACK_BOOL_(TransferDataFromWindow);
 
 274     DEC_PYCALLBACK_BOOL_(TransferDataToWindow);
 
 275     DEC_PYCALLBACK_BOOL_(Validate);
 
 277     DEC_PYCALLBACK_BOOL_const(AcceptsFocus);
 
 278     DEC_PYCALLBACK_BOOL_const(AcceptsFocusFromKeyboard);
 
 279     DEC_PYCALLBACK_SIZE_const(GetMaxSize);
 
 281     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
 
 282     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
 284     DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
 
 285     DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
 
 287     DEC_PYCALLBACK_BOOL_(HasTransparentBackground);
 
 289     DEC_PYCALLBACK_VOID_(OnInternalIdle);
 
 294 IMPLEMENT_DYNAMIC_CLASS(wxPyPanel, wxPanel);
 
 296 IMP_PYCALLBACK_VOID_INT4(wxPyPanel, wxPanel, DoMoveWindow);
 
 297 IMP_PYCALLBACK_VOID_INT5(wxPyPanel, wxPanel, DoSetSize);
 
 298 IMP_PYCALLBACK_VOID_INTINT(wxPyPanel, wxPanel, DoSetClientSize);
 
 299 IMP_PYCALLBACK_VOID_INTINT(wxPyPanel, wxPanel, DoSetVirtualSize);
 
 301 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyPanel, wxPanel, DoGetSize);
 
 302 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyPanel, wxPanel, DoGetClientSize);
 
 303 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyPanel, wxPanel, DoGetPosition);
 
 305 IMP_PYCALLBACK_SIZE_const(wxPyPanel, wxPanel, DoGetVirtualSize);
 
 306 IMP_PYCALLBACK_SIZE_const(wxPyPanel, wxPanel, DoGetBestSize);
 
 308 IMP_PYCALLBACK__(wxPyPanel, wxPanel, InitDialog);
 
 309 IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, TransferDataFromWindow);
 
 310 IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, TransferDataToWindow);
 
 311 IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, Validate);
 
 313 IMP_PYCALLBACK_BOOL_const(wxPyPanel, wxPanel, AcceptsFocus);
 
 314 IMP_PYCALLBACK_BOOL_const(wxPyPanel, wxPanel, AcceptsFocusFromKeyboard);
 
 315 IMP_PYCALLBACK_SIZE_const(wxPyPanel, wxPanel, GetMaxSize);
 
 317 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyPanel, wxPanel, AddChild);
 
 318 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyPanel, wxPanel, RemoveChild);
 
 320 IMP_PYCALLBACK_BOOL_const(wxPyPanel, wxPanel, ShouldInheritColours);
 
 321 IMP_PYCALLBACK_VIZATTR_(wxPyPanel, wxPanel, GetDefaultAttributes);
 
 323 IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, HasTransparentBackground);
 
 325 IMP_PYCALLBACK_VOID_(wxPyPanel, wxPanel, OnInternalIdle);
 
 328 // And now the one for SWIG to see
 
 329 MustHaveApp(wxPyPanel);
 
 330 class wxPyPanel : public wxPanel
 
 333     %pythonAppend wxPyPanel         "self._setOORInfo(self); self._setCallbackInfo(self, PyPanel)"
 
 334     %pythonAppend wxPyPanel()       ""
 
 336     wxPyPanel(wxWindow* parent, const wxWindowID id=-1,
 
 337                const wxPoint& pos = wxDefaultPosition,
 
 338                const wxSize& size = wxDefaultSize,
 
 340                const wxString& name = wxPyPanelNameStr);
 
 342     %RenameCtor(PrePyPanel,  wxPyPanel());
 
 344     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 346     void SetBestSize(const wxSize& size);
 
 347     bool DoEraseBackground(wxDC* dc);
 
 349     void DoMoveWindow(int x, int y, int width, int height);
 
 350     void DoSetSize(int x, int y, int width, int height,
 
 351                         int sizeFlags = wxSIZE_AUTO);
 
 352     void DoSetClientSize(int width, int height);
 
 353     void DoSetVirtualSize( int x, int y );
 
 356         void, DoGetSize( int *OUTPUT, int *OUTPUT ) const,
 
 357         "DoGetSize() -> (width, height)");
 
 359         void, DoGetClientSize( int *OUTPUT, int *OUTPUT ) const,
 
 360         "DoGetClientSize() -> (width, height)");
 
 362         void, DoGetPosition( int *OUTPUT, int *OUTPUT ) const,
 
 363         "DoGetPosition() -> (x,y)");
 
 365     wxSize DoGetVirtualSize() const;
 
 366     wxSize DoGetBestSize() const;
 
 369     bool TransferDataToWindow();
 
 370     bool TransferDataFromWindow();
 
 373     bool AcceptsFocus() const;
 
 374     bool AcceptsFocusFromKeyboard() const;
 
 375     wxSize GetMaxSize() const;
 
 377     void AddChild(wxWindow* child);
 
 378     void RemoveChild(wxWindow* child);
 
 380     bool ShouldInheritColours() const ;
 
 381     wxVisualAttributes GetDefaultAttributes();
 
 383     void OnInternalIdle();
 
 385     %MAKE_BASE_FUNC(PyPanel, DoMoveWindow);
 
 386     %MAKE_BASE_FUNC(PyPanel, DoSetSize);
 
 387     %MAKE_BASE_FUNC(PyPanel, DoSetClientSize);
 
 388     %MAKE_BASE_FUNC(PyPanel, DoSetVirtualSize);
 
 389     %MAKE_BASE_FUNC(PyPanel, DoGetSize);
 
 390     %MAKE_BASE_FUNC(PyPanel, DoGetClientSize);
 
 391     %MAKE_BASE_FUNC(PyPanel, DoGetPosition);
 
 392     %MAKE_BASE_FUNC(PyPanel, DoGetVirtualSize);
 
 393     %MAKE_BASE_FUNC(PyPanel, DoGetBestSize);
 
 394     %MAKE_BASE_FUNC(PyPanel, InitDialog);
 
 395     %MAKE_BASE_FUNC(PyPanel, TransferDataToWindow);
 
 396     %MAKE_BASE_FUNC(PyPanel, TransferDataFromWindow);
 
 397     %MAKE_BASE_FUNC(PyPanel, Validate);
 
 398     %MAKE_BASE_FUNC(PyPanel, AcceptsFocus);
 
 399     %MAKE_BASE_FUNC(PyPanel, AcceptsFocusFromKeyboard);
 
 400     %MAKE_BASE_FUNC(PyPanel, GetMaxSize);
 
 401     %MAKE_BASE_FUNC(PyPanel, AddChild);
 
 402     %MAKE_BASE_FUNC(PyPanel, RemoveChild);
 
 403     %MAKE_BASE_FUNC(PyPanel, ShouldInheritColours);
 
 404     %MAKE_BASE_FUNC(PyPanel, GetDefaultAttributes);
 
 405     %MAKE_BASE_FUNC(PyPanel, OnInternalIdle);
 
 408 //---------------------------------------------------------------------------
 
 409 // and for wxScrolledWindow
 
 411 %{ // C++ version of Python aware wxScrolledWindow
 
 412 class wxPyScrolledWindow : public wxScrolledWindow
 
 414     DECLARE_DYNAMIC_CLASS(wxPyScrolledWindow)
 
 416     wxPyScrolledWindow() : wxScrolledWindow() {}
 
 417     wxPyScrolledWindow(wxWindow* parent, const wxWindowID id,
 
 418                const wxPoint& pos = wxDefaultPosition,
 
 419                const wxSize& size = wxDefaultSize,
 
 421                const wxString& name = wxPyPanelNameStr)
 
 422         : wxScrolledWindow(parent, id, pos, size, style, name) {}
 
 424     void SetBestSize(const wxSize& size) { wxScrolledWindow::SetBestSize(size); }
 
 425     bool DoEraseBackground(wxDC* dc) {
 
 427         return wxWindow::DoEraseBackground(dc->GetHDC());
 
 429         dc->SetBackground(wxBrush(GetBackgroundColour()));
 
 435     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
 
 436     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
 
 437     DEC_PYCALLBACK_VOID_INTINT(DoSetClientSize);
 
 438     DEC_PYCALLBACK_VOID_INTINT(DoSetVirtualSize);
 
 440     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetSize);
 
 441     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetClientSize);
 
 442     DEC_PYCALLBACK_VOID_INTPINTP_const(DoGetPosition);
 
 444     DEC_PYCALLBACK_SIZE_const(DoGetVirtualSize);
 
 445     DEC_PYCALLBACK_SIZE_const(DoGetBestSize);
 
 447     DEC_PYCALLBACK__(InitDialog);
 
 448     DEC_PYCALLBACK_BOOL_(TransferDataFromWindow);
 
 449     DEC_PYCALLBACK_BOOL_(TransferDataToWindow);
 
 450     DEC_PYCALLBACK_BOOL_(Validate);
 
 452     DEC_PYCALLBACK_BOOL_const(AcceptsFocus);
 
 453     DEC_PYCALLBACK_BOOL_const(AcceptsFocusFromKeyboard);
 
 454     DEC_PYCALLBACK_SIZE_const(GetMaxSize);
 
 456     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
 
 457     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
 459     DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
 
 460     DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
 
 462     DEC_PYCALLBACK_BOOL_(HasTransparentBackground);
 
 464     DEC_PYCALLBACK_VOID_(OnInternalIdle);
 
 469 IMPLEMENT_DYNAMIC_CLASS(wxPyScrolledWindow, wxScrolledWindow);
 
 471 IMP_PYCALLBACK_VOID_INT4(wxPyScrolledWindow, wxScrolledWindow, DoMoveWindow);
 
 472 IMP_PYCALLBACK_VOID_INT5(wxPyScrolledWindow, wxScrolledWindow, DoSetSize);
 
 473 IMP_PYCALLBACK_VOID_INTINT(wxPyScrolledWindow, wxScrolledWindow, DoSetClientSize);
 
 474 IMP_PYCALLBACK_VOID_INTINT(wxPyScrolledWindow, wxScrolledWindow, DoSetVirtualSize);
 
 476 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyScrolledWindow, wxScrolledWindow, DoGetSize);
 
 477 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyScrolledWindow, wxScrolledWindow, DoGetClientSize);
 
 478 IMP_PYCALLBACK_VOID_INTPINTP_const(wxPyScrolledWindow, wxScrolledWindow, DoGetPosition);
 
 480 IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, DoGetVirtualSize);
 
 481 IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, DoGetBestSize);
 
 483 IMP_PYCALLBACK__(wxPyScrolledWindow, wxScrolledWindow, InitDialog);
 
 484 IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, TransferDataFromWindow);
 
 485 IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, TransferDataToWindow);
 
 486 IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, Validate);
 
 488 IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, AcceptsFocus);
 
 489 IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, AcceptsFocusFromKeyboard);
 
 490 IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, GetMaxSize);
 
 492 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, AddChild);
 
 493 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, RemoveChild);
 
 495 IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, ShouldInheritColours);
 
 496 IMP_PYCALLBACK_VIZATTR_(wxPyScrolledWindow, wxScrolledWindow, GetDefaultAttributes);
 
 498 IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, HasTransparentBackground);
 
 500 IMP_PYCALLBACK_VOID_(wxPyScrolledWindow, wxScrolledWindow, OnInternalIdle);
 
 503 // And now the one for SWIG to see
 
 504 MustHaveApp(wxPyScrolledWindow);
 
 505 class wxPyScrolledWindow : public wxScrolledWindow
 
 508     %pythonAppend wxPyScrolledWindow         "self._setOORInfo(self); self._setCallbackInfo(self, PyScrolledWindow)"
 
 509     %pythonAppend wxPyScrolledWindow()       ""
 
 511     wxPyScrolledWindow(wxWindow* parent, const wxWindowID id=-1,
 
 512                const wxPoint& pos = wxDefaultPosition,
 
 513                const wxSize& size = wxDefaultSize,
 
 515                const wxString& name = wxPyPanelNameStr);
 
 517     %RenameCtor(PrePyScrolledWindow,  wxPyScrolledWindow());
 
 519     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 521     void SetBestSize(const wxSize& size);
 
 522     bool DoEraseBackground(wxDC* dc);
 
 524     void DoMoveWindow(int x, int y, int width, int height);
 
 525     void DoSetSize(int x, int y, int width, int height,
 
 526                         int sizeFlags = wxSIZE_AUTO);
 
 527     void DoSetClientSize(int width, int height);
 
 528     void DoSetVirtualSize( int x, int y );
 
 531         void, DoGetSize( int *OUTPUT, int *OUTPUT ) const,
 
 532         "DoGetSize() -> (width, height)");
 
 534         void, DoGetClientSize( int *OUTPUT, int *OUTPUT ) const,
 
 535         "DoGetClientSize() -> (width, height)");
 
 537         void, DoGetPosition( int *OUTPUT, int *OUTPUT ) const,
 
 538         "DoGetPosition() -> (x,y)");
 
 540     wxSize DoGetVirtualSize() const;
 
 541     wxSize DoGetBestSize() const;
 
 544     bool TransferDataToWindow();
 
 545     bool TransferDataFromWindow();
 
 548     bool AcceptsFocus() const;
 
 549     bool AcceptsFocusFromKeyboard() const;
 
 550     wxSize GetMaxSize() const;
 
 552     void AddChild(wxWindow* child);
 
 553     void RemoveChild(wxWindow* child);
 
 555     bool ShouldInheritColours() const;
 
 556     wxVisualAttributes GetDefaultAttributes();
 
 558     void OnInternalIdle();
 
 560     %MAKE_BASE_FUNC(PyScrolledWindow, DoMoveWindow);
 
 561     %MAKE_BASE_FUNC(PyScrolledWindow, DoSetSize);
 
 562     %MAKE_BASE_FUNC(PyScrolledWindow, DoSetClientSize);
 
 563     %MAKE_BASE_FUNC(PyScrolledWindow, DoSetVirtualSize);
 
 564     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetSize);
 
 565     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetClientSize);
 
 566     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetPosition);
 
 567     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetVirtualSize);
 
 568     %MAKE_BASE_FUNC(PyScrolledWindow, DoGetBestSize);
 
 569     %MAKE_BASE_FUNC(PyScrolledWindow, InitDialog);
 
 570     %MAKE_BASE_FUNC(PyScrolledWindow, TransferDataToWindow);
 
 571     %MAKE_BASE_FUNC(PyScrolledWindow, TransferDataFromWindow);
 
 572     %MAKE_BASE_FUNC(PyScrolledWindow, Validate);
 
 573     %MAKE_BASE_FUNC(PyScrolledWindow, AcceptsFocus);
 
 574     %MAKE_BASE_FUNC(PyScrolledWindow, AcceptsFocusFromKeyboard);
 
 575     %MAKE_BASE_FUNC(PyScrolledWindow, GetMaxSize);
 
 576     %MAKE_BASE_FUNC(PyScrolledWindow, AddChild);
 
 577     %MAKE_BASE_FUNC(PyScrolledWindow, RemoveChild);
 
 578     %MAKE_BASE_FUNC(PyScrolledWindow, ShouldInheritColours);
 
 579     %MAKE_BASE_FUNC(PyScrolledWindow, GetDefaultAttributes);
 
 580     %MAKE_BASE_FUNC(PyScrolledWindow, OnInternalIdle);
 
 585 //---------------------------------------------------------------------------
 
 586 //---------------------------------------------------------------------------