]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/style.h
Rework how widget ownership works in Container
[libs/gltk.git] / source / style.h
index 1eb05c33a286111f5debc65e5f194c38bf3c1bb4..62a451100e7f21391240fcb647924be539d9a88d 100644 (file)
@@ -5,6 +5,7 @@
 #include <msp/gl/font.h>
 #include <msp/gl/sampler.h>
 #include <msp/datafile/objectloader.h>
+#include "mspgltk_api.h"
 #include "part.h"
 
 namespace Msp {
@@ -16,7 +17,7 @@ class Resources;
 Styles define what wigets look like.  They are made up of Parts and some
 generic properties.
 */
-class Style
+class MSPGLTK_API Style
 {
 public:
        class Loader: public DataFile::CollectionObjectLoader<Style, Resources>
@@ -32,23 +33,20 @@ public:
                void unnamed_part();
        };
 
-       typedef std::list<Part> PartSeq;
-
 private:
-       const GL::Font *font;
-       unsigned font_size;
+       const GL::Font *font = nullptr;
+       unsigned font_size = 0;
        GL::Color font_color[N_STATES_];
-       const GL::Sampler *sampler;
-       PartSeq parts;
+       const GL::Sampler *sampler = nullptr;
+       std::vector<Part> parts;
 
 public:
-       Style();
        const GL::Font &get_font() const;
        unsigned get_font_size() const { return font_size; }
        const GL::Color &get_font_color(State) const;
        const GL::Sampler &get_sampler() const;
-       const PartSeq &get_parts() const { return parts; }
-       const Part *get_part(const std::string &) const;
+       const std::vector<Part> &get_parts() const { return parts; }
+       const Part *find_part(const std::string &) const;
        bool compare_states(State, State) const;
 };