]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/arrangement.cpp
Support widget expansion in linear layouts
[libs/gltk.git] / source / arrangement.cpp
index 581e6b405ccf9da2bbeea1f94401ab04bb185c01..9982691e4cb0a81a3fdedb6c891739ce1a198701 100644 (file)
@@ -45,7 +45,8 @@ void Arrangement::add_constraint(Widget &wdg, Layout::ConstraintType type, Side
 void Arrangement::add_constraint(Widget &wdg, Layout::ConstraintType type, const Edge &edge)
 {
        for(list<Widget *>::const_iterator i=edge.widgets.begin(); i!=edge.widgets.end(); ++i)
-               layout.add_constraint(wdg, type, **i);
+               if(*i!=&wdg)
+                       layout.add_constraint(wdg, type, **i);
 }
 
 Layout::ConstraintType Arrangement::get_order_constraint(Side s, bool slack)
@@ -95,5 +96,17 @@ void Arrangement::Edge::add(Widget &wdg, bool algn)
        aligned = algn;
 }
 
+void Arrangement::Edge::align()
+{
+       if(aligned || widgets.empty())
+               return;
+
+       list<Widget *>::iterator second = widgets.begin();
+       ++second;
+
+       widgets.erase(second, widgets.end());
+       aligned = true;
+}
+
 } // namespace GLtk
 } // namespace Msp