]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/datavgen.cpp
correct painting of the items with custom colours in TVIS_DROPHILITED state (patch...
[wxWidgets.git] / src / generic / datavgen.cpp
index 92cf52354a796783522133ee87dc07ea9d2003f0..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 );
@@ -343,7 +347,7 @@ bool wxDataViewToggleCell::SetValue( const wxVariant &value )
 {
     m_toggle = value.GetBool();
 
-    return true;;
+    return true;
 }
 
 bool wxDataViewToggleCell::GetValue( wxVariant &WXUNUSED(value) )
@@ -460,10 +464,6 @@ public:
         sizer->Fit( this );
     }
 
-    virtual void OnDismiss()
-    {
-    }
-
     void OnCalendar( wxCalendarEvent &event );
 
     wxCalendarCtrl      *m_cal;
@@ -471,6 +471,11 @@ public:
     size_t               m_col;
     size_t               m_row;
 
+protected:
+    virtual void OnDismiss()
+    {
+    }
+
 private:
     DECLARE_EVENT_TABLE()
 };
@@ -1141,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();
 }
@@ -1158,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();
     }
@@ -1277,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 );
@@ -1291,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
@@ -1368,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;
 
@@ -1519,7 +1525,7 @@ void wxDataViewMainWindow::OnMouse( wxMouseEvent &event )
 
         if (m_lastOnSame)
         {
-            if ((col == m_currentCol) & (current == m_currentRow) &&
+            if ((col == m_currentCol) && (current == m_currentRow) &&
                 (cell->GetMode() == wxDATAVIEW_CELL_EDITABLE) )
             {
                 m_renameTimer->Start( 100, true );