X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3379ed3789e405f874d9db757d95346f1d378795..cba5a276e4821a0ae7d1e7a435d6aab38baa0a9f:/include/wx/scrolwin.h diff --git a/include/wx/scrolwin.h b/include/wx/scrolwin.h index c85b28e568..e4c0a96763 100644 --- a/include/wx/scrolwin.h +++ b/include/wx/scrolwin.h @@ -14,6 +14,7 @@ #include "wx/window.h" +class WXDLLEXPORT wxScrollHelperEvtHandler; class WXDLLEXPORT wxTimer; // ---------------------------------------------------------------------------- @@ -43,6 +44,9 @@ public: int GetScrollPageSize(int orient) const; void SetScrollPageSize(int orient, int pageSize); + // Set the x, y scrolling increments. + void SetScrollRate( int xstep, int ystep ); + // get the size of one logical unit in physical ones virtual void GetScrollPixelsPerUnit(int *pixelsPerUnitX, int *pixelsPerUnitY) const; @@ -57,17 +61,32 @@ public: // Get the view start virtual void GetViewStart(int *x, int *y) const; - // Actual size in pixels when scrolling is taken into account - virtual void GetVirtualSize(int *x, int *y) const; - // Set the scale factor, used in PrepareDC void SetScale(double xs, double ys) { m_scaleX = xs; m_scaleY = ys; } double GetScaleX() const { return m_scaleX; } double GetScaleY() const { return m_scaleY; } // translate between scrolled and unscrolled coordinates - virtual void CalcScrolledPosition(int x, int y, int *xx, int *yy) const; - virtual void CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const; + void CalcScrolledPosition(int x, int y, int *xx, int *yy) const + { DoCalcScrolledPosition(x, y, xx, yy); } + wxPoint CalcScrolledPosition(const wxPoint& pt) const + { + wxPoint p2; + DoCalcScrolledPosition(pt.x, pt.y, &p2.x, &p2.y); + return p2; + } + + void CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const + { DoCalcUnscrolledPosition(x, y, xx, yy); } + wxPoint CalcUnscrolledPosition(const wxPoint& pt) const + { + wxPoint p2; + DoCalcUnscrolledPosition(pt.x, pt.y, &p2.x, &p2.y); + return p2; + } + + virtual void DoCalcScrolledPosition(int x, int y, int *xx, int *yy) const; + virtual void DoCalcUnscrolledPosition(int x, int y, int *xx, int *yy) const; // Adjust the scrollbars virtual void AdjustScrollbars(void); @@ -116,6 +135,15 @@ public: void HandleOnMouseWheel(wxMouseEvent& event); #endif // wxUSE_MOUSEWHEEL + // FIXME: this is needed for now for wxPlot compilation, should be removed + // once it is fixed! + void OnScroll(wxScrollWinEvent& event) { HandleOnScroll(event); } + +#if WXWIN_COMPATIBILITY_2_2 + // Compatibility only, don't use + void ViewStart(int *x, int *y) const { GetViewStart( x, y ); } +#endif // WXWIN_COMPATIBILITY_2_2 + protected: // get pointer to our scroll rect if we use it or NULL const wxRect *GetRect() const @@ -139,6 +167,13 @@ protected: *h = size.y; } + // change just the target window (unlike SetWindow which changes m_win as + // well) + void DoSetTargetWindow(wxWindow *target); + + // delete the event handler we installed + void DeleteEvtHandler(); + wxWindow *m_win, *m_targetWindow; @@ -164,6 +199,10 @@ protected: #if wxUSE_MOUSEWHEEL int m_wheelRotation; #endif // wxUSE_MOUSEWHEEL + + wxScrollHelperEvtHandler *m_handler; + + DECLARE_NO_COPY_CLASS(wxScrollHelper) }; // ---------------------------------------------------------------------------- @@ -198,3 +237,5 @@ protected: #endif // _WX_SCROLWIN_H_BASE_ + +// vi:sts=4:sw=4:et