/** _enyo.canvas.Control_ is the base kind for items that live inside an enyo.Canvas control. If you're using this kind directly, you may implement an _onRender_ event handler in the owner to handle drawing into the canvas. If you're deriving a new kind based on this one, override the _renderSelf_ method and use that for your drawing code. */ enyo.kind({ name: "enyo.canvas.Control", kind: enyo.UiComponent, defaultKind: "enyo.canvas.Control", published: { //* Structure with l (left), t (top), w (width), and h (height) members. //* The default constructor sets those properties to random values. bounds: null }, events: { /** Fires when this control is to be rendered. _inEvent.context_ contains the active canvas context. */ onRender: "" }, //* @protected constructor: function() { this.bounds = {l: enyo.irand(400), t: enyo.irand(400), w: enyo.irand(100), h: enyo.irand(100)}; this.inherited(arguments); }, importProps: function(inProps) { this.inherited(arguments); if (inProps && inProps.bounds) { enyo.mixin(this.bounds, inProps.bounds); delete inProps.bounds; } }, renderSelf: function(inContext) { this.doRender({context: inContext}); }, render: function(inContext) { if (this.children.length) { this.renderChildren(inContext); } else { this.renderSelf(inContext); } }, renderChildren: function(inContext) { for (var i=0, c; (c=this.children[i]); i++) { c.render(inContext); } } });