]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/grid.cpp
Rework how widget ownership works in Container
[libs/gltk.git] / source / grid.cpp
index b3e9c43c311898896638e267d13edcdc88cba1a7..eb32cc91d8c4ec2f0c757d36b8f2ceb8f7d3cdea 100644 (file)
@@ -3,11 +3,9 @@
 namespace Msp {
 namespace GLtk {
 
-Grid::Grid(Layout &l, unsigned c):
+Grid::Grid(Layout &l, size_t c):
        Arrangement(l),
-       columns(c),
-       first_row(true),
-       column(0)
+       columns(c)
 { }
 
 void Grid::skip()
@@ -17,6 +15,9 @@ void Grid::skip()
 
 void Grid::next_row()
 {
+       if(row_bottom.empty())
+               throw arrangement_error("empty row not allowed");
+
        finish_row();
 }
 
@@ -84,5 +85,23 @@ void Grid::finish_row()
        column = 0;
 }
 
+
+Grid::Loader::Loader(Grid &g):
+       DataFile::ObjectLoader<Grid>(g)
+{
+       add("next_row", &Loader::next_row);
+       add("skip",     &Loader::skip);
+}
+
+void Grid::Loader::next_row()
+{
+       obj.next_row();
+}
+
+void Grid::Loader::skip()
+{
+       obj.skip();
+}
+
 } // namespace GLtk
 } // namespace Msp