summaryrefslogtreecommitdiff
path: root/src/Fl_Grid.cxx
diff options
context:
space:
mode:
authormaxim nikonov <maxim.nikonov@hqo.co>2026-02-06 18:12:40 +0500
committermaxim nikonov <maxim.nikonov@hqo.co>2026-02-06 18:12:40 +0500
commitb4995f979d127cea667b4e2b71c91e9db4ab52ef (patch)
treefbebc775e10932bace8d6a7c3481b1ba200c64db /src/Fl_Grid.cxx
parent9575eb0a1ffa8150f70f88b5f6b55f342c3c0088 (diff)
wip
Diffstat (limited to 'src/Fl_Grid.cxx')
-rw-r--r--src/Fl_Grid.cxx66
1 files changed, 41 insertions, 25 deletions
diff --git a/src/Fl_Grid.cxx b/src/Fl_Grid.cxx
index 4a4d7afd0..f82d2c342 100644
--- a/src/Fl_Grid.cxx
+++ b/src/Fl_Grid.cxx
@@ -200,7 +200,8 @@ void Fl_Grid::layout(int rows, int cols, int margin, int gap) {
if (cols != cols_) {
Col *new_cols = new Col[cols];
- for (int c = 0; c < cols; c++) {
+ int c;
+ for (c = 0; c < cols; c++) {
if (c < cols_)
new_cols[c] = Cols_[c];
else
@@ -215,7 +216,8 @@ void Fl_Grid::layout(int rows, int cols, int margin, int gap) {
if (rows != rows_) {
Row *new_rows = new Row[rows];
Row *row = Rows_;
- for (int r = 0; r < rows; r++, row++) {
+ int r;
+ for (r = 0; r < rows; r++, row++) {
if (r < rows_) {
new_rows[r] = *row;
row->cells_ = 0;
@@ -257,7 +259,8 @@ void Fl_Grid::draw_grid() {
// draw horizontal lines (gap = 0) or rectangles (gap > 0)
- for (int r = 0; r < rows_ - 1; r++) {
+ int r;
+ for (r = 0; r < rows_ - 1; r++) {
int gap = Rows_[r].gap_ >= 0 ? Rows_[r].gap_ : gap_row_;
y0 += Rows_[r].h_;
@@ -274,7 +277,8 @@ void Fl_Grid::draw_grid() {
x0 = x() + Fl::box_dx(box()) + margin_left_;
y0 = y() + Fl::box_dy(box()) + margin_top_;
- for (int c = 0; c < cols_ - 1; c++) {
+ int c;
+ for (c = 0; c < cols_ - 1; c++) {
int gap = Cols_[c].gap_ >= 0 ? Cols_[c].gap_ : gap_col_;
x0 += Cols_[c].w_;
@@ -345,21 +349,23 @@ void Fl_Grid::layout() {
// initialize column widths and row heights
col = Cols_;
- for (int c = 0; c < cols_; c++, col++) {
+ int c;
+ for (c = 0; c < cols_; c++, col++) {
col->w_ = col->minw_;
}
row = Rows_;
- for (int r = 0; r < rows_; r++, row++) {
+ int r;
+ for (r = 0; r < rows_; r++, row++) {
row->h_ = row->minh_;
}
// calculate minimal column widths and row heights (in one loop)
row = Rows_;
- for (int r = 0; r < rows_; r++, row++) {
+ for (r = 0; r < rows_; r++, row++) {
col = Cols_;
- for (int c = 0; c < cols_; c++, col++) {
+ for (c = 0; c < cols_; c++, col++) {
cel = cell(r, c);
if (cel) {
Fl_Widget *wi = cel->widget_;
@@ -384,7 +390,7 @@ void Fl_Grid::layout() {
int irwe = 0; // index of row with highest weight
col = Cols_;
- for (int c = 0; c < cols_; c++, col++) {
+ for (c = 0; c < cols_; c++, col++) {
tcwi += col->w_;
tcwe += col->weight_;
if (c < cols_ - 1)
@@ -396,7 +402,7 @@ void Fl_Grid::layout() {
}
row = Rows_;
- for (int r = 0; r < rows_; r++, row++) {
+ for (r = 0; r < rows_; r++, row++) {
trhe += row->h_;
trwe += row->weight_;
if (r < rows_ - 1)
@@ -417,7 +423,7 @@ void Fl_Grid::layout() {
if (space > 0 && tcwe > 0) {
remaining = space;
col = Cols_;
- for (int c = 0; c < cols_; c++, col++) {
+ for (c = 0; c < cols_; c++, col++) {
if (col->weight_ > 0) {
add_space = int(float(space * col->weight_) / tcwe + 0.5);
col->w_ += add_space;
@@ -433,7 +439,7 @@ void Fl_Grid::layout() {
if (space > 0 && trwe > 0) {
remaining = space;
row = Rows_;
- for (int r = 0; r < rows_; r++, row++) {
+ for (r = 0; r < rows_; r++, row++) {
if (row->weight_ > 0) {
add_space = int(float(space * row->weight_) / trwe + 0.5);
row->h_ += add_space;
@@ -451,10 +457,10 @@ void Fl_Grid::layout() {
y0 = y() + Fl::box_dy(box()) + margin_top_;
row = Rows_;
- for (int r = 0; r < rows_; r++, row++) {
+ for (r = 0; r < rows_; r++, row++) {
x0 = x() + Fl::box_dx(box()) + margin_left_;
col = Cols_;
- for (int c = 0; c < cols_; c++, col++) {
+ for (c = 0; c < cols_; c++, col++) {
int wx = x0; // widget's x
int wy = y0; // widget's y
cel = cell(r, c);
@@ -467,12 +473,13 @@ void Fl_Grid::layout() {
int ww = col->w_;
int wh = row->h_;
- for (int i = 0; i < cel->colspan_ - 1; i++) {
+ int i;
+ for (i = 0; i < cel->colspan_ - 1; i++) {
ww += (Cols_[c + i].gap_ >= 0) ? Cols_[c + i].gap_ : gap_col_;
ww += Cols_[c + i + 1].w_;
}
- for (int i = 0; i < cel->rowspan_ - 1; i++) {
+ for (i = 0; i < cel->rowspan_ - 1; i++) {
wh += (Rows_[r + i].gap_ >= 0) ? Rows_[r + i].gap_ : gap_row_;
wh += Rows_[r + i + 1].h_;
}
@@ -609,7 +616,8 @@ void Fl_Grid::clear_layout() {
delete[] Cols_;
delete[] Rows_;
init();
- for (int i = 0; i < children(); i++) {
+ int i;
+ for (i = 0; i < children(); i++) {
child(i)->hide();
}
need_layout(1);
@@ -766,7 +774,8 @@ Fl_Grid::Cell* Fl_Grid::cell(int row, int col) const {
*/
Fl_Grid::Cell* Fl_Grid::cell(Fl_Widget *widget) const {
Row *row = Rows_;
- for (int r = 0; r < rows_; r++, row++) {
+ int r;
+ for (r = 0; r < rows_; r++, row++) {
Cell *cel = row->cells_;
while (cel) {
if (cel->widget_ == widget)
@@ -914,7 +923,8 @@ void Fl_Grid::col_width(int col, int value) {
*/
void Fl_Grid::col_width(const int *value, size_t size) {
Col *c = Cols_;
- for (int i = 0; i < cols_; i++, value++, c++) {
+ int i;
+ for (i = 0; i < cols_; i++, value++, c++) {
if (i >= (int)size) break;
if (*value >= 0)
c->minw_ = *value;
@@ -984,7 +994,8 @@ void Fl_Grid::col_weight(int col, int value) {
*/
void Fl_Grid::col_weight(const int *value, size_t size) {
Col *c = Cols_;
- for (int i = 0; i < cols_; i++, value++, c++) {
+ int i;
+ for (i = 0; i < cols_; i++, value++, c++) {
if (i >= (int)size) break;
if (*value >= 0)
c->weight_ = *value;
@@ -1020,7 +1031,8 @@ void Fl_Grid::col_gap(int col, int value) {
*/
void Fl_Grid::col_gap(const int *value, size_t size) {
Col *c = Cols_;
- for (int i = 0; i < cols_; i++, value++, c++) {
+ int i;
+ for (i = 0; i < cols_; i++, value++, c++) {
if (i >= (int)size) break;
if (*value >= 0)
c->gap_ = *value;
@@ -1056,7 +1068,8 @@ void Fl_Grid::row_height(int row, int value) {
*/
void Fl_Grid::row_height(const int *value, size_t size) {
Row *r = Rows_;
- for (int i = 0; i < rows_; i++, value++, r++) {
+ int i;
+ for (i = 0; i < rows_; i++, value++, r++) {
if (i >= (int)size) break;
if (*value >= 0)
r->minh_ = *value;
@@ -1092,7 +1105,8 @@ void Fl_Grid::row_weight(int row, int value) {
*/
void Fl_Grid::row_weight(const int *value, size_t size) {
Row *r = Rows_;
- for (int i = 0; i < rows_; i++, value++, r++) {
+ int i;
+ for (i = 0; i < rows_; i++, value++, r++) {
if (i >= (int)size) break;
if (*value >= 0)
r->weight_ = *value;
@@ -1129,7 +1143,8 @@ void Fl_Grid::row_gap(int row, int value) {
*/
void Fl_Grid::row_gap(const int *value, size_t size) {
Row *r = Rows_;
- for (int i = 0; i < rows_; i++, value++, r++) {
+ int i;
+ for (i = 0; i < rows_; i++, value++, r++) {
if (i >= (int)size) break;
if (*value >= 0)
r->gap_ = *value;
@@ -1177,7 +1192,8 @@ void Fl_Grid::debug(int level) {
fprintf(stderr, " gaps: (%2d, %2d)\n",
gap_row_, gap_col_);
Row *row = Rows_;
- for (int r = 0; r < rows_; r++, row++) {
+ int r;
+ for (r = 0; r < rows_; r++, row++) {
fprintf(stderr, "Row %2d: minh = %d, weight = %d, gap = %d, h = %d\n",
r, row->minh_, row->weight_, row->gap_, row->h_);
Cell *cel = row->cells_;