X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Farrangement.cpp;h=5eeebbb99abe8df310fca5720df8f1ff7d3233d3;hb=HEAD;hp=9982691e4cb0a81a3fdedb6c891739ce1a198701;hpb=fef09a8d2fe38dcc8fd3beff3e132f945a4d4c8a;p=libs%2Fgltk.git diff --git a/source/arrangement.cpp b/source/arrangement.cpp index 9982691..2adb965 100644 --- a/source/arrangement.cpp +++ b/source/arrangement.cpp @@ -31,22 +31,27 @@ void Arrangement::arrange(Arrangement &arr) { Side side = static_cast(i); const Edge &edge = arr.get_edge(side); - for(list::const_iterator j=edge.widgets.begin(); j!=edge.widgets.end(); ++j) - process_widget(**j, side, edge.aligned); + for(Widget *w: edge.widgets) + process_widget(*w, side, edge.aligned); } finish_slot(); } -void Arrangement::add_constraint(Widget &wdg, Layout::ConstraintType type, Side side) +void Arrangement::add_constraint(Widget &wdg, Layout::ConstraintType type, Side side, int spacing) { - add_constraint(wdg, type, edges[side]); + add_constraint(wdg, type, edges[side], spacing); } -void Arrangement::add_constraint(Widget &wdg, Layout::ConstraintType type, const Edge &edge) +void Arrangement::add_constraint(Widget &wdg, Layout::ConstraintType type, const Edge &edge, int spacing) { - for(list::const_iterator i=edge.widgets.begin(); i!=edge.widgets.end(); ++i) - if(*i!=&wdg) - layout.add_constraint(wdg, type, **i); + for(Widget *w: edge.widgets) + if(w!=&wdg) + { + if(spacing<0) + layout.add_constraint(wdg, type, *w); + else + layout.add_constraint(wdg, type, *w, spacing); + } } Layout::ConstraintType Arrangement::get_order_constraint(Side s, bool slack) @@ -74,10 +79,6 @@ Layout::ConstraintType Arrangement::get_align_constraint(Side s) } -Arrangement::Edge::Edge(): - aligned(false) -{ } - void Arrangement::Edge::clear() { widgets.clear(); @@ -101,7 +102,7 @@ void Arrangement::Edge::align() if(aligned || widgets.empty()) return; - list::iterator second = widgets.begin(); + auto second = widgets.begin(); ++second; widgets.erase(second, widgets.end());