X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..19e30148e18cc99296b26503c155e5cef59045f4:/include/wx/scrolwin.h diff --git a/include/wx/scrolwin.h b/include/wx/scrolwin.h index 154e7286c0..2986a6c9c4 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; // ---------------------------------------------------------------------------- @@ -66,8 +67,26 @@ public: 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); @@ -112,7 +131,13 @@ public: void HandleOnChar(wxKeyEvent& event); void HandleOnMouseEnter(wxMouseEvent& event); void HandleOnMouseLeave(wxMouseEvent& event); +#if wxUSE_MOUSEWHEEL 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); } protected: // get pointer to our scroll rect if we use it or NULL @@ -137,6 +162,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; @@ -158,13 +190,19 @@ protected: double m_scaleX; double m_scaleY; + +#if wxUSE_MOUSEWHEEL + int m_wheelRotation; +#endif // wxUSE_MOUSEWHEEL + + wxScrollHelperEvtHandler *m_handler; }; // ---------------------------------------------------------------------------- // wxScrolledWindow: a wxWindow which knows how to scroll // ---------------------------------------------------------------------------- -#ifdef __WXGTK__ +#if defined(__WXGTK__) && !defined(__WXUNIVERSAL__) #include "wx/gtk/scrolwin.h" #else // !wxGTK #include "wx/generic/scrolwin.h"