X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e5d28ed426b267025cdd95237c95fc66db4f1b94..ada1ff0dbcd973c0a4630318599eb469dd6e3fb6:/src/generic/listctrl.cpp diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 4d861ceb27..4e16824db1 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -56,6 +56,9 @@ #include #endif +#if defined(__WXMSW__) && !defined(__WXWINCE__) && !defined(__WXUNIVERSAL__) + #define "wx/msw/wrapwin.h" +#endif // NOTE: If using the wxListBox visual attributes works everywhere then this can // be removed, as well as the #else case below. @@ -803,6 +806,8 @@ void wxListLineData::DrawInReportMode( wxDC *dc, #if ( !defined(__WXGTK20__) && !defined(__WXMAC__) ) { dc->DrawRectangle( rectHL ); + + wxUnusedVar(current); } #else { @@ -1222,7 +1227,7 @@ void wxListHeaderWindow::DrawCurrent() wxScreenDC dc; dc.SetLogicalFunction( wxINVERT ); - dc.SetPen( wxPen( *wxBLACK, 2, wxSOLID ) ); + dc.SetPen( wxPen(*wxBLACK, 2) ); dc.SetBrush( *wxTRANSPARENT_BRUSH ); AdjustDC(dc); @@ -1550,7 +1555,7 @@ void wxListTextCtrlWrapper::OnKillFocus( wxFocusEvent &event ) // wxListMainWindow //----------------------------------------------------------------------------- -BEGIN_EVENT_TABLE(wxListMainWindow,wxScrolledCanvas) +BEGIN_EVENT_TABLE(wxListMainWindow, wxWindow) EVT_PAINT (wxListMainWindow::OnPaint) EVT_MOUSE_EVENTS (wxListMainWindow::OnMouse) EVT_CHAR (wxListMainWindow::OnChar) @@ -2238,6 +2243,9 @@ wxTextCtrl *wxListMainWindow::EditLabel(long item, wxClassInfo* textControlClass // been added and no screen update taken place. if ( m_dirty ) { + // TODO: use wxTheApp->SafeYieldFor(NULL, wxEVT_CATEGORY_UI) instead + // so that no pending events may change the item count (see below) + // IMPORTANT: needs to be tested! wxSafeYield(); // Pending events dispatched by wxSafeYield might have changed the item @@ -2293,7 +2301,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 +2319,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 +2330,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 +2583,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() ) { @@ -4363,24 +4369,22 @@ wxBorder wxGenericListCtrl::GetDefaultBorder() const return wxBORDER_THEME; } -#ifdef __WXMSW__ +#if defined(__WXMSW__) && !defined(__WXWINCE__) && !defined(__WXUNIVERSAL__) WXLRESULT wxGenericListCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) { WXLRESULT rc = wxControl::MSWWindowProc(nMsg, wParam, lParam); -#ifndef __WXWINCE__ // we need to process arrows ourselves for scrolling if ( nMsg == WM_GETDLGCODE ) { rc |= DLGC_WANTARROWS; } -#endif return rc; } -#endif +#endif // __WXMSW__ wxSize wxGenericListCtrl::GetSizeAvailableForScrollTarget(const wxSize& size) {