};
// ctors
- wxGridCellAttr()
+ wxGridCellAttr(wxGridCellAttr *attrDefault = NULL)
{
- Init();
+ Init(attrDefault);
+
// MB: args used to be 0,0 here but wxALIGN_LEFT is 0
SetAlignment(-1, -1);
}
};
// the common part of all ctors
- void Init()
- {
- m_nRef = 1;
-
- m_isReadOnly = Unset;
-
- m_renderer = NULL;
- m_editor = NULL;
-
- m_attrkind = wxGridCellAttr::Cell;
- }
+ void Init(wxGridCellAttr *attrDefault = NULL);
// the dtor is private because only DecRef() can delete us
~wxGridCellAttr()
// wxGridCellAttr
// ----------------------------------------------------------------------------
+void wxGridCellAttr::Init(wxGridCellAttr *attrDefault)
+{
+ m_nRef = 1;
+
+ m_isReadOnly = Unset;
+
+ m_renderer = NULL;
+ m_editor = NULL;
+
+ m_attrkind = wxGridCellAttr::Cell;
+
+ SetDefAttr(attrDefault);
+}
+
wxGridCellAttr *wxGridCellAttr::Clone() const
{
- wxGridCellAttr *attr = new wxGridCellAttr;
+ wxGridCellAttr *attr = new wxGridCellAttr(m_defGridAttr);
+
if ( HasTextColour() )
attr->SetTextColour(GetTextColour());
if ( HasBackgroundColour() )
attr->SetKind( m_attrkind );
- attr->SetDefAttr(m_defGridAttr);
-
return attr;
}
m_cellEditCtrlEnabled = FALSE;
- m_defaultCellAttr = new wxGridCellAttr;
- m_defaultCellAttr->SetDefAttr(m_defaultCellAttr);
+ m_defaultCellAttr = new wxGridCellAttr(m_defaultCellAttr);
// Set default cell attributes
m_defaultCellAttr->SetKind(wxGridCellAttr::Default);
wxGridCellAttr *wxGrid::GetOrCreateCellAttr(int row, int col) const
{
wxGridCellAttr *attr = (wxGridCellAttr *)NULL;
- wxASSERT_MSG( m_table,
- _T("we may only be called if CanHaveAttributes() returned TRUE and then m_table should be !NULL") );
- attr = m_table->GetAttr(row, col, wxGridCellAttr::Cell );
- if ( !attr )
- {
- attr = new wxGridCellAttr;
+ wxCHECK_MSG( m_table, attr,
+ _T("we may only be called if CanHaveAttributes() returned TRUE and then m_table should be !NULL") );
+
+ attr = m_table->GetAttr(row, col, wxGridCellAttr::Cell);
+ if ( !attr )
+ {
+ attr = new wxGridCellAttr(m_defaultCellAttr);
+
+ // artificially inc the ref count to match DecRef() in caller
+ attr->IncRef();
+ m_table->SetAttr(attr, row, col);
+ }
- // artificially inc the ref count to match DecRef() in caller
- attr->IncRef();
- m_table->SetAttr(attr, row, col);
- }
- attr->SetDefAttr(m_defaultCellAttr);
return attr;
}