6 Grid::Grid(Layout &l, unsigned c):
23 void Grid::process_widget(Widget &wdg, Side side, bool aligned)
27 Edge &top_edge = (first_row ? edges[TOP] : row_top);
28 if(top_edge.aligned && aligned)
29 add_constraint(wdg, Layout::ALIGN_TOP, top_edge);
31 bool snug = (edges[BOTTOM].aligned && aligned);
32 add_constraint(wdg, (snug ? Layout::BELOW : Layout::FAR_BELOW), BOTTOM);
34 top_edge.add(wdg, aligned);
38 if(row_bottom.aligned && aligned)
39 add_constraint(wdg, Layout::ALIGN_BOTTOM, row_bottom);
41 row_bottom.add(wdg, aligned);
45 if(columns[column].left.aligned && aligned)
46 add_constraint(wdg, Layout::ALIGN_LEFT, columns[column].left);
49 bool snug = (columns[column-1].right.aligned && aligned);
50 add_constraint(wdg, (snug ? Layout::RIGHT_OF : Layout::FAR_RIGHT_OF), columns[column-1].right);
53 edges[LEFT].add(wdg, (aligned && !column));
54 columns[column].left.add(wdg, aligned);
58 if(columns[column].right.aligned && aligned)
59 add_constraint(wdg, Layout::ALIGN_RIGHT, columns[column].right);
61 edges[RIGHT].add(wdg, (aligned && column+1==columns.size()));
62 columns[column].right.add(wdg, aligned);
66 void Grid::finish_widget(Widget &wdg)
68 layout.set_gravity(wdg, -1, 1);
71 void Grid::finish_slot()
74 if(column==columns.size())
78 void Grid::finish_row()
80 edges[BOTTOM] = row_bottom;
88 Grid::Loader::Loader(Grid &g):
89 DataFile::ObjectLoader<Grid>(g)
91 add("next_row", &Loader::next_row);
92 add("skip", &Loader::skip);
95 void Grid::Loader::next_row()
100 void Grid::Loader::skip()