X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flayout.h;h=aa11e965bf19cbc042b968c65d38506686625f27;hb=81c4024fb6acf37df702a803dc4efdf82a81525a;hp=a13a0934a5761a962ca4eddd553d48c76476872f;hpb=05ef650bff69b998440a6c082dd90e205fe6c233;p=libs%2Fgltk.git diff --git a/source/layout.h b/source/layout.h index a13a093..aa11e96 100644 --- a/source/layout.h +++ b/source/layout.h @@ -6,6 +6,7 @@ #include #include #include "geometry.h" +#include "mspgltk_api.h" namespace Msp { namespace GLtk { @@ -50,7 +51,7 @@ Since specifiyng constraints manually can be quite tedious, an Arrangement interface is provided to automatically arrange widgets. See classes Row, Column and Grid for some commonly used arrangements. */ -class Layout +class MSPGLTK_API Layout { private: enum @@ -132,31 +133,29 @@ private: { ConstraintType type; Slot ⌖ - int spacing; + int spacing = -1; Constraint(ConstraintType, Slot &); }; struct Packing { - int gravity; - bool expand; - - Packing(); + int gravity = -1; + bool expand = false; }; struct Slot: public sigc::trackable { Layout &layout; - int index; + int index = 0; Widget &widget; Geometry autosize_geom; Geometry geom; std::list constraints; Packing horiz_pack; Packing vert_pack; - bool ghost; - bool floating; + bool ghost = false; + bool floating = false; Slot(Layout &, Widget &); @@ -173,20 +172,19 @@ private: class LinearProgram; struct Pointers; - Container *container; + Container *container = nullptr; std::list slots; - unsigned n_active_slots; - unsigned n_slack_vars[2]; - Sides margin; - unsigned row_spacing; - unsigned col_spacing; + unsigned n_active_slots = 0; + unsigned n_slack_vars[2] = { 0, 0 }; + Sides margin{ 8 }; + unsigned row_spacing = 5; + unsigned col_spacing = 4; Geometry autosize_geom; std::list arrangement_stack; static Pointers pointers[2]; public: - Layout(); ~Layout(); void set_container(Container &); @@ -242,7 +240,7 @@ private: void solve_constraints(int, SolveMode); }; -void operator>>(const LexicalConverter &, Layout::ConstraintType &); +MSPGLTK_API void operator>>(const LexicalConverter &, Layout::ConstraintType &); } // namespace GLtk } // namespace Msp