6 Column::Column(Layout &l):
16 throw arrangement_error("already split");
22 void Column::process_widget(Widget &wdg, Side side, bool aligned)
26 bool snug = (edges[BOTTOM].aligned && aligned && !split_here);
27 add_constraint(wdg, (snug ? Layout::BELOW : Layout::FAR_BELOW), BOTTOM);
29 edges[TOP].add(wdg, aligned);
32 next_bottom.add(wdg, (aligned && gravity<0));
35 if(edges[side].aligned && aligned)
36 add_constraint(wdg, (side==LEFT ? Layout::ALIGN_LEFT : Layout::ALIGN_RIGHT), side);
37 edges[side].add(wdg, aligned);
41 void Column::finish_widget(Widget &wdg)
43 layout.set_gravity(wdg, -1, gravity);
46 void Column::finish_slot()
48 edges[BOTTOM] = next_bottom;
55 Column::Loader::Loader(Column &c):
56 DataFile::ObjectLoader<Column>(c)
58 add("split", &Loader::split);
61 void Column::Loader::split()