]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/geometry.h
Add API declarations
[libs/gltk.git] / source / geometry.h
index 08d660eeb05a4b9507968a6f8845924e524f70e1..8c8c9897335caa0fd55ea79666c2f78de1a73db0 100644 (file)
@@ -1,14 +1,8 @@
-/* $Id$
-
-This file is part of libmspgltk
-Copyright © 2007  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef MSP_GLTK_GEOMETRY_H_
 #define MSP_GLTK_GEOMETRY_H_
 
-#include <msp/datafile/loader.h>
+#include <msp/datafile/objectloader.h>
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
@@ -16,7 +10,7 @@ namespace GLtk {
 /**
 Specifies the position and size of a widget or graphic.
 */
-struct Geometry
+struct MSPGLTK_API Geometry
 {
        int x, y;
        unsigned w, h;
@@ -31,15 +25,15 @@ struct Geometry
 /**
 Specifies margins on the sides of an element.
 */
-struct Sides
+struct MSPGLTK_API Sides
 {
-       class Loader: public DataFile::Loader
+       class Loader: public DataFile::ObjectLoader<Sides>
        {
        public:
                Loader(Sides &);
-               Sides &get_object() { return sides; }
        private:
-               Sides &sides;
+               void horizontal(unsigned);
+               void vertical(unsigned);
        };
 
        unsigned top;
@@ -48,13 +42,17 @@ struct Sides
        unsigned left;
 
        Sides();
+       Sides(unsigned);
+       Sides(unsigned, unsigned);
+       Sides(unsigned, unsigned, unsigned);
+       Sides(unsigned, unsigned, unsigned, unsigned);
 };
 
 
 /**
 Performs alignment of nested geometries, such as widgets and their parts.
 */
-struct Alignment
+struct MSPGLTK_API Alignment
 {
        float x, y;
        float w, h;