X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flineararrangement.h;h=7535bc7879247c57c151a0f839e39245f5146aa2;hb=aa9b8db38efb9e97460c76e27cecc4d1591b23e5;hp=4b149a4ad2d7284901dea33d995f361ae78cf985;hpb=d85d9bd7dae120e3e7ebaf64e7b78a975fab94a6;p=libs%2Fgltk.git diff --git a/source/lineararrangement.h b/source/lineararrangement.h index 4b149a4..7535bc7 100644 --- a/source/lineararrangement.h +++ b/source/lineararrangement.h @@ -3,14 +3,15 @@ #include #include "arrangement.h" +#include "mspgltk_api.h" namespace Msp { namespace GLtk { -class LinearArrangement: public Arrangement +class MSPGLTK_API LinearArrangement: public Arrangement { public: - class Loader: public DataFile::ObjectLoader + class MSPGLTK_API Loader: public DataFile::ObjectLoader { public: Loader(LinearArrangement &); @@ -18,28 +19,33 @@ public: void expand(); void spacing(unsigned); void split(); + void uniform(bool); }; protected: - Side primary; - Side opposite; + Side primary = RIGHT; + Side opposite = static_cast(primary^2); Edge next; - bool first; - bool split_here; - Side gravity; - bool internal_aligned; - int next_spacing; + bool first = true; + bool split_here = false; + Side gravity = opposite; + bool internal_aligned = false; + bool uniform = false; + Widget *uniform_ref = nullptr; + int next_spacing = -1; LinearArrangement(Layout &, Side); public: + void set_uniform(bool); void split(); void expand(); void spacing(unsigned); protected: - virtual void process_widget(Widget &, Side, bool); - virtual void finish_slot(); + void process_widget(Widget &, Side, bool) override; + void finish_widget(Widget &) override; + void finish_slot() override; }; } // namespace GLtk