]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/arrangement.h
Make sure classes follow the rule of 0/3/5
[libs/gltk.git] / source / arrangement.h
index 7028aed4ecfd868b0ccfedb56e58194094179e02..4a651bac864a189cbb8c2942e35390939c2bff38 100644 (file)
@@ -3,21 +3,22 @@
 
 #include <list>
 #include <stdexcept>
+#include <msp/core/noncopyable.h>
 #include "layout.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
 
 class Widget;
 
-class arrangement_error: public std::logic_error
+class MSPGLTK_API arrangement_error: public std::logic_error
 {
 public:
        arrangement_error(const std::string &w): std::logic_error(w) { }
-       virtual ~arrangement_error() throw() { }
 };
 
-class Arrangement
+class MSPGLTK_API Arrangement: public NonCopyable
 {
 protected:
        enum Side
@@ -31,9 +32,7 @@ protected:
        struct Edge
        {
                std::list<Widget *> widgets;
-               bool aligned;
-
-               Edge();
+               bool aligned = false;
 
                bool empty() { return widgets.empty(); }
                void clear();
@@ -42,7 +41,7 @@ protected:
        };
 
        Layout &layout;
-       Arrangement *parent;
+       Arrangement *parent = nullptr;
        Edge edges[4];
 
        Arrangement(Layout &);