for(int col = 0; col < cells.shape()[0]; col++) {
int max_w = 0;
for(int row = 0; row < cells.shape()[1]; row++) {
max_w = max(max_w, cells[col][row].label->Size().w);
}
col_widths[col] = max_w;
}
for(int row = 0; row < cells.shape()[1]; row++) {
int max_h = 0;
for(int col = 0; col < cells.shape()[0]; col++) {
max_h = max(max_h, cells[col][row].label->Size().h);
}
row_heights[row] = max_h;
}
int x_of_column = h_padding;
int y_of_row;
for(int col = 0; col < col_widths.size(); col++) {
y_of_row = v_padding;
for(int row = 0; row < row_heights.size(); row++) {
cells[col][row].label->Move(x_of_column, y_of_row);
y_of_row += row_heights[row] + border_width + 2*h_padding;
}
x_of_column += col_widths[col] + border_width + 2*v_padding;
}
Resize(x_of_column, y_of_row);
Refactorings
No refactoring yet !
maybe can use std algos like max_element via array views?