]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/datavgen.cpp
don't crash when destroying a not initialized socket (patch 1489095)
[wxWidgets.git] / src / generic / datavgen.cpp
index f3b748fd193b3b0c6d1af98a7441549904c7b1e8..c9ca4db621cfc51f9e1a0ade0363547e85efddaf 100644 (file)
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
 #if wxUSE_DATAVIEWCTRL
 
 #include "wx/dataview.h"
 #ifndef WX_PRECOMP
     #include "wx/sizer.h"
     #include "wx/log.h"
+    #include "wx/dcclient.h"
+    #include "wx/timer.h"
+    #include "wx/settings.h"
 #endif
 
 #include "wx/stockitem.h"
-#include "wx/dcclient.h"
 #include "wx/calctrl.h"
 #include "wx/popupwin.h"
 #include "wx/renderer.h"
-#include "wx/timer.h"
-#include "wx/settings.h"
 
 #ifdef __WXMSW__
     #include "wx/msw/wrapwin.h"
@@ -177,7 +181,7 @@ public:
     int GetEndOfLastCol();
     size_t GetFirstVisibleRow();
     size_t GetLastVisibleRow();
-    int GetRowCount();
+    size_t GetRowCount();
 
     void SelectAllRows( bool on );
     void SelectRow( size_t row, bool on );
@@ -1142,10 +1146,10 @@ size_t wxDataViewMainWindow::GetLastVisibleRow()
     wxSize client_size = GetClientSize();
     m_owner->CalcUnscrolledPosition( client_size.x, client_size.y, &client_size.x, &client_size.y );
 
-    return wxMin( GetRowCount()-1, (client_size.y/m_lineHeight)+1 );
+    return wxMin( GetRowCount()-1, ((unsigned)client_size.y/m_lineHeight)+1 );
 }
 
-int wxDataViewMainWindow::GetRowCount()
+size_t wxDataViewMainWindow::GetRowCount()
 {
     return GetOwner()->GetModel()->GetNumberOfRows();
 }
@@ -1159,13 +1163,13 @@ void wxDataViewMainWindow::ChangeCurrentRow( size_t row )
 
 void wxDataViewMainWindow::SelectAllRows( bool on )
 {
-    if (GetRowCount() == 0) return;
+    if (IsEmpty())
+        return;
 
     if (on)
     {
         m_selection.Clear();
-        size_t i;
-        for (i = 0; i < GetRowCount(); i++)
+        for (size_t i = 0; i < GetRowCount(); i++)
             m_selection.Add( i );
         Refresh();
     }
@@ -1278,7 +1282,8 @@ void wxDataViewMainWindow::RefreshRows( size_t from, size_t to )
 void wxDataViewMainWindow::RefreshRowsAfter( size_t firstRow )
 {
     size_t count = GetRowCount();
-    if (firstRow > count) return;
+    if (firstRow > count)
+        return;
 
     wxRect rect( 0, firstRow*m_lineHeight, GetEndOfLastCol(), count * m_lineHeight );
     m_owner->CalcScrolledPosition( rect.x, rect.y, &rect.x, &rect.y );
@@ -1292,7 +1297,7 @@ void wxDataViewMainWindow::RefreshRowsAfter( size_t firstRow )
 
 void wxDataViewMainWindow::OnArrowChar(size_t newCurrent, const wxKeyEvent& event)
 {
-    wxCHECK_RET( newCurrent < (size_t)GetRowCount(),
+    wxCHECK_RET( newCurrent < GetRowCount(),
                  _T("invalid item index in OnArrowChar()") );
 
     // if there is no selection, we cannot move it anywhere
@@ -1369,7 +1374,7 @@ void wxDataViewMainWindow::OnChar( wxKeyEvent &event )
             break;
 
         case WXK_DOWN:
-            if ( m_currentRow < (size_t)GetRowCount() - 1 )
+            if ( m_currentRow < GetRowCount() - 1 )
                 OnArrowChar( m_currentRow + 1, event );
             break;