wxWindowID id,
wxEvtHandler* evtHandler)
{
- m_control = new wxTextCtrl(parent, id, wxEmptyString,
- wxDefaultPosition, wxDefaultSize
+ DoCreate(parent, id, evtHandler);
+}
+
+void wxGridCellTextEditor::DoCreate(wxWindow* parent,
+ wxWindowID id,
+ wxEvtHandler* evtHandler,
+ long style)
+{
#if defined(__WXMSW__)
- ,
- wxTE_PROCESS_ENTER |
- wxTE_PROCESS_TAB |
- wxTE_AUTO_SCROLL |
- wxNO_BORDER
+ style |= wxTE_PROCESS_ENTER |
+ wxTE_PROCESS_TAB |
+ wxTE_AUTO_SCROLL |
+ wxNO_BORDER;
#endif
- );
+
+ m_control = new wxTextCtrl(parent, id, wxEmptyString,
+ wxDefaultPosition, wxDefaultSize,
+ style);
// set max length allowed in the textctrl, if the parameter was set
- if (m_maxChars != 0)
+ if ( m_maxChars != 0 )
{
- ((wxTextCtrl*)m_control)->SetMaxLength(m_maxChars);
+ Text()->SetMaxLength(m_maxChars);
}
wxGridCellEditor::Create(parent, id, evtHandler);
if (m_allowOthers)
{
Combo()->SetValue(m_startValue);
+ Combo()->SetInsertionPointEnd();
}
- else
+ else // the combobox is read-only
{
// find the right position, or default to the first if not found
int pos = Combo()->FindString(m_startValue);
Combo()->SetSelection(pos);
}
- Combo()->SetInsertionPointEnd();
Combo()->SetFocus();
if (evtHandler)
wxGridRowOrColAttrData::~wxGridRowOrColAttrData()
{
- size_t count = m_attrs.Count();
+ size_t count = m_attrs.GetCount();
for ( size_t n = 0; n < count; n++ )
{
m_attrs[n]->DecRef();
int i = m_rowsOrCols.Index(rowOrCol);
if ( i == wxNOT_FOUND )
{
- // add the attribute
- m_rowsOrCols.Add(rowOrCol);
- m_attrs.Add(attr);
+ if ( attr )
+ {
+ // add the attribute
+ m_rowsOrCols.Add(rowOrCol);
+ m_attrs.Add(attr);
+ }
+ // nothing to remove
}
else
{
wxGridTypeRegistry::~wxGridTypeRegistry()
{
- size_t count = m_typeinfo.Count();
+ size_t count = m_typeinfo.GetCount();
for ( size_t i = 0; i < count; i++ )
delete m_typeinfo[i];
}
Create();
SetInitialSize(size);
+ CalcDimensions();
return true;
}
void wxGrid::OnSize(wxSizeEvent& WXUNUSED(event))
{
- // update our children window positions and scrollbars
- CalcDimensions();
+ if (m_targetWindow != this) // check whether initialisation has been done
+ {
+ // update our children window positions and scrollbars
+ CalcDimensions();
+ }
}
void wxGrid::OnKeyDown( wxKeyEvent& event )
continue;
}
- long lineWidth = 0,
+ wxCoord lineWidth = 0,
lineHeight = 0;
dc.GetTextExtent(line, &lineWidth, &lineHeight);
const wxArrayString& lines,
long *width, long *height ) const
{
- long w = 0;
- long h = 0;
- long lineW = 0, lineH = 0;
+ wxCoord w = 0;
+ wxCoord h = 0;
+ wxCoord lineW = 0, lineH = 0;
size_t i;
for ( i = 0; i < lines.GetCount(); i++ )
// make any visible change if the the thickness is getting smaller.
int row = m_currentCellCoords.GetRow();
int col = m_currentCellCoords.GetCol();
- if ( GetColWidth(col) <= 0 || GetRowHeight(row) <= 0 )
+ if ( row == -1 || col == -1 || GetColWidth(col) <= 0 || GetRowHeight(row) <= 0 )
return;
wxRect rect = CellToRect(row, col);
int index = m_typeRegistry->FindOrCloneDataType(typeName);
if ( index == wxNOT_FOUND )
{
- wxString errStr;
-
- errStr.Printf(wxT("Unknown data type name [%s]"), typeName.c_str());
- wxFAIL_MSG(errStr.c_str());
+ wxFAIL_MSG(wxString::Format(wxT("Unknown data type name [%s]"), typeName.c_str()));
return NULL;
}
int index = m_typeRegistry->FindOrCloneDataType(typeName);
if ( index == wxNOT_FOUND )
{
- wxString errStr;
-
- errStr.Printf(wxT("Unknown data type name [%s]"), typeName.c_str());
- wxFAIL_MSG(errStr.c_str());
+ wxFAIL_MSG(wxString::Format(wxT("Unknown data type name [%s]"), typeName.c_str()));
return NULL;
}