]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/layout.h
Better method of implementing zero gravity
[libs/gltk.git] / source / layout.h
index b8c4eddf51c526222538457b64a971d6e6e83ad2..043d92cc1554b738092ce3ad771fcf5bb3cc5049 100644 (file)
@@ -119,6 +119,7 @@ private:
        private:
                void constraint(ConstraintType, const std::string &);
                void expand(bool, bool);
+               void ghost(bool);
                void gravity(int, int);
        };
 
@@ -151,6 +152,7 @@ private:
                std::list<Constraint> constraints;
                Packing horiz_pack;
                Packing vert_pack;
+               bool ghost;
 
                Slot(Layout &, Widget &);
 
@@ -170,7 +172,7 @@ private:
        Container *container;
        std::list<Slot *> slots;
        unsigned n_active_slots;
-       unsigned n_slack_constraints[2];
+       unsigned n_slack_vars[2];
        Sides margin;
        unsigned row_spacing;
        unsigned col_spacing;
@@ -185,8 +187,9 @@ public:
 
        void set_container(Container &);
        void set_margin(const Sides &);
+       const Sides &get_margin() const { return margin; }
 
-       /** Sets the default spacing between widgets in bothg directions. */
+       /** Sets the default spacing between widgets in both directions. */
        void set_spacing(unsigned);
 
        /** Sets the default vertical spacing between widgets.  Affects the ABOVE
@@ -197,6 +200,9 @@ public:
        LEFT_OF and RIGHT_OF constraints. */
        void set_column_spacing(unsigned);
 
+       unsigned get_row_spacing() const { return row_spacing; }
+       unsigned get_column_spacing() const { return col_spacing; }
+
        void push_arrangement(Arrangement &);
        Arrangement *get_arrangement() const;
        void pop_arrangement(Arrangement &);
@@ -220,8 +226,11 @@ public:
        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);