]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/lineararrangement.h
Use nullptr instead of 0 for pointers
[libs/gltk.git] / source / lineararrangement.h
index 4b149a4ad2d7284901dea33d995f361ae78cf985..f0ec2453d02121d445b3caf9b3307948709c0110 100644 (file)
@@ -3,14 +3,15 @@
 
 #include <msp/datafile/objectloader.h>
 #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<LinearArrangement>
+       class MSPGLTK_API Loader: public DataFile::ObjectLoader<LinearArrangement>
        {
        public:
                Loader(LinearArrangement &);
@@ -18,27 +19,32 @@ public:
                void expand();
                void spacing(unsigned);
                void split();
+               void uniform(bool);
        };
 
 protected:
-       Side primary;
-       Side opposite;
+       Side primary = RIGHT;
+       Side opposite = static_cast<Side>(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_widget(Widget &);
        virtual void finish_slot();
 };