]> Shamusworld >> Repos - architektonas/blob - src/object.h
330f5ad46b32833cd900655156ca888362258a73
[architektonas] / src / object.h
1 #ifndef __OBJECT_H__
2 #define __OBJECT_H__
3
4 #include "vector.h"
5
6 class QPainter;
7 class QFont;
8 class Dimension;
9
10 enum ObjectState { OSInactive, OSSelected };
11
12 class Object
13 {
14         public:
15                 Object();
16                 Object(Vector, Object * passedInParent = 0);
17                 ~Object();
18
19                 virtual void Draw(QPainter *);
20                 virtual Vector Center(void);
21                 virtual bool Collided(Vector);
22                 virtual void PointerMoved(Vector);
23                 virtual void PointerReleased(void);
24                 virtual bool NeedsUpdate(void);
25                 virtual void Transmute(Object *, Object *);
26                 virtual Object * GetParent(void);
27                 virtual void Add(Object *);
28                 ObjectState GetState(void);
29
30                 // Class methods
31                 static void SetFixedAngle(bool state = true);
32                 static void SetFixedLength(bool state = true);
33                 static void SetFont(QFont *);
34                 static void SetViewportHeight(int);
35                 static void SetDeleteActive(bool state = true);
36                 static void SetDimensionActive(bool state = true);
37
38         protected:
39                 Vector position;                                        // All objects have a position (doubles as reference point)
40                 Object * parent;
41 //              Pen pen;
42 //              Fill fill;
43                 ObjectState state;
44                 ObjectState oldState;
45                 bool needUpdate;
46                 Dimension * dimPoint1;
47                 Dimension * dimPoint2;
48
49                 // Class variables
50                 static QFont * font;
51                 static bool fixedAngle;
52                 static bool fixedLength;
53                 static int viewportHeight;
54                 static bool deleteActive;
55                 static bool dimensionActive;
56 };
57
58 #endif  // __OBJECT_H__