IAttributes

References
public interface IAttributes
Provides the methods required for the UI interaction with document objects. Attributes are typically *not* deserialized, so all persistent properties ought to be part of the owner document object.

Properties

AggregateBounds

#
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.

Bounds

#
RectangleF Bounds { get; }
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.

Owner

#
IDocumentObject Owner { get; }
Gets the owner object of these attributes.

Pivot

#
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.

Snappable

#
bool Snappable { get; }
Gets whether these attributes can be used to align other objects on the canvas. Return false specifically when your object shape is not rectangular.

Methods

Draw

#
void Draw(Context context, Skin skin)
Render the owner object of these attributes.
context (Context)Drawing context.
skin (Skin)Object skin.

HandleDoubleClick

#
bool HandleDoubleClick(PointF point)
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.
point (PointF)

Intersects

#
bool Intersects(RectangleF box)
Test whether a given rectangle intersects the shape of these attributes.
box (RectangleF)Intersection box.
True if rectangle intersects these attributes.

InvalidateDisplay

#
void InvalidateDisplay()
Signals that the attribute's visual appearance has changed without affecting layout (e.g. mouseover row highlight in a value list). Fires the owner's DocumentObject.OnDisplayChanged(), which the canvas listens to and uses to schedule a redraw.

InvalidateLayout

#
void InvalidateLayout()
Marks the attribute's layout as dirty so it gets recomputed on the next draw cycle. Call this when something changes that affects the attribute's shape, size, or internal structure. Note that calling this does not automatically repaint whatever control is currently showing these attributes — pair it with an OnLayoutChanged() call on the owner if you need an immediate redraw.

IsCoincident

#
bool IsCoincident(PointF point)
Test whether a given point is considered to be on the interior of these attributes.
point (PointF)Test point.
True if point is on the object.

IsContained

#
bool IsContained(RectangleF box)
Test whether the shape of these attributes is fully contained within a given rectangle.
box (RectangleF)Containment box.
True if rectangle contains these attributes.

Layout

#
void Layout(Shape shape)
Perform a layout operation on these attributes. Layout() ought to be called as part of every control painting process.
shape (Shape)Shape skin to use.

Move

#
void Move(float dx, float dy)
Move these attributes a certain amount in X and Y.
dx (float)Motion in X. Positive is towards the right.
dy (float)Motion in Y. Positive is downwards.

ShowTooltipAt

#
bool ShowTooltipAt(PointF point)
Display the tooltip at the given point. The tooltip can be accessed via Tooltip.
point (PointF)Location of pointer.
True if tooltip was shown.