added RefreshLines()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
e135f09367
commit
ae0f022346
@ -93,6 +93,9 @@ public:
|
|||||||
// redraw the specified line
|
// redraw the specified line
|
||||||
void RefreshLine(size_t 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
|
// return the item at the specified (in physical coordinates) position or
|
||||||
// wxNOT_FOUND if none, i.e. if it is below the last item
|
// wxNOT_FOUND if none, i.e. if it is below the last item
|
||||||
int HitTest(wxCoord x, wxCoord y) const;
|
int HitTest(wxCoord x, wxCoord y) const;
|
||||||
|
@ -202,6 +202,35 @@ void wxVScrolledWindow::RefreshLine(size_t line)
|
|||||||
RefreshRect(rect);
|
RefreshRect(rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxVScrolledWindow::RefreshLines(size_t from, size_t to)
|
||||||
|
{
|
||||||
|
wxASSERT_MSG( from <= to, _T("RefreshLines(): empty range") );
|
||||||
|
|
||||||
|
// clump the range to just the visible lines -- it is useless to refresh
|
||||||
|
// the other ones
|
||||||
|
if ( from < GetFirstVisibleLine() )
|
||||||
|
from = GetFirstVisibleLine();
|
||||||
|
|
||||||
|
if ( to > GetLastVisibleLine() )
|
||||||
|
to = GetLastVisibleLine();
|
||||||
|
|
||||||
|
// calculate the rect occupied by these lines on screen
|
||||||
|
wxRect rect;
|
||||||
|
rect.width = GetClientSize().x;
|
||||||
|
for ( size_t nBefore = GetFirstVisibleLine(); nBefore < from; nBefore++ )
|
||||||
|
{
|
||||||
|
rect.y += OnGetLineHeight(nBefore);
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( size_t nBetween = from; nBetween < to; nBetween++ )
|
||||||
|
{
|
||||||
|
rect.height += OnGetLineHeight(nBetween);
|
||||||
|
}
|
||||||
|
|
||||||
|
// do refresh it
|
||||||
|
RefreshRect(rect);
|
||||||
|
}
|
||||||
|
|
||||||
void wxVScrolledWindow::RefreshAll()
|
void wxVScrolledWindow::RefreshAll()
|
||||||
{
|
{
|
||||||
UpdateScrollbar();
|
UpdateScrollbar();
|
||||||
|
Loading…
Reference in New Issue
Block a user