1 #include "arrangement.h"
8 Arrangement::Arrangement(Layout &l):
10 parent(layout.get_arrangement())
12 layout.push_arrangement(*this);
15 Arrangement::~Arrangement()
17 layout.pop_arrangement(*this);
20 void Arrangement::arrange(Widget &wdg)
22 for(unsigned i=0; i<4; ++i)
23 process_widget(wdg, static_cast<Side>(i), true);
28 void Arrangement::arrange(Arrangement &arr)
30 for(unsigned i=0; i<4; ++i)
32 Side side = static_cast<Side>(i);
33 const Edge &edge = arr.get_edge(side);
34 for(list<Widget *>::const_iterator j=edge.widgets.begin(); j!=edge.widgets.end(); ++j)
35 process_widget(**j, side, edge.aligned);
40 void Arrangement::add_constraint(Widget &wdg, Layout::ConstraintType type, Side side)
42 add_constraint(wdg, type, edges[side]);
45 void Arrangement::add_constraint(Widget &wdg, Layout::ConstraintType type, const Edge &edge)
47 for(list<Widget *>::const_iterator i=edge.widgets.begin(); i!=edge.widgets.end(); ++i)
48 layout.add_constraint(wdg, type, **i);
52 Arrangement::Edge::Edge():
56 void Arrangement::Edge::clear()
62 void Arrangement::Edge::add(Widget &wdg, bool algn)
70 widgets.push_back(&wdg);