ClusterAttributes
ComponentAttributesAttributes<1>Constructors
Properties
AggregateBounds
public RectangleF AggregateBounds { get; }
Gets the aggregate bounds of this object. This will include the bounds of all objects attached in some way to this object.
Implements: AggregateBounds
Bounds
public RectangleF Bounds { get; protected set; }
Gets the total outer bounds of the attributes. The attributes are assumed not to exist beyond this limit. Note that the bounds are updated during calls to Layout(), so may be out-of-date or even unset when called outside of the usual process.
Implements: Bounds
CentralBox
public RectangleF CentralBox { get; protected set; }
Gets the bounds of the components central box. This box contains the component icon and possibly other elements such as the display name.
ContentBox
public RectangleF ContentBox { get; protected set; }
Gets the icon or name box.
IntegerPivot
Gets whether the pivot of these attributes is always rounded to integer coordinates. By default this property returns true, as the vast majority of objects ought to be laid out in integer coordinates.
LabelBox
public RectangleF LabelBox { get; protected set; }
Gets or sets the label box.
Owner
public T Owner { get; }
Pivot
public PointF Pivot { get; set; }
Gets or sets the pivot point for these attributes. The pivot is the main point around which the attribute geometry is positioned during layout.
Implements: Pivot
Responder
Gets the Responses dispatcher for these attributes. Subclasses can subscribe to the hook events on the returned object to extend interaction behaviour without subclassing the responder itself.
Implements: Responder
ShowTentativeInputs
Gets or sets whether the potential input grips are shown.
ShowTentativeOutputs
Gets or sets whether the potential input grips are shown.
Snappable
Gets whether these attributes can be used to align other objects on the canvas. Return false specifically when your object shape is not rectangular.
Implements: Snappable
Stack
The horizontal layout stack along the apex row. Derived classes typically (re)assign this during Attributes<T>.Layout(Shape) and reference sub-regions via class-local index constants. The default Attributes<T>.PivotMoved(PointF, PointF) translates the stack along with Attributes<T>.Bounds.
TentativeInputs
Enumerate over all tentative input grips, provided they are being drawn.
TentativeOutputs
Enumerate over all tentative output grips, provided they are being drawn.
Methods
DefaultTooltipContent
Create the tooltip fields which are associated with this object by default.
Parameters:
| point (PointF) | Point for tooltip. |
| icon (out IIcon) | Icon. |
| caption (out string) | Caption text. |
| message (out string) | Message text. |
| details (out object) | Either text or an Action<Context, Rectangle> or null. |
| warnings (out bool) | Boolean flag indicating the existence of warnings. |
| errors (out bool) | Boolean flag indicating the existence of errors. |
Returns: True if a tooltip ought to be shown for this object at the given location.
Draw
Internal drawing method. Consider overriding this one instead of Draw.
Parameters:
| context (Context) | Graphics context. |
| skin (Skin) | Skin. |
| capsule (Capsule) | Provided as a courtesy. There is no expectation this is the shape that must be drawn. |
Overrides: Attributes<T>.Draw
Draw
Render the owner object of these attributes.
DrawBackground
Draw the capsule background.
DrawContent
The code which decides whether to draw the icon or the name. Override this method to always draw one or the other.
DrawForeground
Draw the capsule overlay and foreground.
DrawForegroundDecorations
Override this method to draw capsule decorations immediately after the capsule foreground is drawn, but before the tentative grips and variable parameter zui is drawn.
DrawIcon
Draw the component icon.
DrawLabel
Draw the component label text.
DrawName
Draw the component name.
DrawOutputs
Draw the output parameters.
DrawUserName
Draw the user name above or below the component capsule.
HandleDoubleClick
Handle a double click operation on these attributes. Since this is such a common operation it is provided by the base interface, rather than requiring an IResponseAttribues implementation.
Parameters:
| point (PointF) |
Implements: HandleDoubleClick
Intersects
Test whether a given rectangle intersects the shape of these attributes.
Parameters:
| box (RectangleF) | Intersection box. |
Returns: True if rectangle intersects these attributes.
Implements: Intersects
InvalidateDisplay
public virtual void InvalidateDisplay()
Signals that the attribute's visual appearance has changed without affecting layout. Fires the owner's DocumentObject.OnDisplayChanged(), which propagates through the document to the canvas redraw subscription.
Implements: InvalidateDisplay
InvalidateLayout
public override void InvalidateLayout()
Marks the layout as dirty so it gets recomputed on the next draw cycle. Subclasses typically flip an internal
_layoutValid flag. Most callers should also raise OnLayoutChanged on the owner to actually trigger a canvas redraw.Overrides: Attributes<T>.InvalidateLayout
IsCoincident
Test whether a given point is considered to be on the interior of these attributes.
Parameters:
| point (PointF) | Test point. |
Returns: True if point is on the object.
Implements: IsCoincident
IsContained
Test whether the shape of these attributes is fully contained within a given rectangle.
Parameters:
| box (RectangleF) | Containment box. |
Returns: True if rectangle contains these attributes.
Implements: IsContained
Layout
public override void Layout(Shape shape)
Parameters:
| shape (Shape) |
Overrides: Attributes<T>.Layout
LayoutBounds
protected virtual void LayoutBounds(Shape shape)
Layout the outer bounds of the component capsule and assign the result to the Bounds property. This is the last sub-layout method to be called during component layout.
Parameters:
| shape (Shape) |
LayoutCentralBox
Central box layout code with input/output parameter overrides.
LayoutCentralBox
protected virtual void LayoutCentralBox(Font font)
Layout the central component box and assign the ComponentAttributes.CentralBox and ComponentAttributes.ContentBox properties. This is the first sub-layout method to be called during component layout. If you wish to reserve additional space within the component attributes, override this method and modify either the ComponentAttributes.CentralBox or ComponentAttributes.ContentBox properties or both after calling the base class method.
Parameters:
| font (Font) |
LayoutInputParameters
Input parameter layout with parameter override.
Parameters:
| font (Font) | |
| inputs (IEnumerable<IParameter>) | |
| inputCount (int) |
LayoutInputParameters
protected virtual void LayoutInputParameters(Font font)
Perform layout on all input parameters and assign their respective attribute properties. This method will only affect inputs with attributes of type 'InputParameterAttributes'. This method must be called *after* LayoutCentralBox.
Parameters:
| font (Font) |
LayoutOutputParameters
Default output layout with parameter list override.
Parameters:
| font (Font) | |
| outputs (IEnumerable<IParameter>) | |
| outputCount (int) |
LayoutOutputParameters
protected virtual void LayoutOutputParameters(Font font)
Perform layout on all output parameters and assign their respective attribute properties. This method will only affect outputs with attributes of type 'OutputParameterAttributes'. This method must be called *after* LayoutCentralBox.
Parameters:
| font (Font) |
PivotMoved
protected override void PivotMoved(PointF oldPivot, PointF newPivot)
Parameters:
| oldPivot (PointF) | |
| newPivot (PointF) |
Overrides: Attributes<T>.PivotMoved
PreDrawAddInputGrips
Adds the left-hand grips to the input parameters.
Parameters:
| capsule (Capsule) |
PreDrawAddOutputGrips
Adds the right-hand grips to the output parameters.
Parameters:
| capsule (Capsule) |
TooltipDetails
#Parameters:
| point (PointF) | |
| state (ObjectSolutionState) |
Overrides: Attributes<T>.TooltipDetails