]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/column.cpp
Combine common parts of Column and Row into LinearArrangement
[libs/gltk.git] / source / column.cpp
index 811185dfcb669b717db499d24882aa9e4be474b5..e7f709531a06f2e5785ac9e070c7aef31f6f988d 100644 (file)
@@ -4,63 +4,12 @@ namespace Msp {
 namespace GLtk {
 
 Column::Column(Layout &l):
-       Arrangement(l),
-       first(true),
-       split_here(false),
-       gravity(1)
+       LinearArrangement(l, BOTTOM)
 { }
 
-void Column::split()
-{
-       if(gravity<0)
-               throw arrangement_error("already split");
-
-       split_here = true;
-       gravity = -1;
-}
-
-void Column::process_widget(Widget &wdg, Side side, bool aligned)
-{
-       if(side==TOP)
-       {
-               bool snug = (edges[BOTTOM].aligned && aligned && !split_here);
-               add_constraint(wdg, (snug ? Layout::BELOW : Layout::FAR_BELOW), BOTTOM);
-               if(first)
-                       edges[TOP].add(wdg, aligned);
-       }
-       else if(side==BOTTOM)
-               next_bottom.add(wdg, (aligned && gravity<0));
-       else
-       {
-               if(edges[side].aligned && aligned)
-                       add_constraint(wdg, (side==LEFT ? Layout::ALIGN_LEFT : Layout::ALIGN_RIGHT), side);
-               edges[side].add(wdg, aligned);
-       }
-}
-
 void Column::finish_widget(Widget &wdg)
 {
-       layout.set_gravity(wdg, -1, gravity);
-}
-
-void Column::finish_slot()
-{
-       edges[BOTTOM] = next_bottom;
-       next_bottom.clear();
-       split_here = false;
-       first = false;
-}
-
-
-Column::Loader::Loader(Column &c):
-       DataFile::ObjectLoader<Column>(c)
-{
-       add("split", &Loader::split);
-}
-
-void Column::Loader::split()
-{
-       obj.split();
+       layout.set_gravity(wdg, -1, (gravity==BOTTOM ? -1 : 1));
 }
 
 } // namespace GLtk