From 245a77cd1fd550cd2ec59afd65d89ab7d2673718 Mon Sep 17 00:00:00 2001 From: Hufe921 Date: Fri, 8 Mar 2024 18:15:55 +0800 Subject: [PATCH] types: add ITextMetrics interface --- src/editor/core/draw/particle/TextParticle.ts | 3 ++- src/editor/interface/Text.ts | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/editor/core/draw/particle/TextParticle.ts b/src/editor/core/draw/particle/TextParticle.ts index 21b6178..dc67663 100644 --- a/src/editor/core/draw/particle/TextParticle.ts +++ b/src/editor/core/draw/particle/TextParticle.ts @@ -2,6 +2,7 @@ import { ElementType, IEditorOption, IElement } from '../../..' import { PUNCTUATION_LIST } from '../../../dataset/constant/Common' import { DeepRequired } from '../../../interface/Common' import { IRowElement } from '../../../interface/Row' +import { ITextMetrics } from '../../../interface/Text' import { Draw } from '../Draw' export interface IMeasureWordResult { @@ -70,7 +71,7 @@ export class TextParticle { public measureText( ctx: CanvasRenderingContext2D, element: IElement - ): TextMetrics { + ): ITextMetrics { // 优先使用自定义字宽设置 if (element.width) { const textMetrics = ctx.measureText(element.value) diff --git a/src/editor/interface/Text.ts b/src/editor/interface/Text.ts index d04e6ac..3124dd7 100644 --- a/src/editor/interface/Text.ts +++ b/src/editor/interface/Text.ts @@ -1,5 +1,15 @@ import { TextDecorationStyle } from '../dataset/enum/Text' +export interface ITextMetrics { + width: number + actualBoundingBoxAscent: number + actualBoundingBoxDescent: number + actualBoundingBoxLeft: number + actualBoundingBoxRight: number + fontBoundingBoxAscent: number + fontBoundingBoxDescent: number +} + export interface ITextDecoration { style?: TextDecorationStyle }