]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/scrolwin.h
No real changes, just make wxWindow::CanScroll() virtual.
[wxWidgets.git] / include / wx / scrolwin.h
index c4bd4dfa933be325826fe097e8ba942346cac879..637d63b320c03f48f0fda1f204e295e7de5689c1 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     30.08.00
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     30.08.00
-// RCS-ID:      $Id$
 // Copyright:   (c) 2000 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) 2000 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -106,6 +105,10 @@ public:
     // Clear() is necessary. If false, the whole canvas is invalidated and a
     // Clear() is necessary. Disable for when the scroll increment is used to
     // actually scroll a non-constant distance
     // Clear() is necessary. If false, the whole canvas is invalidated and a
     // Clear() is necessary. Disable for when the scroll increment is used to
     // actually scroll a non-constant distance
+    //
+    // Notice that calling this method with a false argument doesn't disable
+    // scrolling the window in this direction, it just changes the mechanism by
+    // which it is implemented to not use wxWindow::ScrollWindow().
     virtual void EnableScrolling(bool x_scrolling, bool y_scrolling);
 
     // Disable use of keyboard keys for scrolling. By default cursor movement
     virtual void EnableScrolling(bool x_scrolling, bool y_scrolling);
 
     // Disable use of keyboard keys for scrolling. By default cursor movement
@@ -279,6 +282,10 @@ protected:
 
     wxTimer              *m_timerAutoScroll;
 
 
     wxTimer              *m_timerAutoScroll;
 
+    // The number of pixels to scroll in horizontal and vertical directions
+    // respectively.
+    //
+    // If 0, means that the scrolling in the given direction is disabled.
     int                   m_xScrollPixelsPerLine;
     int                   m_yScrollPixelsPerLine;
     int                   m_xScrollPosition;
     int                   m_xScrollPixelsPerLine;
     int                   m_yScrollPixelsPerLine;
     int                   m_xScrollPosition;
@@ -378,19 +385,32 @@ public:
         if ( !(style & (wxHSCROLL | wxVSCROLL)) )
             style |= wxHSCROLL | wxVSCROLL;
 
         if ( !(style & (wxHSCROLL | wxVSCROLL)) )
             style |= wxHSCROLL | wxVSCROLL;
 
+#ifdef __WXOSX__
+        bool retval = T::Create(parent, winid, pos, size, style, name);
+        if ( retval && (style & wxALWAYS_SHOW_SB) )
+            ShowScrollbars(wxSHOW_SB_ALWAYS, wxSHOW_SB_ALWAYS);
+        return retval;
+#else
         if ( style & wxALWAYS_SHOW_SB )
             ShowScrollbars(wxSHOW_SB_ALWAYS, wxSHOW_SB_ALWAYS);
 
         return T::Create(parent, winid, pos, size, style, name);
         if ( style & wxALWAYS_SHOW_SB )
             ShowScrollbars(wxSHOW_SB_ALWAYS, wxSHOW_SB_ALWAYS);
 
         return T::Create(parent, winid, pos, size, style, name);
+#endif
     }
 
     }
 
+#ifdef __WXMSW__
     // we need to return a special WM_GETDLGCODE value to process just the
     // arrows but let the other navigation characters through
     // we need to return a special WM_GETDLGCODE value to process just the
     // arrows but let the other navigation characters through
-#ifdef __WXMSW__
     virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
     {
         return FilterMSWWindowProc(nMsg, T::MSWWindowProc(nMsg, wParam, lParam));
     }
     virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
     {
         return FilterMSWWindowProc(nMsg, T::MSWWindowProc(nMsg, wParam, lParam));
     }
+
+    // Take into account the scroll origin.
+    virtual void MSWAdjustBrushOrg(int* xOrg, int* yOrg) const
+    {
+        CalcUnscrolledPosition(*xOrg, *yOrg, xOrg, yOrg);
+    }
 #endif // __WXMSW__
 
     WX_FORWARD_TO_SCROLL_HELPER()
 #endif // __WXMSW__
 
     WX_FORWARD_TO_SCROLL_HELPER()