X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/93e8d870e8fd77635190dc2188534dca64731fc0..15cae9eb9e277bcc3c63b3c5c20defe981660c79:/src/generic/listctrl.cpp diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 0c3c8e593b..aeee3f956f 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -47,7 +47,16 @@ #include "wx/textctrl.h" #endif -#include "wx/listctrl.h" +// Include wx/listctrl.h (with wxListView declaration) +// only when wxGenericListCtrl is the only +// implementation, and therefore wxListView needs +// to be derived from the 'generic' version. + +#if defined(__WIN32__) && !defined(__WXUNIVERSAL__) + #include "wx/generic/listctrl.h" +#else + #include "wx/listctrl.h" +#endif #if defined(__WXGTK__) #include @@ -143,7 +152,7 @@ public: void SetItemCount(size_t count) { m_count = count; } // special case of SetItemCount(0) - void Clear() { m_itemsSel.Clear(); m_count = 0; m_defaultState = false; } + void Clear() { m_itemsSel.Clear(); m_count = 0; m_defaultState = FALSE; } // must be called when a new item is inserted/added void OnItemAdd(size_t item) { wxFAIL_MSG( _T("TODO") ); } @@ -2663,22 +2672,24 @@ void wxListMainWindow::RefreshAfter( size_t lineFrom ) { if ( HasFlag(wxLC_REPORT) ) { - size_t visibleFrom; - GetVisibleLinesRange(&visibleFrom, NULL); + size_t visibleFrom, visibleTo; + GetVisibleLinesRange(&visibleFrom, &visibleTo); if ( lineFrom < visibleFrom ) lineFrom = visibleFrom; + else if ( lineFrom > visibleTo ) + return; wxRect rect; rect.x = 0; rect.y = GetLineY(lineFrom); + CalcScrolledPosition( rect.x, rect.y, &rect.x, &rect.y ); wxSize size = GetClientSize(); rect.width = size.x; // refresh till the bottom of the window rect.height = size.y - rect.y; - CalcScrolledPosition( rect.x, rect.y, &rect.x, &rect.y ); RefreshRect( rect ); } else // !report