]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
added 3-state checkboxes (patch 813790)
[wxWidgets.git] / src / generic / listctrl.cpp
index 16404fbf74ee3700a9cb7fc70c3784539ee3bc05..fc72c9ee07dd6185b2e399b348a3a37f28978d7b 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") );
@@ -4564,8 +4602,8 @@ void wxGenericListCtrl::CalculateAndSetHeaderHeight()
         m_headerWin->GetTextExtent(wxT("Hg"), &w, &h, &d);
         h += d + 2 * HEADER_OFFSET_Y + EXTRA_HEIGHT;
 
-        // only update if there is not enough space
-        if ( h > m_headerHeight )
+        // only update if changed
+        if ( h != m_headerHeight )
         {
             m_headerHeight = h;