summaryrefslogtreecommitdiff
path: root/fluid/Fl_Grid_Type.cxx
diff options
context:
space:
mode:
authorMatthias Melcher <github@matthiasm.com>2023-10-22 20:25:41 +0200
committerMatthias Melcher <github@matthiasm.com>2023-10-22 20:25:50 +0200
commitbf62959f1f76a5bafd3566a802b49fc2138a4763 (patch)
tree4cfe161bcaae3be36904c3f7413d07813db21205 /fluid/Fl_Grid_Type.cxx
parent1209e9dcd7e1e97bedc747d06ba4eea837562158 (diff)
FLUID: New layout of Grid tab.
Diffstat (limited to 'fluid/Fl_Grid_Type.cxx')
-rw-r--r--fluid/Fl_Grid_Type.cxx173
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);
-}