X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Farrangement.cpp;h=5eeebbb99abe8df310fca5720df8f1ff7d3233d3;hb=7c1b1b44dc3726d6cdb4681f9d44189eb4102a5a;hp=581e6b405ccf9da2bbeea1f94401ab04bb185c01;hpb=32539688068fad9614291159b069da10ead10f47;p=libs%2Fgltk.git diff --git a/source/arrangement.cpp b/source/arrangement.cpp index 581e6b4..5eeebbb 100644 --- a/source/arrangement.cpp +++ b/source/arrangement.cpp @@ -37,15 +37,21 @@ void Arrangement::arrange(Arrangement &arr) 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) - layout.add_constraint(wdg, type, **i); + if(*i!=&wdg) + { + if(spacing<0) + layout.add_constraint(wdg, type, **i); + else + layout.add_constraint(wdg, type, **i, spacing); + } } Layout::ConstraintType Arrangement::get_order_constraint(Side s, bool slack) @@ -95,5 +101,17 @@ void Arrangement::Edge::add(Widget &wdg, bool algn) aligned = algn; } +void Arrangement::Edge::align() +{ + if(aligned || widgets.empty()) + return; + + list::iterator second = widgets.begin(); + ++second; + + widgets.erase(second, widgets.end()); + aligned = true; +} + } // namespace GLtk } // namespace Msp