#include "defines" /* ---------------------------------------- */ SYMBOL Statechart INHERITS VP_Set COMPUTE THIS.VP_OptStartSize=VisIntVector(600,500); THIS.VP_OptFrameStyle = "-fill {} -outline {}"; THIS.VP_OptContainerKind = 1; END; SYMBOL Substate INHERITS VP_SetElement END; SYMBOL SubstateList INHERITS VP_ListContext END; /* this could be deduced */ /* ---------------------------------------- */ SYMBOL ANDSuperstate INHERITS VP_Form, VP_Movable COMPUTE SYNT.VP_OptDrawing = ADDROF(ANDStateDrawing); END; SYMBOL ANDName INHERITS VP_FormElement, VP_TextTerminal COMPUTE SYNT.VP_OblContainerName = "title"; SYNT.VP_OptText = INCLUDING ANDSuperstate.persName; SYNT.VP_OptDefault = "Unnamed state"; END; SYMBOL ANDRegionList INHERITS VP_ContainerSSS, VP_SimpleList COMPUTE SYNT.VP_OblContainerName = "state"; SYNT.VP_OptDirection = visEast; SYNT.VP_OptAlignInWidth = VisAlignScale; SYNT.VP_OptAlignInLength = VisAlignScale; SYNT.VP_OptSeparatorStyle = DASHED; END; SYMBOL ANDRegion INHERITS VP_ListElement, VP_Set COMPUTE SYNT.VP_OptStartSize=VisIntVector(150,150); END; /* -------------------------------- */ SYMBOL Transition INHERITS VP_RelationTypeDirect, VP_RelationLevel1 COMPUTE SYNT.VP_OptLineType = "-width 2 -smooth 1"; SYNT.VP_OptArrowType = "-arrow last"; END; SYMBOL SimpleState INHERITS VP_EndPoint END; SYMBOL ANDSuperstate INHERITS VP_EndPoint END; SYMBOL XORSuperstate INHERITS VP_EndPoint END; SYMBOL Statechart INHERITS VP_RelationArea END; SYMBOL TransitionList INHERITS VP_ListSimpleRelations END; /* This could be deduced */ /* -------------------------------- */ SYMBOL TransitionLabel INHERITS VP_RelationLabel, VP_TextTerminal2 COMPUTE SYNT.VP_OptText = INCLUDING Transition.persEvent; END; /* -------------------------- */ SYMBOL SimpleState INHERITS VP_Movable, VP_TextTerminal COMPUTE SYNT.VP_OptText = THIS.persName; SYNT.VP_OptFont = "default"; SYNT.VP_OptTextAttr = "persName"; SYNT.VP_OptDefault = "Unnamed state"; SYNT.VP_OptFrameDrawing = NEW(RoundedFrameDrawing("-outline black -width 2 -fill {}",5, 20)); END; /* -------------------------- */ SYMBOL XORSuperstate INHERITS VP_Movable COMPUTE SYNT.VP_OptFrameShape = "roundedrectangle"; SYNT.VP_OptFrameStyle = "-fill {} -outline black -width 2"; END; SYMBOL XORSuperstate INHERITS VP_Set COMPUTE SYNT.VP_OptStartSize=VisIntVector(150,100); /* Default-Groesse */ SYNT.VP_OptContainerKind = 1; /* Autom. Vergroesserung! */ END; SYMBOL XORName INHERITS VP_TextTerminal COMPUTE THIS.VP_FramePositionDefined=THIS.wait; SYNT.VP_OptText = INCLUDING XORSuperstate.persName; SYNT.VP_VisualContext = INCLUDING XORSuperstate.VP_VisualContext; SYNT.VP_OptTextAttr = "persName"; SYNT.VP_OptDefault = "Unnamed state"; END; SYMBOL XORName COMPUTE SYNT.wait = ORDER( ASSIGN( PTRSELECT(THIS.VP_InnerContainerInterface2Ptr,position), ADD(PTRSELECT(INCLUDING XORSuperstate.VP_ContainerInterfacePtr,position),VisIntVector(8,6)) ), ASSIGN(PTRSELECT(THIS.VP_InnerContainerInterface2Ptr,align), VisIntVector(VisAlignLeft,VisAlignTop)) ) <- INCLUDING XORSuperstate.VP_Drawn; END;