]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
close the associated frame if the view is deleted directly to avoid leaving zombie...
[wxWidgets.git] / src / generic / listctrl.cpp
index 4d861ceb277663bec31ca1332f91d4bfb1b574ef..4e16824db153e42e4e00aeb396479a315c7f75e1 100644 (file)
@@ -56,6 +56,9 @@
     #include <Carbon/Carbon.h>
 #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)
 {