]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
fix digitalmars bug (ambiguous symbol)
[wxWidgets.git] / src / generic / listctrl.cpp
index 771d738f7a3e16aab2f9680bc4b50ad71958fc4b..19808a23fd7f600d51c54762733d83e62670ce7b 100644 (file)
@@ -2838,12 +2838,15 @@ bool wxListMainWindow::OnRenameAccept(size_t itemEdit, const wxString& value)
 # pragma message disable initnotreach
 #endif
 
-void wxListMainWindow::OnRenameCancelled(size_t itemEdit)
+void wxListMainWindow::OnRenameCancelled(size_t WXUNUSED(itemEdit))
 {
     // wxMSW seems not to notify the program about
     // cancelled label edits.
     return;
 
+  #if 0
+    // above unconditional return cause warning about not reachable code
+
     // let owner know that the edit was cancelled
     wxListEvent le( wxEVT_COMMAND_LIST_END_LABEL_EDIT, GetParent()->GetId() );
 
@@ -2860,6 +2863,7 @@ void wxListMainWindow::OnRenameCancelled(size_t itemEdit)
     data->GetItem( 0, le.m_item );
 
     GetEventHandler()->ProcessEvent( le );
+  #endif
 }
 #ifdef __VMS__
 # pragma message enable initnotreach
@@ -3324,6 +3328,14 @@ void wxListMainWindow::SetFocus()
 
 void wxListMainWindow::OnSetFocus( wxFocusEvent &WXUNUSED(event) )
 {
+    if ( GetParent() )
+    {
+        wxFocusEvent event( wxEVT_SET_FOCUS, GetParent()->GetId() );
+        event.SetEventObject( GetParent() );
+        if ( GetParent()->GetEventHandler()->ProcessEvent( event) )
+            return;
+    }
+
     // wxGTK sends us EVT_SET_FOCUS events even if we had never got
     // EVT_KILL_FOCUS before which means that we finish by redrawing the items
     // which are already drawn correctly resulting in horrible flicker - avoid
@@ -3334,19 +3346,18 @@ void wxListMainWindow::OnSetFocus( wxFocusEvent &WXUNUSED(event) )
 
         RefreshSelected();
     }
-
-    if ( !GetParent() )
-        return;
-
-    wxFocusEvent event( wxEVT_SET_FOCUS, GetParent()->GetId() );
-    event.SetEventObject( GetParent() );
-    GetParent()->GetEventHandler()->ProcessEvent( event );
 }
 
 void wxListMainWindow::OnKillFocus( wxFocusEvent &WXUNUSED(event) )
 {
+    if ( GetParent() )
+    {
+        wxFocusEvent event( wxEVT_KILL_FOCUS, GetParent()->GetId() );
+        event.SetEventObject( GetParent() );
+        if ( GetParent()->GetEventHandler()->ProcessEvent( event) )
+            return;
+    }
     m_hasFocus = FALSE;
-
     RefreshSelected();
 }
 
@@ -3965,13 +3976,19 @@ void wxListMainWindow::RecalculatePositions(bool noRefresh)
             // the window, we recalculate after subtracting the space taken by the
             // scrollbar
 
-            int entireWidth = 0,
-                entireHeight = 0;
+            int entireWidth = 0;
+            #if 0
+            // entireHeight is not used so no need to define it
+            int entireHeight = 0;
+            #endif
 
             for (int tries = 0; tries < 2; tries++)
             {
                 entireWidth = 2*EXTRA_BORDER_X;
+                #if 0
+                // entireHeight is not used so no need to define it
                 entireHeight = 2*EXTRA_BORDER_Y;
+                #endif
 
                 if (tries == 1)
                 {
@@ -4340,18 +4357,39 @@ void wxListMainWindow::InsertItem( wxListItem &item )
 
     m_dirty = TRUE;
 
+    #if 0
+    // this is unused variable
     int mode = 0;
+    #endif
     if ( HasFlag(wxLC_REPORT) )
     {
+        #if 0
+        // this is unused variable
         mode = wxLC_REPORT;
+        #endif
         ResetVisibleLinesRange();
     }
     else if ( HasFlag(wxLC_LIST) )
+        #if 0
+        // this is unused variable
         mode = wxLC_LIST;
+        #else
+        {}
+        #endif
     else if ( HasFlag(wxLC_ICON) )
+        #if 0
+        // this is unused variable
         mode = wxLC_ICON;
+        #else
+        {}
+        #endif
     else if ( HasFlag(wxLC_SMALL_ICON) )
+        #if 0
+        // this is unused variable
         mode = wxLC_ICON;  // no typo
+        #else
+        {}
+        #endif
     else
     {
         wxFAIL_MSG( _T("unknown mode") );
@@ -4365,6 +4403,14 @@ void wxListMainWindow::InsertItem( wxListItem &item )
 
     m_dirty = TRUE;
 
+    // If an item is selected at or below the point of insertion, we need to
+    // increment the member variables because the current row's index has gone
+    // up by one
+    if ( HasCurrent() && m_current >= id )
+    {
+        m_current++;
+    }
+
     SendNotify(id, wxEVT_COMMAND_LIST_INSERT_ITEM);
 
     RefreshLines(id, GetItemCount() - 1);