]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/part.h
Add UserInterface class
[libs/gltk.git] / source / part.h
index 58386ca8f611560ad5fa21ba9cf28b8259dea365..edc524c0b67b62d1807b46eb6f271983d92de090 100644 (file)
@@ -1,10 +1,18 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_PART_H_
 #define MSP_GLTK_PART_H_
 
 #include <map>
 #include <string>
 #include <msp/datafile/loader.h>
-#include "alignment.h"
+//#include "alignment.h"
+#include "geometry.h"
 #include "state.h"
 
 namespace Msp {
@@ -13,6 +21,9 @@ namespace GLtk {
 class Graphic;
 class Resources;
 
+/**
+Defines a single graphical element of a widget style.
+*/
 class Part
 {
 public:
@@ -27,27 +38,27 @@ public:
                ~Loader();
        private:
                void graphic(State, const std::string &);
-               void align(int, int);
-               void fill(bool, bool);
+               void align(float, float);
+               void fill(float, float);
+               void margin();
+               void size(unsigned, unsigned);
        };
 
+private:
+       std::string name;
+       const Graphic *graphic[N_STATES_];
+       Geometry geom;
+       Sides margin;
+       Alignment align;
+
+public:
        Part(const std::string &);
        const std::string &get_name() const { return name; }
        const Graphic *get_graphic(State) const;
-       unsigned get_width() const { return width; }
-       unsigned get_height() const { return height; }
+       const Geometry &get_geometry() const { return geom; }
+       const Sides &get_margin() const { return margin; }
        const Alignment &get_alignment() const { return align; }
-       bool get_fill_x() const { return fill_x; }
-       bool get_fill_y() const { return fill_y; }
        void render(const Geometry &, State) const;
-private:
-       std::string name;
-       const Graphic *graphic[N_STATES_];
-       unsigned width;
-       unsigned height;
-       Alignment align;
-       bool fill_x;
-       bool fill_y;
 };
 typedef std::list<Part> PartSeq;