+// Now define this class for SWIG
+
+// In the name of this class, "H" stands for "horizontal" because it can be
+// used for scrolling columns of variable widths. It is not necessary to know
+// the widths of all columns in advance -- only those which are shown on the
+// screen need to be measured.
+
+// This is a generalization of the wxScrolledWindow class which can be only
+// used when all columns have the same width. It lacks some other
+// wxScrolledWindow features however, notably it can't scroll only a rectangle
+// of the window and not its entire client area.
+
+MustHaveApp(wxPyHScrolledWindow);
+
+%rename(HScrolledWindow) wxPyHScrolledWindow;
+
+class wxPyHScrolledWindow : public wxPanel,
+ public wxVarHScrollHelper
+{
+public:
+ %pythonAppend wxPyHScrolledWindow "self._setOORInfo(self);" setCallbackInfo(HScrolledWindow)
+ %pythonAppend wxPyHScrolledWindow() ""
+
+
+ wxPyHScrolledWindow(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxPyPanelNameStr);
+
+ %RenameCtor(PreHScrolledWindow, wxPyHScrolledWindow());
+
+ void _setCallbackInfo(PyObject* self, PyObject* _class);
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxPyPanelNameStr);
+
+
+ wxCoord GetColumnsWidth(size_t columnMin, size_t columnMax) const;
+ wxCoord EstimateTotalWidth() const;
+};
+
+
+
+//---------------------------------------------------------------------------
+// wxHVScrolledWindow
+
+
+
+// First, the C++ version that can redirect to overridden Python methods
+%{
+class wxPyHVScrolledWindow : public wxHVScrolledWindow
+{
+ DECLARE_ABSTRACT_CLASS(wxPyHScrolledWindow)
+public:
+ wxPyHVScrolledWindow() : wxHVScrolledWindow() {}
+
+ wxPyHVScrolledWindow(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxPyPanelNameStr)
+ : wxHVScrolledWindow(parent, id, pos, size, style, name)
+ {}
+
+ // Overridable virtuals
+ DEC_PYCALLBACK_COORD_SIZET_constpure(OnGetRowHeight);
+ DEC_PYCALLBACK_VOID_SIZETSIZET_const(OnGetRowsHeightHint);
+ DEC_PYCALLBACK_COORD_const(EstimateTotalHeight);
+
+ DEC_PYCALLBACK_COORD_SIZET_constpure(OnGetColumnWidth);
+ DEC_PYCALLBACK_VOID_SIZETSIZET_const(OnGetColumnsWidthHint);
+ DEC_PYCALLBACK_COORD_const(EstimateTotalWidth);
+
+ wxCoord GetRowsHeight(size_t lineMin, size_t lineMax) const
+ { return wxHVScrolledWindow::GetRowsHeight(lineMin, lineMax); }
+
+ wxCoord GetColumnsWidth(size_t columnMin, size_t columnMax) const
+ { return wxHVScrolledWindow::GetColumnsWidth(columnMin, columnMax); }
+
+ PYPRIVATE;
+};
+
+IMPLEMENT_ABSTRACT_CLASS(wxPyHVScrolledWindow, wxHVScrolledWindow);
+
+IMP_PYCALLBACK_COORD_SIZET_constpure(wxPyHVScrolledWindow, wxHVScrolledWindow, OnGetRowHeight);
+IMP_PYCALLBACK_VOID_SIZETSIZET_const(wxPyHVScrolledWindow, wxHVScrolledWindow, OnGetRowsHeightHint);
+IMP_PYCALLBACK_COORD_const (wxPyHVScrolledWindow, wxHVScrolledWindow, EstimateTotalHeight);
+
+IMP_PYCALLBACK_COORD_SIZET_constpure(wxPyHVScrolledWindow, wxHVScrolledWindow, OnGetColumnWidth);
+IMP_PYCALLBACK_VOID_SIZETSIZET_const(wxPyHVScrolledWindow, wxHVScrolledWindow, OnGetColumnsWidthHint);
+IMP_PYCALLBACK_COORD_const (wxPyHVScrolledWindow, wxHVScrolledWindow, EstimateTotalWidth);
+
+%}
+
+
+
+
+// Now define this class for SWIG
+
+// This window inherits all functionality of both vertical and horizontal
+// scrolled windows automatically handling everything needed to scroll both
+// axis simultaneously.
+
+MustHaveApp(wxPyHVScrolledWindow);
+
+%rename(HVScrolledWindow) wxPyHVScrolledWindow;
+
+class wxPyHVScrolledWindow : public wxPanel,
+ public wxVarHVScrollHelper
+{
+public:
+ %pythonAppend wxPyHVScrolledWindow "self._setOORInfo(self);" setCallbackInfo(HVScrolledWindow)
+ %pythonAppend wxPyHVScrolledWindow() ""
+
+
+ wxPyHVScrolledWindow(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxPyPanelNameStr);
+
+ %RenameCtor(PreHVScrolledWindow, wxPyHVScrolledWindow());
+
+ void _setCallbackInfo(PyObject* self, PyObject* _class);
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxPyPanelNameStr);
+
+
+ wxCoord GetRowsHeight(size_t lineMin, size_t lineMax) const;
+ wxCoord EstimateTotalHeight() const;
+
+ wxCoord GetColumnsWidth(size_t columnMin, size_t columnMax) const;
+ wxCoord EstimateTotalWidth() const;