00001 #ifndef POLYLINE_H
00002 #define POLYLINE_H
00003
00004 #include <afxwin.h>
00005 #include <Afxtempl.h>
00006 #include "Shape.h"
00007
00008
00010 class VPolyLine : public VShape {
00011 public:
00012
00014
00015
00017 void Draw(ScreenState*, AppState *pApp);
00018
00020 virtual void DrawWhileDragged(MouseEvent *, ScreenState*, AppState *);
00021
00023
00024
00026
00027
00028 virtual FShapeRec* FlashSDKCreateShapeRecordForThisPoint(int* pnPoint, VPoint* ptCurrent);
00030
00032 void AddVertex(int x, int y);
00033
00034
00036
00037
00039 virtual bool OnClick(MouseEvent *e, ScreenState*, AppState*);
00040
00042 virtual bool OnRightClick(VShape::MouseEvent *e, ScreenState *pState, AppState *pApp);
00043
00045 virtual bool OnDeSelect();
00046
00048 virtual bool OnDrag(MouseEvent *e, ScreenState*, AppState*);
00049
00050 virtual VShape* OnDragCompleted(MouseEvent *e, ScreenState*, AppState*);
00051
00053
00054
00055
00056
00058
00059
00061 virtual VPoint GetPoint ( int index ) const;
00062
00064 virtual void MovePoint ( int index, int dx, int dy);
00065
00067 virtual void SetPoint ( int index, int x, int y);
00068
00070 virtual void DeletePoint ( int index );
00071
00073 virtual unsigned int PointCount () const;
00074
00076
00078 void UpdateControlPoints( );
00079
00080 VPolyLine();
00081 VPolyLine(VPolyLine*);
00082
00084 VShape* Clone();
00085
00087 virtual string Identify() const { return string("PolyLine"); }
00088
00089 protected:
00091 vector<VPoint> m_vpt;
00092
00094 unsigned int m_nLastDrawnPoint;
00095
00097 bool m_bSubObjectMode;
00098
00099 };
00100
00101 #endif