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 ghost(bool);
+ void gravity(int, int);
+ };
+
struct Slot;
struct Constraint
std::list<Constraint> constraints;
Packing horiz_pack;
Packing vert_pack;
+ bool ghost;
Slot(Layout &, Widget &);
void set_gravity(Widget &, int, int);
void set_expand(Widget &, bool, bool);
+ /// Sets a widget as a ghost, taking up space even if it is hidden.
+ void set_ghost(Widget &, bool);
+
void update();
- void autosize();
+ void autosize(Geometry &);
private:
void solve_constraints(int, SolveMode);