{
if ( m_created )
{
- // RD: Actually, this should probably be allowed. I think it would be
- // nice to be able to switch multiple Tables in and out of a single
- // View at runtime. Is there anything in the implementation that
- // would prevent this?
-
- // At least, you now have to cope with m_selection
- wxFAIL_MSG( wxT("wxGrid::CreateGrid or wxGrid::SetTable called more than once") );
- return FALSE;
- }
- else
+ if (m_ownTable)
+ delete m_table;
+ delete m_selection;
+
+ // stop all processing
+ m_table=0;
+ m_selection=0;
+ m_created = FALSE;
+ m_numRows=0;
+ m_numCols=0;
+ }
+ if (table)
{
m_numRows = table->GetNumberRows();
m_numCols = table->GetNumberCols();
if (IsCellEditControlEnabled())
DisableCellEditControl();
- return m_table->InsertRows( pos, numRows );
+ bool done = m_table->InsertRows( pos, numRows );
+ m_numRows = m_table->GetNumberRows();
+ return done;
// the table will have sent the results of the insert row
// operation to this view object as a grid table message
return FALSE;
}
- return ( m_table && m_table->AppendRows( numRows ) );
- // the table will have sent the results of the append row
- // operation to this view object as a grid table message
+ if ( m_table )
+ {
+ bool done = m_table && m_table->AppendRows( numRows );
+ m_numRows = m_table->GetNumberRows();
+ return done;
+ // the table will have sent the results of the append row
+ // operation to this view object as a grid table message
+ }
+ return FALSE;
}
if (IsCellEditControlEnabled())
DisableCellEditControl();
- return (m_table->DeleteRows( pos, numRows ));
+ bool done = m_table->DeleteRows( pos, numRows );
+ m_numRows = m_table->GetNumberRows();
+ return done;
// the table will have sent the results of the delete row
// operation to this view object as a grid table message
}
if (IsCellEditControlEnabled())
DisableCellEditControl();
- return m_table->InsertCols( pos, numCols );
+ bool done = m_table->InsertCols( pos, numCols );
+ m_numCols = m_table->GetNumberCols();
+ return done;
// the table will have sent the results of the insert col
// operation to this view object as a grid table message
}
return FALSE;
}
- return ( m_table && m_table->AppendCols( numCols ) );
- // the table will have sent the results of the append col
- // operation to this view object as a grid table message
+ if ( m_table )
+ {
+ bool done = m_table->AppendCols( numCols );
+ m_numCols = m_table->GetNumberCols();
+ return done;
+ // the table will have sent the results of the append col
+ // operation to this view object as a grid table message
+ }
+ return FALSE;
}
if (IsCellEditControlEnabled())
DisableCellEditControl();
- return ( m_table->DeleteCols( pos, numCols ) );
+ bool done = m_table->DeleteCols( pos, numCols );
+ m_numCols = m_table->GetNumberCols();
+ return done;
// the table will have sent the results of the delete col
// operation to this view object as a grid table message
}