]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/layout.h
Properly filter out duplicate constraints
[libs/gltk.git] / source / layout.h
index 230365182e1d84a881bc363a48487234215fd3a7..0ea47a11c3bdbcef50821bf619ed361b09d48ad5 100644 (file)
@@ -100,7 +100,7 @@ protected:
        struct Slot: public sigc::trackable
        {
                Layout &layout;
-               unsigned index;
+               int index;
                Widget &widget;
                Geometry autosize_geom;
                Geometry geom;
@@ -112,6 +112,7 @@ protected:
                virtual ~Slot() { }
 
                void autosize_changed();
+               void visibility_changed(bool);
        };
 
        enum SolveMode
@@ -125,6 +126,7 @@ protected:
 
        Container *container;
        std::list<Slot *> slots;
+       unsigned n_active_slots;
        Sides margin;
        unsigned row_spacing;
        unsigned col_spacing;
@@ -138,14 +140,23 @@ public:
 
        void set_container(Container &);
        void set_margin(const Sides &);
+
+       /** Sets the default spacing between widgets in bothg directions. */
        void set_spacing(unsigned);
+
+       /** Sets the default vertical spacing between widgets.  Affects the ABOVE
+       and BELOW constraints. */
        void set_row_spacing(unsigned);
+
+       /** Sets the default horizontal spacing between widgets.  Affects the
+       LEFT_OF and RIGHT_OF constraints. */
        void set_column_spacing(unsigned);
 
        void add_widget(Widget &);
        void remove_widget(Widget &);
 protected:
        virtual Slot *create_slot(Widget &);
+       void update_slot_indices();
        Slot &get_slot_for_widget(Widget &);
        static ConstraintType complement(ConstraintType);
        void create_constraint(Widget &, ConstraintType, Widget &, int);