All Classes Functions Variables
DrawingObjectAbstract.h
1 #ifndef DRAWINGOBJECT_H
2 #define DRAWINGOBJECT_H
3 
4 #include <vector>
5 class wxDC;
6 class wxMouseEvent;
7 class Point;
8 class Canvas;
9 #include "MovableRect.h"
10 
12 {
13  public:
14  DrawingObjectAbstract(const Canvas & canvas, const Point & start);
15  virtual ~DrawingObjectAbstract();
16  void Draw( wxDC & dc, const DrawingObjectAbstract * selected ) const;
17 
18  bool Contains( wxMouseEvent & e );
19  const MovableRect & GetStart() const;
20  virtual void Move( wxMouseEvent & e );
21 
22  virtual std::vector< MovableRect *> GetAllRectsRW() = 0;
23  virtual std::vector< const MovableRect *> GetAllRects() const = 0;
24 
25  protected:
26  virtual void DrawClient( wxDC & dc, bool isSelected ) const = 0;
27  virtual std::vector<MovableRect *> ContainsClient( const Point & naturalClick ) = 0;
28 
29  Point GetPointNatural( wxMouseEvent & e ) const;
30  std::vector<MovableRect *> m_chosenRects;
31  const Point & m_ref;
32  const double & m_zoom;
33  const Canvas & m_canvas;
34 
35  MovableRect m_start;
36 
37  private:
38  void StoreMouseClick( wxMouseEvent & e );
39 
40 
41  int prevX, prevY;
42 };
43 
44 #endif // DRAWINGOBJECT_H