]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/grid.cpp
account for the label size in wxDisclosureTriangle under Carbon
[wxWidgets.git] / src / generic / grid.cpp
index c11346662edeb4f95438f9df4dcde6ea8a2bcca6..7b99052966399db1c43bf307e30dac955321d8ea 100644 (file)
@@ -1127,11 +1127,14 @@ IMPLEMENT_DYNAMIC_CLASS( wxGridStringTable, wxGridTableBase )
 wxGridStringTable::wxGridStringTable()
         : wxGridTableBase()
 {
+    m_numCols = 0;
 }
 
 wxGridStringTable::wxGridStringTable( int numRows, int numCols )
         : wxGridTableBase()
 {
+    m_numCols = numCols;
+
     m_data.Alloc( numRows );
 
     wxArrayString sa;
@@ -1141,23 +1144,6 @@ wxGridStringTable::wxGridStringTable( int numRows, int numCols )
     m_data.Add( sa, numRows );
 }
 
-wxGridStringTable::~wxGridStringTable()
-{
-}
-
-int wxGridStringTable::GetNumberRows()
-{
-    return m_data.GetCount();
-}
-
-int wxGridStringTable::GetNumberCols()
-{
-    if ( m_data.GetCount() > 0 )
-        return m_data[0].GetCount();
-    else
-        return 0;
-}
-
 wxString wxGridStringTable::GetValue( int row, int col )
 {
     wxCHECK_MSG( (row < GetNumberRows()) && (col < GetNumberCols()),
@@ -1327,6 +1313,8 @@ bool wxGridStringTable::InsertCols( size_t pos, size_t numCols )
         }
     }
 
+    m_numCols += numCols;
+
     if ( GetView() )
     {
         wxGridTableMessage msg( this,
@@ -1351,6 +1339,8 @@ bool wxGridStringTable::AppendCols( size_t numCols )
         m_data[row].Add( wxEmptyString, numCols );
     }
 
+    m_numCols += numCols;
+
     if ( GetView() )
     {
         wxGridTableMessage msg( this,
@@ -1404,16 +1394,23 @@ bool wxGridStringTable::DeleteCols( size_t pos, size_t numCols )
             m_colLabels.RemoveAt( colID, nToRm );
     }
 
-    for ( row = 0; row < curNumRows; row++ )
+    if ( numCols >= curNumCols )
     {
-        if ( numCols >= curNumCols )
+        for ( row = 0; row < curNumRows; row++ )
         {
             m_data[row].Clear();
         }
-        else
+
+        m_numCols = 0;
+    }
+    else // something will be left
+    {
+        for ( row = 0; row < curNumRows; row++ )
         {
             m_data[row].RemoveAt( colID, numCols );
         }
+
+        m_numCols -= numCols;
     }
 
     if ( GetView() )
@@ -2973,7 +2970,7 @@ void wxGrid::ProcessRowLabelMouseEvent( wxMouseEvent& event )
             // TODO: generate RESIZING event, see #10754
             AutoSizeRowLabelSize( row );
 
-            SendSizeEvent(wxEVT_GRID_ROW_SIZE, row, -1, event);
+            SendGridSizeEvent(wxEVT_GRID_ROW_SIZE, row, -1, event);
 
             ChangeCursorMode(WXGRID_CURSOR_SELECT_CELL, GetColLabelWindow());
             m_dragLastPos = -1;
@@ -3319,7 +3316,7 @@ void wxGrid::ProcessColLabelMouseEvent( wxMouseEvent& event )
             // TODO: generate RESIZING event, see #10754
             AutoSizeColLabelSize( colEdge );
 
-            SendSizeEvent(wxEVT_GRID_COL_SIZE, -1, colEdge, event);
+            SendGridSizeEvent(wxEVT_GRID_COL_SIZE, -1, colEdge, event);
 
             ChangeCursorMode(WXGRID_CURSOR_SELECT_CELL, GetColLabelWindow());
             m_dragLastPos = -1;
@@ -3995,7 +3992,7 @@ void wxGrid::DoEndDragResizeRow(const wxMouseEvent& event)
     // TODO: generate RESIZING event, see #10754
 
     if ( DoEndDragResizeLine(wxGridRowOperations()) )
-        SendSizeEvent(wxEVT_GRID_ROW_SIZE, m_dragRowOrCol, -1, event);
+        SendGridSizeEvent(wxEVT_GRID_ROW_SIZE, m_dragRowOrCol, -1, event);
 }
 
 void wxGrid::DoEndDragResizeCol(const wxMouseEvent& event)
@@ -4003,7 +4000,7 @@ void wxGrid::DoEndDragResizeCol(const wxMouseEvent& event)
     // TODO: generate RESIZING event, see #10754
 
     if ( DoEndDragResizeLine(wxGridColumnOperations()) )
-        SendSizeEvent(wxEVT_GRID_COL_SIZE, -1, m_dragRowOrCol, event);
+        SendGridSizeEvent(wxEVT_GRID_COL_SIZE, -1, m_dragRowOrCol, event);
 }
 
 void wxGrid::DoStartMoveCol(int col)
@@ -4182,7 +4179,7 @@ wxGrid::DoAppendLines(bool (wxGridTableBase::*funcAppend)(size_t),
 // ----------------------------------------------------------------------------
 
 void
-wxGrid::SendSizeEvent(wxEventType type,
+wxGrid::SendGridSizeEvent(wxEventType type,
                       int row, int col,
                       const wxMouseEvent& mouseEv)
 {
@@ -4204,7 +4201,7 @@ wxGrid::SendSizeEvent(wxEventType type,
 //  +1 if the event was processed (but not vetoed)
 //   0 if the event wasn't handled
 int
-wxGrid::SendEvent(wxEventType type,
+wxGrid::SendEvent(const wxEventType type,
                   int row, int col,
                   const wxMouseEvent& mouseEv)
 {