00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef DIAGRAMELEMENTEVENTS_H
00026 #define DIAGRAMELEMENTEVENTS_H
00027
00028
00029 #include "MvcCore/elementevents.h"
00030 #include "MvcCore/genericcontainers.h"
00031
00032 #include "mvcdiagram.h"
00033 #include "diagramcontainers.h"
00034
00035
00036 class MEDiagramElementEvent : public MEElementEvent {
00037 public:
00038 enum Type {
00039 ControlPointInsert = MEElementEvent::User,
00040 ControlPointRemove,
00041 ControlPointMove,
00042 User = MEElementEvent::User + 1000
00043 };
00044
00045 MEDiagramElementEvent( Type type )
00046 : MEElementEvent((MEElementEvent::Type)type) {}
00047
00049 inline static MvcModuleId_t classModuleId() { return MvcDiagram::id(); }
00051 virtual MvcModuleId_t moduleId() const { return classModuleId(); }
00052 };
00053
00054
00059 class MEControlPointEvent : public MEDiagramElementEvent,
00060 public IndexContainer {
00061 public:
00062 MEControlPointEvent( Type type, int index )
00063 : MEDiagramElementEvent(type),
00064 IndexContainer(index) {}
00065 };
00066
00067
00068 class MEControlPointInsertEvent : public MEControlPointEvent,
00069 public ControlPointContainer {
00070 public:
00071 MEControlPointInsertEvent( int index, const QPointF& pos )
00072 : MEControlPointEvent(ControlPointInsert, index),
00073 ControlPointContainer(pos) {}
00074 };
00075
00076
00085 class MEControlPointRemoveEvent : public MEControlPointEvent {
00086 public:
00087 MEControlPointRemoveEvent( int index )
00088 : MEControlPointEvent(ControlPointRemove, index) {}
00089 };
00090
00091
00092 class MEControlPointMoveEvent : public MEControlPointEvent,
00093 public ControlPointContainer {
00094 public:
00095 MEControlPointMoveEvent( int index, const QPointF& pos )
00096 : MEControlPointEvent(ControlPointMove, index),
00097 ControlPointContainer(pos) {}
00098 };
00099
00100
00101 #endif // ! DIAGRAMELEMENTEVENTS_H