]> Shamusworld >> Repos - architektonas/blob - src/container.h
7de5d8918c175e2e08a221eae603005ceed5d001
[architektonas] / src / container.h
1 #ifndef __CONTAINER_H__
2 #define __CONTAINER_H__
3
4 #include <vector>
5 #include "object.h"
6
7 class Container: public Object
8 {
9         public:
10 //              Container(void);
11                 Container(Vector, Object * p = 0);
12                 Container(const Container &);
13                 ~Container();
14
15                 Container & operator=(const Container &);
16                 virtual void Draw(Painter *);
17                 virtual Vector Center(void);
18                 virtual bool Collided(Vector);
19                 virtual bool PointerMoved(Vector);
20                 virtual void PointerReleased(void);
21                 virtual bool NeedsUpdate(void);
22                 virtual void Add(Object *);
23                 virtual QRectF Extents(void);
24                 virtual void Enumerate(FILE *);
25                 virtual Object * Copy(void);
26                 virtual void Rotate(Point, double);
27                 virtual void RotateSelected(Point, double);
28                 virtual void Mirror(Point, Point);
29                 virtual void MirrorSelected(Point, Point);
30                 virtual void Save(void);
31                 virtual void Restore(void);
32                 void Delete(Object *);
33                 void DeleteSelectedItems(void);
34                 void Clear(void);
35                 void SelectAll(void);
36                 void DeselectAll(void);
37                 int ItemsSelected(void);
38                 Object * SelectedItem(unsigned int);
39                 void MoveContentsTo(Container *);
40                 void CopyContentsTo(Container *);
41                 void MoveSelectedContentsTo(Container *);
42                 void CopySelectedContentsTo(Container *);
43                 void ResizeAllDimensions(double);
44
45         protected:
46                 Vector oldPoint;                                        // Used for dragging
47
48         public:
49                 std::vector<Object *> objects;
50                 bool isTopLevelContainer;
51                 Object * lastObjectClicked;
52                 Object * lastObjectHovered;
53         private:
54                 bool dragging;
55                 bool draggingHandle1;
56                 bool draggingHandle2;
57                 bool objectWasDragged;
58                 bool hit;
59 };
60
61 #endif  // __CONTAINER_H__