Class: MetricsManager
Defined in: packages/blockly/core/metrics_manager.ts:26
The manager for all workspace metrics calculations.
Extended by
Implements
Properties index
| Property | Description |
|---|---|
| workspace_ | The workspace to calculate metrics for. |
Methods index
| Method | Description |
|---|---|
| getDimensionsPx_ | Gets the dimensions of the given workspace component, in pixel coordinates. |
| getFlyoutMetrics | 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. |
| 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 (MetricsManager:class).getFlyoutMetrics. |
| 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. |
| getAbsoluteMetrics | Gets the absolute left and absolute top in pixel coordinates. This is where the visible workspace starts in relation to the SVG container. |
| getViewMetrics | Gets the metrics for the visible workspace in either pixel or workspace coordinates. The visible workspace does not include the toolbox or flyout. |
| getContentMetrics | 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). |
| getComputedFixedEdges_ | Computes the fixed edges of the scroll area. |
| getPaddedContent_ | Returns the content area with added padding. |
| getScrollMetrics | Returns the metrics for the scroll area of the workspace. |
| getUiMetrics | Returns common metrics used by UI elements. |
| 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. |
Constructors
Constructor
new MetricsManager(workspace): MetricsManager;
Defined in: packages/blockly/core/metrics_manager.ts:31
Parameters
| Parameter | Type | Description |
|---|---|---|
workspace | WorkspaceSvg | The workspace to calculate metrics for. |
Returns
MetricsManager
Properties
workspace_
protected readonly workspace_: WorkspaceSvg;
Defined in: packages/blockly/core/metrics_manager.ts:28
The workspace to calculate metrics for.
Methods
getDimensionsPx_()
protected getDimensionsPx_(elem): Size;
Defined in: packages/blockly/core/metrics_manager.ts:43
Gets the dimensions of the given workspace component, in pixel coordinates.
Parameters
| Parameter | Type | Description |
|---|---|---|
elem | | IFlyout | IToolbox | null | The element to get the dimensions of, or null. It should be a toolbox or flyout, and should implement getWidth() and getHeight(). |
Returns
An object containing width and height attributes, which will both be zero if elem did not exist.
getFlyoutMetrics()
getFlyoutMetrics(opt_own?): ToolboxMetrics;
Defined in: packages/blockly/core/metrics_manager.ts:64
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.
Parameters
| Parameter | Type | Description |
|---|---|---|
opt_own? | boolean | Whether to only return the workspace's own flyout metrics. |
Returns
The width and height of the flyout.
Implementation of
IMetricsManager.getFlyoutMetrics
getToolboxMetrics()
getToolboxMetrics(): ToolboxMetrics;
Defined in: packages/blockly/core/metrics_manager.ts:83
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 (MetricsManager:class).getFlyoutMetrics.
Returns
The object with the width, height and position of the toolbox.
Implementation of
IMetricsManager.getToolboxMetrics
getSvgMetrics()
getSvgMetrics(): Size;
Defined in: packages/blockly/core/metrics_manager.ts:101
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.
Returns
The width and height of the workspace's parent SVG element.
Implementation of
getAbsoluteMetrics()
getAbsoluteMetrics(): AbsoluteMetrics;
Defined in: packages/blockly/core/metrics_manager.ts:112
Gets the absolute left and absolute top in pixel coordinates. This is where the visible workspace starts in relation to the SVG container.
Returns
The absolute metrics for the workspace.
Implementation of
IMetricsManager.getAbsoluteMetrics
getViewMetrics()
getViewMetrics(opt_getWorkspaceCoordinates?): ContainerRegion;
Defined in: packages/blockly/core/metrics_manager.ts:150
Gets the metrics for the visible workspace in either pixel or workspace coordinates. The visible workspace does not include the toolbox or flyout.
Parameters
| Parameter | Type | Description |
|---|---|---|
opt_getWorkspaceCoordinates? | boolean | True to get the view metrics in workspace coordinates, false to get them in pixel coordinates. |
Returns
The width, height, top and left of the viewport in either workspace coordinates or pixel coordinates.
Implementation of
IMetricsManager.getViewMetrics
getContentMetrics()
getContentMetrics(opt_getWorkspaceCoordinates?): ContainerRegion;
Defined in: packages/blockly/core/metrics_manager.ts:192
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).
Parameters
| Parameter | Type | Description |
|---|---|---|
opt_getWorkspaceCoordinates? | boolean | True to get the content metrics in workspace coordinates, false to get them in pixel coordinates. |
Returns
The metrics for the content container.
Implementation of
IMetricsManager.getContentMetrics
getComputedFixedEdges_()
protected getComputedFixedEdges_(opt_viewMetrics?): FixedEdges;
Defined in: packages/blockly/core/metrics_manager.ts:227
Computes the fixed edges of the scroll area.
Parameters
| Parameter | Type | Description |
|---|---|---|
opt_viewMetrics? | ContainerRegion | 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. |
Returns
The fixed edges of the scroll area.
getPaddedContent_()
protected getPaddedContent_(viewMetrics, contentMetrics): object;
Defined in: packages/blockly/core/metrics_manager.ts:259
Returns the content area with added padding.
Parameters
| Parameter | Type | Description |
|---|---|---|
viewMetrics | ContainerRegion | The view metrics. |
contentMetrics | ContainerRegion | The content metrics. |
Returns
object
The padded content area.
top
top: number;
bottom
bottom: number;
left
left: number;
right
right: number;
getScrollMetrics()
getScrollMetrics(
opt_getWorkspaceCoordinates?,
opt_viewMetrics?,
opt_contentMetrics?
): ContainerRegion;
Defined in: packages/blockly/core/metrics_manager.ts:306
Returns the metrics for the scroll area of the workspace.
Parameters
| Parameter | Type | Description |
|---|---|---|
opt_getWorkspaceCoordinates? | boolean | True to get the scroll metrics in workspace coordinates, false to get them in pixel coordinates. |
opt_viewMetrics? | ContainerRegion | 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. |
opt_contentMetrics? | ContainerRegion | 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. |
Returns
The metrics for the scroll container.
Implementation of
IMetricsManager.getScrollMetrics
getUiMetrics()
getUiMetrics(): UiMetrics;
Defined in: packages/blockly/core/metrics_manager.ts:344
Returns common metrics used by UI elements.
Returns
The UI metrics.
Implementation of
getMetrics()
getMetrics(): Metrics;
Defined in: packages/blockly/core/metrics_manager.ts:387
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.
Returns
Contains size and position metrics of a top level workspace.