#include <abstractdiagramelement.h>
Inheritance diagram for AbstractDiagramElement:

Public Types | |
| enum | ControlPointEditFlag { NoEditingAllowed = 0x0, InsertionIsAllowed = 0x1, RemovalIsAllowed = 0x2, MovementIsAllowed = 0x4 } |
Public Member Functions | |
| Q_DECLARE_FLAGS (ControlPointEditFlags, ControlPointEditFlag) | |
| virtual ControlPointEditFlags | controlPointEditFlags () const=0 |
| const QList< QPointF > & | controlPoints () const |
| virtual const QSet< int > & | requiredAttributes () const=0 |
| virtual const QSet< int > & | additionalAttributes () const=0 |
Static Public Member Functions | |
| static ControlPointEditFlags | classControlPointEditFlags () |
Protected Member Functions | |
| AbstractDiagramElement (qint32 instanceId, ElementDoc *doc, const QList< QPointF > &controlPoints=QList< QPointF >()) | |
| AbstractDiagramElement (ElementDoc *doc, const QList< QPointF > &controlPoints=QList< QPointF >()) | |
| void | addRequiredAttributes () |
| virtual void | dispatchEvent (MEvent *) |
| virtual void | controlPointInsertEvent (MEControlPointInsertEvent *) |
| virtual void | controlPointRemoveEvent (MEControlPointRemoveEvent *) |
| virtual void | controlPointMoveEvent (MEControlPointMoveEvent *) |
| virtual AbstractElementAttribute * | createAttribute (int type) |
| virtual AbstractElementAttribute * | createAttribute (const QByteArray &key) |
| virtual int | attributeKeyToType (const QByteArray &key) |
Protected Attributes | |
| QList< QPointF > | m_controlPoints |
| AbstractDiagramElement::AbstractDiagramElement | ( | qint32 | instanceId, | |
| ElementDoc * | doc, | |||
| const QList< QPointF > & | controlPoints = QList<QPointF>() | |||
| ) | [protected] |
Constructs an element for Diagram doc with a given instanceId.
| AbstractDiagramElement::AbstractDiagramElement | ( | ElementDoc * | doc, | |
| const QList< QPointF > & | controlPoints = QList<QPointF>() | |||
| ) | [protected] |
Convenience constructor. It behaves essentially like the above function.
The element's instanceId is automatically generated using ElementDoc::genElementInstanceId.
| AbstractDiagramElement::Q_DECLARE_FLAGS | ( | ControlPointEditFlags | , | |
| ControlPointEditFlag | ||||
| ) |
| static ControlPointEditFlags AbstractDiagramElement::classControlPointEditFlags | ( | ) | [inline, static] |
Reimplemented in DiagramGesture, DiagramPolygon, DiagramPolyline, DiagramShape, and DiagramText.
| virtual ControlPointEditFlags AbstractDiagramElement::controlPointEditFlags | ( | ) | const [pure virtual] |
Implemented in DiagramGesture, DiagramPolygon, DiagramPolyline, DiagramShape, and DiagramText.
| const QList<QPointF>& AbstractDiagramElement::controlPoints | ( | ) | const [inline] |
Warning! Control points are only used for editing purposes. All persistent data (other than the name) is kept in the attributes.
| virtual const QSet<int>& AbstractDiagramElement::requiredAttributes | ( | ) | const [pure virtual] |
Reimplemented from AbstractElement.
Implemented in DiagramGesture, DiagramPolygon, DiagramPolyline, DiagramShape, and DiagramText.
| virtual const QSet<int>& AbstractDiagramElement::additionalAttributes | ( | ) | const [pure virtual] |
Reimplemented from AbstractElement.
Implemented in DiagramGesture, DiagramPolygon, DiagramPolyline, DiagramShape, and DiagramText.
| void AbstractDiagramElement::addRequiredAttributes | ( | ) | [protected] |
This will create and add an instance of each attribute type that is listed by requiredAttributes().
Warning: This can't be called by the AbstractDiagramElement's constructors, as it relies on the sub-class' v-table to have been created, as it calls requiredAttributes(), which is (pure-)virtual. Hence, it must be called by the sub-class' constructor().
| void AbstractDiagramElement::dispatchEvent | ( | MEvent * | event | ) | [protected, virtual] |
The elements's event dispatcher.
Receives events and then passes them off to be processed by appropiate (virtual) methods.
Warning: It is assumed that the events have their correct type set (as it uses static casts).
Asserts that the event is non-null.
Reimplemented from AbstractElement.
| void AbstractDiagramElement::controlPointInsertEvent | ( | MEControlPointInsertEvent * | event | ) | [protected, virtual] |
This implementation simply inserts the control point into the controlPoints() list.
Reimplemented in DiagramGesture, DiagramPolygon, DiagramPolyline, DiagramShape, and DiagramText.
| void AbstractDiagramElement::controlPointRemoveEvent | ( | MEControlPointRemoveEvent * | event | ) | [protected, virtual] |
This implementation simply remove the control point from the controlPoints() list.
Reimplemented in DiagramGesture, DiagramPolygon, DiagramPolyline, DiagramShape, and DiagramText.
| void AbstractDiagramElement::controlPointMoveEvent | ( | MEControlPointMoveEvent * | event | ) | [protected, virtual] |
This implementation simply updates the controlPoints() item at event->index() to reflect event->pos().
Note: event->index() must be a valid index position in the conrtrol point list (i.e., 0 <= event->index() < controlPoints().size()).
Reimplemented in DiagramGesture, DiagramPolygon, DiagramPolyline, DiagramShape, and DiagramText.
| AbstractElementAttribute * AbstractDiagramElement::createAttribute | ( | int | type | ) | [protected, virtual] |
Note: The type is an int, as to aid extensibility.
Implements AbstractElement.
| AbstractElementAttribute * AbstractDiagramElement::createAttribute | ( | const QByteArray & | key | ) | [protected, virtual] |
Implements AbstractElement.
| int AbstractDiagramElement::attributeKeyToType | ( | const QByteArray & | key | ) | [protected, virtual] |
Implements AbstractElement.
QList<QPointF> AbstractDiagramElement::m_controlPoints [protected] |
1.5.2