RetainedDebug class
class RetainedDebug { static void borderElements(stage) { var ctx = stage.ctx; ctx.save(); ctx.globalAlpha = 0.5; ctx.lineWidth = 5; ctx.beginPath(); _borderElement(ctx, stage.rootElement); ctx.stroke(); ctx.restore(); } static void borderHitTest(Stage stage, Coordinate point){ var ctx = stage.ctx; var hits = RetainedUtil.hitTest(stage, point); if(hits.length > 0){ ctx.save(); ctx.lineWidth = 2; hits.forEach((e) { _borderElement(ctx, e, true); }); ctx.restore(); } } static void _borderElement(CanvasRenderingContext2D ctx, PElement element, [bool excludeChildren = false, Func1<PElement, bool> filter = null]) { if (filter == null || filter(element)) { _borderElementCore(ctx, element); } if (!excludeChildren && element is ParentElement) { final ParentElement p = element; for (var i = 0; i < p.visualChildCount; i++) { var e = p.getVisualChild(i); _borderElement(ctx, e, false, filter); } } } static void _borderElementCore(CanvasRenderingContext2D ctx, PElement element) { if (Mouse.isMouseDirectlyOver(element)) { ctx.strokeStyle = 'red'; } else if (Mouse.isMouseOver(element)) { ctx.strokeStyle = 'pink'; } else if (element.cacheEnabled) { ctx.strokeStyle = 'yellow'; } else { ctx.strokeStyle = 'orange'; } final corners = RetainedUtil.getCorners(element); ctx.beginPath(); ctx.moveTo(corners[3].x, corners[3].y); for(final p in corners) { ctx.lineTo(p.x, p.y); } ctx.stroke(); } }
Static Methods
void borderElements(stage) #
static void borderElements(stage) { var ctx = stage.ctx; ctx.save(); ctx.globalAlpha = 0.5; ctx.lineWidth = 5; ctx.beginPath(); _borderElement(ctx, stage.rootElement); ctx.stroke(); ctx.restore(); }
void borderHitTest(Stage stage, Coordinate point) #
static void borderHitTest(Stage stage, Coordinate point){ var ctx = stage.ctx; var hits = RetainedUtil.hitTest(stage, point); if(hits.length > 0){ ctx.save(); ctx.lineWidth = 2; hits.forEach((e) { _borderElement(ctx, e, true); }); ctx.restore(); } }
Properties
final Type runtimeType #
A representation of the runtime type of the object.
external Type get runtimeType;
Operators
bool operator ==(other) #
The equality operator.
The default behavior for all Object
s is to return true if and
only if this
and
other are the same object.
If a subclass overrides the equality operator it should override
the hashCode
method as well to maintain consistency.
bool operator ==(other) => identical(this, other);
Methods
int hashCode() #
Get a hash code for this object.
All objects have hash codes. Hash codes are guaranteed to be the
same for objects that are equal when compared using the equality
operator ==
. Other than that there are no guarantees about
the hash codes. They will not be consistent between runs and
there are no distribution guarantees.
If a subclass overrides hashCode
it should override the
equality operator as well to maintain consistency.
external int hashCode();
noSuchMethod(String name, List args) #
noSuchMethod
is invoked when users invoke a non-existant method
on an object. The name of the method and the arguments of the
invocation are passed to noSuchMethod
. If noSuchMethod
returns a value, that value becomes the result of the original
invocation.
The default behavior of noSuchMethod
is to throw a
noSuchMethodError
.
external Dynamic noSuchMethod(String name, List args);
const Object() #
Creates a new Object
instance.
Object
instances have no meaningful state, and are only useful
through their identity. An Object
instance is equal to itself
only.
const Object();
String toString() #
Returns a string representation of this object.
external String toString();