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