]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/arrangement.cpp
Combine common parts of Column and Row into LinearArrangement
[libs/gltk.git] / source / arrangement.cpp
index ec890efb7e08d55f8802c0c20f434e7a4e9bdfba..581e6b405ccf9da2bbeea1f94401ab04bb185c01 100644 (file)
@@ -48,6 +48,30 @@ void Arrangement::add_constraint(Widget &wdg, Layout::ConstraintType type, const
                layout.add_constraint(wdg, type, **i);
 }
 
+Layout::ConstraintType Arrangement::get_order_constraint(Side s, bool slack)
+{
+       switch(s)
+       {
+       case TOP:    return (slack ? Layout::FAR_ABOVE : Layout::ABOVE);
+       case RIGHT:  return (slack ? Layout::FAR_RIGHT_OF : Layout::RIGHT_OF);
+       case BOTTOM: return (slack ? Layout::FAR_BELOW : Layout::BELOW);
+       case LEFT:   return (slack ? Layout::FAR_LEFT_OF : Layout::LEFT_OF);
+       default: throw invalid_argument("Arrangement::get_align_constraint");
+       }
+}
+
+Layout::ConstraintType Arrangement::get_align_constraint(Side s)
+{
+       switch(s)
+       {
+       case TOP:    return Layout::ALIGN_TOP;
+       case RIGHT:  return Layout::ALIGN_RIGHT;
+       case BOTTOM: return Layout::ALIGN_BOTTOM;
+       case LEFT:   return Layout::ALIGN_LEFT;
+       default: throw invalid_argument("Arrangement::get_align_constraint");
+       }
+}
+
 
 Arrangement::Edge::Edge():
        aligned(false)