]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/layout.h
Add constraint types that allow flexible spacing between widgets
[libs/gltk.git] / source / layout.h
index 43d1ca875c2d01d9e9a60e9e22e554808b43d673..2bddb77cfa30bef43632036b8e2564e41e59a06e 100644 (file)
@@ -61,7 +61,8 @@ private:
                TARGET_POS = 8,
                TARGET_DIM = 16,
                TARGET_MASK = 24,
-               SPACING = 32
+               SPACING = 32,
+               SLACK = 64
        };
 
 public:
@@ -71,6 +72,10 @@ public:
                BELOW = VERTICAL|SELF_POS|SELF_DIM|TARGET_POS|SPACING,
                RIGHT_OF = HORIZONTAL|SELF_POS|TARGET_POS|TARGET_DIM|SPACING,
                LEFT_OF = HORIZONTAL|SELF_POS|SELF_DIM|TARGET_POS|SPACING,
+               FAR_ABOVE = VERTICAL|SELF_POS|TARGET_POS|TARGET_DIM|SPACING|SLACK,
+               FAR_BELOW = VERTICAL|SELF_POS|SELF_DIM|TARGET_POS|SPACING|SLACK,
+               FAR_RIGHT_OF = HORIZONTAL|SELF_POS|TARGET_POS|TARGET_DIM|SPACING|SLACK,
+               FAR_LEFT_OF = HORIZONTAL|SELF_POS|SELF_DIM|TARGET_POS|SPACING|SLACK,
                ALIGN_TOP = VERTICAL|SELF_POS|SELF_DIM|TARGET_POS|TARGET_DIM,
                ALIGN_BOTTOM = VERTICAL|SELF_POS|TARGET_POS,
                ALIGN_RIGHT = HORIZONTAL|SELF_POS|SELF_DIM|TARGET_POS|TARGET_DIM,
@@ -129,6 +134,7 @@ protected:
        Container *container;
        std::list<Slot *> slots;
        unsigned n_active_slots;
+       unsigned n_slack_constraints[2];
        Sides margin;
        unsigned row_spacing;
        unsigned col_spacing;