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