const wxSize& size,
long style,
const wxString& name )
- : wxScrolledWindow( parent, id, pos, size, (style | wxWANTS_CHARS), name ),
- m_colMinWidths(GRID_HASH_SIZE),
- m_rowMinHeights(GRID_HASH_SIZE)
{
- Create();
- SetInitialSize(size);
+ Create(parent, id, pos, size, style, name);
}
bool wxGrid::Create(wxWindow *parent, wxWindowID id,
}
}
+ // the grid may be too small to have enough space for the labels yet, don't
+ // size the windows to negative sizes in this case
+ int gw = cw - m_rowLabelWidth;
+ int gh = ch - m_colLabelHeight;
+ if (gw < 0)
+ gw = 0;
+ if (gh < 0)
+ gh = 0;
+
if ( m_cornerLabelWin && m_cornerLabelWin->IsShown() )
m_cornerLabelWin->SetSize( 0, 0, m_rowLabelWidth, m_colLabelHeight );
if ( m_colLabelWin && m_colLabelWin->IsShown() )
- m_colLabelWin->SetSize( m_rowLabelWidth, 0, cw - m_rowLabelWidth, m_colLabelHeight );
+ m_colLabelWin->SetSize( m_rowLabelWidth, 0, gw, m_colLabelHeight );
if ( m_rowLabelWin && m_rowLabelWin->IsShown() )
- m_rowLabelWin->SetSize( 0, m_colLabelHeight, m_rowLabelWidth, ch - m_colLabelHeight );
+ m_rowLabelWin->SetSize( 0, m_colLabelHeight, m_rowLabelWidth, gh );
if ( m_gridWin && m_gridWin->IsShown() )
- m_gridWin->SetSize( m_rowLabelWidth, m_colLabelHeight, cw - m_rowLabelWidth, ch - m_colLabelHeight );
+ m_gridWin->SetSize( m_rowLabelWidth, m_colLabelHeight, gw, gh );
}
// this is called when the grid table sends a message
// Split multi-line text up into an array of strings.
// Any existing contents of the string array are preserved.
//
+// TODO: refactor wxTextFile::Read() and reuse the same code from here
void wxGrid::StringToLines( const wxString& value, wxArrayString& lines ) const
{
int startPos = 0;
}
else
{
- lines.Add( value.Mid(startPos, pos) );
+ lines.Add( tVal.Mid(startPos, pos) );
}
startPos += pos + 1;
}
- if ( startPos < (int)value.length() )
+ if ( startPos < (int)tVal.length() )
{
- lines.Add( value.Mid( startPos ) );
+ lines.Add( tVal.Mid( startPos ) );
}
}