diff options
| author | Matthias Melcher <github@matthiasm.com> | 2023-10-22 20:25:41 +0200 |
|---|---|---|
| committer | Matthias Melcher <github@matthiasm.com> | 2023-10-22 20:25:50 +0200 |
| commit | bf62959f1f76a5bafd3566a802b49fc2138a4763 (patch) | |
| tree | 4cfe161bcaae3be36904c3f7413d07813db21205 /fluid/Fl_Grid_Type.cxx | |
| parent | 1209e9dcd7e1e97bedc747d06ba4eea837562158 (diff) | |
FLUID: New layout of Grid tab.
Diffstat (limited to 'fluid/Fl_Grid_Type.cxx')
| -rw-r--r-- | fluid/Fl_Grid_Type.cxx | 173 |
1 files changed, 5 insertions, 168 deletions
diff --git a/fluid/Fl_Grid_Type.cxx b/fluid/Fl_Grid_Type.cxx index 390153ed4..2ae88d127 100644 --- a/fluid/Fl_Grid_Type.cxx +++ b/fluid/Fl_Grid_Type.cxx @@ -393,102 +393,11 @@ void Fl_Grid_Type::child_resized(Fl_Widget_Type *child_type) { // TODO: if the user resizes an FL_GRID_FILL widget, should we change the alignment? } -void grid_cb(Fl_Value_Input* i, void* v, int what) { - if (v == LOAD) { - if (current_widget->is_a(ID_Grid)) { - int v; - Fl_Grid *g = ((Fl_Grid*)current_widget->o); - switch (what) { - case 0: g->margin(&v, NULL, NULL, NULL); break; - case 1: g->margin(NULL, &v, NULL, NULL); break; - case 2: g->margin(NULL, NULL, &v, NULL); break; - case 3: g->margin(NULL, NULL, NULL, &v); break; - case 4: g->gap(&v, NULL); break; - case 5: g->gap(NULL, &v); break; - } - i->value(v); - } - } else { - int mod = 0; - int v = (int)i->value(); - for (Fl_Type *o = Fl_Type::first; o; o = o->next) { - if (o->selected && o->is_a(ID_Grid)) { - Fl_Grid *g = ((Fl_Grid*)(((Fl_Widget_Type*)o)->o)); - switch (what) { - case 0: g->margin(v, -1, -1, -1); break; - case 1: g->margin(-1, v, -1, -1); break; - case 2: g->margin(-1, -1, v, -1); break; - case 3: g->margin(-1, -1, -1, v); break; - case 4: g->gap(v, -1); break; - case 5: g->gap(-1, v); break; - } - g->need_layout(true); - g->redraw(); - mod = 1; - } - } - if (mod) set_modflag(1); - } -} -void grid_margin_left_cb(Fl_Value_Input* i, void* v) { - grid_cb(i, v, 0); -} -void grid_margin_top_cb(Fl_Value_Input* i, void* v) { - grid_cb(i, v, 1); -} -void grid_margin_right_cb(Fl_Value_Input* i, void* v) { - grid_cb(i, v, 2); -} -void grid_margin_bottom_cb(Fl_Value_Input* i, void* v) { - grid_cb(i, v, 3); -} -void grid_row_gap_cb(Fl_Value_Input* i, void* v) { - grid_cb(i, v, 4); -} -void grid_col_gap_cb(Fl_Value_Input* i, void* v) { - grid_cb(i, v, 5); -} - -void grid_cb(Fluid_Coord_Input* i, void* v, int what) { - if (v == LOAD) { - if (current_widget->is_a(ID_Grid)) { - int v = 0; - Fl_Grid *g = ((Fl_Grid*)current_widget->o); - switch (what) { - case 6: v = g->rows(); break; - case 7: v = g->cols(); break; - } - i->value(v); - } - } else { - int mod = 0; - int old_v = 0, v = (int)i->value(); - for (Fl_Type *o = Fl_Type::first; o; o = o->next) { - if (o->selected && o->is_a(ID_Grid)) { - Fl_Grid *g = ((Fl_Grid*)(((Fl_Widget_Type*)o)->o)); - switch (what) { - case 6: old_v = g->rows(); break; - case 7: old_v = g->cols(); break; - } - if (old_v != v) { - switch (what) { - case 6: g->layout(v, g->cols()); break; - case 7: g->layout(g->rows(), v); break; - } - g->need_layout(true); - g->redraw(); - mod = 1; - } - } - } - if (mod) set_modflag(1); - } -} -void grid_rows_cb(Fluid_Coord_Input* i, void* v) { - grid_cb(i, v, 6); -} -void grid_cols_cb(Fluid_Coord_Input* i, void* v) { - grid_cb(i, v, 7); +/** Return the currently selected Grid widget if is a Grid Type. */ +Fl_Grid *Fl_Grid_Type::selected() { + if (current_widget && current_widget->is_a(ID_Grid)) + return ((Fl_Grid*)((Fl_Grid_Type*)current_widget)->o); + return NULL; } extern Fluid_Coord_Input *widget_grid_row_input, *widget_grid_col_input; @@ -616,75 +525,3 @@ void grid_align_cb(Fl_Choice* i, void* v) { } } } - -void grid_row_col_cb(Fluid_Coord_Input* i, void* v, int what) { - if ( !current_widget - || !current_widget->parent - || !current_widget->parent->is_a(ID_Grid)) - { - return; - } - Fl_Grid *g = ((Fl_Grid*)((Fl_Widget_Type*)current_widget->parent)->o); - Fl_Grid::Cell *cell = g->cell(current_widget->o); - if (v == LOAD) { - if (cell) { - int v = 0; - switch (what) { - case 0: v = g->row_height(cell->row()); break; - case 1: v = g->row_weight(cell->row()); break; - case 2: v = g->row_gap(cell->row()); break; - case 3: v = g->col_width(cell->col()); break; - case 4: v = g->col_weight(cell->col()); break; - case 5: v = g->col_gap(cell->col()); break; - } - i->value(v); - i->activate(); - } else { - i->deactivate(); - } - } else { - if (cell) { - int v = i->value(), old_v = 0; - switch (what) { - case 0: old_v = g->row_height(cell->row()); break; - case 1: old_v = g->row_weight(cell->row()); break; - case 2: old_v = g->row_gap(cell->row()); break; - case 3: old_v = g->col_width(cell->col()); break; - case 4: old_v = g->col_weight(cell->col()); break; - case 5: old_v = g->col_gap(cell->col()); break; - } - if (old_v != v) { - switch (what) { - case 0: g->row_height(cell->row(), v); break; - case 1: g->row_weight(cell->row(), v); break; - case 2: g->row_gap(cell->row(), v); break; - case 3: g->col_width(cell->col(), v); break; - case 4: g->col_weight(cell->col(), v); break; - case 5: g->col_gap(cell->col(), v); break; - } - g->need_layout(true); - g->redraw(); - set_modflag(1); - } - } - } -} -void grid_row_height(Fluid_Coord_Input* i, void* v) { - grid_row_col_cb(i, v, 0); -} -void grid_row_weight(Fluid_Coord_Input* i, void* v) { - grid_row_col_cb(i, v, 1); -} -void grid_row_gap(Fluid_Coord_Input* i, void* v) { - grid_row_col_cb(i, v, 2); -} - -void grid_col_width(Fluid_Coord_Input* i, void* v) { - grid_row_col_cb(i, v, 3); -} -void grid_col_weight(Fluid_Coord_Input* i, void* v) { - grid_row_col_cb(i, v, 4); -} -void grid_col_gap(Fluid_Coord_Input* i, void* v) { - grid_row_col_cb(i, v, 5); -} |
