struct Slot: public sigc::trackable
{
Layout &layout;
- unsigned index;
+ int index;
Widget &widget;
Geometry autosize_geom;
Geometry geom;
virtual ~Slot() { }
void autosize_changed();
+ void visibility_changed(bool);
};
enum SolveMode
Container *container;
std::list<Slot *> slots;
+ unsigned n_active_slots;
Sides margin;
unsigned row_spacing;
unsigned col_spacing;
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);