Readonly
childThe Viewport's child. Painting and layout will be relative to this.
Layout constraints of viewport when resolving widget's layout. A 4-tuple containing, respectively, minimum width, maximum width, minimum height and maximum height.
By default, has no minimum width nor height and unconstrained maximum width and height.
Readonly
contextThe render target's (canvas) 2D context. Alpha is enabled.
Note that readonly in this context means that this property is a getter, not that it is immutable. Ideally, this is a getter that gets the current rendering context. Some Viewport implementations (such as CanvasViewport) will always use the same context, while others (such as ClippedViewport) will occasionally change the context.
Readonly
effectiveGet the canvas scale that will be applied to the Viewport's child. Used for checking whether a child's dimensions exceeds a canvas' maximum dimensions.
Note that readonly in this context means that this property is a getter, not that it is immutable. Ideally, this is a getter that calculates the effective scale of the viewport via the canvas dimensions and max dimensions, which may returns different values, not the same value every time.
The offset of the child inside the Viewport. Depending on the Viewport implementation, this may update the actual position of the child Widget, or it may just affect how the paint method behaves.
The parent Viewport of this Viewport. Since positions are relative to this, absolute positions can be calculated by following all the parents.
If null, this is the topmost Viewport and owned by the UI Root.
Should be set by the owner when the owner is attached or detached.
The actual dimensions and position of the viewport, relative to the parent Viewport (or the UI Root if there is no parent Viewport, meaning that positions are absolute in that case); for example, this would be the equivalent to an iframe's dimensions and position (the HTML body in the iframe can have different dimensions than the iframe itself and be scrolled by some amount).
Do not use this value for resolving the layout. Only use this for event handling or other logic that doesn't affect layout.
Should be set by the owner of the Viewport (a Root or a ViewportWidget) when finalizing layout.
Readonly
relativeThe coordinate system used for this Viewport. If true, then coordinates are relative to the Viewport itself (Viewport#child always has a position of 0,0). If false, then coordinates are absolute (relative to the nearest relative parent Viewport, or topmost Viewport, or 0,0 if this is the topmost Viewport).
Dispatch an event to the Viewport's Viewport#child. Only TricklingEvent is supported.
The event to dispatch down the UI tree
Returns the widget that captured the event or null if none captured the event.
Mark a rectangle relative to this viewport as dirty.
A rectangle with the area that was marked as dirty
Paint the Viewport#child to the Viewport#context and, if it makes sense to do so, paint to the Viewport#parent Viewport's context.
Nothing is done if the child was not re-painted.
Extra damage regions (not tracked internally) that need to be repainted. Can be an empty list if this is a root viewport.
Returns true if the child was re-painted, else, false.
Viewports are constrained rectangles that can be painted to. Viewports have a rendering context associated with them, either by inheriting them from a parent Viewport, or by having an internal canvas.