git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6306
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// auto size all columns (very ineffective for big grids!)
void AutoSizeColumns( bool setAsMin = TRUE );
// auto size all columns (very ineffective for big grids!)
void AutoSizeColumns( bool setAsMin = TRUE );
+ void AutoSizeRows( bool setAsMin = TRUE );
+
+ // auto size the grid, that is make the columns/rows of the "right" size
+ // and also set the grid size to just fit its contents
+ void AutoSize();
+
// column won't be resized to be lesser width - this must be called during
// the grid creation because it won't resize the column if it's already
// narrower than the minimal width
// column won't be resized to be lesser width - this must be called during
// the grid creation because it won't resize the column if it's already
// narrower than the minimal width
grid->SetColAttr(Col_Priority, attrRangeEditor);
grid->SetColAttr(Col_Severity, attrCombo);
grid->SetColAttr(Col_Priority, attrRangeEditor);
grid->SetColAttr(Col_Severity, attrCombo);
- grid->AutoSizeColumns();
-#if defined __WXMOTIF__
- // MB: the grid isn't getting a sensible default size under wxMotif
- int cw, ch;
- GetClientSize( &cw, &ch );
- grid->SetSize( cw, ch );
-#endif
return obj ? (int)obj : WXGRID_MIN_COL_WIDTH;
}
return obj ? (int)obj : WXGRID_MIN_COL_WIDTH;
}
+// ----------------------------------------------------------------------------
+// auto sizing
+// ----------------------------------------------------------------------------
+
void wxGrid::AutoSizeColumn( int col, bool setAsMin )
{
wxClientDC dc(m_gridWin);
void wxGrid::AutoSizeColumn( int col, bool setAsMin )
{
wxClientDC dc(m_gridWin);
void wxGrid::AutoSizeColumns( bool setAsMin )
{
void wxGrid::AutoSizeColumns( bool setAsMin )
{
+ int width = m_rowLabelWidth;
+
for ( int col = 0; col < m_numCols; col++ )
{
AutoSizeColumn(col, setAsMin);
for ( int col = 0; col < m_numCols; col++ )
{
AutoSizeColumn(col, setAsMin);
+
+ width += GetColWidth(col);
+
+ // also set the grid size to just fit the columns
+ SetSize(width, -1);
-//
-// ------ cell value accessor functions
-//
+void wxGrid::AutoSizeRows(bool WXUNUSED(setAsMin))
+{
+ int height = m_colLabelHeight;
+
+ for ( int row = 0; row < m_numRows; row++ )
+ {
+ // AutoSizeRow(row, setAsMin) -- TODO
+
+ height += GetRowHeight(row);
+ }
+
+ SetSize(-1, height);
+}
+
+void wxGrid::AutoSize()
+{
+ AutoSizeColumns();
+ AutoSizeRows();
+}
+
+// ----------------------------------------------------------------------------
+// cell value accessor functions
+// ----------------------------------------------------------------------------
void wxGrid::SetCellValue( int row, int col, const wxString& s )
{
void wxGrid::SetCellValue( int row, int col, const wxString& s )
{