wxWindow *win,
bool captureMouse)
{
-#ifdef __WXDEBUG__
+#if wxUSE_LOG_TRACE
static const wxChar *cursorModes[] =
{
_T("SELECT_CELL"),
: win ? _T("rowLabelWin")
: _T("gridWin"),
cursorModes[m_cursorMode], cursorModes[mode]);
-#endif
+#endif // wxUSE_LOG_TRACE
if ( mode == m_cursorMode &&
win == m_winCapture &&
wxGridCellEditor* editor = attr->GetEditor(this, row, col);
wxString newval;
- bool changed = editor->EndEdit(oldval, &newval);
+ bool changed = editor->EndEdit(row, col, this, oldval, &newval);
if ( changed && SendEvent(wxEVT_GRID_CELL_CHANGING, newval) != -1 )
{
return;
const wxGridSelectionModes mode = m_selection->GetSelectionMode();
- if ( mode == oper.GetSelectionMode() )
+ if ( mode == oper.GetSelectionMode() ||
+ mode == wxGrid::wxGridSelectRowsOrColumns )
{
const wxGridCellCoords c(oper.MakeCoords(line, 0));
if ( m_selection->IsInSelection(c) )
return resultRect;
}
+void wxGrid::DoSetSizes(const wxGridSizesInfo& sizeInfo,
+ const wxGridOperations& oper)
+{
+ BeginBatch();
+ oper.SetDefaultLineSize(this, sizeInfo.m_sizeDefault, true);
+ const int numLines = oper.GetNumberOfLines(this);
+ for ( int i = 0; i < numLines; i++ )
+ {
+ int size = sizeInfo.GetSize(i);
+ if ( size != sizeInfo.m_sizeDefault)
+ oper.SetLineSize(this, i, size);
+ }
+ EndBatch();
+}
+
+void wxGrid::SetColSizes(const wxGridSizesInfo& sizeInfo)
+{
+ DoSetSizes(sizeInfo, wxGridColumnOperations());
+}
+
+void wxGrid::SetRowSizes(const wxGridSizesInfo& sizeInfo)
+{
+ DoSetSizes(sizeInfo, wxGridRowOperations());
+}
+
+wxGridSizesInfo::wxGridSizesInfo(int defSize, const wxArrayInt& allSizes)
+{
+ m_sizeDefault = defSize;
+ for ( size_t i = 0; i < allSizes.size(); i++ )
+ {
+ if ( allSizes[i] != defSize )
+ m_customSizes[i] = allSizes[i];
+ }
+}
+
+int wxGridSizesInfo::GetSize(unsigned pos) const
+{
+ wxUnsignedToIntHashMap::const_iterator it = m_customSizes.find(pos);
+
+ return it == m_customSizes.end() ? m_sizeDefault : it->second;
+}
+
// ----------------------------------------------------------------------------
// drop target
// ----------------------------------------------------------------------------