wxShapeFramework
1.13.0 beta
|
Base class for all shapes providing fundamental functionality and publishing set of virtual functions which must be defined by the user in derived shapes. This class shouldn't be used as it is. More...
#include <ShapeBase.h>
Public Member Functions | |
XS_DECLARE_CLONABLE_CLASS (wxSFShapeBase) | |
wxSFShapeBase (void) | |
Basic constructor. More... | |
wxSFShapeBase (const wxRealPoint &pos, wxSFDiagramManager *manager) | |
Enhanced constructor. More... | |
wxSFShapeBase (const wxSFShapeBase &obj) | |
Copy constructor. More... | |
virtual | ~wxSFShapeBase (void) |
Destructor. More... | |
void | Refresh (bool delayed=false) |
Refresh (redraw) the shape. More... | |
virtual void | Draw (wxDC &dc, bool children=sfWITHCHILDREN) |
Draw shape. Default implementation tests basic shape visual states (normal/ready, mouse is over the shape, dragged shape can be accepted) and call appropriate virtual functions (DrawNormal, DrawHover, DrawHighlighted) for its visualisation. The function can be overrided if neccessary. More... | |
virtual bool | Contains (const wxPoint &pos) |
virtual bool | IsInside (const wxRect &rct) |
virtual bool | Intersects (const wxRect &rct) |
Test whether the given rectangle intersects the shape. More... | |
virtual wxRealPoint | GetAbsolutePosition () |
Get the shape's absolute position in the canvas (calculated as a sumation of all relative positions in the shapes' hierarchy. The function can be overrided if neccessary. More... | |
virtual wxRealPoint | GetBorderPoint (const wxRealPoint &start, const wxRealPoint &end) |
virtual wxRealPoint | GetCenter () |
Get shape's center. Default implementation does nothing. The function can be overrided if neccessary. More... | |
virtual void | CreateHandles () |
void | ShowHandles (bool show) |
Show/hide shape handles. Hidden handles are inactive. More... | |
void | SetStyle (long style) |
Set shape's style. More... | |
long | GetStyle () const |
Get current shape style. More... | |
void | AddStyle (STYLE style) |
void | RemoveStyle (STYLE style) |
bool | ContainsStyle (STYLE style) const |
void | GetChildShapes (wxClassInfo *type, ShapeList &children, bool recursive=false, xsSerializable::SEARCHMODE mode=xsSerializable::searchBFS) |
void | GetNeighbours (ShapeList &neighbours, wxClassInfo *shapeInfo, CONNECTMODE condir, bool direct=true) |
Get neighbour shapes connected to this shape. More... | |
void | GetAssignedConnections (wxClassInfo *shapeInfo, wxSFShapeBase::CONNECTMODE mode, ShapeList &lines) |
Get list of connections assigned to this shape. More... | |
virtual wxRect | GetBoundingBox () |
void | GetCompleteBoundingBox (wxRect &rct, int mask=bbALL) |
Get shape's bounding box which includes also associated child shapes and connections. More... | |
virtual void | Scale (double x, double y, bool children=sfWITHCHILDREN) |
void | Scale (const wxRealPoint &scale, bool children=sfWITHCHILDREN) |
void | ScaleChildren (double x, double y) |
Scale shape's children. More... | |
virtual void | MoveTo (double x, double y) |
Move the shape to the given absolute position. The function can be overrided if necessary. More... | |
void | MoveTo (const wxRealPoint &pos) |
Move the shape to the given absolute position. More... | |
virtual void | MoveBy (double x, double y) |
Move the shape by the given offset. The function can be overrided if neccessary. More... | |
void | MoveBy (const wxRealPoint &delta) |
Move the shape by the given offset. More... | |
void | DoAlignment () |
Update the shape's position in order to its alignment. More... | |
virtual void | Update () |
Upate shape (align all child shapes an resize it to fit them) More... | |
virtual void | FitToChildren () |
Resize the shape to bound all child shapes. The function can be overrided if neccessary. More... | |
bool | IsSelected () const |
Function returns TRUE if the shape is selected, otherwise returns FALSE. More... | |
void | Select (bool state) |
Set the shape as a selected/deselected one. More... | |
void | SetRelativePosition (const wxRealPoint &pos) |
void | SetRelativePosition (double x, double y) |
wxRealPoint | GetRelativePosition () const |
void | SetVAlign (VALIGN val) |
Set vertical alignment of this shape inside its parent. More... | |
VALIGN | GetVAlign () const |
Get vertical alignment of this shape inside its parent. More... | |
void | SetHAlign (HALIGN val) |
Set horizontal alignment of this shape inside its parent. More... | |
HALIGN | GetHAlign () const |
Get horizontal alignment of this shape inside its parent. More... | |
void | SetVBorder (double border) |
Set vertical border between this shape and its parent (is vertical alignment is set). More... | |
double | GetVBorder () const |
Get vertical border between this shape and its parent (is vertical alignment is set). More... | |
void | SetHBorder (double border) |
Set horizontal border between this shape and its parent (is horizontal alignment is set). More... | |
double | GetHBorder () const |
Get horizontal border between this shape and its parent (is horizontal alignment is set). More... | |
void | SetCustomDockPoint (int dp) |
Set custom dock point used if the shape is child shape of a line shape. More... | |
int | GetCustomDockPoint () |
Get custom dock point used if the shape is child shape of a line shape. More... | |
wxSFShapeBase * | GetParentShape () |
Get pointer to a parent shape. More... | |
wxSFShapeBase * | GetGrandParentShape () |
Get pointer to the topmost parent shape. More... | |
bool | IsAncestor (wxSFShapeBase *child) |
Determine whether this shape is ancestor of given child shape. More... | |
bool | IsDescendant (wxSFShapeBase *parent) |
Determine whether this shape is descendant of given parent shape. More... | |
void | SetUserData (xsSerializable *data) |
Associate user data with the shape. More... | |
xsSerializable * | GetUserData () |
Get associated user data. More... | |
wxSFDiagramManager * | GetShapeManager () |
Get shape's parent diagram manager. More... | |
wxSFShapeCanvas * | GetParentCanvas () |
Get shape's parent canvas. More... | |
bool | IsVisible () const |
Get the shape's visibility status. More... | |
void | Show (bool show) |
Show/hide shape. More... | |
void | SetHoverColour (const wxColour &col) |
Set shape's hover color. More... | |
wxColour | GetHoverColour () const |
Get shape's hover color. More... | |
bool | IsActive () const |
Function returns value of a shape's activation flag. More... | |
void | Activate (bool active) |
Shape's activation/deactivation. More... | |
bool | IsChildAccepted (const wxString &type) |
Tells whether the given shape type is accepted by this shape (it means whether this shape can be its parent). More... | |
bool | AcceptCurrentlyDraggedShapes () |
Function returns TRUE if all currently dragged shapes can be accepted as children of this shape. More... | |
void | AcceptChild (const wxString &type) |
Add given shape type to an acceptance list. The acceptance list contains class names of the shapes which can be accepted as children of this shape. Note: Keyword 'All' behaves like any class name. More... | |
wxArrayString & | GetAcceptedChildren () |
Get shape types acceptance list. More... | |
bool | IsConnectionAccepted (const wxString &type) |
Tells whether the given connection type is accepted by this shape (it means whether this shape can be connected to another one by a connection of given type). More... | |
void | AcceptConnection (const wxString &type) |
Add given connection type to an acceptance list. The acceptance list contains class names of the connection which can be accepted by this shape. Note: Keyword 'All' behaves like any class name. More... | |
wxArrayString & | GetAcceptedConnections () |
Get connection types acceptance list. More... | |
bool | IsSrcNeighbourAccepted (const wxString &type) |
Tells whether the given shape type is accepted by this shape as its source neighbour(it means whether this shape can be connected from another one of given type). More... | |
void | AcceptSrcNeighbour (const wxString &type) |
Add given shape type to an source neighbours' acceptance list. The acceptance list contains class names of the shape types which can be accepted by this shape as its source neighbour. Note: Keyword 'All' behaves like any class name. More... | |
wxArrayString & | GetAcceptedSrcNeighbours () |
Get source neighbour types acceptance list. More... | |
bool | IsTrgNeighbourAccepted (const wxString &type) |
Tells whether the given shape type is accepted by this shape as its target neighbour(it means whether this shape can be connected to another one of given type). More... | |
void | AcceptTrgNeighbour (const wxString &type) |
Add given shape type to an target neighbours' acceptance list. The acceptance list contains class names of the shape types which can be accepted by this shape as its target neighbour. Note: Keyword 'All' behaves like any class name. More... | |
wxArrayString & | GetAcceptedTrgNeighbours () |
Get target neighbour types acceptance list. More... | |
void | ClearAcceptedChilds () |
Clear shape object acceptance list. More... | |
void | ClearAcceptedConnections () |
Clear connection object acceptance list. More... | |
void | ClearAcceptedSrcNeighbours () |
Clear source neighbour objects acceptance list. More... | |
void | ClearAcceptedTrgNeighbours () |
Clear target neighbour objects acceptance list. More... | |
HandleList & | GetHandles () |
Get list of currently assigned shape handles. More... | |
wxSFShapeHandle * | GetHandle (wxSFShapeHandle::HANDLETYPE type, long id=-1) |
Get shape handle. More... | |
void | AddHandle (wxSFShapeHandle::HANDLETYPE type, long id=-1) |
Add new handle to the shape. More... | |
void | RemoveHandle (wxSFShapeHandle::HANDLETYPE type, long id=-1) |
Remove given shape handle (if exists). More... | |
ConnectionPointList & | GetConnectionPoints () |
Get reference to connection points list. More... | |
wxSFConnectionPoint * | GetConnectionPoint (wxSFConnectionPoint::CPTYPE type, long id=-1) |
Get connection point of given type assigned to the shape. More... | |
wxSFConnectionPoint * | GetNearestConnectionPoint (const wxRealPoint &pos) |
Get connection point closest to the diven position. More... | |
wxSFConnectionPoint * | AddConnectionPoint (wxSFConnectionPoint::CPTYPE type, bool persistent=true) |
Assign connection point of given type to the shape. More... | |
void | AddConnectionPoint (wxSFConnectionPoint *cp, bool persistent=true) |
Assigned given connection point to the shape. More... | |
wxSFConnectionPoint * | AddConnectionPoint (const wxRealPoint &relpos, long id=-1, bool persistent=true) |
Assign custom connection point to the shape. More... | |
void | RemoveConnectionPoint (wxSFConnectionPoint::CPTYPE type) |
Remove connection point of given type from the shape (if pressent). More... | |
virtual void | OnLeftClick (const wxPoint &pos) |
Event handler called when the shape is clicked by the left mouse button. The function can be overrided if necessary. More... | |
virtual void | OnRightClick (const wxPoint &pos) |
Event handler called when the shape is clicked by the right mouse button. The function can be overrided if necessary. More... | |
virtual void | OnLeftDoubleClick (const wxPoint &pos) |
Event handler called when the shape is double-clicked by the left mouse button. The function can be overrided if necessary. More... | |
virtual void | OnRightDoubleClick (const wxPoint &pos) |
Event handler called when the shape is double-clicked by the right mouse button. The function can be overrided if necessary. More... | |
virtual void | OnBeginDrag (const wxPoint &pos) |
Event handler called at the begining of the shape dragging process. The function can be overrided if necessary. More... | |
virtual void | OnDragging (const wxPoint &pos) |
Event handler called during the shape dragging process. The function can be overrided if necessary. More... | |
virtual void | OnEndDrag (const wxPoint &pos) |
Event handler called at the end of the shape dragging process. The function can be overrided if necessary. More... | |
virtual void | OnBeginHandle (wxSFShapeHandle &handle) |
Event handler called when the user started to drag the shape handle. The function can be overrided if necessary. More... | |
virtual void | OnHandle (wxSFShapeHandle &handle) |
Event handler called during dragging of the shape handle. The function can be overrided if necessary. More... | |
virtual void | OnEndHandle (wxSFShapeHandle &handle) |
Event handler called when the user finished dragging of the shape handle. The function can be overrided if necessary. More... | |
virtual void | OnMouseEnter (const wxPoint &pos) |
Event handler called when a mouse pointer enters the shape area. The function can be overrided if necessary. More... | |
virtual void | OnMouseOver (const wxPoint &pos) |
Event handler called when a mouse pointer moves above the shape area. The function can be overrided if necessary. More... | |
virtual void | OnMouseLeave (const wxPoint &pos) |
Event handler called when a mouse pointer leaves the shape area. The function can be overrided if necessary. More... | |
virtual bool | OnKey (int key) |
Event handler called when any key is pressed (in the shape canvas). The function can be overrided if necessary. More... | |
virtual void | OnChildDropped (const wxRealPoint &pos, wxSFShapeBase *child) |
Event handler called when any shape is dropped above this shape (and the dropped shape is accepted as a child of this shape). The function can be overrided if necessary. More... | |
![]() | |
XS_DECLARE_CLONABLE_CLASS (xsSerializable) | |
xsSerializable () | |
Constructor. More... | |
xsSerializable (const xsSerializable &obj) | |
Copy constructor. More... | |
~xsSerializable () | |
Destructor. More... | |
xsSerializable * | GetParent () |
Get serializable parent object. More... | |
wxXmlSerializer * | GetParentManager () |
Get parent data manager (instance of wxXmlSerializer). More... | |
xsSerializable * | GetFirstChild () |
Get first serializable child object. More... | |
xsSerializable * | GetFirstChild (wxClassInfo *type) |
Get first serializable child object of given type. More... | |
xsSerializable * | GetLastChild () |
Get last serializable child object. More... | |
xsSerializable * | GetLastChild (wxClassInfo *type) |
Get last serializable child object of given type. More... | |
xsSerializable * | GetSibbling () |
Get next serializable sibbling object. More... | |
xsSerializable * | GetSibbling (wxClassInfo *type) |
Get next serializable sibbling object of given type. More... | |
xsSerializable * | GetChild (long id, bool recursive=xsNORECURSIVE) |
Get child item with given ID if exists. More... | |
bool | HasChildren () const |
Function finds out whether this serializable item has some children. More... | |
SerializableList & | GetChildrenList () |
Get list of children (serializable objects) of this object. More... | |
void | GetChildren (wxClassInfo *type, SerializableList &list) |
Get children of given type. More... | |
void | GetChildrenRecursively (wxClassInfo *type, SerializableList &list, SEARCHMODE mode=searchBFS) |
Get all children of given type recursively (i.e. children of children of .... ). More... | |
SerializableList::compatibility_iterator | GetFirstChildNode () const |
Get pointer to list node containing first serializable child object. More... | |
SerializableList::compatibility_iterator | GetLastChildNode () const |
Get pointer to list node containing last serializable child object. More... | |
void | SetParent (xsSerializable *parent) |
Set serializable parent object. More... | |
void | SetParentManager (wxXmlSerializer *parent) |
Set parent data manager. More... | |
xsSerializable * | AddChild (xsSerializable *child) |
Add serializable child object to this object. More... | |
xsSerializable * | InsertChild (size_t pos, xsSerializable *child) |
Insert serializable child object to this object at given position. More... | |
void | RemoveChild (xsSerializable *child) |
Remove serializable child item from this object (the child item will be destroyed). More... | |
void | RemoveChildren () |
Remove all child items (all items will be destroyed). More... | |
void | Reparent (xsSerializable *parent) |
Assign this object as a child to given parent object. More... | |
void | SetId (long id) |
Set ID of this object. Can be used for further objects' handling by wxXmlSerializer class (default ID value is -1). This functions should NOT be used directly; it is called by wxXmlSerializer object in the case that this serializable object is attached to another one (or directly to root node of wxXmlSerializer) by wxXmlSerializer::AddItem() member function. More... | |
long | GetId () const |
Get object ID. More... | |
wxXmlNode * | SerializeObject (wxXmlNode *node) |
Create new 'object' XML node and serialize all marked class data members (properties) into it. More... | |
void | DeserializeObject (wxXmlNode *node) |
Deserialize marked class data members (properties) from appropriate fields of given parent 'object' XML node. More... | |
void | AddProperty (xsProperty *property) |
Add new property to the property list. More... | |
void | RemoveProperty (xsProperty *property) |
Remove given property from the property list. More... | |
xsProperty * | GetProperty (const wxString &field) |
Get serialized property of given name. More... | |
PropertyList & | GetProperties () |
Get reference to properties list. More... | |
void | EnablePropertySerialization (const wxString &field, bool enab) |
Enable/disable serialization of given property. More... | |
bool | IsPropertySerialized (const wxString &field) |
Returns information whether the given property is serialized or not. More... | |
void | EnableSerialization (bool enab) |
Enable/disable object serialization. More... | |
bool | IsSerialized () const |
Returns information whether the object can be serialized or not. More... | |
void | EnableCloning (bool enab) |
Enable/disable object cloning. More... | |
bool | IsCloningEnabled () const |
Returns information whether the object can be cloned or not. More... | |
xsSerializable * | operator<< (xsSerializable *child) |
Add serializable child object to this object. More... | |
Protected Member Functions | |
virtual void | DrawNormal (wxDC &dc) |
Draw the shape in the normal way. The function can be overrided if neccessary. More... | |
virtual void | DrawSelected (wxDC &dc) |
Draw the shape in the selected way. The function can be overrided if neccessary. More... | |
virtual void | DrawHover (wxDC &dc) |
Draw the shape in the hower mode (the mouse cursor is above the shape). The function can be overrided if neccessary. More... | |
virtual void | DrawHighlighted (wxDC &dc) |
Draw the shape in the highlighted mode (another shape is dragged over this shape and this shape will accept the dragged one if it will be dropped on it). The function can be overrided if neccessary. More... | |
virtual void | DrawShadow (wxDC &dc) |
Draw shadow under the shape. The function can be overrided if neccessary. More... | |
virtual wxXmlNode * | Serialize (wxXmlNode *node) |
Serialize shape's properties to the given XML node. The serialization routine is automatically called by the framework and should take care about serialization of all specific (non-standard) shape's properties. More... | |
virtual void | Deserialize (wxXmlNode *node) |
Deserialize shape's properties from the given XML node. The routine is automatically called by the framework and should take care about deserialization of all specific (non-standard) shape's properties. More... | |
void | Refresh (const wxRect &rct, bool delayed=false) |
Repaint the shape. More... | |
wxRealPoint | GetParentAbsolutePosition () |
Get absolute position of the shape parent. More... | |
![]() | |
void | InitChild (xsSerializable *child) |
Initialize new child object. More... | |
Protected Attributes | |
bool | m_fSelected |
Selection flag. More... | |
bool | m_fVisible |
Visibility flag. More... | |
bool | m_fActive |
Activation flag. More... | |
long | m_nStyle |
Shape's style mask. More... | |
wxColour | m_nHoverColor |
wxRealPoint | m_nRelativePosition |
wxArrayString | m_arrAcceptedChildren |
String list with class names of accepted child shapes. More... | |
wxArrayString | m_arrAcceptedConnections |
String list with class names of accepted connections. More... | |
wxArrayString | m_arrAcceptedSrcNeighbours |
String list with class names of accepted source neighbour shapes. More... | |
wxArrayString | m_arrAcceptedTrgNeighbours |
String list with class names of accepted target neighbour shapes. More... | |
double | m_nVBorder |
Value of vertical border used by AlignV function. More... | |
double | m_nHBorder |
Value of horizontal border used by AlignH function. More... | |
VALIGN | m_nVAlign |
Vertical alignment of child shapes. More... | |
HALIGN | m_nHAlign |
Horizontal alignment of child shapes. More... | |
int | m_nCustomDockPoint |
Custom line dock point. More... | |
HandleList | m_lstHandles |
Handle list. More... | |
ConnectionPointList | m_lstConnectionPts |
xsSerializable * | m_pUserData |
Container for serializable user data associated with the shape. More... | |
![]() | |
PropertyList | m_lstProperties |
List of serialized properties. More... | |
SerializableList | m_lstChildItems |
List of child objects. More... | |
xsSerializable * | m_pParentItem |
Pointer to parent serializable object. More... | |
wxXmlSerializer * | m_pParentManager |
Pointer to parent data manager. More... | |
bool | m_fSerialize |
Object serialization flag. More... | |
bool | m_fClone |
Object cloning flag. More... | |
Private Member Functions | |
void | MarkSerializableDataMembers () |
Initialize serializable properties. More... | |
void | _GetNeighbours (ShapeList &neighbours, wxClassInfo *shapeInfo, CONNECTMODE condir, bool direct) |
Auxiliary function called by GetNeighbours function. More... | |
void | _GetCompleteBoundingBox (wxRect &rct, int mask=bbALL) |
Auxiliary function called by GetCompleteBoundingBox function. More... | |
void | _OnMouseMove (const wxPoint &pos) |
Original protected event handler called when the mouse pointer is moving around the shape canvas. More... | |
void | _OnBeginDrag (const wxPoint &pos) |
Original protected event handler called at the begininig of dragging process. More... | |
void | _OnDragging (const wxPoint &pos) |
Original protected event handler called during a dragging process. More... | |
void | _OnEndDrag (const wxPoint &pos) |
Original protected event handler called at the end of dragging process. More... | |
void | _OnKey (int key) |
Original protected event handler called when any key is pressed (in the shape canvas). More... | |
void | _OnHandle (wxSFShapeHandle &handle) |
Original protected event handler called during dragging of the shape handle. More... | |
Private Attributes | |
bool | m_fMouseOver |
bool | m_fFirstMove |
bool | m_fHighlighParent |
wxRealPoint | m_nMouseOffset |
Friends | |
class | wxSFShapeCanvas |
class | wxSFDiagramManager |
class | wxSFShapeHandle |
Base class for all shapes providing fundamental functionality and publishing set of virtual functions which must be defined by the user in derived shapes. This class shouldn't be used as it is.
Shape objects derived from this class use hierarchical approach. It means that every shape must have defined parent shape (can be NULL for topmost shapes). An absolute shape position is then calculated as a sumation of all relative positions of all parent shapes. Also the size of the parent shape can be limited be a boundind box of all children shapes.
This class also declares set of virtual functions used as event handlers for various events (moving, sizing, drawing, mouse events, serialization and deserialization requests, ...) mostly triggered by a parent shape canvas.
Bit flags for wxSFShapeBase::GetCompleteBoundingBox function.
Enumerator | |
---|---|
bbSELF | |
bbCHILDREN | |
bbCONNECTIONS | |
bbSHADOW | |
bbALL |
enum wxSFShapeBase::STYLE |
Basic shape's styles used with SetStyle() function.
wxSFShapeBase::wxSFShapeBase | ( | void | ) |
Basic constructor.
wxSFShapeBase::wxSFShapeBase | ( | const wxRealPoint & | pos, |
wxSFDiagramManager * | manager | ||
) |
Enhanced constructor.
pos | Initial relative position |
manager | Pointer to parent diagram manager |
wxSFShapeBase::wxSFShapeBase | ( | const wxSFShapeBase & | obj | ) |
Copy constructor.
obj | Reference to the source object |
|
virtual |
Destructor.
|
private |
Auxiliary function called by GetCompleteBoundingBox function.
rct | Returned bounding rectangle |
mask | Bit mask of object types which should be included into calculation |
|
private |
Auxiliary function called by GetNeighbours function.
neighbours | List of neighbour shapes |
shapeInfo | Line object type |
condir | Connection direction |
direct | Set this flag to TRUE if only closest shapes should be found, otherwise also shapes connected by forked lines will be found (also constants sfDIRECT and sfINDIRECT can be used) |
|
private |
Original protected event handler called at the begininig of dragging process.
The function is called by the framework (by the shape canvas). After processing the event an overridable event handler is called.
pos | Current mouse position |
|
private |
Original protected event handler called during a dragging process.
The function is called by the framework (by the shape canvas). After processing the event an overridable event handler is called.
pos | Current mouse position |
|
private |
Original protected event handler called at the end of dragging process.
The function is called by the framework (by the shape canvas). After processing the event an overridable event handler is called.
pos | Current mouse position |
|
private |
Original protected event handler called during dragging of the shape handle.
The function is called by the framework (by the shape canvas). Default implementation manages the child shapes' alignment (if set).
handle | Reference to dragged handle |
|
private |
Original protected event handler called when any key is pressed (in the shape canvas).
The function is called by the framework (by the shape canvas). Default implementation performs operations necessary for proper shape's moving and repainting.
key | The key code |
|
private |
Original protected event handler called when the mouse pointer is moving around the shape canvas.
The function is called by the framework (by the shape canvas). After processing the event relevant overridable event handlers are called.
pos | Current mouse position |
|
inline |
Add given shape type to an acceptance list. The acceptance list contains class names of the shapes which can be accepted as children of this shape. Note: Keyword 'All' behaves like any class name.
type | Class name of accepted shape object |
|
inline |
Add given connection type to an acceptance list. The acceptance list contains class names of the connection which can be accepted by this shape. Note: Keyword 'All' behaves like any class name.
type | Class name of accepted connection object |
bool wxSFShapeBase::AcceptCurrentlyDraggedShapes | ( | ) |
Function returns TRUE if all currently dragged shapes can be accepted as children of this shape.
|
inline |
Add given shape type to an source neighbours' acceptance list. The acceptance list contains class names of the shape types which can be accepted by this shape as its source neighbour. Note: Keyword 'All' behaves like any class name.
type | Class name of accepted connection object |
|
inline |
Add given shape type to an target neighbours' acceptance list. The acceptance list contains class names of the shape types which can be accepted by this shape as its target neighbour. Note: Keyword 'All' behaves like any class name.
type | Class name of accepted connection object |
|
inline |
Shape's activation/deactivation.
Deactivated shapes are visible, but don't receive (process) any events.
active | TRUE for activation, FALSE for deactivation |
wxSFConnectionPoint* wxSFShapeBase::AddConnectionPoint | ( | const wxRealPoint & | relpos, |
long | id = -1 , |
||
bool | persistent = true |
||
) |
Assign custom connection point to the shape.
relpos | Relative position in percentages |
id | Optional connection point ID |
persistent | TRUE if the connection point should be serialized |
void wxSFShapeBase::AddConnectionPoint | ( | wxSFConnectionPoint * | cp, |
bool | persistent = true |
||
) |
Assigned given connection point to the shape.
cp | Pointer to connection point (shape will take the ownership) |
persistent | TRUE if the connection point should be serialized |
wxSFConnectionPoint* wxSFShapeBase::AddConnectionPoint | ( | wxSFConnectionPoint::CPTYPE | type, |
bool | persistent = true |
||
) |
Assign connection point of given type to the shape.
type | Connection point type |
persistent | TRUE if the connection point should be serialized |
void wxSFShapeBase::AddHandle | ( | wxSFShapeHandle::HANDLETYPE | type, |
long | id = -1 |
||
) |
Add new handle to the shape.
The function creates new instance of shape handle (if it doesn't exist yet) and inserts it into handle list.
type | Handle type |
id | Handle ID (usefull only for line control points) |
|
inline |
|
inline |
Clear shape object acceptance list.
|
inline |
Clear connection object acceptance list.
|
inline |
Clear source neighbour objects acceptance list.
|
inline |
Clear target neighbour objects acceptance list.
|
virtual |
\brief Test whether the given point is inside the shape. The function
can be overrided if neccessary.
pos | Examined point |
Reimplemented in wxSFRoundRectShape, wxSFLineShape, wxSFEllipseShape, wxSFDiamondShape, and wxSFCircleShape.
|
inline |
|
virtual |
\brief Function called by the framework responsible for creation of shape handles
at the creation time. Default implementation does nothing. The function can be overrided if neccesary.
Reimplemented in wxSFRectShape, and wxSFLineShape.
|
protectedvirtual |
Deserialize shape's properties from the given XML node. The routine is automatically called by the framework and should take care about deserialization of all specific (non-standard) shape's properties.
Note, that the shape serialization is used not only for saving canvas's content to a file but also during Undo/Redo and the clipboard operations so it is very important to implement this virtual function otherwise all mentioned operations wont be available for this shape.
node | Pointer to a source XML node containig the shape's property nodes |
Reimplemented from xsSerializable.
Reimplemented in wxSFTextShape, wxSFPolygonShape, and wxSFBitmapShape.
void wxSFShapeBase::DoAlignment | ( | ) |
Update the shape's position in order to its alignment.
|
virtual |
Draw shape. Default implementation tests basic shape visual states (normal/ready, mouse is over the shape, dragged shape can be accepted) and call appropriate virtual functions (DrawNormal, DrawHover, DrawHighlighted) for its visualisation. The function can be overrided if neccessary.
dc | Reference to a device context where the shape will be drawn to |
children | TRUE if the shape's children should be drawn as well |
|
protectedvirtual |
Draw the shape in the highlighted mode (another shape is dragged over this shape and this shape will accept the dragged one if it will be dropped on it). The function can be overrided if neccessary.
dc | Reference to device context where the shape will be drawn to |
Reimplemented in wxSFTextShape, wxSFRoundRectShape, wxSFRectShape, wxSFPolygonShape, wxSFLineShape, wxSFEllipseShape, wxSFCircleShape, and wxSFBitmapShape.
|
protectedvirtual |
Draw the shape in the hower mode (the mouse cursor is above the shape). The function can be overrided if neccessary.
dc | Reference to device context where the shape will be drawn to |
Reimplemented in wxSFTextShape, wxSFRoundRectShape, wxSFRectShape, wxSFPolygonShape, wxSFLineShape, wxSFEllipseShape, wxSFCircleShape, and wxSFBitmapShape.
|
protectedvirtual |
Draw the shape in the normal way. The function can be overrided if neccessary.
dc | Reference to device context where the shape will be drawn to |
Reimplemented in wxSFTextShape, wxSFRoundRectShape, wxSFRectShape, wxSFPolygonShape, wxSFLineShape, wxSFEllipseShape, wxSFCircleShape, and wxSFBitmapShape.
|
protectedvirtual |
Draw the shape in the selected way. The function can be overrided if neccessary.
dc | Reference to device context where the shape will be drawn to |
|
protectedvirtual |
Draw shadow under the shape. The function can be overrided if neccessary.
dc | Reference to device context where the shadow will be drawn to |
Reimplemented in wxSFTextShape, wxSFRoundRectShape, wxSFRectShape, wxSFPolygonShape, wxSFEllipseShape, and wxSFCircleShape.
|
virtual |
Resize the shape to bound all child shapes. The function can be overrided if neccessary.
Reimplemented in wxSFRectShape, wxSFPolygonShape, wxSFGridShape, and wxSFControlShape.
|
virtual |
Get the shape's absolute position in the canvas (calculated as a sumation of all relative positions in the shapes' hierarchy. The function can be overrided if neccessary.
Reimplemented in wxSFLineShape.
|
inline |
Get shape types acceptance list.
|
inline |
Get connection types acceptance list.
|
inline |
Get source neighbour types acceptance list.
|
inline |
Get target neighbour types acceptance list.
void wxSFShapeBase::GetAssignedConnections | ( | wxClassInfo * | shapeInfo, |
wxSFShapeBase::CONNECTMODE | mode, | ||
ShapeList & | lines | ||
) |
Get list of connections assigned to this shape.
Note: For proper functionality the shape must be managed by a diagram manager.
shapeInfo | Line object type |
mode | Search mode |
lines | Reference to shape list where pointers to all found connections will be stored |
|
virtual |
\brief Get intersection point of the shape border and a line leading from 'start' point to 'end' point. Default implementation does nothing. The function can be overrided if neccessary. \param start Starting point of the virtual intersection line
end | Ending point of the virtual intersection line |
Reimplemented in wxSFRectShape, wxSFPolygonShape, wxSFLineShape, wxSFEllipseShape, and wxSFCircleShape.
|
virtual |
\brief Get shapes's bounding box. The function can be overrided if neccessary.
Reimplemented in wxSFRectShape, wxSFLineShape, and wxSFCurveShape.
|
virtual |
Get shape's center. Default implementation does nothing. The function can be overrided if neccessary.
void wxSFShapeBase::GetChildShapes | ( | wxClassInfo * | type, |
ShapeList & | children, | ||
bool | recursive = false , |
||
xsSerializable::SEARCHMODE | mode = xsSerializable::searchBFS |
||
) |
\brief Get child shapes associated with this (parent) shape.
type | Type of searched child shapes (NULL for any type) |
children | List of child shapes |
recursive | Set this flag TRUE if also children of children of ... should be found (also sfRECURSIVE a sfNORECURSIVE constants can be used). |
mode | Search mode (has sense only for recursive search) |
void wxSFShapeBase::GetCompleteBoundingBox | ( | wxRect & | rct, |
int | mask = bbALL |
||
) |
Get shape's bounding box which includes also associated child shapes and connections.
rct | Returned bounding rectangle |
mask | Bit mask of object types which should be included into calculation |
wxSFConnectionPoint* wxSFShapeBase::GetConnectionPoint | ( | wxSFConnectionPoint::CPTYPE | type, |
long | id = -1 |
||
) |
Get connection point of given type assigned to the shape.
type | Connection point type |
id | Optional connection point ID |
|
inline |
Get reference to connection points list.
|
inline |
Get custom dock point used if the shape is child shape of a line shape.
wxSFShapeBase* wxSFShapeBase::GetGrandParentShape | ( | ) |
Get pointer to the topmost parent shape.
|
inline |
wxSFShapeHandle* wxSFShapeBase::GetHandle | ( | wxSFShapeHandle::HANDLETYPE | type, |
long | id = -1 |
||
) |
Get shape handle.
type | Handle type |
id | Handle ID (usefull only for line control points) |
|
inline |
Get list of currently assigned shape handles.
|
inline |
Get horizontal border between this shape and its parent (is horizontal alignment is set).
|
inline |
Get shape's hover color.
wxSFConnectionPoint* wxSFShapeBase::GetNearestConnectionPoint | ( | const wxRealPoint & | pos | ) |
Get connection point closest to the diven position.
pos | Position |
void wxSFShapeBase::GetNeighbours | ( | ShapeList & | neighbours, |
wxClassInfo * | shapeInfo, | ||
CONNECTMODE | condir, | ||
bool | direct = true |
||
) |
Get neighbour shapes connected to this shape.
neighbours | List of neighbour shapes |
shapeInfo | Line object type |
condir | Connection direction |
direct | Set this flag to TRUE if only closest shapes should be found, otherwise also shapes connected by forked lines will be found (also constants sfDIRECT and sfINDIRECT can be used) |
|
protected |
Get absolute position of the shape parent.
wxSFShapeCanvas* wxSFShapeBase::GetParentCanvas | ( | ) |
Get shape's parent canvas.
wxSFShapeBase* wxSFShapeBase::GetParentShape | ( | ) |
Get pointer to a parent shape.
|
inline |
|
inline |
|
inline |
Get current shape style.
|
inline |
Get associated user data.
|
inline |
|
inline |
Get vertical border between this shape and its parent (is vertical alignment is set).
|
virtual |
Test whether the given rectangle intersects the shape.
rct | Examined rectangle |
|
inline |
Function returns value of a shape's activation flag.
Non-active shapes are visible, but don't receive (process) any events.
bool wxSFShapeBase::IsAncestor | ( | wxSFShapeBase * | child | ) |
Determine whether this shape is ancestor of given child shape.
child | Pointer to child shape. |
bool wxSFShapeBase::IsChildAccepted | ( | const wxString & | type | ) |
Tells whether the given shape type is accepted by this shape (it means whether this shape can be its parent).
The function is typically used by the framework for determination whether a dropped shape can be assigned to an underlying shape as its child.
type | Class name of examined shape object |
bool wxSFShapeBase::IsConnectionAccepted | ( | const wxString & | type | ) |
Tells whether the given connection type is accepted by this shape (it means whether this shape can be connected to another one by a connection of given type).
The function is typically used by the framework during interactive connection creation.
type | Class name of examined connection object |
bool wxSFShapeBase::IsDescendant | ( | wxSFShapeBase * | parent | ) |
Determine whether this shape is descendant of given parent shape.
parent | Pointer to parent shape |
|
virtual |
\brief Test whether the shape is completely inside given rectangle. The function
can be overrided if neccessary.
rct | Examined rectangle |
|
inline |
Function returns TRUE if the shape is selected, otherwise returns FALSE.
bool wxSFShapeBase::IsSrcNeighbourAccepted | ( | const wxString & | type | ) |
Tells whether the given shape type is accepted by this shape as its source neighbour(it means whether this shape can be connected from another one of given type).
The function is typically used by the framework during interactive connection creation.
type | Class name of examined connection object |
bool wxSFShapeBase::IsTrgNeighbourAccepted | ( | const wxString & | type | ) |
Tells whether the given shape type is accepted by this shape as its target neighbour(it means whether this shape can be connected to another one of given type).
The function is typically used by the framework during interactive connection creation.
type | Class name of examined connection object |
|
inline |
Get the shape's visibility status.
|
private |
Initialize serializable properties.
void wxSFShapeBase::MoveBy | ( | const wxRealPoint & | delta | ) |
Move the shape by the given offset.
delta | Offset |
|
virtual |
Move the shape by the given offset. The function can be overrided if neccessary.
x | X offset |
y | Y offset |
Reimplemented in wxSFLineShape, and wxSFControlShape.
void wxSFShapeBase::MoveTo | ( | const wxRealPoint & | pos | ) |
Move the shape to the given absolute position.
pos | New absolute position |
|
virtual |
Move the shape to the given absolute position. The function can be overrided if necessary.
x | X coordinate |
y | Y coordinate |
Reimplemented in wxSFLineShape, and wxSFControlShape.
|
virtual |
Event handler called at the begining of the shape dragging process. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_DRAG_BEGIN event.
Reimplemented in wxSFLineShape, and wxSFControlShape.
|
virtual |
Event handler called when the user started to drag the shape handle. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_HANDLE_BEGIN event.
handle | Reference to dragged handle |
Reimplemented in wxSFRectShape, wxSFMultiSelRect, wxSFControlShape, and wxSFBitmapShape.
|
virtual |
Event handler called when any shape is dropped above this shape (and the dropped shape is accepted as a child of this shape). The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_CHILD_DROP event.
pos | Relative position of dropped shape |
child | Pointer to dropped shape |
Reimplemented in wxSFGridShape.
|
virtual |
Event handler called during the shape dragging process. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_DRAG event.
pos | Current mouse position |
|
virtual |
Event handler called at the end of the shape dragging process. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_DRAG_END event.
pos | Current mouse position |
Reimplemented in wxSFControlShape.
|
virtual |
Event handler called when the user finished dragging of the shape handle. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_HANDLE_END event.
handle | Reference to dragged handle |
Reimplemented in wxSFMultiSelRect, wxSFLineShape, wxSFControlShape, and wxSFBitmapShape.
|
virtual |
Event handler called during dragging of the shape handle. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_HANDLE event.
handle | Reference to dragged handle |
Reimplemented in wxSFTextShape, wxSFRectShape, wxSFPolygonShape, wxSFMultiSelRect, wxSFLineShape, wxSFSquareShape, wxSFControlShape, and wxSFBitmapShape.
|
virtual |
Event handler called when any key is pressed (in the shape canvas). The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_KEYDOWN event.
key | The key code |
Reimplemented in wxSFEditTextShape.
|
virtual |
Event handler called when the shape is clicked by the left mouse button. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_LEFT_DOWN event.
pos | Current mouse position |
|
virtual |
Event handler called when the shape is double-clicked by the left mouse button. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_LEFT_DCLICK event.
pos | Current mouse position |
Reimplemented in wxSFLineShape, and wxSFEditTextShape.
|
virtual |
Event handler called when a mouse pointer enters the shape area. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_MOUSE_ENTER event.
pos | Current mouse position |
|
virtual |
Event handler called when a mouse pointer leaves the shape area. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_MOUSE_LEAVE event.
pos | Current mouse position |
|
virtual |
Event handler called when a mouse pointer moves above the shape area. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_MOUSE_OVER event.
pos | Current mouse position |
|
virtual |
Event handler called when the shape is clicked by the right mouse button. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_RIGHT_DOWN event.
pos | Current mouse position |
|
virtual |
Event handler called when the shape is double-clicked by the right mouse button. The function can be overrided if necessary.
The function is called by the framework (by the shape canvas). Default implementation emmits wxEVT_SF_SHAPE_RIGHT_DCLICK event.
pos | Current mouse position |
void wxSFShapeBase::Refresh | ( | bool | delayed = false | ) |
Refresh (redraw) the shape.
delayed | If TRUE then the shape canvas will be rather invalidated than refreshed. |
|
protected |
Repaint the shape.
rct | Canvas portion that should be updated |
delayed | If TRUE then the shape canvas will be rather invalidated than refreshed. |
void wxSFShapeBase::RemoveConnectionPoint | ( | wxSFConnectionPoint::CPTYPE | type | ) |
Remove connection point of given type from the shape (if pressent).
type | Connection point type |
void wxSFShapeBase::RemoveHandle | ( | wxSFShapeHandle::HANDLETYPE | type, |
long | id = -1 |
||
) |
Remove given shape handle (if exists).
type | Handle type |
id | Handle ID (usefull only for line control points) |
|
inline |
void wxSFShapeBase::Scale | ( | const wxRealPoint & | scale, |
bool | children = sfWITHCHILDREN |
||
) |
\brief Scale the shape size by in both directions.
scale | Scaling factor |
children | TRUE if the shape's children shoould be scaled as well, otherwise the shape will be updated after scaling via Update() function. |
|
virtual |
\brief Scale the shape size by in both directions. The function can be overrided if necessary
(new implementation should call default one ore scale shape's children manualy if neccesary).
x | Horizontal scale factor |
y | Vertical scale factor |
children | TRUE if the shape's children shoould be scaled as well, otherwise the shape will be updated after scaling via Update() function. |
Reimplemented in wxSFTextShape, wxSFRectShape, wxSFPolygonShape, wxSFLineShape, wxSFSquareShape, wxSFControlShape, and wxSFBitmapShape.
void wxSFShapeBase::ScaleChildren | ( | double | x, |
double | y | ||
) |
|
inline |
Set the shape as a selected/deselected one.
state | Selection state (TRUE is selected, FALSE is deselected) |
|
protectedvirtual |
Serialize shape's properties to the given XML node. The serialization routine is automatically called by the framework and should take care about serialization of all specific (non-standard) shape's properties.
Note, that the shape serialization is used not only for saving canvas's content to a file but also during Undo/Redo and the clipboard operations so it is very important to implement this virtual function otherwise all mentioned operations wont be available for this shape.
node | Pointer to XML node where the shape's property nodes will be appended to |
Reimplemented from xsSerializable.
Reimplemented in wxSFTextShape, wxSFPolygonShape, and wxSFBitmapShape.
|
inline |
Set custom dock point used if the shape is child shape of a line shape.
dp | Custom dock point |
|
inline |
Set horizontal alignment of this shape inside its parent.
val | Horizontal type |
|
inline |
Set horizontal border between this shape and its parent (is horizontal alignment is set).
border | Horizontal border |
|
inline |
Set shape's hover color.
col | Hover color |
|
inline |
\brief Set shape's relative position. Absolute shape's position is then calculated
as a sumation of the relative positions of this shape and all parent shapes in the shape's hierarchy.
pos | New relative position |
|
inline |
\brief Set shape's relative position. Absolute shape's position is then calculated
as a sumation of the relative positions of this shape and all parent shapes in the shape's hierarchy.
x | Horizontal coordinate of new relative position |
y | Vertical coordinate of new relative position |
|
inline |
Set shape's style.
Default value is sfsPARENT_CHANGE | sfsPOSITION_CHANGE | sfsSIZE_CHANGE | sfsHOVERING | sfsHIGHLIGHTING | sfsSHOW_HANDLES | sfsALWAYS_INSIDE | sfsDELETE_USER_DATA
style | Combination of the shape's styles |
void wxSFShapeBase::SetUserData | ( | xsSerializable * | data | ) |
Associate user data with the shape.
If the data object is properly set then its marked properties will be serialized together with the parent shape.
data | Pointer to user data |
|
inline |
|
inline |
Set vertical border between this shape and its parent (is vertical alignment is set).
border | Vertical border |
|
inline |
Show/hide shape.
show | Set the parameter to TRUE if the shape should be visible, otherwise use FALSE |
void wxSFShapeBase::ShowHandles | ( | bool | show | ) |
Show/hide shape handles. Hidden handles are inactive.
show | TRUE for showing, FALSE for hidding |
|
virtual |
Upate shape (align all child shapes an resize it to fit them)
Reimplemented in wxSFTextShape, wxSFGridShape, and wxSFControlShape.
wxSFShapeBase::XS_DECLARE_CLONABLE_CLASS | ( | wxSFShapeBase | ) |
|
friend |
|
friend |
|
friend |
|
protected |
String list with class names of accepted child shapes.
|
protected |
String list with class names of accepted connections.
|
protected |
String list with class names of accepted source neighbour shapes.
|
protected |
String list with class names of accepted target neighbour shapes.
|
protected |
Activation flag.
|
private |
|
private |
|
private |
|
protected |
Selection flag.
|
protected |
Visibility flag.
|
protected |
|
protected |
Handle list.
|
protected |
Custom line dock point.
|
protected |
Horizontal alignment of child shapes.
|
protected |
Value of horizontal border used by AlignH function.
|
protected |
|
private |
|
protected |
|
protected |
Shape's style mask.
|
protected |
Vertical alignment of child shapes.
|
protected |
Value of vertical border used by AlignV function.
|
protected |
Container for serializable user data associated with the shape.