]> git.tdb.fi Git - libs/gltk.git/blob - source/geometry.h
Reorder class members
[libs/gltk.git] / source / geometry.h
1 /* $Id$
2
3 This file is part of libmspgltk
4 Copyright © 2007  Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7
8 #ifndef MSP_GLTK_GEOMETRY_H_
9 #define MSP_GLTK_GEOMETRY_H_
10
11 #include <msp/datafile/loader.h>
12
13 namespace Msp {
14 namespace GLtk {
15
16 /**
17 Specifies the position and size of a widget or graphic.
18 */
19 struct Geometry
20 {
21         int x, y;
22         unsigned w, h;
23
24         Geometry(): x(0), y(0), w(1), h(1) { }
25         Geometry(int x_, int y_, unsigned w_, unsigned h_): x(x_), y(y_), w(w_), h(h_) { }
26         bool is_inside(int, int) const;
27 };
28
29 /**
30 Specifies margins on the sides of an element.
31 */
32 struct Sides
33 {
34         class Loader: public DataFile::Loader
35         {
36         public:
37                 Loader(Sides &);
38                 Sides &get_object() { return sides; }
39         private:
40                 Sides &sides;
41         };
42
43         unsigned top;
44         unsigned right;
45         unsigned bottom;
46         unsigned left;
47
48         Sides();
49 };
50
51 } // namespace GLtk
52 } // namespace Msp
53
54 #endif