// wxScrolledWindow
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxScrollHelperNative : public wxScrollHelper
+class WXDLLIMPEXP_CORE wxScrollHelper : public wxScrollHelperBase
{
public:
// default ctor doesn't do anything
- wxScrollHelperNative(wxWindow *win) : wxScrollHelper(win) { }
+ wxScrollHelper(wxWindow *win) : wxScrollHelperBase(win) { }
+ // implement the base class methods
virtual void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY,
int noUnitsX, int noUnitsY,
int xPos = 0, int yPos = 0,
bool noRefresh = false);
virtual void AdjustScrollbars();
- virtual void Scroll(int x, int y);
protected:
+ virtual void DoScroll(int x, int y);
+ virtual void DoShowScrollbars(wxScrollbarVisibility horz,
+ wxScrollbarVisibility vert);
+
+private:
// this does (each) half of AdjustScrollbars() work
- void DoAdjustScrollbar(GtkAdjustment *adj,
+ void DoAdjustScrollbar(GtkRange* range,
int pixelsPerLine,
int winSize,
int virtSize,
int *lines,
int *linesPerPage);
+ void DoAdjustHScrollbar(int winSize, int virtSize)
+ {
+ DoAdjustScrollbar
+ (
+ m_win->m_scrollBar[wxWindow::ScrollDir_Horz],
+ m_xScrollPixelsPerLine, winSize, virtSize,
+ &m_xScrollPosition, &m_xScrollLines, &m_xScrollLinesPerPage
+ );
+ }
+
+ void DoAdjustVScrollbar(int winSize, int virtSize)
+ {
+ DoAdjustScrollbar
+ (
+ m_win->m_scrollBar[wxWindow::ScrollDir_Vert],
+ m_yScrollPixelsPerLine, winSize, virtSize,
+ &m_yScrollPosition, &m_yScrollLines, &m_yScrollLinesPerPage
+ );
+ }
+
// and this does the same for Scroll()
- void DoScroll(int orient,
- GtkAdjustment *adj,
- int pos,
- int pixelsPerLine,
- int *posOld);
+ void DoScrollOneDir(int orient,
+ int pos,
+ int pixelsPerLine,
+ int *posOld);
private:
- DECLARE_NO_COPY_CLASS(wxScrollHelperNative)
+ DECLARE_NO_COPY_CLASS(wxScrollHelper)
};
#endif // _WX_GTK_SCROLLWIN_H_