X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad486020870c946fd553535041f8ea707efe656c..06d7b2176b51a5984f3e8e612888c71299526b6a:/src/generic/listctrl.cpp diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 837a290044..dd735d5f19 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -24,7 +24,6 @@ #if wxUSE_LISTCTRL #include "wx/listctrl.h" -#include "wx/generic/private/listctrl.h" #if ((!defined(__WXMSW__) && !(defined(__WXMAC__) && wxOSX_USE_CARBON)) || defined(__WXUNIVERSAL__)) // if we have a native version, its implementation file does all this @@ -49,6 +48,7 @@ #include "wx/imaglist.h" #include "wx/renderer.h" +#include "wx/generic/private/listctrl.h" #ifdef __WXMAC__ #include "wx/osx/private.h" @@ -2293,7 +2293,6 @@ void wxListMainWindow::OnRenameCancelled(size_t itemEdit) void wxListMainWindow::OnMouse( wxMouseEvent &event ) { - #ifdef __WXMAC__ // On wxMac we can't depend on the EVT_KILL_FOCUS event to properly // shutdown the edit control when the mouse is clicked elsewhere on the @@ -2312,7 +2311,7 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event ) if (event.GetEventType() == wxEVT_MOUSEWHEEL) { - // let the base handle mouse wheel events. + // let the base class handle mouse wheel events. event.Skip(); return; } @@ -2323,10 +2322,9 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event ) { SendNotify( (size_t)-1, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, event.GetPosition() ); - wxContextMenuEvent evtCtx( - wxEVT_CONTEXT_MENU, - GetParent()->GetId(), - ClientToScreen(event.GetPosition())); + wxContextMenuEvent evtCtx(wxEVT_CONTEXT_MENU, + GetParent()->GetId(), + ClientToScreen(event.GetPosition())); evtCtx.SetEventObject(GetParent()); GetParent()->GetEventHandler()->ProcessEvent(evtCtx); } @@ -2577,8 +2575,8 @@ void wxListMainWindow::MoveToItem(size_t item) const int hLine = GetLineHeight(); - int view_x = SCROLL_UNIT_X * GetScrollPos( wxHORIZONTAL ); - int view_y = hLine * GetScrollPos( wxVERTICAL ); + int view_x = SCROLL_UNIT_X * GetListCtrl()->GetScrollPos( wxHORIZONTAL ); + int view_y = hLine * GetListCtrl()->GetScrollPos( wxVERTICAL ); if ( InReportView() ) { @@ -4188,8 +4186,11 @@ void wxListMainWindow::OnScroll(wxScrollWinEvent& event) wxGenericListCtrl* lc = GetListCtrl(); wxCHECK_RET( lc, _T("no listctrl window?") ); - lc->m_headerWin->Refresh(); - lc->m_headerWin->Update(); + if (lc->m_headerWin) // when we use wxLC_NO_HEADER, m_headerWin==NULL + { + lc->m_headerWin->Refresh(); + lc->m_headerWin->Update(); + } } } @@ -4213,7 +4214,7 @@ void wxListMainWindow::GetVisibleLinesRange(size_t *from, size_t *to) size_t count = GetItemCount(); if ( count ) { - m_lineFrom = GetScrollPos(wxVERTICAL); + m_lineFrom = GetListCtrl()->GetScrollPos(wxVERTICAL); // this may happen if SetScrollbars() hadn't been called yet if ( m_lineFrom >= count ) @@ -4871,15 +4872,14 @@ long wxGenericListCtrl::InsertItem( long index, const wxString &label, int image long wxGenericListCtrl::InsertColumn( long col, wxListItem &item ) { - wxCHECK_MSG( m_headerWin, -1, _T("can't add column in non report mode") ); + wxCHECK_MSG( InReportView(), -1, _T("can't add column in non report mode") ); m_mainWin->InsertColumn( col, item ); - // if we hadn't had a header before but have one now - // then we need to relayout the window - // if ( GetColumnCount() == 1 && m_mainWin->HasHeader() ) - - m_headerWin->Refresh(); + // NOTE: if wxLC_NO_HEADER was given, then we are in report view mode but + // still have m_headerWin==NULL + if (m_headerWin) + m_headerWin->Refresh(); return 0; }