Class: FlyoutMetricsManager

Constructor

FlyoutMetricsManager

new FlyoutMetricsManager(workspace, flyout)

Calculates metrics for a flyout's workspace. The metrics are mainly used to size scrollbars for the flyout.

Parameter

workspace

Blockly.WorkspaceSvg

The flyout's workspace.

Value must not be null.

flyout

Blockly.IFlyout

The flyout.

Value must not be null.

Extends
Blockly.MetricsManager

Properties

flyout_

protected

non-null Blockly.IFlyout

The flyout that owns the workspace to calculate metrics for.

workspace_

protected

unknown

The workspace to calculate metrics for.

Inherited from
Blockly.MetricsManager#workspace_

Methods

getAbsoluteMetrics

public

getAbsoluteMetrics() returns Blockly.MetricsManager.AbsoluteMetrics

Gets the absolute left and absolute top in pixel coordinates. This is where the visible workspace starts in relation to the SVG container.

Inherited from
Blockly.MetricsManager#getAbsoluteMetrics
Implements
Blockly.IMetricsManager#getAbsoluteMetrics
Returns

The absolute metrics for the workspace.

getComputedFixedEdges_

protected

getComputedFixedEdges_(opt_viewMetrics) returns Blockly.MetricsManager.FixedEdges

Computes the fixed edges of the scroll area.

Parameter

opt_viewMetrics

Optional

The view metrics if they have been previously computed. Passing in null may cause the view metrics to be computed again, if it is needed.

Value must not be null.

Inherited from
Blockly.MetricsManager#getComputedFixedEdges_
Returns

The fixed edges of the scroll area.

getContentMetrics

public

getContentMetrics(opt_getWorkspaceCoordinates) returns Blockly.MetricsManager.ContainerRegion

Gets content metrics in either pixel or workspace coordinates. The content area is a rectangle around all the top bounded elements on the workspace (workspace comments and blocks).

Parameter

opt_getWorkspaceCoordinates

Optional

True to get the content metrics in workspace coordinates, false to get them in pixel coordinates.

Inherited from
Blockly.FlyoutMetricsManager#getContentMetrics
Implements
Blockly.IMetricsManager#getContentMetrics
Returns

The metrics for the content container.

getDimensionsPx_

protected

getDimensionsPx_(elem) returns Blockly.utils.Size

Gets the dimensions of the given workspace component, in pixel coordinates.

Parameter

elem

The element to get the dimensions of, or null. It should be a toolbox or flyout, and should implement getWidth() and getHeight().

Inherited from
Blockly.MetricsManager#getDimensionsPx_
Returns

An object containing width and height attributes, which will both be zero if elem did not exist.

getFlyoutMetrics

public

getFlyoutMetrics(opt_own) returns Blockly.MetricsManager.ToolboxMetrics

Gets the width and the height of the flyout on the workspace in pixel coordinates. Returns 0 for the width and height if the workspace has a category toolbox instead of a simple toolbox.

Parameter

opt_own

Optional

Whether to only return the workspace's own flyout.

Inherited from
Blockly.MetricsManager#getFlyoutMetrics
Implements
Blockly.IMetricsManager#getFlyoutMetrics
Returns

The width and height of the flyout.

getMetrics

public

getMetrics() returns Blockly.utils.Metrics

Returns an object with all the metrics required to size scrollbars for a top level workspace. The following properties are computed: Coordinate system: pixel coordinates, -left, -up, +right, +down .viewHeight: Height of the visible portion of the workspace. .viewWidth: Width of the visible portion of the workspace. .contentHeight: Height of the content. .contentWidth: Width of the content. .scrollHeight: Height of the scroll area. .scrollWidth: Width of the scroll area. .svgHeight: Height of the Blockly div (the view + the toolbox, simple or otherwise), .svgWidth: Width of the Blockly div (the view + the toolbox, simple or otherwise), .viewTop: Top-edge of the visible portion of the workspace, relative to the workspace origin. .viewLeft: Left-edge of the visible portion of the workspace, relative to the workspace origin. .contentTop: Top-edge of the content, relative to the workspace origin. .contentLeft: Left-edge of the content relative to the workspace origin. .scrollTop: Top-edge of the scroll area, relative to the workspace origin. .scrollLeft: Left-edge of the scroll area relative to the workspace origin. .absoluteTop: Top-edge of the visible portion of the workspace, relative to the blocklyDiv. .absoluteLeft: Left-edge of the visible portion of the workspace, relative to the blocklyDiv. .toolboxWidth: Width of the toolbox, if it exists. Otherwise zero. .toolboxHeight: Height of the toolbox, if it exists. Otherwise zero. .flyoutWidth: Width of the flyout if it is always open. Otherwise zero. .flyoutHeight: Height of the flyout if it is always open. Otherwise zero. .toolboxPosition: Top, bottom, left or right. Use TOOLBOX_AT constants to compare.

Inherited from
Blockly.MetricsManager#getMetrics
Implements
Blockly.IMetricsManager#getMetrics
Returns

Contains size and position metrics of a top level workspace.

getPaddedContent_

protected

getPaddedContent_(viewMetrics, contentMetrics) returns Object

Returns the content area with added padding.

Parameter

viewMetrics

The view metrics.

Value must not be null.

contentMetrics

The content metrics.

Value must not be null.

Inherited from
Blockly.MetricsManager#getPaddedContent_
Returns

The padded content area.

getScrollMetrics

getScrollMetrics(opt_getWorkspaceCoordinates, opt_viewMetrics, opt_contentMetrics) returns Blockly.MetricsManager.ContainerRegion

Returns the metrics for the scroll area of the workspace.

Parameter

opt_getWorkspaceCoordinates

Optional

True to get the scroll metrics in workspace coordinates, false to get them in pixel coordinates.

opt_viewMetrics

Optional

The view metrics if they have been previously computed. Passing in null may cause the view metrics to be computed again, if it is needed.

Value must not be null.

opt_contentMetrics

Optional

The content metrics if they have been previously computed. Passing in null may cause the content metrics to be computed again, if it is needed.

Value must not be null.

Inherited from
Blockly.FlyoutMetricsManager#getScrollMetrics
Implements
Blockly.IMetricsManager#getScrollMetrics
Returns

The metrics for the scroll container.

getSvgMetrics

public

getSvgMetrics() returns Blockly.utils.Size

Gets the width and height of the workspace's parent SVG element in pixel coordinates. This area includes the toolbox and the visible workspace area.

Inherited from
Blockly.MetricsManager#getSvgMetrics
Implements
Blockly.IMetricsManager#getSvgMetrics
Returns

The width and height of the workspace's parent SVG element.

getToolboxMetrics

public

getToolboxMetrics() returns Blockly.MetricsManager.ToolboxMetrics

Gets the width, height and position of the toolbox on the workspace in pixel coordinates. Returns 0 for the width and height if the workspace has a simple toolbox instead of a category toolbox. To get the width and height of a simple toolbox @see getFlyoutMetrics.

Inherited from
Blockly.MetricsManager#getToolboxMetrics
Implements
Blockly.IMetricsManager#getToolboxMetrics
Returns

The object with the width, height and position of the toolbox.

getUiMetrics

getUiMetrics() returns Blockly.MetricsManager.UiMetrics

Returns common metrics used by UI elements.

Inherited from
Blockly.MetricsManager#getUiMetrics
Returns

The UI metrics.

getViewMetrics

public

getViewMetrics(opt_getWorkspaceCoordinates) returns Blockly.MetricsManager.ContainerRegion

Gets the metrics for the visible workspace in either pixel or workspace coordinates. The visible workspace does not include the toolbox or flyout.

Parameter

opt_getWorkspaceCoordinates

Optional

True to get the view metrics in workspace coordinates, false to get them in pixel coordinates.

Inherited from
Blockly.MetricsManager#getViewMetrics
Implements
Blockly.IMetricsManager#getViewMetrics
Returns

The width, height, top and left of the viewport in either workspace coordinates or pixel coordinates.

hasFixedEdges

package

hasFixedEdges() returns boolean

Returns whether the scroll area has fixed edges.

Inherited from
Blockly.MetricsManager#hasFixedEdges
Implements
Blockly.IMetricsManager#hasFixedEdges
Returns

Whether the scroll area has fixed edges.