interface_sdk-js/api/@ohos.graphics.text.d.ts
changleipeng 23538e6406 getLineMetrics return type update
Signed-off-by: changleipeng <changleipeng4@huawei.com>
2024-05-28 07:31:31 +00:00

1380 lines
35 KiB
TypeScript
Executable File

/*
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @file
* @kit ArkGraphics2D
*/
import type drawing from './@ohos.graphics.drawing';
import type common2D from './@ohos.graphics.common2D';
/**
* Provides functions such as 2D graphics text paragraphs, text styles.
*
* @namespace text
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
declare namespace text {
/**
* Refers to how to align the horizontal position of text when displaying text.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum TextAlign {
/**
* Use the left side of the text as a reference line for alignment.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
LEFT = 0,
/**
* Use the right side of the text as a reference line for alignment.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
RIGHT = 1,
/**
* Use the midpoint line the text as a reference line for alignment.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
CENTER = 2,
/**
* Align the text at the start and end of the line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
JUSTIFY = 3,
/**
* Align text from start, based on the direction of text, such as left-to-right or right-to-left.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
START = 4,
/**
* Align text from end, based on the direction of text, such as left-to-right or right-to-left, opposite to START.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
END = 5,
}
/**
* Enumerate text runs direction.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum TextDirection {
/**
* The text is oriented from right to left.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
RTL,
/**
* The text is oriented from left to right.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
LTR,
}
/**
* Enumerate text segmentation strategy.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum BreakStrategy {
/**
* The segmentation strategy is greedy.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
GREEDY,
/**
* The segmentation strategy is high quality.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
HIGH_QUALITY,
/**
* The segmentation strategy is balanced.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
BALANCED,
}
/**
* Enumerate word break strategy.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum WordBreak {
/**
* Normal word break strategy.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
NORMAL,
/**
* Breaks word by character.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
BREAK_ALL,
/**
* Breaks word by phrase.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
BREAK_WORD,
}
/**
* Decoration for text.
* @typedef Decoration
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
interface Decoration {
/**
* Decorates text by line.
* @type { ?TextDecorationType }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
textDecoration?: TextDecorationType;
/**
* Text color.
* @type { ?common2D.Color }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
color?: common2D.Color;
/**
* Text decoration style.
* @type { ?TextDecorationStyle }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
decorationStyle?: TextDecorationStyle;
/**
* The thickness scale of decoration line.
* @type { ?number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
decorationThicknessScale?: number;
}
/**
* Enumerates decoration line for text.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum TextDecorationType {
/**
* There are no text decoration.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
NONE,
/**
* There is a decoration line below the text.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
UNDERLINE,
/**
* There is a decoration line above the text.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
OVERLINE,
/**
* There is a decoration line through the middle of the text.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
LINE_THROUGH,
}
/**
* Enumerates decoration line style.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum TextDecorationStyle {
/**
* Decoration line is solid line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
SOLID,
/**
* Decoration line is double line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
DOUBLE,
/**
* Decoration line is dotted line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
DOTTED,
/**
* Decoration line is dashed line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
DASHED,
/**
* Decoration line is wavy line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
WAVY,
}
/**
* Enumeration of font weight of text.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum FontWeight {
/**
* Thin
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
W100,
/**
* Extra-light
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
W200,
/**
* Light
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
W300,
/**
* Normal/Regular
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
W400,
/**
* Medium
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
W500,
/**
* Semi-bold
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
W600,
/**
* Bold
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
W700,
/**
* Extra-bold
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
W800,
/**
* Black
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
W900,
}
/**
* Enumeration of font style of text.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum FontStyle {
/**
* Upright font type.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
NORMAL,
/**
* Slant font.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
ITALIC,
/**
* Oblique font.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
OBLIQUE,
}
/**
* Enumeration the type of text baseline.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum TextBaseline {
/**
* The alphabetic baseline, typically used for Latin-based scripts where the baseline aligns
* with the base of lowercase letters.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
ALPHABETIC,
/**
* The ideographic baseline, commonly used for ideographic scripts such as Chinese, Japanese, and Korean,
* where the baseline aligns with the center of characters.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
IDEOGRAPHIC,
}
/**
* Enumerates of ellipsis mode.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum EllipsisMode {
/**
* The ellipsis is shown in the start of text.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
START,
/**
* The ellipsis is shown in the middle of text.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
MIDDLE,
/**
* The ellipsis is shown in the end of text.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
END,
}
/**
* Describes text style.
* @typedef TextStyle
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
interface TextStyle {
/**
* Decoration of text.
* @type { ?Decoration } decoration for text
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
decoration?: Decoration;
/**
* Color of text.
* @type { ?common2D.Color } it is uint32_t type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
color?: common2D.Color;
/**
* Font weight of text.
* @type { ?FontWeight } it is uint32_t type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
fontWeight?: FontWeight;
/**
* Font style of text.
* @type { ?FontStyle } it is uint32_t type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
fontStyle?: FontStyle;
/**
* Base line of text.
* @type { ?TextBaseline } it is uint32_t type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
baseline?: TextBaseline;
/**
* Font Families of text.
* @type { ?Array<string> } fontfamily gather
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
fontFamilies?: Array<string>;
/**
* Font size of text.
* @type { ?number } it is double type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
fontSize?: number;
/**
* Letter spacing of text.
* @type { ?number } it is double type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
letterSpacing?: number;
/**
* Word spacing of text.
* @type { ?number } it is double type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
wordSpacing?: number;
/**
* Height scale of text.
* @type { ?number } it is double type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
heightScale?: number;
/**
* Half leading of text.
* @type { ?boolean } it is boolean type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
halfLeading?: boolean;
/**
* Control the height calculation method of font blob, true means calculate the height of the blob by
* the font size, false means by the line height and leading.
* @type { ?boolean } it is boolean type data
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
heightOnly?: boolean;
/**
* Text ellipsis.
* @type { ?string } it is u16string type data.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
ellipsis?: string;
/**
* Text ellipsis mode.
* @type { ?EllipsisMode } Ellipsis mode.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
ellipsisMode?: EllipsisMode;
/**
* Text locale.
* @type { ?string } it is string type data.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
locale?: string;
}
/**
* Provides the basis for graphics.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
class FontCollection {
/**
* Get global FontCollection instance of the application.
* @returns { FontCollection } The FontCollection object.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
static getGlobalInstance(): FontCollection;
/**
* Load font.
* @param { string } name - the font name.
* @param { string | Resource } path - the path of the font file.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
loadFontSync(name: string, path: string | Resource): void;
}
/**
* Determines the configuration used by ParagraphBuilder to position lines within a Paragraph of text.
* @typedef ParagraphStyle
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
interface ParagraphStyle {
/**
* Text style of paragraph.
* @type { ?TextStyle }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
textStyle?: TextStyle;
/**
* Text runs direction.
* @type { ?TextDirection }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
textDirection?: TextDirection;
/**
* Refers to how to align the horizontal position of text when displaying text.
* @type { ?TextAlign }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
align?: TextAlign;
/**
* Word break strategy.
* @type { ?WordBreak }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
wordBreak?: WordBreak;
/**
* Maximum number of lines.
* @type { ?number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
maxLines?: number;
/**
* text segmentation strategy.
* @type { ?BreakStrategy }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
breakStrategy?: BreakStrategy;
}
/**
* Where to vertically align the placeholder relative to the surrounding text.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum PlaceholderAlignment {
/**
* Match the baseline of the placeholder with the baseline.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
OFFSET_AT_BASELINE,
/**
* Align the bottom edge of the placeholder with the baseline such that the placeholder
* sits on top of the baseline.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
ABOVE_BASELINE,
/**
* Align the top edge of the placeholder with the baseline specified in such that the placeholder
* hangs below the baseline.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
BELOW_BASELINE,
/**
* Align the top edge of the placeholder with the top edge of the font. When the placeholder is very tall,
* the extra space will hang from the top and extend through the bottom of the line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
TOP_OF_ROW_BOX,
/**
* Align the bottom edge of the placeholder with the bottom edge of the text. When the placeholder is very tall,
* the extra space will rise from the bottom and extend through the top of the line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
BOTTOM_OF_ROW_BOX,
/**
* Align the middle of the placeholder with the middle of the text.When the placeholder is very tall,
* the extra space will grow equally from the top and bottom of the line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
CENTER_OF_ROW_BOX,
}
/**
* Provide a description of placeholder scope in creating typography.
* @typedef PlaceholderSpan
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
interface PlaceholderSpan {
/**
* The width of the placeholder.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
width: number;
/**
* The height of the placeholder.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
height: number;
/**
* Alignment mode of placeholder.
* @type { PlaceholderAlignment }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
align: PlaceholderAlignment;
/**
* Baseline of placeholder.
* @type { TextBaseline }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
baseline: TextBaseline;
/**
* Baseline offset of placeholder.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
baselineOffset: number;
}
/**
* Provides the definition of the range.
* @typedef Range
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
interface Range {
/**
* Left index.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
start: number;
/**
* Right index.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
end: number;
}
/**
* A paragraph retains the size and position of each glyph in the text and can be efficiently resized and painted.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
class Paragraph {
/**
* Calculates the positioning of all the glyphs.
* @param { number } width - Control how wide the text is allowed to be.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
layoutSync(width: number): void;
/**
* Paint the laid out text onto the supplied canvas at (x, y).
* @param { drawing.Canvas } canvas - Object
* @param { number } x - Represents the X-axis position on the canvas.
* @param { number } y - Represents the Y-axis position on the canvas.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
paint(canvas: drawing.Canvas, x: number, y: number): void;
/**
* Get max width of horizontal space this paragraph occupied.
* @returns { number } Max width of horizontal space.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getMaxWidth(): number;
/**
* Get height of horizontal space this paragraph occupies.
* @returns { number } Height of horizontal space this paragraph occupies.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getHeight(): number;
/**
* Get the longest line of horizontal space this paragraph occupies.
* @returns { number } The longest line of horizontal space this paragraph occupies.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getLongestLine(): number;
/**
* Get the min intrinsic width of horizontal space this paragraph occupies.
* @returns { number } The min intrinsic width of horizontal space this paragraph occupies.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getMinIntrinsicWidth(): number;
/**
* Get the max intrinsic width.
* @returns { number } Intrinsic Width.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getMaxIntrinsicWidth(): number;
/**
* Get the alphabetic baseline.
* @returns { number } Alphabetic Baseline.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getAlphabeticBaseline(): number;
/**
* Get the ideographic baseline.
* @returns { number } Ideographic Baseline.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getIdeographicBaseline(): number;
/**
* Get the rects for range.
* @param { Range } range - The range to set.
* @param { RectWidthStyle } widthStyle - Width style to set.
* @param { RectHeightStyle } heightStyle - Height style to set.
* @returns { Array<TextBox> } The rects for range.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getRectsForRange(range: Range, widthStyle: RectWidthStyle, heightStyle: RectHeightStyle): Array<TextBox>;
/**
* Get the rects for placeholders.
* @returns { Array<TextBox> } The rects for placeholders.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getRectsForPlaceholders(): Array<TextBox>;
/**
* Get the glyph position at coordinate.
* @param { number } x - the positionX of typography to set.
* @param { number } y - the positionY of typography to set.
* @returns { PositionWithAffinity } TextBlob object.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getGlyphPositionAtCoordinate(x: number, y: number): PositionWithAffinity;
/**
* Find the start and end position of the word containing the glyphs of the given offset.
* @param { number } offset - offset value
* @returns { Range } The range value returned to the caller.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getWordBoundary(offset: number): Range;
/**
* Get line count.
* @returns { number } The line count value returned to the caller.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getLineCount(): number;
/**
* Get the line height of the specified line.
* @param { number } line - line number
* @returns { number } The line height value returned to the caller.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getLineHeight(line: number): number;
/**
* Get the line width of the specified line.
* @param { number } line - line number
* @returns { number } The line width value returned to the caller.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getLineWidth(line: number): number;
/**
* Return whether it exceed the maximum lines of typography.
* @returns { boolean } The true indicates exceeding, the false indicates not exceeding.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
didExceedMaxLines(): boolean;
/**
* Get the text lines of paragraph.
* @returns { Array<TextLine> } the tuple of TextLine.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getTextLines(): Array<TextLine>;
/**
* Returns the visible text on the line (excluding a possible ellipsis).
* @param { number } lineNumber - a line number
* @param { boolean } includeSpaces - indicates if the whitespaces should be included
* @returns { Range } The range of text.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getActualTextRange(lineNumber: number, includeSpaces: boolean): Range;
/**
* Returns the array of line metrics for a line of text.
* @returns { Array<LineMetrics> } Array of line metrics.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getLineMetrics(): Array<LineMetrics>;
/**
* Returns line metrics info for the line.
* @param { number } lineNumber - a line number
* @returns { LineMetrics | undefined } line metrics.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getLineMetrics(lineNumber: number): LineMetrics | undefined;
}
/**
* Box that contain text.
* @typedef TextBox
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
interface TextBox{
/**
* Rect of text box.
* @type { common2D.Rect }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
rect: common2D.Rect;
/**
* Text direction.
* @type { TextDirection }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
direction: TextDirection;
}
/**
* Position and affinity.
* @typedef PositionWithAffinity
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
interface PositionWithAffinity {
/**
* Position of text.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
position: number;
/**
* Affinity of text.
* @type { Affinity }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
affinity: Affinity;
}
/**
* Enumerates rect width style.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum RectWidthStyle {
/**
* Tight width.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
TIGHT,
/**
* Max width.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
MAX,
}
/**
* Enumerates rect height style.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum RectHeightStyle {
/**
* Provide tight bounding boxes that fit heights per run.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
TIGHT,
/**
* The height of the boxes will be the maximum height of all runs in the line. All rects in the same
* line will be the same height.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
MAX,
/**
* The top and bottom of each rect will cover half of the space above and half of the space below the line.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
INCLUDE_LINE_SPACE_MIDDLE,
/**
* The line spacing will be added to the top of the rect.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
INCLUDE_LINE_SPACE_TOP,
/**
* The line spacing will be added to the bottom of the rect.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
INCLUDE_LINE_SPACE_BOTTOM,
/**
* The height of the boxes will be calculated by text strut.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
STRUT,
}
/**
* Enumerates text affinity.When a selection range involves line breaks or other special characters, the
* affinity determines which side of the characters the start and end of the selection range should be
* closer to.
* @enum { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
enum Affinity {
/**
* The position has affinity for the upstream side of the text position.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
UPSTREAM,
/**
* The position has affinity for the downstream side of the text position.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
DOWNSTREAM,
}
/**
* Builds a Paragraph containing text with the given styling information.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
class ParagraphBuilder {
/**
* Constructor ParagraphBuilder.
* @param { ParagraphStyle } paragraphStyle - Paragraph style {@link ParagraphStyle}
* @param { FontCollection } fontCollection - Font collection {@link FontCollection}
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
constructor(paragraphStyle: ParagraphStyle, fontCollection: FontCollection);
/**
* Push a style to the stack.
* @param { TextStyle } textStyle - Text style {@link TextStyle}
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
pushStyle(textStyle: TextStyle): void;
/**
* Remove a style from the stack.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
popStyle(): void;
/**
* Adds text to the builder.
* @param { string } text - Text string
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
addText(text: string): void;
/**
* Add placeholder.
* @param { PlaceholderSpan } placeholderSpan - Placeholder Span {@link PlaceholderSpan}
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
addPlaceholder(placeholderSpan: PlaceholderSpan): void;
/**
* Create paragraph object.
* @returns { Paragraph } The paragraph value returned to the caller.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
build(): Paragraph;
}
/**
* The structure of text line that provides the basis of paragraph for graphics.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
class TextLine {
/**
* Get the count of glyphs.
* @returns { number } The counts of glyphs.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getGlyphCount(): number;
/**
* Get the range of text line.
* @returns { Range } The range of text.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getTextRange(): Range;
/**
* Get the glyph runs of text line.
* @returns { Array<Run> } The tuple of glyph runs of text.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getGlyphRuns(): Array<Run>;
/**
* Paint the range of text line.
* @param { drawing.Canvas } canvas - Canvas.
* @param { number } x - Represents the X-axis position on the canvas.
* @param { number } y - Represents the Y-axis position on the canvas.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
paint(canvas: drawing.Canvas, x: number, y: number): void;
}
/**
* Independent rendering of text layout.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
class Run {
/**
* Gets the number of glyph.
* @returns { number } The number of glyph.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getGlyphCount(): number;
/**
* Gets the glyph identifier for each character.
* @returns { Array<number> } Glyph identifier.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getGlyphs(): Array<number>;
/**
* Gets the font position offset.
* @returns { Array<common2D.Point> } The position of the font in the layout.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getPositions(): Array<common2D.Point>;
/**
* Gets the font position offset array.
* @returns { Array<common2D.Point> } The position offset of the font in the layout.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getOffsets(): Array<common2D.Point>;
/**
* Gets the font object instance.
* @returns { drawing.Font } The font object instance.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
getFont(): drawing.Font;
/**
* Paint the laid out text onto the supplied canvas at (x, y).
* @param { drawing.Canvas } canvas - Object.
* @param { number } x - Represents the X-axis position on the canvas.
* @param { number } y - Represents the Y-axis position on the canvas.
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
paint(canvas: drawing.Canvas, x: number, y: number): void;
}
/**
* Describes the layout information and metrics for a continuous piece of text (a run) in a line of text.
* @typedef RunMetrics
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
interface RunMetrics {
/**
* The metrics of an Font.
* @type { TextStyle }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
textStyle: TextStyle;
/**
* Describes text style.
* @type { drawing.FontMetrics }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
fontMetrics: drawing.FontMetrics;
}
/**
* Describes the metric information for a line of text in a text layout.
* @typedef LineMetrics
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
interface LineMetrics {
/**
* The indexes in the text buffer the line begins.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
startIndex: number;
/**
* The indexes in the text buffer the line ends.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
endIndex: number;
/**
* The height of the text rise, the distance from the baseline to the top of the character.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
ascent: number;
/**
* The height of the text drop, the distance from the baseline to the bottom of the character.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
descent: number;
/**
* The height of the current line is `round(ascent + descent)`.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
height: number;
/**
* Width of the line.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
width: number;
/**
* The left edge of the line. The right edge can be obtained with `left + width`.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
left: number;
/**
* The y position of the baseline for this line from the top of the paragraph.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
baseline: number;
/**
* Zero indexed line number.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
lineNumber: number;
/**
* Height from the top.
* @type { number }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
topHeight: number;
/**
* Mapping between text index ranges and the FontMetrics associated with
* them. The first run will be keyed under start_index. The metrics here.
* are before layout and are the base values we calculate from.
* @type { Map<number, RunMetrics> }
* @syscap SystemCapability.Graphics.Drawing
* @since 12
*/
runMetrics: Map<number, RunMetrics>;
}
}
export default text;