+
+ friend class wxCanvas;
+};
+
+//----------------------------------------------------------------------------
+// wxCanvasObjectGroup
+//----------------------------------------------------------------------------
+
+class wxCanvasObjectGroup
+{
+public:
+ wxCanvasObjectGroup();
+ virtual ~wxCanvasObjectGroup();
+
+ void SetOwner(wxCanvas* canvas);
+ wxCanvas *GetOwner() { return m_owner; }
+
+ virtual void Prepend( wxCanvasObject* obj );
+ virtual void Append( wxCanvasObject* obj );
+ virtual void Insert( size_t before, wxCanvasObject* obj );
+ virtual void Remove( wxCanvasObject* obj );
+
+ virtual void Recreate();
+ void DeleteContents( bool );
+ virtual void Render(int xabs, int yabs,int x, int y, int width, int height );
+ virtual void WriteSVG( wxTextOutputStream &stream );
+ virtual bool IsHit( int x, int y, int margin );
+ virtual wxCanvasObject* IsHitObject( int x, int y, int margin );
+
+ void ExtendArea(int x, int y);
+
+ inline int GetXMin() { return m_minx; }
+ inline int GetYMin() { return m_miny; }
+ inline int GetXMax() { return m_maxx; }
+ inline int GetYMax() { return m_maxy; }
+
+protected:
+ wxCanvas *m_owner;
+
+ //bounding box
+ double m_minx;
+ double m_miny;
+ double m_maxx;
+ double m_maxy;
+ bool m_validbounds;
+
+ wxList m_objects;
+