Files
qt-creator/share/qtcreator/modeleditor/standard.def

531 lines
15 KiB
Modula-2
Raw Normal View History

// ModelEditor - definitions of custom shapes
//
// Language syntax and commands:
//
//
// An Icon defines an icon of an element selected by stereotype.
//
// Icon {
// id: <id>
// title: <a UI title. Defaults to the id of the icon.>
// elements: <comma-separated list of element types the
// definiton applies to: class, component, package, diagram, item.
// Default applies definition to all element types.>
// stereotype: <stereotype as a string.>
// display: <default display of element.
// One of: none, label, decoration, icon, smart.
// Default is smart.>
// name: <Name of new element. Defaults to "New <Toolbar entry title>".>
// width: <width of icon in pixels. The width defines the width of the icon as decoration.>
// height: <height of icon in pixels. The height defines the height of the icon as decoration.>
// minwidth: <minimum width of custom icon in pixels.>
// minheight: <minimum height of custom icon in pixels.>
// lockSize: <lock resizing.
// One of: none, width, height, size, ratio.
// Default is none.>
// textAlignment: <alignment of text (stereotype label, name and context).
// One of: top, center, below, none.
// Defaults to below. None means no text will be displayed>
// baseColor: <color #rrggbb>
// Shape {
// Line { x1: <x1>; y1: <y1>; x2:<x2>; y2: <y2> }
// Rect { x: <x>; y: <y>; width: <width>; height: <height> }
// RoundedRect { x: <x>; y: <y>; width: <width>; height: <height>; radius: <radius> }
// Circle { x: <center_x>; y: <center_y>; radius: <radius> }
// Ellipse { x: <center_x>; y: <center_y>; radiusX: <radius_x>; radiusY: <radius_y> }
// Diamond { x: <center_x>; y: <center_y>; width: <width>; height: <height; filled: <yes or no or true or false> }
// Triangle { x: <center_x>; y: <center_y>; width: <width>; height: <height; filled: <yes or no or true or false> }
// Arc { x: <center_x>; y: <center_y>; radiusX: <radius_x>; radiusY: <radius_y>; start: <start_angle>; span: <span_angle> }
// MoveTo { x: <x>; y: <y> }
// LineTo { x: <x>; y: <y> }
// ArcMoveTo { x: <center_x>; y: <center_y>; radiusX: <radius_x>; radiusY: <radius_y>; angle: <angle> }
// ArcTo { x: <center_x>; y: <center_y>; radiusX: <radius_x>; radiusY: <radius_y>; start: <start_angle>; span: <span_angle> }
// Close
// }
// }
//
//
// A Relation defines a new relation between to items:
//
// Relation {
// id: <id>
// title: <a UI title. Defaults to the id of the icon.>
// elements: <A list of elements that may be the start or end element of the relation. Can be one of
// class, component, package, diagram, item or any id of an Icon definition. Must be given.>
// stereotype: <Stereotype as a string. Defaults to nothing.>
// name: <Name of the relation. Defaults to nothing.>
// direction: <One of AtoB, BtoA or Bi. Defaults to nothing.>
// pattern: <The pattern used for the relation shaft.
// One of solid, dash, dot, dashdot, dashdotdot. Defaults to solid>
// color: <The color of the relation. One of A or B (uses the color of the respective end element) or
// any valid color (#rrggbb or a color name). Defaults to A.>
// End {
// end: <One of A or B. Defines the settings of the relations end.>
// elements: <Overrides the elements property of parent.>
// role: <The role of the end. A string that defaults to nothing.>
// cardinality: <An integer or a string defining the cardinality of the end. Defaults to nothing.>
// navigable: <If the end is navigable. One of Yes, No, True, False. Defaults to nothing.>
// head: <Predefined shapes. One of none, arrow, triangle, filledtriangle, diamond, filleddiamond.
// Defaults to none.>
// }
// }
//
//
// A Dependency defines settings of a dependency specialization:
//
// Dependency {
// id: <id>
// title: <a UI title. Defaults to the id of the icon.>
// elements: <A list of elements that provides this specialization in its menu. Can be one of
// class, component, package, diagram, item or any id of an Icon definition. Must be given.>
// stereotype: <Stereotype as a string. Defaults to nothing.>
// name: <Name of the relation. Defaults to nothing.>
// direction: <One of AtoB, BtoA or Bi. Defaults to nothing.>
// }
//
//
// An Inheritance defines settings of an inheritance specialization:
//
// Inheritance {
// id: <id>
// title: <a UI title. Defaults to the id of the icon.>
// elements: <A list of elements that provides this specialization in its menu. Can be one of
// class or any id of an Icon definition for classes. Defaults to class.>
// stereotype: <Stereotype as a string. Defaults to nothing.>
// name: <Name of the relation. Defaults to nothing.>
// }
//
//
// An Association defines settings of an association specialization:
//
// Association {
// id: <id>
// title: <a UI title. Defaults to the id of the icon.>
// elements: <A list of elements that provides this specialization in its menu. Can be one of
// class or any id of an Icon definition for classes. Defaults to class.>
// stereotype: <Stereotype as a string. Defaults to nothing.>
// name: <Name of the relation. Defaults to nothing.>
// End {
// end: <One of A or B. Defines the settings of the relations end.>
// role: <The role of the end. A string that defaults to nothing.>
// cardinality: <An integer or a string defining the cardinality of the end. Defaults to nothing.>
// navigable: <If the end is navigable. One of Yes, No, True, False. Defaults to nothing.>
// relationship: <One of Association, Aggregation, Composition. Defaults to Association.>
// }
// }
//
//
// A toolbar of icons. If no toolbar is defined the standard toolbar is shown.
//
// Toolbar {
// id: <id>
// title: <a Ui title. Defaults to the id of the toolbar>
// element: <List of elements the toolbar is assigned to. Each element can be one of package, component,
// class, item or any Icon definition. Default to nothing which defines an object toolbar for
// diagrams.>
// priority: <priority number which decides about the position of toolbar in toolbox. Defaults to 0>
// Tools {
// Tool {
// title: <Ui title>;
// element: <element type; one of package, class, component, item, annotation, boundary or swimlane
// for object toolbars. One of dependency, inheritance or association for element toolbars.
// Must be given>;
// stereotype: <stereotype, defaults to nothing>
// }
// Separator
// }
// }
//
// *************
// ** Classes **
// *************
Icon {
id: Interface
elements: class
stereotype: 'interface'
display: icon
width: 20.0
height: 20.0
lockSize: ratio
Shape {
Circle { x: 10.0; y: 10.0; radius: 10.0 }
}
}
Icon {
id: Boundary
stereotype: 'boundary'
width: 24.0
height: 20.0
lockSize: ratio
Shape {
Circle { x: 14.0; y: 10.0; radius: 10.0 }
Line { x0: 0.0; y0: 0.0; x1: 0.0; y1: 20.0 }
Line { x0: 0.0; y0: 10.0; x1: 4.0; y1: 10.0 }
}
}
Icon {
id: Control
stereotype: 'control'
width: 20.0
height: 20.0
lockSize: ratio
Shape {
Circle { x: 10.0; y: 10.0; radius: 10.0 }
Line { x0: 10.0; y0: 0.0; x1: 14.0; y1: -2.0 }
Line { x0: 10.0; y0: 0.0; x1: 14.0; y1: 4.0 }
}
}
Icon {
id: Entity
stereotype: 'entity'
width: 20.0
height: 20.0
lockSize: ratio
Shape {
Circle { x: 10.0; y: 10.0; radius: 10.0 }
Line { x0: 0.0; y0: 20.0; x1: 20.0; y1: 20.0 }
}
}
Association {
id: Aggregation
title: "Aggregation"
End {
end: A
cardinality: "*"
navigable: yes
relationship: aggregation
}
}
Association {
id: Composition
title: "Composition"
End {
end: A
cardinality: "1"
navigable: yes
relationship: composition
}
}
// ********************
// ** Class Toolbars **
// ********************
Toolbar {
id: ClassToolbar
element: class
Tools {
Tool { element: dependency }
Tool { element: inheritance }
Tool { element: association }
Tool { element: Aggregation }
Tool { element: Composition }
}
}
Toolbar {
id: InterfaceToolbar
element: Interface
Tools {
Tool { element: dependency }
Tool { element: inheritance }
}
}
// ****************
// ** Components **
// ****************
Icon {
id: Database
stereotype: 'database'
display: icon
width: 20.0
height: 20.0
Shape {
MoveTo { x: 0.0; y: 3.0 }
LineTo { x: 0.0; y: 17.0 }
ArcTo { x: 10.0; y: 17.0; radiusX: 10.0; radiusY: 3.0; start: 180.0; span: 180.0 }
LineTo { x: 20.0; y: 3.0 }
ArcTo { x: 10.0; y: 3.0; radiusX: 10.0; radiusY: 3.0; start: 0.0; span: -180.0 }
Close
Arc { x: 10.0; y: 3.0; radiusX: 10.0; radiusY: 3.0; start: 0.0; span: 180.0 }
}
}
// experimental replacement of default shape with custom shape
Icon {
id: Component
elements: component, package, diagram
stereotype: 'component'
display: decoration
width: 20.0
height: 16.0
textAlignment: center
Shape {
Rect { x: 0; y: 0; width: 20.0; height: 16.0 }
Rect { x: -4.0; y: 2.5; width: 8; height: 4 }
Rect { x: -4.0; y: 9.5; width: 8; height: 4 }
}
}
// ***************
// ** Use Cases **
// ***************
Icon {
id: UseCase
Title: "Use-Case"
elements: item
stereotype: 'usecase'
display: icon
width: 40
height: 20
baseColor: #5fb4f0
Shape {
Ellipse { x: 20; y: 10; radiusX: 20; radiusY: 10 }
}
}
Icon {
id: Actor
elements: item
stereotype: 'actor'
display: icon
width: 20
height: 40
lockSize: ratio
baseColor: #5fb4f0
Shape {
Circle { x: 10; y: 5; radius: 5 }
Line { x0: 0; y0: 15; x1: 20; y1: 15 }
Line { x0: 10; y0: 10; x1: 10; y1: 25 }
Line { x0: 10; y0: 25; x1: 3; y1: 40 }
Line { x0: 10; y0: 25; x1: 17; y1: 40 }
}
}
Relation {
id: Communication
elements: UseCase, Actor
pattern: solid
color: A
End {
end: A
}
End {
end: B
}
}
Toolbar {
id: UseCaseToolbar
element: UseCase, Actor
Tools {
Tool { element: Communication }
Tool { element: dependency }
}
}
// ****************
// ** Activities **
// ****************
Icon {
id: Start
elements: item
stereotype: 'start'
display: icon
name: ""
textAlignment: none
width: 20
height: 20
lockSize: ratio
baseColor: #81d657
Shape {
Circle { x: 10; y: 10; radius: 7 }
}
}
Icon {
id: Activity
elements: item
stereotype: 'activity'
display: icon
width: 40
height: 20
baseColor: #81d657
Shape {
RoundedRect { x: 0; y: 0; width: 40; height: 20; radius: 10 }
}
}
Icon {
id: Condition
elements: item
stereotype: 'condition'
display: icon
width: 20
height: 20
lockSize: ratio
baseColor: #81d657
Shape {
MoveTo { x: 10; y: 0 }
LineTo { x: 20; y: 10 }
LineTo { x: 10; y: 20 }
LineTo { x: 0; y: 10 }
Close
}
}
Icon {
id: HorizontalBar
Title: "Horizontal Bar"
elements: item
stereotype: 'horizontalbar'
display: icon
name: ""
textAlignment: none
width: 20
height: 5
minWidth: 20
minHeight: 5
lockSize: height
baseColor: #000000
Shape {
RoundedRect { x: 0; y: 0; width: 20; height: 5; radius: 1 }
}
}
Icon {
id: VerticalBar
Title: "Vertical Bar"
elements: item
stereotype: 'verticalbar'
display: icon
name: ""
textAlignment: none
width: 5
height: 20
minWidth: 5
minHeight: 20
lockSize: width
baseColor: #000000
Shape {
RoundedRect { x: 0; y: 0; width: 5; height: 20; radius: 1 }
}
}
Icon {
id: Termination
elements: item
stereotype: 'termination'
display: icon
name: ""
textAlignment: none
width: 20
height: 20
lockSize: ratio
baseColor: #81d657
Shape {
Circle { x: 10; y: 10; radius: 10 }
Circle { x: 10; y: 10; radius: 7 }
}
}
Relation {
id: Controlflow
pattern: solid
color: A
End {
end: A
elements: Start, Activity, Condition, HorizontalBar, VerticalBar
}
End {
end: B
elements: Activity, Condition, HorizontalBar, VerticalBar, Termination
head: arrow
}
}
Toolbar {
id: ActivityToolbar
element: Start, Activity, Condition, HorizontalBar, VerticalBar
Tools {
Tool { element: Controlflow }
Tool { element: dependency }
}
}
// **************
// ** Toolbars **
// **************
Toolbar {
id: Classes
Tools {
Tool { title: "Package"; element: package }
Tool { title: "Class"; element: class }
Tool { title: "Interface"; element: class; stereotype: "interface" }
Tool { title: "Control"; element: class; stereotype: "control" }
Tool { title: "Entity"; element: class; stereotype: "entity" }
Tool { title: "Boundary"; element: class; stereotype: "boundary" }
Separator
Tool { title: "Annotation"; element: annotation }
Tool { title: "Boundary"; element: boundary }
Tool { title: "Swimlane"; element: swimlane }
}
}
Toolbar {
id: Components
Tools {
Tool { title: "Package"; element: package }
Tool { title: "Component"; element: component }
Tool { title: "Database"; element: component; stereotype: "database" }
Separator
Tool { title: "Annotation"; element: annotation }
Tool { title: "Boundary"; element: boundary }
Tool { title: "Swimlane"; element: swimlane }
}
}
Toolbar {
id: UseCases
Tools {
Tool { title: "Package"; element: package }
Tool { title: "UseCase"; element: item; stereotype: "usecase" }
Tool { title: "Actor"; element: item; stereotype: "actor" }
Separator
Tool { title: "Annotation"; element: annotation }
Tool { title: "Boundary"; element: boundary }
Tool { title: "Swimlane"; element: swimlane }
}
}
Toolbar {
id: Activities
Tools {
Tool { title: "Start"; element: item; stereotype: "start" }
Tool { title: "Activity"; element: item; stereotype: "activity" }
Tool { title: "Condition"; element: item; stereotype: "condition" }
Tool { title: "Horiz. Bar"; element: item; stereotype: "horizontalbar" }
Tool { title: "Vert. Bar"; element: item; stereotype: "verticalbar" }
Tool { title: "Termination"; element: item; stereotype: "termination" }
Separator
Tool { title: "Annotation"; element: annotation }
Tool { title: "Boundary"; element: boundary }
Tool { title: "Swimlane"; element: swimlane }
}
}