]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/layout.h
Allow loading generic layout properties from datafiles
[libs/gltk.git] / source / layout.h
index 2de4013a5d1e8b943cf939abd5b63b114e5fd1e3..b8c4eddf51c526222538457b64a971d6e6e83ad2 100644 (file)
@@ -86,7 +86,42 @@ public:
                COPY_HEIGHT = VERTICAL|SELF_DIM|TARGET_DIM
        };
 
+       class Loader: public DataFile::ObjectLoader<Layout>
+       {
+       public:
+               typedef std::map<std::string, Widget *> WidgetMap;
+
+       private:
+               const WidgetMap &wdg_map;
+
+       public:
+               Loader(Layout &, const WidgetMap &);
+
+       private:
+               void column_spacing(unsigned);
+               void margin();
+               void row_spacing(unsigned);
+               void spacing(unsigned);
+               void widget(const std::string &);
+       };
+
 private:
+       class WidgetLoader: public DataFile::Loader
+       {
+       private:
+               Layout &layout;
+               Widget &widget;
+               const Layout::Loader::WidgetMap &wdg_map;
+
+       public:
+               WidgetLoader(Layout &, Widget &, const Layout::Loader::WidgetMap &);
+
+       private:
+               void constraint(ConstraintType, const std::string &);
+               void expand(bool, bool);
+               void gravity(int, int);
+       };
+
        struct Slot;
 
        struct Constraint