X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flayout.h;h=a13a0934a5761a962ca4eddd553d48c76476872f;hb=05ef650bff69b998440a6c082dd90e205fe6c233;hp=a8ea3bf25b7f819492d14eb34c30a24380ba1f76;hpb=72db2a8d41cc0eb8404572d1a720d59fab0551cd;p=libs%2Fgltk.git diff --git a/source/layout.h b/source/layout.h index a8ea3bf..a13a093 100644 --- a/source/layout.h +++ b/source/layout.h @@ -63,8 +63,9 @@ private: TARGET_POS = 8, TARGET_DIM = 16, TARGET_MASK = 24, - SPACING = 32, - SLACK = 64 + HALF_DIM = 32, + SPACING = 64, + SLACK = 128 }; public: @@ -79,8 +80,10 @@ public: 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_VCENTER = VERTICAL|SELF_POS|SELF_DIM|TARGET_POS|TARGET_DIM|HALF_DIM, ALIGN_BOTTOM = VERTICAL|SELF_POS|TARGET_POS, ALIGN_RIGHT = HORIZONTAL|SELF_POS|SELF_DIM|TARGET_POS|TARGET_DIM, + ALIGN_HCENTER = HORIZONTAL|SELF_POS|SELF_DIM|TARGET_POS|TARGET_DIM|HALF_DIM, ALIGN_LEFT = HORIZONTAL|SELF_POS|TARGET_POS, COPY_WIDTH = HORIZONTAL|SELF_DIM|TARGET_DIM, COPY_HEIGHT = VERTICAL|SELF_DIM|TARGET_DIM @@ -153,6 +156,7 @@ private: Packing horiz_pack; Packing vert_pack; bool ghost; + bool floating; Slot(Layout &, Widget &); @@ -172,7 +176,7 @@ private: Container *container; std::list slots; unsigned n_active_slots; - unsigned n_slack_constraints[2]; + unsigned n_slack_vars[2]; Sides margin; unsigned row_spacing; unsigned col_spacing; @@ -187,8 +191,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 @@ -199,6 +204,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 &); @@ -225,8 +233,10 @@ public: /// Sets a widget as a ghost, taking up space even if it is hidden. void set_ghost(Widget &, bool); + void set_floating(Widget &, bool); + void update(); - void autosize(); + void autosize(Geometry &); private: void solve_constraints(int, SolveMode);