]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/scrolwin.h
adding 10.4 build compatibility for osx cocoa, see #10361
[wxWidgets.git] / include / wx / gtk / scrolwin.h
index 246e8269f71a4c5c78efb89fc2d1798e907b810e..f95ef798e2971bc39ad04868541d61894a57985e 100644 (file)
 // 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(GtkRange* range,
                            int pixelsPerLine,
                            int winSize,
                            int virtSize,
+                           int *pos,
                            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,
-                  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_