X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/af9fe8874f221bdfbc584836c39263f9d8854b4b..75f7af39d12e17eecf807ca65bffd19adce581ca:/include/wx/vscroll.h diff --git a/include/wx/vscroll.h b/include/wx/vscroll.h index 58b693f1e2..a48faef6e3 100644 --- a/include/wx/vscroll.h +++ b/include/wx/vscroll.h @@ -62,7 +62,7 @@ public: // just as with the ctor above, wxVSCROLL style is always used, there is no // need to specify it bool Create(wxWindow *parent, - wxWindowID id, + wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, @@ -90,6 +90,21 @@ public: virtual bool ScrollLines(int lines); virtual bool ScrollPages(int pages); + // redraw the specified line + void RefreshLine(size_t line); + + // redraw all lines in the specified range (inclusive) + void RefreshLines(size_t from, size_t to); + + // return the item at the specified (in physical coordinates) position or. + + // wxNOT_FOUND if none, i.e. if it is below the last item + int HitTest(wxCoord x, wxCoord y) const; + int HitTest(const wxPoint& pt) const { return HitTest(pt.x, pt.y); } + + // recalculate all our parameters and redisplay all lines + virtual void RefreshAll(); + // accessors // --------- @@ -104,8 +119,12 @@ public: // get the last currently visible line size_t GetLastVisibleLine() const { return m_lineFirst + m_nVisible - 1; } + // is this line currently visible? + bool IsVisible(size_t line) const + { return line >= m_lineFirst && line <= GetLastVisibleLine(); } -//protected: + +protected: // this function must be overridden in the derived class and it should // return the height of the given line in pixels virtual wxCoord OnGetLineHeight(size_t n) const = 0; @@ -125,14 +144,14 @@ public: // usual virtual void OnGetLinesHint(size_t lineMin, size_t lineMax) const { } -protected: + // the event handlers void OnSize(wxSizeEvent& event); void OnScroll(wxScrollWinEvent& event); // find the index of the line we need to show at the top of the window such - // that the last line shown is the given one - size_t FindFirstFromBottom(size_t lineLast); + // that the last (fully or partially) visible line is the given one + size_t FindFirstFromBottom(size_t lineLast, bool fullyVisible = false); // get the total height of the lines between lineMin (inclusive) and // lineMax (exclusive)