blockly > MetricsManager

MetricsManager class

The manager for all workspace metrics calculations.

Signature:

export declare class MetricsManager implements IMetricsManager 

Implements: IMetricsManager

Constructors

Constructor Modifiers Description
(constructor)(workspace) Constructs a new instance of the MetricsManager class

Properties

Property Modifiers Type Description
workspace_

protected

readonly

WorkspaceSvg The workspace to calculate metrics for.

Methods

Method Modifiers Description
getAbsoluteMetrics() Gets the absolute left and absolute top in pixel coordinates. This is where the visible workspace starts in relation to the SVG container.
getComputedFixedEdges_(opt_viewMetrics) protected Computes the fixed edges of the scroll area.
getContentMetrics(opt_getWorkspaceCoordinates) 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).
getDimensionsPx_(elem) protected Gets the dimensions of the given workspace component, in pixel coordinates.
getFlyoutMetrics(opt_own) Gets the width and the height of the flyout in pixel coordinates. By default, will get metrics for either a simple flyout (owned directly by the workspace) or for the flyout owned by the toolbox. If you pass opt_own as true then only metrics for the simple flyout will be returned, and it will return 0 for the width and height if the workspace has a category toolbox instead of a simple toolbox.
getMetrics() 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.
getPaddedContent_(viewMetrics, contentMetrics) protected Returns the content area with added padding.
getScrollMetrics(opt_getWorkspaceCoordinates, opt_viewMetrics, opt_contentMetrics) Returns the metrics for the scroll area of the workspace.
getSvgMetrics() 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.
getToolboxMetrics() 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 .
getUiMetrics() Returns common metrics used by UI elements.
getViewMetrics(opt_getWorkspaceCoordinates) Gets the metrics for the visible workspace in either pixel or workspace coordinates. The visible workspace does not include the toolbox or flyout.