wxShapeFramework  1.13.0 beta
wxSFGridShape Class Reference

Class encapsulates a rectangular shape derived from wxSFRectShape class which acts as a grid-based container able to manage other assigned child shapes (it can control their position). The managed shapes are aligned into defined grid with a behaviour similar to classic wxWidget's wxGridSizer class. More...

#include <GridShape.h>

Inheritance diagram for wxSFGridShape:
Collaboration diagram for wxSFGridShape:

Public Member Functions

 XS_DECLARE_CLONABLE_CLASS (wxSFGridShape)
 
 wxSFGridShape ()
 Default constructor. More...
 
 wxSFGridShape (const wxRealPoint &pos, const wxRealPoint &size, int rows, int cols, int cellspace, wxSFDiagramManager *manager)
 User constructor. More...
 
 wxSFGridShape (const wxSFGridShape &obj)
 Copy constructor. More...
 
virtual ~wxSFGridShape ()
 Destructor. More...
 
void SetDimensions (int rows, int cols)
 Set grid dimensions. More...
 
void SetCellSpace (int cellspace)
 Set space between grid cells (managed shapes). More...
 
void GetDimensions (int *rows, int *cols)
 Get grid dimensions. More...
 
int GetCellSpace ()
 Get space between grid cells (managed shapes). More...
 
wxSFShapeBaseGetManagedShape (size_t index)
 Get managed shape specified by lexicographic cell index. More...
 
wxSFShapeBaseGetManagedShape (int row, int col)
 Get managed shape specified by row and column indexes. More...
 
void ClearGrid ()
 Clear information about managed shapes and set number of rows and columns to zero. More...
 
bool AppendToGrid (wxSFShapeBase *shape)
 Append given shape to the grid at the last managed position. More...
 
bool InsertToGrid (int row, int col, wxSFShapeBase *shape)
 Insert given shape to the grid at the given position. More...
 
bool InsertToGrid (int index, wxSFShapeBase *shape)
 Insert given shape to the grid at the given position. More...
 
void RemoveFromGrid (long id)
 Remove shape with given ID from the grid. 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...
 
virtual void DoChildrenLayout ()
 Do layout of assigned child shapes. 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...
 
- Public Member Functions inherited from wxSFRectShape
 XS_DECLARE_CLONABLE_CLASS (wxSFRectShape)
 
 wxSFRectShape (void)
 Default constructor. More...
 
 wxSFRectShape (const wxRealPoint &pos, const wxRealPoint &size, wxSFDiagramManager *manager)
 User constructor. More...
 
 wxSFRectShape (const wxSFRectShape &obj)
 Copy constructor. More...
 
virtual ~wxSFRectShape (void)
 Destructor. More...
 
virtual wxRect GetBoundingBox ()
 
virtual wxRealPoint GetBorderPoint (const wxRealPoint &start, const wxRealPoint &end)
 
virtual void CreateHandles ()
 
virtual void OnHandle (wxSFShapeHandle &handle)
 Event handler called during dragging of the shape handle. 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 Scale (double x, double y, bool children=sfWITHCHILDREN)
 
void SetFill (const wxBrush &brush)
 Set rectangle's fill style. More...
 
wxBrush GetFill () const
 Get current fill style. More...
 
void SetBorder (const wxPen &pen)
 Set rectangle's border style. More...
 
wxPen GetBorder () const
 Get current border style. More...
 
void SetRectSize (const wxRealPoint &size)
 Set the rectangle size. More...
 
void SetRectSize (double x, double y)
 Set the rectangle size. More...
 
wxRealPoint GetRectSize () const
 Get the rectangle size. More...
 
- Public Member Functions inherited from wxSFShapeBase
 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 GetCenter ()
 Get shape's center. Default implementation does nothing. The function can be overrided if neccessary. More...
 
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...
 
void GetCompleteBoundingBox (wxRect &rct, int mask=bbALL)
 Get shape's bounding box which includes also associated child shapes and connections. More...
 
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...
 
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...
 
wxSFShapeBaseGetParentShape ()
 Get pointer to a parent shape. More...
 
wxSFShapeBaseGetGrandParentShape ()
 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...
 
xsSerializableGetUserData ()
 Get associated user data. More...
 
wxSFDiagramManagerGetShapeManager ()
 Get shape's parent diagram manager. More...
 
wxSFShapeCanvasGetParentCanvas ()
 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...
 
wxSFShapeHandleGetHandle (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...
 
ConnectionPointListGetConnectionPoints ()
 Get reference to connection points list. More...
 
wxSFConnectionPointGetConnectionPoint (wxSFConnectionPoint::CPTYPE type, long id=-1)
 Get connection point of given type assigned to the shape. More...
 
wxSFConnectionPointGetNearestConnectionPoint (const wxRealPoint &pos)
 Get connection point closest to the diven position. More...
 
wxSFConnectionPointAddConnectionPoint (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...
 
wxSFConnectionPointAddConnectionPoint (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 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...
 
- Public Member Functions inherited from xsSerializable
 XS_DECLARE_CLONABLE_CLASS (xsSerializable)
 
 xsSerializable ()
 Constructor. More...
 
 xsSerializable (const xsSerializable &obj)
 Copy constructor. More...
 
 ~xsSerializable ()
 Destructor. More...
 
xsSerializableGetParent ()
 Get serializable parent object. More...
 
wxXmlSerializerGetParentManager ()
 Get parent data manager (instance of wxXmlSerializer). More...
 
xsSerializableGetFirstChild ()
 Get first serializable child object. More...
 
xsSerializableGetFirstChild (wxClassInfo *type)
 Get first serializable child object of given type. More...
 
xsSerializableGetLastChild ()
 Get last serializable child object. More...
 
xsSerializableGetLastChild (wxClassInfo *type)
 Get last serializable child object of given type. More...
 
xsSerializableGetSibbling ()
 Get next serializable sibbling object. More...
 
xsSerializableGetSibbling (wxClassInfo *type)
 Get next serializable sibbling object of given type. More...
 
xsSerializableGetChild (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...
 
SerializableListGetChildrenList ()
 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...
 
xsSerializableAddChild (xsSerializable *child)
 Add serializable child object to this object. More...
 
xsSerializableInsertChild (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...
 
xsPropertyGetProperty (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...
 
xsSerializableoperator<< (xsSerializable *child)
 Add serializable child object to this object. More...
 

Protected Member Functions

void FitShapeToRect (wxSFShapeBase *shape, const wxRect &rct)
 Move and resize given shape so it will fit the given bounding rectangle. More...
 
- Protected Member Functions inherited from wxSFRectShape
virtual void DrawNormal (wxDC &dc)
 Draw the shape in the normal 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 void OnRightHandle (wxSFShapeHandle &handle)
 Event handler called during dragging of the right shape handle. The function can be overrided if neccessary. More...
 
virtual void OnLeftHandle (wxSFShapeHandle &handle)
 Event handler called during dragging of the left shape handle. The function can be overrided if neccessary. More...
 
virtual void OnTopHandle (wxSFShapeHandle &handle)
 Event handler called during dragging of the top shape handle. The function can be overrided if neccessary. More...
 
virtual void OnBottomHandle (wxSFShapeHandle &handle)
 Event handler called during dragging of the bottom shape handle. The function can be overrided if neccessary. More...
 
- Protected Member Functions inherited from wxSFShapeBase
virtual void DrawSelected (wxDC &dc)
 Draw the shape in the selected way. 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...
 
- Protected Member Functions inherited from xsSerializable
void InitChild (xsSerializable *child)
 Initialize new child object. More...
 

Protected Attributes

int m_nRows
 Number of grid rows. More...
 
int m_nCols
 Number of grid columns. More...
 
int m_nCellSpace
 Space additional space between managed shapes. More...
 
wxXS::IntArray m_arrCells
 Array containing the IDs of managed shapes. More...
 
- Protected Attributes inherited from wxSFRectShape
wxPen m_Border
 Pen object used for drawing of the rectangle border. More...
 
wxBrush m_Fill
 Brush object used for drawing of the rectangle body. More...
 
wxRealPoint m_nRectSize
 The rectangle size. More...
 
- Protected Attributes inherited from wxSFShapeBase
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
 
xsSerializablem_pUserData
 Container for serializable user data associated with the shape. More...
 
- Protected Attributes inherited from xsSerializable
PropertyList m_lstProperties
 List of serialized properties. More...
 
SerializableList m_lstChildItems
 List of child objects. More...
 
xsSerializablem_pParentItem
 Pointer to parent serializable object. More...
 
wxXmlSerializerm_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...
 

Friends

class wxSFDiagramManager
 

Additional Inherited Members

- Public Types inherited from wxSFShapeBase
enum  BBMODE {
  bbSELF = 1 , bbCHILDREN = 2 , bbCONNECTIONS = 4 , bbSHADOW = 8 ,
  bbALL = 15
}
 Bit flags for wxSFShapeBase::GetCompleteBoundingBox function. More...
 
enum  CONNECTMODE { lineSTARTING , lineENDING , lineBOTH }
 Search mode flags for GetAssignedConnections function. More...
 
enum  VALIGN {
  valignNONE , valignTOP , valignMIDDLE , valignBOTTOM ,
  valignEXPAND , valignLINE_START , valignLINE_END
}
 Flags for SetVAlign function. More...
 
enum  HALIGN {
  halignNONE , halignLEFT , halignCENTER , halignRIGHT ,
  halignEXPAND , halignLINE_START , halignLINE_END
}
 Flags for SetHAlign function. More...
 
enum  STYLE {
  sfsPARENT_CHANGE = 1 , sfsPOSITION_CHANGE = 2 , sfsSIZE_CHANGE = 4 , sfsHOVERING = 8 ,
  sfsHIGHLIGHTING = 16 , sfsALWAYS_INSIDE = 32 , sfsDELETE_USER_DATA = 64 , sfsPROCESS_DEL = 128 ,
  sfsSHOW_HANDLES = 256 , sfsSHOW_SHADOW = 512 , sfsLOCK_CHILDREN = 1024 , sfsEMIT_EVENTS = 2048 ,
  sfsPROPAGATE_DRAGGING = 4096 , sfsPROPAGATE_SELECTION = 8192 , sfsPROPAGATE_INTERACTIVE_CONNECTION = 16384 , sfsNO_FIT_TO_CHILDREN = 32768 ,
  sfsPROPAGATE_HOVERING = 65536 , sfsPROPAGATE_HIGHLIGHTING = 131072 , sfsDEFAULT_SHAPE_STYLE = sfsPARENT_CHANGE | sfsPOSITION_CHANGE | sfsSIZE_CHANGE | sfsHOVERING | sfsHIGHLIGHTING | sfsSHOW_HANDLES | sfsALWAYS_INSIDE | sfsDELETE_USER_DATA
}
 Basic shape's styles used with SetStyle() function. More...
 
- Public Types inherited from xsSerializable
enum  SEARCHMODE { searchDFS , searchBFS }
 

Detailed Description

Class encapsulates a rectangular shape derived from wxSFRectShape class which acts as a grid-based container able to manage other assigned child shapes (it can control their position). The managed shapes are aligned into defined grid with a behaviour similar to classic wxWidget's wxGridSizer class.

Constructor & Destructor Documentation

◆ wxSFGridShape() [1/3]

wxSFGridShape::wxSFGridShape ( )

Default constructor.

◆ wxSFGridShape() [2/3]

wxSFGridShape::wxSFGridShape ( const wxRealPoint &  pos,
const wxRealPoint &  size,
int  rows,
int  cols,
int  cellspace,
wxSFDiagramManager manager 
)

User constructor.

Parameters
posInitial position
sizeInitial size
rowsNumber of grid rows
colsNumber of grid columns
cellspaceAdditional space between managed shapes
managerPointer to parent diagram manager

◆ wxSFGridShape() [3/3]

wxSFGridShape::wxSFGridShape ( const wxSFGridShape obj)

Copy constructor.

Parameters
objReference to the source object

◆ ~wxSFGridShape()

virtual wxSFGridShape::~wxSFGridShape ( )
virtual

Destructor.

Member Function Documentation

◆ AppendToGrid()

bool wxSFGridShape::AppendToGrid ( wxSFShapeBase shape)

Append given shape to the grid at the last managed position.

Parameters
shapePointer to appended shape

◆ ClearGrid()

void wxSFGridShape::ClearGrid ( )

Clear information about managed shapes and set number of rows and columns to zero.

Note that this function doesn't remove managed (child) shapes from the parent grid shape (they are still its child shapes but aren't managed anymore).

◆ DoChildrenLayout()

virtual void wxSFGridShape::DoChildrenLayout ( )
virtual

Do layout of assigned child shapes.

Reimplemented in wxSFFlexGridShape.

◆ FitShapeToRect()

void wxSFGridShape::FitShapeToRect ( wxSFShapeBase shape,
const wxRect &  rct 
)
protected

Move and resize given shape so it will fit the given bounding rectangle.

The shape is aligned inside the given bounding rectangle in accordance to the shape's valign and halign flags.

Parameters
shapePointer to modified shape
rctBounding rectangle
See also
wxSFShapeBase::SetVAlign, wxSFShapeBase::SetHAlign

◆ FitToChildren()

virtual void wxSFGridShape::FitToChildren ( )
virtual

Resize the shape to bound all child shapes. The function can be overrided if neccessary.

Reimplemented from wxSFRectShape.

◆ GetCellSpace()

int wxSFGridShape::GetCellSpace ( )
inline

Get space between grid cells (managed shapes).

Returns
Cellspace size

◆ GetDimensions()

void wxSFGridShape::GetDimensions ( int *  rows,
int *  cols 
)

Get grid dimensions.

Parameters
rowsPointer to variable where number of rows will be stored
colsPointer to variable where number of columns will be stored

◆ GetManagedShape() [1/2]

wxSFShapeBase* wxSFGridShape::GetManagedShape ( int  row,
int  col 
)

Get managed shape specified by row and column indexes.

Parameters
rowZero-base row index
colZero-based column index
Returns
Pointer to shape object stored in specified grid cell if exists, otherwise NULL

◆ GetManagedShape() [2/2]

wxSFShapeBase* wxSFGridShape::GetManagedShape ( size_t  index)

Get managed shape specified by lexicographic cell index.

Parameters
indexLexicographic index of requested shape
Returns
Pointer to shape object of given cell index if exists, otherwise NULL

◆ InsertToGrid() [1/2]

bool wxSFGridShape::InsertToGrid ( int  index,
wxSFShapeBase shape 
)

Insert given shape to the grid at the given position.

Note that the given index is a lexicographic position of inserted shape. The given shape is inserted before the existing item 'index', thus InsertToGrid(0, something) will insert an item in such way that it will become the first grid element.

Parameters
indexLexicographic position of inserted shape
shapePointer to inserted shape
Returns
True on successe, otherwise False

◆ InsertToGrid() [2/2]

bool wxSFGridShape::InsertToGrid ( int  row,
int  col,
wxSFShapeBase shape 
)

Insert given shape to the grid at the given position.

Note that the grid can grow in a vertical direction only, so if the user specify desired horizontal position bigger than the current number of columns is then this function exits with an error (false) return value. If specified vertical position exceeds the number or grid rows than the grid is resized. If the given position (grid cell) is already occupied by some shape then the previous one will be moved to the grid's last lexicographic position.

Parameters
rowVertical position
colHorizontal position
shapePointer to inserted shape
Returns
True on success, otherwise False

◆ MarkSerializableDataMembers()

void wxSFGridShape::MarkSerializableDataMembers ( )
private

Initialize serializable properties.

◆ OnChildDropped()

virtual void wxSFGridShape::OnChildDropped ( const wxRealPoint &  pos,
wxSFShapeBase child 
)
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).

Parameters
posRelative position of dropped shape
childPointer to dropped shape

Reimplemented from wxSFShapeBase.

◆ RemoveFromGrid()

void wxSFGridShape::RemoveFromGrid ( long  id)

Remove shape with given ID from the grid.

Parameters
idID of shape which should be removed

◆ SetCellSpace()

void wxSFGridShape::SetCellSpace ( int  cellspace)
inline

Set space between grid cells (managed shapes).

Parameters
cellspaceCellspace size

◆ SetDimensions()

void wxSFGridShape::SetDimensions ( int  rows,
int  cols 
)

Set grid dimensions.

Parameters
rowsNumber of rows
colsNumber of columns

◆ Update()

virtual void wxSFGridShape::Update ( )
virtual

Upate shape (align all child shapes an resize it to fit them)

Reimplemented from wxSFShapeBase.

◆ XS_DECLARE_CLONABLE_CLASS()

wxSFGridShape::XS_DECLARE_CLONABLE_CLASS ( wxSFGridShape  )

Friends And Related Function Documentation

◆ wxSFDiagramManager

friend class wxSFDiagramManager
friend

Member Data Documentation

◆ m_arrCells

wxXS::IntArray wxSFGridShape::m_arrCells
protected

Array containing the IDs of managed shapes.

◆ m_nCellSpace

int wxSFGridShape::m_nCellSpace
protected

Space additional space between managed shapes.

◆ m_nCols

int wxSFGridShape::m_nCols
protected

Number of grid columns.

◆ m_nRows

int wxSFGridShape::m_nRows
protected

Number of grid rows.


The documentation for this class was generated from the following file: