X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b31989e20882186006e2b2c4b8062ba8394b539d..ec53826c06f6a4de6e9d0c6dedead881458736fc:/src/generic/listctrl.cpp diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 6cfc4bec2c..aeee3f956f 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -47,8 +47,16 @@ #include "wx/textctrl.h" #endif -#include "wx/imaglist.h" -#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 @@ -144,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; } + 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") ); } @@ -2664,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 @@ -4511,7 +4521,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxGenericListCtrl, wxControl) #if !defined(__WIN32__) -IMPLEMENT_DYNAMIC_CLASS(wxListView, wxGenericListCtrl) +IMPLEMENT_DYNAMIC_CLASS(wxListView, wxListCtrl) IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxNotifyEvent) #endif