161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 461847f8eSopenharmony_ci * you may not use this file except in compliance with the License. 561847f8eSopenharmony_ci * You may obtain a copy of the License at 661847f8eSopenharmony_ci * 761847f8eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 861847f8eSopenharmony_ci * 961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and 1361847f8eSopenharmony_ci * limitations under the License. 1461847f8eSopenharmony_ci */ 1561847f8eSopenharmony_ci 1661847f8eSopenharmony_ci/** 1761847f8eSopenharmony_ci * @file 1861847f8eSopenharmony_ci * @kit ArkGraphics2D 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ciimport type drawing from './@ohos.graphics.drawing'; 2161847f8eSopenharmony_ciimport type common2D from './@ohos.graphics.common2D'; 2261847f8eSopenharmony_ci 2361847f8eSopenharmony_ci/** 2461847f8eSopenharmony_ci * Provides functions such as 2D graphics text paragraphs, text styles. 2561847f8eSopenharmony_ci * 2661847f8eSopenharmony_ci * @namespace text 2761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 2861847f8eSopenharmony_ci * @since 12 2961847f8eSopenharmony_ci */ 3061847f8eSopenharmony_cideclare namespace text { 3161847f8eSopenharmony_ci 3261847f8eSopenharmony_ci /** 3361847f8eSopenharmony_ci * Refers to how to align the horizontal position of text when displaying text. 3461847f8eSopenharmony_ci * @enum { number } 3561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 3661847f8eSopenharmony_ci * @since 12 3761847f8eSopenharmony_ci */ 3861847f8eSopenharmony_ci enum TextAlign { 3961847f8eSopenharmony_ci /** 4061847f8eSopenharmony_ci * Use the left side of the text as a reference line for alignment. 4161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 4261847f8eSopenharmony_ci * @since 12 4361847f8eSopenharmony_ci */ 4461847f8eSopenharmony_ci LEFT = 0, 4561847f8eSopenharmony_ci 4661847f8eSopenharmony_ci /** 4761847f8eSopenharmony_ci * Use the right side of the text as a reference line for alignment. 4861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 4961847f8eSopenharmony_ci * @since 12 5061847f8eSopenharmony_ci */ 5161847f8eSopenharmony_ci RIGHT = 1, 5261847f8eSopenharmony_ci 5361847f8eSopenharmony_ci /** 5461847f8eSopenharmony_ci * Use the midpoint line the text as a reference line for alignment. 5561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 5661847f8eSopenharmony_ci * @since 12 5761847f8eSopenharmony_ci */ 5861847f8eSopenharmony_ci CENTER = 2, 5961847f8eSopenharmony_ci 6061847f8eSopenharmony_ci /** 6161847f8eSopenharmony_ci * Align the text at the start and end of the line. 6261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 6361847f8eSopenharmony_ci * @since 12 6461847f8eSopenharmony_ci */ 6561847f8eSopenharmony_ci JUSTIFY = 3, 6661847f8eSopenharmony_ci 6761847f8eSopenharmony_ci /** 6861847f8eSopenharmony_ci * Align text from start, based on the direction of text, such as left-to-right or right-to-left. 6961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 7061847f8eSopenharmony_ci * @since 12 7161847f8eSopenharmony_ci */ 7261847f8eSopenharmony_ci START = 4, 7361847f8eSopenharmony_ci 7461847f8eSopenharmony_ci /** 7561847f8eSopenharmony_ci * Align text from end, based on the direction of text, such as left-to-right or right-to-left, opposite to START. 7661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 7761847f8eSopenharmony_ci * @since 12 7861847f8eSopenharmony_ci */ 7961847f8eSopenharmony_ci END = 5, 8061847f8eSopenharmony_ci } 8161847f8eSopenharmony_ci 8261847f8eSopenharmony_ci /** 8361847f8eSopenharmony_ci * Enumerate text runs direction. 8461847f8eSopenharmony_ci * @enum { number } 8561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 8661847f8eSopenharmony_ci * @since 12 8761847f8eSopenharmony_ci */ 8861847f8eSopenharmony_ci enum TextDirection { 8961847f8eSopenharmony_ci /** 9061847f8eSopenharmony_ci * The text is oriented from right to left. 9161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 9261847f8eSopenharmony_ci * @since 12 9361847f8eSopenharmony_ci */ 9461847f8eSopenharmony_ci RTL, 9561847f8eSopenharmony_ci 9661847f8eSopenharmony_ci /** 9761847f8eSopenharmony_ci * The text is oriented from left to right. 9861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 9961847f8eSopenharmony_ci * @since 12 10061847f8eSopenharmony_ci */ 10161847f8eSopenharmony_ci LTR, 10261847f8eSopenharmony_ci } 10361847f8eSopenharmony_ci 10461847f8eSopenharmony_ci /** 10561847f8eSopenharmony_ci * Enumerate text segmentation strategy. 10661847f8eSopenharmony_ci * @enum { number } 10761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 10861847f8eSopenharmony_ci * @since 12 10961847f8eSopenharmony_ci */ 11061847f8eSopenharmony_ci enum BreakStrategy { 11161847f8eSopenharmony_ci /** 11261847f8eSopenharmony_ci * The segmentation strategy is greedy. 11361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 11461847f8eSopenharmony_ci * @since 12 11561847f8eSopenharmony_ci */ 11661847f8eSopenharmony_ci GREEDY, 11761847f8eSopenharmony_ci 11861847f8eSopenharmony_ci /** 11961847f8eSopenharmony_ci * The segmentation strategy is high quality. 12061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 12161847f8eSopenharmony_ci * @since 12 12261847f8eSopenharmony_ci */ 12361847f8eSopenharmony_ci HIGH_QUALITY, 12461847f8eSopenharmony_ci 12561847f8eSopenharmony_ci /** 12661847f8eSopenharmony_ci * The segmentation strategy is balanced. 12761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 12861847f8eSopenharmony_ci * @since 12 12961847f8eSopenharmony_ci */ 13061847f8eSopenharmony_ci BALANCED, 13161847f8eSopenharmony_ci } 13261847f8eSopenharmony_ci 13361847f8eSopenharmony_ci /** 13461847f8eSopenharmony_ci * Enumerate word break strategy. 13561847f8eSopenharmony_ci * @enum { number } 13661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 13761847f8eSopenharmony_ci * @since 12 13861847f8eSopenharmony_ci */ 13961847f8eSopenharmony_ci enum WordBreak { 14061847f8eSopenharmony_ci /** 14161847f8eSopenharmony_ci * Normal word break strategy. 14261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 14361847f8eSopenharmony_ci * @since 12 14461847f8eSopenharmony_ci */ 14561847f8eSopenharmony_ci NORMAL, 14661847f8eSopenharmony_ci 14761847f8eSopenharmony_ci /** 14861847f8eSopenharmony_ci * Breaks word by character. 14961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 15061847f8eSopenharmony_ci * @since 12 15161847f8eSopenharmony_ci */ 15261847f8eSopenharmony_ci BREAK_ALL, 15361847f8eSopenharmony_ci 15461847f8eSopenharmony_ci /** 15561847f8eSopenharmony_ci * Breaks word by phrase. 15661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 15761847f8eSopenharmony_ci * @since 12 15861847f8eSopenharmony_ci */ 15961847f8eSopenharmony_ci BREAK_WORD, 16061847f8eSopenharmony_ci } 16161847f8eSopenharmony_ci 16261847f8eSopenharmony_ci /** 16361847f8eSopenharmony_ci * Decoration for text. 16461847f8eSopenharmony_ci * @typedef Decoration 16561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 16661847f8eSopenharmony_ci * @since 12 16761847f8eSopenharmony_ci */ 16861847f8eSopenharmony_ci interface Decoration { 16961847f8eSopenharmony_ci /** 17061847f8eSopenharmony_ci * Decorates text by line. 17161847f8eSopenharmony_ci * @type { ?TextDecorationType } 17261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 17361847f8eSopenharmony_ci * @since 12 17461847f8eSopenharmony_ci */ 17561847f8eSopenharmony_ci textDecoration?: TextDecorationType; 17661847f8eSopenharmony_ci 17761847f8eSopenharmony_ci /** 17861847f8eSopenharmony_ci * Text color. 17961847f8eSopenharmony_ci * @type { ?common2D.Color } 18061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 18161847f8eSopenharmony_ci * @since 12 18261847f8eSopenharmony_ci */ 18361847f8eSopenharmony_ci color?: common2D.Color; 18461847f8eSopenharmony_ci 18561847f8eSopenharmony_ci /** 18661847f8eSopenharmony_ci * Text decoration style. 18761847f8eSopenharmony_ci * @type { ?TextDecorationStyle } 18861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 18961847f8eSopenharmony_ci * @since 12 19061847f8eSopenharmony_ci */ 19161847f8eSopenharmony_ci decorationStyle?: TextDecorationStyle; 19261847f8eSopenharmony_ci 19361847f8eSopenharmony_ci /** 19461847f8eSopenharmony_ci * The thickness scale of decoration line. 19561847f8eSopenharmony_ci * @type { ?number } 19661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 19761847f8eSopenharmony_ci * @since 12 19861847f8eSopenharmony_ci */ 19961847f8eSopenharmony_ci decorationThicknessScale?: number; 20061847f8eSopenharmony_ci } 20161847f8eSopenharmony_ci 20261847f8eSopenharmony_ci /** 20361847f8eSopenharmony_ci * Enumerates decoration line for text. 20461847f8eSopenharmony_ci * @enum { number } 20561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 20661847f8eSopenharmony_ci * @since 12 20761847f8eSopenharmony_ci */ 20861847f8eSopenharmony_ci enum TextDecorationType { 20961847f8eSopenharmony_ci /** 21061847f8eSopenharmony_ci * There are no text decoration. 21161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 21261847f8eSopenharmony_ci * @since 12 21361847f8eSopenharmony_ci */ 21461847f8eSopenharmony_ci NONE, 21561847f8eSopenharmony_ci 21661847f8eSopenharmony_ci /** 21761847f8eSopenharmony_ci * There is a decoration line below the text. 21861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 21961847f8eSopenharmony_ci * @since 12 22061847f8eSopenharmony_ci */ 22161847f8eSopenharmony_ci UNDERLINE, 22261847f8eSopenharmony_ci 22361847f8eSopenharmony_ci /** 22461847f8eSopenharmony_ci * There is a decoration line above the text. 22561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 22661847f8eSopenharmony_ci * @since 12 22761847f8eSopenharmony_ci */ 22861847f8eSopenharmony_ci OVERLINE, 22961847f8eSopenharmony_ci 23061847f8eSopenharmony_ci /** 23161847f8eSopenharmony_ci * There is a decoration line through the middle of the text. 23261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 23361847f8eSopenharmony_ci * @since 12 23461847f8eSopenharmony_ci */ 23561847f8eSopenharmony_ci LINE_THROUGH, 23661847f8eSopenharmony_ci } 23761847f8eSopenharmony_ci 23861847f8eSopenharmony_ci /** 23961847f8eSopenharmony_ci * Enumerates decoration line style. 24061847f8eSopenharmony_ci * @enum { number } 24161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 24261847f8eSopenharmony_ci * @since 12 24361847f8eSopenharmony_ci */ 24461847f8eSopenharmony_ci enum TextDecorationStyle { 24561847f8eSopenharmony_ci /** 24661847f8eSopenharmony_ci * Decoration line is solid line. 24761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 24861847f8eSopenharmony_ci * @since 12 24961847f8eSopenharmony_ci */ 25061847f8eSopenharmony_ci SOLID, 25161847f8eSopenharmony_ci 25261847f8eSopenharmony_ci /** 25361847f8eSopenharmony_ci * Decoration line is double line. 25461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 25561847f8eSopenharmony_ci * @since 12 25661847f8eSopenharmony_ci */ 25761847f8eSopenharmony_ci DOUBLE, 25861847f8eSopenharmony_ci 25961847f8eSopenharmony_ci /** 26061847f8eSopenharmony_ci * Decoration line is dotted line. 26161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 26261847f8eSopenharmony_ci * @since 12 26361847f8eSopenharmony_ci */ 26461847f8eSopenharmony_ci DOTTED, 26561847f8eSopenharmony_ci 26661847f8eSopenharmony_ci /** 26761847f8eSopenharmony_ci * Decoration line is dashed line. 26861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 26961847f8eSopenharmony_ci * @since 12 27061847f8eSopenharmony_ci */ 27161847f8eSopenharmony_ci DASHED, 27261847f8eSopenharmony_ci 27361847f8eSopenharmony_ci /** 27461847f8eSopenharmony_ci * Decoration line is wavy line. 27561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 27661847f8eSopenharmony_ci * @since 12 27761847f8eSopenharmony_ci */ 27861847f8eSopenharmony_ci WAVY, 27961847f8eSopenharmony_ci } 28061847f8eSopenharmony_ci 28161847f8eSopenharmony_ci /** 28261847f8eSopenharmony_ci * Enumeration of font weight of text. 28361847f8eSopenharmony_ci * @enum { number } 28461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 28561847f8eSopenharmony_ci * @since 12 28661847f8eSopenharmony_ci */ 28761847f8eSopenharmony_ci enum FontWeight { 28861847f8eSopenharmony_ci /** 28961847f8eSopenharmony_ci * Thin 29061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 29161847f8eSopenharmony_ci * @since 12 29261847f8eSopenharmony_ci */ 29361847f8eSopenharmony_ci W100, 29461847f8eSopenharmony_ci 29561847f8eSopenharmony_ci /** 29661847f8eSopenharmony_ci * Extra-light 29761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 29861847f8eSopenharmony_ci * @since 12 29961847f8eSopenharmony_ci */ 30061847f8eSopenharmony_ci W200, 30161847f8eSopenharmony_ci 30261847f8eSopenharmony_ci /** 30361847f8eSopenharmony_ci * Light 30461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 30561847f8eSopenharmony_ci * @since 12 30661847f8eSopenharmony_ci */ 30761847f8eSopenharmony_ci W300, 30861847f8eSopenharmony_ci 30961847f8eSopenharmony_ci /** 31061847f8eSopenharmony_ci * Normal/Regular 31161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 31261847f8eSopenharmony_ci * @since 12 31361847f8eSopenharmony_ci */ 31461847f8eSopenharmony_ci W400, 31561847f8eSopenharmony_ci 31661847f8eSopenharmony_ci /** 31761847f8eSopenharmony_ci * Medium 31861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 31961847f8eSopenharmony_ci * @since 12 32061847f8eSopenharmony_ci */ 32161847f8eSopenharmony_ci W500, 32261847f8eSopenharmony_ci 32361847f8eSopenharmony_ci /** 32461847f8eSopenharmony_ci * Semi-bold 32561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 32661847f8eSopenharmony_ci * @since 12 32761847f8eSopenharmony_ci */ 32861847f8eSopenharmony_ci W600, 32961847f8eSopenharmony_ci 33061847f8eSopenharmony_ci /** 33161847f8eSopenharmony_ci * Bold 33261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 33361847f8eSopenharmony_ci * @since 12 33461847f8eSopenharmony_ci */ 33561847f8eSopenharmony_ci W700, 33661847f8eSopenharmony_ci 33761847f8eSopenharmony_ci /** 33861847f8eSopenharmony_ci * Extra-bold 33961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 34061847f8eSopenharmony_ci * @since 12 34161847f8eSopenharmony_ci */ 34261847f8eSopenharmony_ci W800, 34361847f8eSopenharmony_ci 34461847f8eSopenharmony_ci /** 34561847f8eSopenharmony_ci * Black 34661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 34761847f8eSopenharmony_ci * @since 12 34861847f8eSopenharmony_ci */ 34961847f8eSopenharmony_ci W900, 35061847f8eSopenharmony_ci } 35161847f8eSopenharmony_ci 35261847f8eSopenharmony_ci /** 35361847f8eSopenharmony_ci * Enumeration of font style of text. 35461847f8eSopenharmony_ci * @enum { number } 35561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 35661847f8eSopenharmony_ci * @since 12 35761847f8eSopenharmony_ci */ 35861847f8eSopenharmony_ci enum FontStyle { 35961847f8eSopenharmony_ci /** 36061847f8eSopenharmony_ci * Upright font type. 36161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 36261847f8eSopenharmony_ci * @since 12 36361847f8eSopenharmony_ci */ 36461847f8eSopenharmony_ci NORMAL, 36561847f8eSopenharmony_ci 36661847f8eSopenharmony_ci /** 36761847f8eSopenharmony_ci * Slant font. 36861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 36961847f8eSopenharmony_ci * @since 12 37061847f8eSopenharmony_ci */ 37161847f8eSopenharmony_ci ITALIC, 37261847f8eSopenharmony_ci 37361847f8eSopenharmony_ci /** 37461847f8eSopenharmony_ci * Oblique font. 37561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 37661847f8eSopenharmony_ci * @since 12 37761847f8eSopenharmony_ci */ 37861847f8eSopenharmony_ci OBLIQUE, 37961847f8eSopenharmony_ci } 38061847f8eSopenharmony_ci 38161847f8eSopenharmony_ci /** 38261847f8eSopenharmony_ci * Enumeration of font width of text. 38361847f8eSopenharmony_ci * @enum { number } 38461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 38561847f8eSopenharmony_ci * @since 12 38661847f8eSopenharmony_ci */ 38761847f8eSopenharmony_ci enum FontWidth { 38861847f8eSopenharmony_ci /** 38961847f8eSopenharmony_ci * Ultra condensed font width. 39061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 39161847f8eSopenharmony_ci * @since 12 39261847f8eSopenharmony_ci */ 39361847f8eSopenharmony_ci ULTRA_CONDENSED = 1, 39461847f8eSopenharmony_ci 39561847f8eSopenharmony_ci /** 39661847f8eSopenharmony_ci * Extra condensed font width. 39761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 39861847f8eSopenharmony_ci * @since 12 39961847f8eSopenharmony_ci */ 40061847f8eSopenharmony_ci EXTRA_CONDENSED = 2, 40161847f8eSopenharmony_ci 40261847f8eSopenharmony_ci /** 40361847f8eSopenharmony_ci * Condensed font width. 40461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 40561847f8eSopenharmony_ci * @since 12 40661847f8eSopenharmony_ci */ 40761847f8eSopenharmony_ci CONDENSED = 3, 40861847f8eSopenharmony_ci 40961847f8eSopenharmony_ci /** 41061847f8eSopenharmony_ci * Semi condensed font width. 41161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 41261847f8eSopenharmony_ci * @since 12 41361847f8eSopenharmony_ci */ 41461847f8eSopenharmony_ci SEMI_CONDENSED = 4, 41561847f8eSopenharmony_ci 41661847f8eSopenharmony_ci /** 41761847f8eSopenharmony_ci * Normal font width. 41861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 41961847f8eSopenharmony_ci * @since 12 42061847f8eSopenharmony_ci */ 42161847f8eSopenharmony_ci NORMAL = 5, 42261847f8eSopenharmony_ci 42361847f8eSopenharmony_ci /** 42461847f8eSopenharmony_ci * Semi expanded font width. 42561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 42661847f8eSopenharmony_ci * @since 12 42761847f8eSopenharmony_ci */ 42861847f8eSopenharmony_ci SEMI_EXPANDED = 6, 42961847f8eSopenharmony_ci 43061847f8eSopenharmony_ci /** 43161847f8eSopenharmony_ci * Expanded font width. 43261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 43361847f8eSopenharmony_ci * @since 12 43461847f8eSopenharmony_ci */ 43561847f8eSopenharmony_ci EXPANDED = 7, 43661847f8eSopenharmony_ci 43761847f8eSopenharmony_ci /** 43861847f8eSopenharmony_ci * Extra expanded font width. 43961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 44061847f8eSopenharmony_ci * @since 12 44161847f8eSopenharmony_ci */ 44261847f8eSopenharmony_ci EXTRA_EXPANDED = 8, 44361847f8eSopenharmony_ci 44461847f8eSopenharmony_ci /** 44561847f8eSopenharmony_ci * Ultra expanded font width. 44661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 44761847f8eSopenharmony_ci * @since 12 44861847f8eSopenharmony_ci */ 44961847f8eSopenharmony_ci ULTRA_EXPANDED = 9, 45061847f8eSopenharmony_ci } 45161847f8eSopenharmony_ci 45261847f8eSopenharmony_ci /** 45361847f8eSopenharmony_ci * Enumerates of height mode of text. 45461847f8eSopenharmony_ci * @enum { number } 45561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 45661847f8eSopenharmony_ci * @since 12 45761847f8eSopenharmony_ci */ 45861847f8eSopenharmony_ci enum TextHeightBehavior { 45961847f8eSopenharmony_ci /** 46061847f8eSopenharmony_ci * Both ascend of first row and last row style. 46161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 46261847f8eSopenharmony_ci * @since 12 46361847f8eSopenharmony_ci */ 46461847f8eSopenharmony_ci ALL = 0x0, 46561847f8eSopenharmony_ci 46661847f8eSopenharmony_ci /** 46761847f8eSopenharmony_ci * Forbidding ascend of first row style. 46861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 46961847f8eSopenharmony_ci * @since 12 47061847f8eSopenharmony_ci */ 47161847f8eSopenharmony_ci DISABLE_FIRST_ASCENT = 0x1, 47261847f8eSopenharmony_ci 47361847f8eSopenharmony_ci /** 47461847f8eSopenharmony_ci * Forbidding ascend of last row style. 47561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 47661847f8eSopenharmony_ci * @since 12 47761847f8eSopenharmony_ci */ 47861847f8eSopenharmony_ci DISABLE_LAST_ASCENT = 0x2, 47961847f8eSopenharmony_ci 48061847f8eSopenharmony_ci /** 48161847f8eSopenharmony_ci * Neither ascend of first row nor last row style. 48261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 48361847f8eSopenharmony_ci * @since 12 48461847f8eSopenharmony_ci */ 48561847f8eSopenharmony_ci DISABLE_ALL = 0x1 | 0x2, 48661847f8eSopenharmony_ci } 48761847f8eSopenharmony_ci 48861847f8eSopenharmony_ci /** 48961847f8eSopenharmony_ci * Enumeration the type of text baseline. 49061847f8eSopenharmony_ci * @enum { number } 49161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 49261847f8eSopenharmony_ci * @since 12 49361847f8eSopenharmony_ci */ 49461847f8eSopenharmony_ci enum TextBaseline { 49561847f8eSopenharmony_ci /** 49661847f8eSopenharmony_ci * The alphabetic baseline, typically used for Latin-based scripts where the baseline aligns 49761847f8eSopenharmony_ci * with the base of lowercase letters. 49861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 49961847f8eSopenharmony_ci * @since 12 50061847f8eSopenharmony_ci */ 50161847f8eSopenharmony_ci ALPHABETIC, 50261847f8eSopenharmony_ci 50361847f8eSopenharmony_ci /** 50461847f8eSopenharmony_ci * The ideographic baseline, commonly used for ideographic scripts such as Chinese, Japanese, and Korean, 50561847f8eSopenharmony_ci * where the baseline aligns with the center of characters. 50661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 50761847f8eSopenharmony_ci * @since 12 50861847f8eSopenharmony_ci */ 50961847f8eSopenharmony_ci IDEOGRAPHIC, 51061847f8eSopenharmony_ci } 51161847f8eSopenharmony_ci 51261847f8eSopenharmony_ci /** 51361847f8eSopenharmony_ci * Enumerates of ellipsis mode. 51461847f8eSopenharmony_ci * @enum { number } 51561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 51661847f8eSopenharmony_ci * @since 12 51761847f8eSopenharmony_ci */ 51861847f8eSopenharmony_ci enum EllipsisMode { 51961847f8eSopenharmony_ci /** 52061847f8eSopenharmony_ci * The ellipsis is shown in the start of text. 52161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 52261847f8eSopenharmony_ci * @since 12 52361847f8eSopenharmony_ci */ 52461847f8eSopenharmony_ci START, 52561847f8eSopenharmony_ci 52661847f8eSopenharmony_ci /** 52761847f8eSopenharmony_ci * The ellipsis is shown in the middle of text. 52861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 52961847f8eSopenharmony_ci * @since 12 53061847f8eSopenharmony_ci */ 53161847f8eSopenharmony_ci MIDDLE, 53261847f8eSopenharmony_ci 53361847f8eSopenharmony_ci /** 53461847f8eSopenharmony_ci * The ellipsis is shown in the end of text. 53561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 53661847f8eSopenharmony_ci * @since 12 53761847f8eSopenharmony_ci */ 53861847f8eSopenharmony_ci END, 53961847f8eSopenharmony_ci } 54061847f8eSopenharmony_ci 54161847f8eSopenharmony_ci /** 54261847f8eSopenharmony_ci * Describes shadow of text. 54361847f8eSopenharmony_ci * @typedef TextShadow 54461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 54561847f8eSopenharmony_ci * @since 12 54661847f8eSopenharmony_ci */ 54761847f8eSopenharmony_ci interface TextShadow { 54861847f8eSopenharmony_ci /** 54961847f8eSopenharmony_ci * The color of text shadow. 55061847f8eSopenharmony_ci * @type { ?common2D.Color } The color of text shadow 55161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 55261847f8eSopenharmony_ci * @since 12 55361847f8eSopenharmony_ci */ 55461847f8eSopenharmony_ci color?: common2D.Color; 55561847f8eSopenharmony_ci /** 55661847f8eSopenharmony_ci * The value sets offset of text shadow that based on the original text. 55761847f8eSopenharmony_ci * @type { ?common2D.Point } The point of shadow 55861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 55961847f8eSopenharmony_ci * @since 12 56061847f8eSopenharmony_ci */ 56161847f8eSopenharmony_ci point?: common2D.Point; 56261847f8eSopenharmony_ci /** 56361847f8eSopenharmony_ci * The value sets special effect radius of blurring text, it default is 0. 56461847f8eSopenharmony_ci * @type { ?number } The value about radius of blur, it type is "double" 56561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 56661847f8eSopenharmony_ci * @since 12 56761847f8eSopenharmony_ci */ 56861847f8eSopenharmony_ci blurRadius?: number; 56961847f8eSopenharmony_ci } 57061847f8eSopenharmony_ci 57161847f8eSopenharmony_ci /** 57261847f8eSopenharmony_ci * Describes rect style of text. 57361847f8eSopenharmony_ci * @typedef RectStyle 57461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 57561847f8eSopenharmony_ci * @since 12 57661847f8eSopenharmony_ci */ 57761847f8eSopenharmony_ci interface RectStyle { 57861847f8eSopenharmony_ci /** 57961847f8eSopenharmony_ci * The color of rect style. 58061847f8eSopenharmony_ci * @type { common2D.Color } The color of rect style 58161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 58261847f8eSopenharmony_ci * @since 12 58361847f8eSopenharmony_ci */ 58461847f8eSopenharmony_ci color: common2D.Color; 58561847f8eSopenharmony_ci 58661847f8eSopenharmony_ci /** 58761847f8eSopenharmony_ci * Radius in left top of rect style. 58861847f8eSopenharmony_ci * @type { number } it is double type data 58961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 59061847f8eSopenharmony_ci * @since 12 59161847f8eSopenharmony_ci */ 59261847f8eSopenharmony_ci leftTopRadius: number; 59361847f8eSopenharmony_ci 59461847f8eSopenharmony_ci /** 59561847f8eSopenharmony_ci * Radius in right top of rect style. 59661847f8eSopenharmony_ci * @type { number } it is double type data 59761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 59861847f8eSopenharmony_ci * @since 12 59961847f8eSopenharmony_ci */ 60061847f8eSopenharmony_ci rightTopRadius: number; 60161847f8eSopenharmony_ci 60261847f8eSopenharmony_ci /** 60361847f8eSopenharmony_ci * Radius in right bottom of rect style. 60461847f8eSopenharmony_ci * @type { number } it is double type data 60561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 60661847f8eSopenharmony_ci * @since 12 60761847f8eSopenharmony_ci */ 60861847f8eSopenharmony_ci rightBottomRadius: number; 60961847f8eSopenharmony_ci 61061847f8eSopenharmony_ci /** 61161847f8eSopenharmony_ci * Radius in left bottom of rect style. 61261847f8eSopenharmony_ci * @type { number } it is double type data 61361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 61461847f8eSopenharmony_ci * @since 12 61561847f8eSopenharmony_ci */ 61661847f8eSopenharmony_ci leftBottomRadius: number; 61761847f8eSopenharmony_ci } 61861847f8eSopenharmony_ci 61961847f8eSopenharmony_ci /** 62061847f8eSopenharmony_ci * Describes font feature of text. 62161847f8eSopenharmony_ci * @typedef FontFeature 62261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 62361847f8eSopenharmony_ci * @since 12 62461847f8eSopenharmony_ci */ 62561847f8eSopenharmony_ci interface FontFeature { 62661847f8eSopenharmony_ci /** 62761847f8eSopenharmony_ci * The name of font feature. 62861847f8eSopenharmony_ci * @type { string } feature name 62961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 63061847f8eSopenharmony_ci * @since 12 63161847f8eSopenharmony_ci */ 63261847f8eSopenharmony_ci name: string; 63361847f8eSopenharmony_ci /** 63461847f8eSopenharmony_ci * The value of font feature. 63561847f8eSopenharmony_ci * @type { number } feature value 63661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 63761847f8eSopenharmony_ci * @since 12 63861847f8eSopenharmony_ci */ 63961847f8eSopenharmony_ci value: number; 64061847f8eSopenharmony_ci } 64161847f8eSopenharmony_ci 64261847f8eSopenharmony_ci /** 64361847f8eSopenharmony_ci * Describes font variation of text. 64461847f8eSopenharmony_ci * @typedef FontVariation 64561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 64661847f8eSopenharmony_ci * @since 12 64761847f8eSopenharmony_ci */ 64861847f8eSopenharmony_ci interface FontVariation { 64961847f8eSopenharmony_ci /** 65061847f8eSopenharmony_ci * The axis of font variation. 65161847f8eSopenharmony_ci * @type { string } variation axis 65261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 65361847f8eSopenharmony_ci * @since 12 65461847f8eSopenharmony_ci */ 65561847f8eSopenharmony_ci axis: string; 65661847f8eSopenharmony_ci /** 65761847f8eSopenharmony_ci * The value of font variation. 65861847f8eSopenharmony_ci * @type { number } variation value 65961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 66061847f8eSopenharmony_ci * @since 12 66161847f8eSopenharmony_ci */ 66261847f8eSopenharmony_ci value: number; 66361847f8eSopenharmony_ci } 66461847f8eSopenharmony_ci 66561847f8eSopenharmony_ci /** 66661847f8eSopenharmony_ci * Describes text style. 66761847f8eSopenharmony_ci * @typedef TextStyle 66861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 66961847f8eSopenharmony_ci * @since 12 67061847f8eSopenharmony_ci */ 67161847f8eSopenharmony_ci interface TextStyle { 67261847f8eSopenharmony_ci 67361847f8eSopenharmony_ci /** 67461847f8eSopenharmony_ci * Decoration of text. 67561847f8eSopenharmony_ci * @type { ?Decoration } decoration for text 67661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 67761847f8eSopenharmony_ci * @since 12 67861847f8eSopenharmony_ci */ 67961847f8eSopenharmony_ci decoration?: Decoration; 68061847f8eSopenharmony_ci 68161847f8eSopenharmony_ci /** 68261847f8eSopenharmony_ci * Color of text. 68361847f8eSopenharmony_ci * @type { ?common2D.Color } it is uint32_t type data 68461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 68561847f8eSopenharmony_ci * @since 12 68661847f8eSopenharmony_ci */ 68761847f8eSopenharmony_ci color?: common2D.Color; 68861847f8eSopenharmony_ci 68961847f8eSopenharmony_ci /** 69061847f8eSopenharmony_ci * Font weight of text. 69161847f8eSopenharmony_ci * @type { ?FontWeight } it is uint32_t type data 69261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 69361847f8eSopenharmony_ci * @since 12 69461847f8eSopenharmony_ci */ 69561847f8eSopenharmony_ci fontWeight?: FontWeight; 69661847f8eSopenharmony_ci 69761847f8eSopenharmony_ci /** 69861847f8eSopenharmony_ci * Font style of text. 69961847f8eSopenharmony_ci * @type { ?FontStyle } it is uint32_t type data 70061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 70161847f8eSopenharmony_ci * @since 12 70261847f8eSopenharmony_ci */ 70361847f8eSopenharmony_ci fontStyle?: FontStyle; 70461847f8eSopenharmony_ci 70561847f8eSopenharmony_ci /** 70661847f8eSopenharmony_ci * Base line of text. 70761847f8eSopenharmony_ci * @type { ?TextBaseline } it is uint32_t type data 70861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 70961847f8eSopenharmony_ci * @since 12 71061847f8eSopenharmony_ci */ 71161847f8eSopenharmony_ci baseline?: TextBaseline; 71261847f8eSopenharmony_ci 71361847f8eSopenharmony_ci /** 71461847f8eSopenharmony_ci * Font Families of text. 71561847f8eSopenharmony_ci * @type { ?Array<string> } fontfamily gather 71661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 71761847f8eSopenharmony_ci * @since 12 71861847f8eSopenharmony_ci */ 71961847f8eSopenharmony_ci fontFamilies?: Array<string>; 72061847f8eSopenharmony_ci 72161847f8eSopenharmony_ci /** 72261847f8eSopenharmony_ci * Font size of text. 72361847f8eSopenharmony_ci * @type { ?number } it is double type data 72461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 72561847f8eSopenharmony_ci * @since 12 72661847f8eSopenharmony_ci */ 72761847f8eSopenharmony_ci fontSize?: number; 72861847f8eSopenharmony_ci 72961847f8eSopenharmony_ci /** 73061847f8eSopenharmony_ci * Letter spacing of text. 73161847f8eSopenharmony_ci * @type { ?number } it is double type data 73261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 73361847f8eSopenharmony_ci * @since 12 73461847f8eSopenharmony_ci */ 73561847f8eSopenharmony_ci letterSpacing?: number; 73661847f8eSopenharmony_ci 73761847f8eSopenharmony_ci /** 73861847f8eSopenharmony_ci * Word spacing of text. 73961847f8eSopenharmony_ci * @type { ?number } it is double type data 74061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 74161847f8eSopenharmony_ci * @since 12 74261847f8eSopenharmony_ci */ 74361847f8eSopenharmony_ci wordSpacing?: number; 74461847f8eSopenharmony_ci 74561847f8eSopenharmony_ci /** 74661847f8eSopenharmony_ci * Height scale of text. 74761847f8eSopenharmony_ci * @type { ?number } it is double type data 74861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 74961847f8eSopenharmony_ci * @since 12 75061847f8eSopenharmony_ci */ 75161847f8eSopenharmony_ci heightScale?: number; 75261847f8eSopenharmony_ci 75361847f8eSopenharmony_ci /** 75461847f8eSopenharmony_ci * Half leading of text. 75561847f8eSopenharmony_ci * @type { ?boolean } it is boolean type data 75661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 75761847f8eSopenharmony_ci * @since 12 75861847f8eSopenharmony_ci */ 75961847f8eSopenharmony_ci halfLeading?: boolean; 76061847f8eSopenharmony_ci 76161847f8eSopenharmony_ci /** 76261847f8eSopenharmony_ci * Control the height calculation method of font blob, true means calculate the height of the blob by 76361847f8eSopenharmony_ci * the font size, false means by the line height and leading. 76461847f8eSopenharmony_ci * @type { ?boolean } it is boolean type data 76561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 76661847f8eSopenharmony_ci * @since 12 76761847f8eSopenharmony_ci */ 76861847f8eSopenharmony_ci heightOnly?: boolean; 76961847f8eSopenharmony_ci 77061847f8eSopenharmony_ci /** 77161847f8eSopenharmony_ci * Text ellipsis. 77261847f8eSopenharmony_ci * @type { ?string } it is u16string type data. 77361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 77461847f8eSopenharmony_ci * @since 12 77561847f8eSopenharmony_ci */ 77661847f8eSopenharmony_ci ellipsis?: string; 77761847f8eSopenharmony_ci 77861847f8eSopenharmony_ci /** 77961847f8eSopenharmony_ci * Text ellipsis mode. 78061847f8eSopenharmony_ci * @type { ?EllipsisMode } Ellipsis mode. 78161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 78261847f8eSopenharmony_ci * @since 12 78361847f8eSopenharmony_ci */ 78461847f8eSopenharmony_ci ellipsisMode?: EllipsisMode; 78561847f8eSopenharmony_ci 78661847f8eSopenharmony_ci /** 78761847f8eSopenharmony_ci * Text locale. 78861847f8eSopenharmony_ci * @type { ?string } it is string type data. 78961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 79061847f8eSopenharmony_ci * @since 12 79161847f8eSopenharmony_ci */ 79261847f8eSopenharmony_ci locale?: string; 79361847f8eSopenharmony_ci 79461847f8eSopenharmony_ci /** 79561847f8eSopenharmony_ci * The offset distance that the underline of text. 79661847f8eSopenharmony_ci * @type { ?number } it is double type data. 79761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 79861847f8eSopenharmony_ci * @since 12 79961847f8eSopenharmony_ci */ 80061847f8eSopenharmony_ci baselineShift?: number; 80161847f8eSopenharmony_ci 80261847f8eSopenharmony_ci /** 80361847f8eSopenharmony_ci * Text Style available font features. 80461847f8eSopenharmony_ci * @type { ?Array<FontFeature> } A collection of font features. 80561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 80661847f8eSopenharmony_ci * @since 12 80761847f8eSopenharmony_ci */ 80861847f8eSopenharmony_ci fontFeatures?: Array<FontFeature>; 80961847f8eSopenharmony_ci 81061847f8eSopenharmony_ci /** 81161847f8eSopenharmony_ci * Text shadows of text. 81261847f8eSopenharmony_ci * @type { ?Array<TextShadow> } textShadow gather. 81361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 81461847f8eSopenharmony_ci * @since 12 81561847f8eSopenharmony_ci */ 81661847f8eSopenharmony_ci textShadows?: Array<TextShadow>; 81761847f8eSopenharmony_ci 81861847f8eSopenharmony_ci /** 81961847f8eSopenharmony_ci * Rect style of text. 82061847f8eSopenharmony_ci * @type { ?RectStyle } rect style for text. 82161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 82261847f8eSopenharmony_ci * @since 12 82361847f8eSopenharmony_ci */ 82461847f8eSopenharmony_ci backgroundRect?: RectStyle; 82561847f8eSopenharmony_ci 82661847f8eSopenharmony_ci /** 82761847f8eSopenharmony_ci * Text Style available font variations. 82861847f8eSopenharmony_ci * @type { ?Array<FontVariation> } A collection of font variations. 82961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 83061847f8eSopenharmony_ci * @since 12 83161847f8eSopenharmony_ci */ 83261847f8eSopenharmony_ci fontVariations?: Array<FontVariation>; 83361847f8eSopenharmony_ci } 83461847f8eSopenharmony_ci 83561847f8eSopenharmony_ci /** 83661847f8eSopenharmony_ci * Provides the basis for graphics. 83761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 83861847f8eSopenharmony_ci * @since 12 83961847f8eSopenharmony_ci */ 84061847f8eSopenharmony_ci class FontCollection { 84161847f8eSopenharmony_ci /** 84261847f8eSopenharmony_ci * Get global FontCollection instance of the application. 84361847f8eSopenharmony_ci * @returns { FontCollection } The FontCollection object. 84461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 84561847f8eSopenharmony_ci * @since 12 84661847f8eSopenharmony_ci */ 84761847f8eSopenharmony_ci static getGlobalInstance(): FontCollection; 84861847f8eSopenharmony_ci 84961847f8eSopenharmony_ci /** 85061847f8eSopenharmony_ci * Load font. 85161847f8eSopenharmony_ci * @param { string } name - the font name. 85261847f8eSopenharmony_ci * @param { string | Resource } path - the path of the font file. 85361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 85461847f8eSopenharmony_ci * @since 12 85561847f8eSopenharmony_ci */ 85661847f8eSopenharmony_ci loadFontSync(name: string, path: string | Resource): void; 85761847f8eSopenharmony_ci 85861847f8eSopenharmony_ci /** 85961847f8eSopenharmony_ci * Load font. 86061847f8eSopenharmony_ci * @param { string } name - The font name. 86161847f8eSopenharmony_ci * @param { string | Resource } path - The path of the font file. 86261847f8eSopenharmony_ci * @returns { Promise<void> } The promise returned by the function. 86361847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 86461847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 86561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 86661847f8eSopenharmony_ci * @since 14 86761847f8eSopenharmony_ci */ 86861847f8eSopenharmony_ci loadFont(name: string, path: string | Resource): Promise<void>; 86961847f8eSopenharmony_ci 87061847f8eSopenharmony_ci /** 87161847f8eSopenharmony_ci * Clear font caches. 87261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 87361847f8eSopenharmony_ci * @since 12 87461847f8eSopenharmony_ci */ 87561847f8eSopenharmony_ci clearCaches(): void; 87661847f8eSopenharmony_ci } 87761847f8eSopenharmony_ci 87861847f8eSopenharmony_ci /** 87961847f8eSopenharmony_ci * Describes strut style. 88061847f8eSopenharmony_ci * @typedef StrutStyle 88161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 88261847f8eSopenharmony_ci * @since 12 88361847f8eSopenharmony_ci */ 88461847f8eSopenharmony_ci interface StrutStyle { 88561847f8eSopenharmony_ci /** 88661847f8eSopenharmony_ci * The families of the font to use when calculating the strut. 88761847f8eSopenharmony_ci * @type { ?Array<string> } fontfamily gather 88861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 88961847f8eSopenharmony_ci * @since 12 89061847f8eSopenharmony_ci */ 89161847f8eSopenharmony_ci fontFamilies?: Array<string>; 89261847f8eSopenharmony_ci 89361847f8eSopenharmony_ci /** 89461847f8eSopenharmony_ci * The font style to use when calculating the strut. 89561847f8eSopenharmony_ci * @type { ?FontStyle } it is uint32_t type data 89661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 89761847f8eSopenharmony_ci * @since 12 89861847f8eSopenharmony_ci */ 89961847f8eSopenharmony_ci fontStyle?: FontStyle; 90061847f8eSopenharmony_ci 90161847f8eSopenharmony_ci /** 90261847f8eSopenharmony_ci * The font width to use when calculating the strut. 90361847f8eSopenharmony_ci * @type { ?FontWidth } it is uint32_t type data 90461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 90561847f8eSopenharmony_ci * @since 12 90661847f8eSopenharmony_ci */ 90761847f8eSopenharmony_ci fontWidth?: FontWidth; 90861847f8eSopenharmony_ci 90961847f8eSopenharmony_ci /** 91061847f8eSopenharmony_ci * The font weight to use when calculating the strut. 91161847f8eSopenharmony_ci * @type { ?FontWeight } it is uint32_t type data 91261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 91361847f8eSopenharmony_ci * @since 12 91461847f8eSopenharmony_ci */ 91561847f8eSopenharmony_ci fontWeight?: FontWeight; 91661847f8eSopenharmony_ci 91761847f8eSopenharmony_ci /** 91861847f8eSopenharmony_ci * The size of the ascent plus descent in logical pixels. 91961847f8eSopenharmony_ci * @type { ?number } it is double type data 92061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 92161847f8eSopenharmony_ci * @since 12 92261847f8eSopenharmony_ci */ 92361847f8eSopenharmony_ci fontSize?: number; 92461847f8eSopenharmony_ci 92561847f8eSopenharmony_ci /** 92661847f8eSopenharmony_ci * The minimum height of the strut, as a multiple of fontSize. 92761847f8eSopenharmony_ci * @type { ?number } it is double type data 92861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 92961847f8eSopenharmony_ci * @since 12 93061847f8eSopenharmony_ci */ 93161847f8eSopenharmony_ci height?: number; 93261847f8eSopenharmony_ci 93361847f8eSopenharmony_ci /** 93461847f8eSopenharmony_ci * The additional leading to apply to the strut as a multiple of Size. 93561847f8eSopenharmony_ci * @type { ?number } it is double type data 93661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 93761847f8eSopenharmony_ci * @since 12 93861847f8eSopenharmony_ci */ 93961847f8eSopenharmony_ci leading?: number; 94061847f8eSopenharmony_ci 94161847f8eSopenharmony_ci /** 94261847f8eSopenharmony_ci * Whether the strut height should be forced. 94361847f8eSopenharmony_ci * @type { ?boolean } it is boolean type data 94461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 94561847f8eSopenharmony_ci * @since 12 94661847f8eSopenharmony_ci */ 94761847f8eSopenharmony_ci forceHeight?: boolean; 94861847f8eSopenharmony_ci 94961847f8eSopenharmony_ci /** 95061847f8eSopenharmony_ci * Whether the strut style should be enable. 95161847f8eSopenharmony_ci * @type { ?boolean } it is boolean type data 95261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 95361847f8eSopenharmony_ci * @since 12 95461847f8eSopenharmony_ci */ 95561847f8eSopenharmony_ci enabled?: boolean; 95661847f8eSopenharmony_ci 95761847f8eSopenharmony_ci /** 95861847f8eSopenharmony_ci * Whether the height is override. 95961847f8eSopenharmony_ci * @type { ?boolean } it is boolean type data 96061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 96161847f8eSopenharmony_ci * @since 12 96261847f8eSopenharmony_ci */ 96361847f8eSopenharmony_ci heightOverride?: boolean; 96461847f8eSopenharmony_ci 96561847f8eSopenharmony_ci /** 96661847f8eSopenharmony_ci * Whether the half leading is enable. 96761847f8eSopenharmony_ci * @type { ?boolean } it is boolean type data 96861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 96961847f8eSopenharmony_ci * @since 12 97061847f8eSopenharmony_ci */ 97161847f8eSopenharmony_ci halfLeading?: boolean; 97261847f8eSopenharmony_ci } 97361847f8eSopenharmony_ci 97461847f8eSopenharmony_ci /** 97561847f8eSopenharmony_ci * Determines the configuration used by ParagraphBuilder to position lines within a Paragraph of text. 97661847f8eSopenharmony_ci * @typedef ParagraphStyle 97761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 97861847f8eSopenharmony_ci * @since 12 97961847f8eSopenharmony_ci */ 98061847f8eSopenharmony_ci interface ParagraphStyle { 98161847f8eSopenharmony_ci /** 98261847f8eSopenharmony_ci * Text style of paragraph. 98361847f8eSopenharmony_ci * @type { ?TextStyle } 98461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 98561847f8eSopenharmony_ci * @since 12 98661847f8eSopenharmony_ci */ 98761847f8eSopenharmony_ci textStyle?: TextStyle; 98861847f8eSopenharmony_ci 98961847f8eSopenharmony_ci /** 99061847f8eSopenharmony_ci * Text runs direction. 99161847f8eSopenharmony_ci * @type { ?TextDirection } 99261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 99361847f8eSopenharmony_ci * @since 12 99461847f8eSopenharmony_ci */ 99561847f8eSopenharmony_ci textDirection?: TextDirection; 99661847f8eSopenharmony_ci 99761847f8eSopenharmony_ci /** 99861847f8eSopenharmony_ci * Refers to how to align the horizontal position of text when displaying text. 99961847f8eSopenharmony_ci * @type { ?TextAlign } 100061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 100161847f8eSopenharmony_ci * @since 12 100261847f8eSopenharmony_ci */ 100361847f8eSopenharmony_ci align?: TextAlign; 100461847f8eSopenharmony_ci 100561847f8eSopenharmony_ci /** 100661847f8eSopenharmony_ci * Word break strategy. 100761847f8eSopenharmony_ci * @type { ?WordBreak } 100861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 100961847f8eSopenharmony_ci * @since 12 101061847f8eSopenharmony_ci */ 101161847f8eSopenharmony_ci wordBreak?: WordBreak; 101261847f8eSopenharmony_ci 101361847f8eSopenharmony_ci /** 101461847f8eSopenharmony_ci * Maximum number of lines. 101561847f8eSopenharmony_ci * @type { ?number } 101661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 101761847f8eSopenharmony_ci * @since 12 101861847f8eSopenharmony_ci */ 101961847f8eSopenharmony_ci maxLines?: number; 102061847f8eSopenharmony_ci 102161847f8eSopenharmony_ci /** 102261847f8eSopenharmony_ci * text segmentation strategy. 102361847f8eSopenharmony_ci * @type { ?BreakStrategy } 102461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 102561847f8eSopenharmony_ci * @since 12 102661847f8eSopenharmony_ci */ 102761847f8eSopenharmony_ci breakStrategy?: BreakStrategy; 102861847f8eSopenharmony_ci 102961847f8eSopenharmony_ci /** 103061847f8eSopenharmony_ci * Strut style of paragraph. 103161847f8eSopenharmony_ci * @type { ?StrutStyle } 103261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 103361847f8eSopenharmony_ci * @since 12 103461847f8eSopenharmony_ci */ 103561847f8eSopenharmony_ci strutStyle?: StrutStyle; 103661847f8eSopenharmony_ci 103761847f8eSopenharmony_ci /** 103861847f8eSopenharmony_ci * Text height behavior of paragraph. 103961847f8eSopenharmony_ci * @type { ?TextHeightBehavior } 104061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 104161847f8eSopenharmony_ci * @since 12 104261847f8eSopenharmony_ci */ 104361847f8eSopenharmony_ci textHeightBehavior?: TextHeightBehavior; 104461847f8eSopenharmony_ci 104561847f8eSopenharmony_ci /** 104661847f8eSopenharmony_ci * Text tab of paragraph. Tab alignment does not take effect when text alignment is also set, Or when the ellipsis 104761847f8eSopenharmony_ci * style is configured. When the tab is not set or the tab's location property is less than or equal to 0, 104861847f8eSopenharmony_ci * it is the default space effect. And all tabs in the paragraph after the setting are aligned 104961847f8eSopenharmony_ci * according to this tab effect. 105061847f8eSopenharmony_ci * @type { ?TextTab } 105161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 105261847f8eSopenharmony_ci * @since 14 105361847f8eSopenharmony_ci */ 105461847f8eSopenharmony_ci tab?: TextTab; 105561847f8eSopenharmony_ci } 105661847f8eSopenharmony_ci 105761847f8eSopenharmony_ci /** 105861847f8eSopenharmony_ci * Where to vertically align the placeholder relative to the surrounding text. 105961847f8eSopenharmony_ci * @enum { number } 106061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 106161847f8eSopenharmony_ci * @since 12 106261847f8eSopenharmony_ci */ 106361847f8eSopenharmony_ci enum PlaceholderAlignment { 106461847f8eSopenharmony_ci /** 106561847f8eSopenharmony_ci * Match the baseline of the placeholder with the baseline. 106661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 106761847f8eSopenharmony_ci * @since 12 106861847f8eSopenharmony_ci */ 106961847f8eSopenharmony_ci OFFSET_AT_BASELINE, 107061847f8eSopenharmony_ci 107161847f8eSopenharmony_ci /** 107261847f8eSopenharmony_ci * Align the bottom edge of the placeholder with the baseline such that the placeholder 107361847f8eSopenharmony_ci * sits on top of the baseline. 107461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 107561847f8eSopenharmony_ci * @since 12 107661847f8eSopenharmony_ci */ 107761847f8eSopenharmony_ci ABOVE_BASELINE, 107861847f8eSopenharmony_ci 107961847f8eSopenharmony_ci /** 108061847f8eSopenharmony_ci * Align the top edge of the placeholder with the baseline specified in such that the placeholder 108161847f8eSopenharmony_ci * hangs below the baseline. 108261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 108361847f8eSopenharmony_ci * @since 12 108461847f8eSopenharmony_ci */ 108561847f8eSopenharmony_ci BELOW_BASELINE, 108661847f8eSopenharmony_ci 108761847f8eSopenharmony_ci /** 108861847f8eSopenharmony_ci * Align the top edge of the placeholder with the top edge of the font. When the placeholder is very tall, 108961847f8eSopenharmony_ci * the extra space will hang from the top and extend through the bottom of the line. 109061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 109161847f8eSopenharmony_ci * @since 12 109261847f8eSopenharmony_ci */ 109361847f8eSopenharmony_ci TOP_OF_ROW_BOX, 109461847f8eSopenharmony_ci 109561847f8eSopenharmony_ci /** 109661847f8eSopenharmony_ci * Align the bottom edge of the placeholder with the bottom edge of the text. When the placeholder is very tall, 109761847f8eSopenharmony_ci * the extra space will rise from the bottom and extend through the top of the line. 109861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 109961847f8eSopenharmony_ci * @since 12 110061847f8eSopenharmony_ci */ 110161847f8eSopenharmony_ci BOTTOM_OF_ROW_BOX, 110261847f8eSopenharmony_ci 110361847f8eSopenharmony_ci /** 110461847f8eSopenharmony_ci * Align the middle of the placeholder with the middle of the text.When the placeholder is very tall, 110561847f8eSopenharmony_ci * the extra space will grow equally from the top and bottom of the line. 110661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 110761847f8eSopenharmony_ci * @since 12 110861847f8eSopenharmony_ci */ 110961847f8eSopenharmony_ci CENTER_OF_ROW_BOX, 111061847f8eSopenharmony_ci } 111161847f8eSopenharmony_ci 111261847f8eSopenharmony_ci /** 111361847f8eSopenharmony_ci * Provide a description of placeholder scope in creating typography. 111461847f8eSopenharmony_ci * @typedef PlaceholderSpan 111561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 111661847f8eSopenharmony_ci * @since 12 111761847f8eSopenharmony_ci */ 111861847f8eSopenharmony_ci interface PlaceholderSpan { 111961847f8eSopenharmony_ci /** 112061847f8eSopenharmony_ci * The width of the placeholder. 112161847f8eSopenharmony_ci * @type { number } 112261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 112361847f8eSopenharmony_ci * @since 12 112461847f8eSopenharmony_ci */ 112561847f8eSopenharmony_ci width: number; 112661847f8eSopenharmony_ci 112761847f8eSopenharmony_ci /** 112861847f8eSopenharmony_ci * The height of the placeholder. 112961847f8eSopenharmony_ci * @type { number } 113061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 113161847f8eSopenharmony_ci * @since 12 113261847f8eSopenharmony_ci */ 113361847f8eSopenharmony_ci height: number; 113461847f8eSopenharmony_ci 113561847f8eSopenharmony_ci /** 113661847f8eSopenharmony_ci * Alignment mode of placeholder. 113761847f8eSopenharmony_ci * @type { PlaceholderAlignment } 113861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 113961847f8eSopenharmony_ci * @since 12 114061847f8eSopenharmony_ci */ 114161847f8eSopenharmony_ci align: PlaceholderAlignment; 114261847f8eSopenharmony_ci 114361847f8eSopenharmony_ci /** 114461847f8eSopenharmony_ci * Baseline of placeholder. 114561847f8eSopenharmony_ci * @type { TextBaseline } 114661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 114761847f8eSopenharmony_ci * @since 12 114861847f8eSopenharmony_ci */ 114961847f8eSopenharmony_ci baseline: TextBaseline; 115061847f8eSopenharmony_ci 115161847f8eSopenharmony_ci /** 115261847f8eSopenharmony_ci * Baseline offset of placeholder. 115361847f8eSopenharmony_ci * @type { number } 115461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 115561847f8eSopenharmony_ci * @since 12 115661847f8eSopenharmony_ci */ 115761847f8eSopenharmony_ci baselineOffset: number; 115861847f8eSopenharmony_ci } 115961847f8eSopenharmony_ci 116061847f8eSopenharmony_ci /** 116161847f8eSopenharmony_ci * Provides the definition of the range. 116261847f8eSopenharmony_ci * @typedef Range 116361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 116461847f8eSopenharmony_ci * @since 12 116561847f8eSopenharmony_ci */ 116661847f8eSopenharmony_ci interface Range { 116761847f8eSopenharmony_ci /** 116861847f8eSopenharmony_ci * Left index. 116961847f8eSopenharmony_ci * @type { number } 117061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 117161847f8eSopenharmony_ci * @since 12 117261847f8eSopenharmony_ci */ 117361847f8eSopenharmony_ci start: number; 117461847f8eSopenharmony_ci 117561847f8eSopenharmony_ci /** 117661847f8eSopenharmony_ci * Right index. 117761847f8eSopenharmony_ci * @type { number } 117861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 117961847f8eSopenharmony_ci * @since 12 118061847f8eSopenharmony_ci */ 118161847f8eSopenharmony_ci end: number; 118261847f8eSopenharmony_ci } 118361847f8eSopenharmony_ci 118461847f8eSopenharmony_ci /** 118561847f8eSopenharmony_ci * An enumeration of system font types. 118661847f8eSopenharmony_ci * @enum { number } 118761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 118861847f8eSopenharmony_ci * @since 14 118961847f8eSopenharmony_ci */ 119061847f8eSopenharmony_ci enum SystemFontType { 119161847f8eSopenharmony_ci /** 119261847f8eSopenharmony_ci * All font types. 119361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 119461847f8eSopenharmony_ci * @since 14 119561847f8eSopenharmony_ci */ 119661847f8eSopenharmony_ci ALL = 1 << 0, 119761847f8eSopenharmony_ci 119861847f8eSopenharmony_ci /** 119961847f8eSopenharmony_ci * System generic font type. 120061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 120161847f8eSopenharmony_ci * @since 14 120261847f8eSopenharmony_ci */ 120361847f8eSopenharmony_ci GENERIC = 1 << 1, 120461847f8eSopenharmony_ci 120561847f8eSopenharmony_ci /** 120661847f8eSopenharmony_ci * Stylish font type. 120761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 120861847f8eSopenharmony_ci * @since 14 120961847f8eSopenharmony_ci */ 121061847f8eSopenharmony_ci STYLISH = 1 << 2, 121161847f8eSopenharmony_ci 121261847f8eSopenharmony_ci /** 121361847f8eSopenharmony_ci * Installed font types. 121461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 121561847f8eSopenharmony_ci * @since 14 121661847f8eSopenharmony_ci */ 121761847f8eSopenharmony_ci INSTALLED = 1 << 3, 121861847f8eSopenharmony_ci } 121961847f8eSopenharmony_ci 122061847f8eSopenharmony_ci /** 122161847f8eSopenharmony_ci * Font descriptor 122261847f8eSopenharmony_ci * @typedef FontDescriptor 122361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 122461847f8eSopenharmony_ci * @since 14 122561847f8eSopenharmony_ci */ 122661847f8eSopenharmony_ci interface FontDescriptor { 122761847f8eSopenharmony_ci /** 122861847f8eSopenharmony_ci * Font file path 122961847f8eSopenharmony_ci * @type { ?string } 123061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 123161847f8eSopenharmony_ci * @since 14 123261847f8eSopenharmony_ci */ 123361847f8eSopenharmony_ci path?: string; 123461847f8eSopenharmony_ci 123561847f8eSopenharmony_ci /** 123661847f8eSopenharmony_ci * Font postScript name 123761847f8eSopenharmony_ci * @type { ?string } 123861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 123961847f8eSopenharmony_ci * @since 14 124061847f8eSopenharmony_ci */ 124161847f8eSopenharmony_ci postScriptName?: string; 124261847f8eSopenharmony_ci 124361847f8eSopenharmony_ci /** 124461847f8eSopenharmony_ci * Full font name 124561847f8eSopenharmony_ci * @type { ?string } 124661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 124761847f8eSopenharmony_ci * @since 14 124861847f8eSopenharmony_ci */ 124961847f8eSopenharmony_ci fullName?: string; 125061847f8eSopenharmony_ci 125161847f8eSopenharmony_ci /** 125261847f8eSopenharmony_ci * Font family name 125361847f8eSopenharmony_ci * @type { ?string } 125461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 125561847f8eSopenharmony_ci * @since 14 125661847f8eSopenharmony_ci */ 125761847f8eSopenharmony_ci fontFamily?: string; 125861847f8eSopenharmony_ci 125961847f8eSopenharmony_ci /** 126061847f8eSopenharmony_ci * Font subfamily name 126161847f8eSopenharmony_ci * @type { ?string } 126261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 126361847f8eSopenharmony_ci * @since 14 126461847f8eSopenharmony_ci */ 126561847f8eSopenharmony_ci fontSubfamily?: string; 126661847f8eSopenharmony_ci 126761847f8eSopenharmony_ci /** 126861847f8eSopenharmony_ci * Font weight 126961847f8eSopenharmony_ci * @type { ?FontWeight } 127061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 127161847f8eSopenharmony_ci * @since 14 127261847f8eSopenharmony_ci */ 127361847f8eSopenharmony_ci weight?: FontWeight; 127461847f8eSopenharmony_ci 127561847f8eSopenharmony_ci /** 127661847f8eSopenharmony_ci * Font width 127761847f8eSopenharmony_ci * @type { ?number } 127861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 127961847f8eSopenharmony_ci * @since 14 128061847f8eSopenharmony_ci */ 128161847f8eSopenharmony_ci width?: number; 128261847f8eSopenharmony_ci 128361847f8eSopenharmony_ci /** 128461847f8eSopenharmony_ci * Font slant, non-0 means italic. 128561847f8eSopenharmony_ci * @type { ?number } 128661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 128761847f8eSopenharmony_ci * @since 14 128861847f8eSopenharmony_ci */ 128961847f8eSopenharmony_ci italic?: number; 129061847f8eSopenharmony_ci 129161847f8eSopenharmony_ci /** 129261847f8eSopenharmony_ci * Whether the font is monospaced 129361847f8eSopenharmony_ci * @type { ?boolean } 129461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 129561847f8eSopenharmony_ci * @since 14 129661847f8eSopenharmony_ci */ 129761847f8eSopenharmony_ci monoSpace?: boolean; 129861847f8eSopenharmony_ci 129961847f8eSopenharmony_ci /** 130061847f8eSopenharmony_ci * Whether to support symbols 130161847f8eSopenharmony_ci * @type { ?boolean } 130261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 130361847f8eSopenharmony_ci * @since 14 130461847f8eSopenharmony_ci */ 130561847f8eSopenharmony_ci symbolic?: boolean; 130661847f8eSopenharmony_ci } 130761847f8eSopenharmony_ci 130861847f8eSopenharmony_ci /** 130961847f8eSopenharmony_ci * A paragraph retains the size and position of each glyph in the text and can be efficiently resized and painted. 131061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 131161847f8eSopenharmony_ci * @since 12 131261847f8eSopenharmony_ci */ 131361847f8eSopenharmony_ci class Paragraph { 131461847f8eSopenharmony_ci /** 131561847f8eSopenharmony_ci * Calculates the positioning of all the glyphs. 131661847f8eSopenharmony_ci * @param { number } width - Control how wide the text is allowed to be. 131761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 131861847f8eSopenharmony_ci * @since 12 131961847f8eSopenharmony_ci */ 132061847f8eSopenharmony_ci layoutSync(width: number): void; 132161847f8eSopenharmony_ci 132261847f8eSopenharmony_ci /** 132361847f8eSopenharmony_ci * Calculates the positioning of all the glyphs. 132461847f8eSopenharmony_ci * @param { number } width - Control how wide the text is allowed to be. 132561847f8eSopenharmony_ci * @returns { Promise<void> } The promise returned by the function. 132661847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 132761847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 132861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 132961847f8eSopenharmony_ci * @since 14 133061847f8eSopenharmony_ci */ 133161847f8eSopenharmony_ci layout(width: number): Promise<void>; 133261847f8eSopenharmony_ci 133361847f8eSopenharmony_ci /** 133461847f8eSopenharmony_ci * Paint the laid out text onto the supplied canvas at (x, y). 133561847f8eSopenharmony_ci * @param { drawing.Canvas } canvas - Object 133661847f8eSopenharmony_ci * @param { number } x - Represents the X-axis position on the canvas. 133761847f8eSopenharmony_ci * @param { number } y - Represents the Y-axis position on the canvas. 133861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 133961847f8eSopenharmony_ci * @since 12 134061847f8eSopenharmony_ci */ 134161847f8eSopenharmony_ci paint(canvas: drawing.Canvas, x: number, y: number): void; 134261847f8eSopenharmony_ci 134361847f8eSopenharmony_ci /** 134461847f8eSopenharmony_ci * Draw the laid out text onto the supplied canvas along the path and offset. 134561847f8eSopenharmony_ci * @param { drawing.Canvas } canvas - Canvas used to carry the drawn content and drawing status. 134661847f8eSopenharmony_ci * @param { drawing.Path } path - Path used to determine the position of the text. 134761847f8eSopenharmony_ci * @param { number } hOffset - Horizontal offset along the path. 134861847f8eSopenharmony_ci * @param { number } vOffset - Vertical offset along the path. 134961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 135061847f8eSopenharmony_ci * @since 12 135161847f8eSopenharmony_ci */ 135261847f8eSopenharmony_ci paintOnPath(canvas: drawing.Canvas, path: drawing.Path, hOffset: number, vOffset: number): void; 135361847f8eSopenharmony_ci 135461847f8eSopenharmony_ci /** 135561847f8eSopenharmony_ci * Get max width of horizontal space this paragraph occupied. 135661847f8eSopenharmony_ci * @returns { number } Max width of horizontal space. 135761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 135861847f8eSopenharmony_ci * @since 12 135961847f8eSopenharmony_ci */ 136061847f8eSopenharmony_ci getMaxWidth(): number; 136161847f8eSopenharmony_ci 136261847f8eSopenharmony_ci /** 136361847f8eSopenharmony_ci * Get height of horizontal space this paragraph occupies. 136461847f8eSopenharmony_ci * @returns { number } Height of horizontal space this paragraph occupies. 136561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 136661847f8eSopenharmony_ci * @since 12 136761847f8eSopenharmony_ci */ 136861847f8eSopenharmony_ci getHeight(): number; 136961847f8eSopenharmony_ci 137061847f8eSopenharmony_ci /** 137161847f8eSopenharmony_ci * Get the longest line of horizontal space this paragraph occupies. 137261847f8eSopenharmony_ci * @returns { number } The longest line of horizontal space this paragraph occupies. 137361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 137461847f8eSopenharmony_ci * @since 12 137561847f8eSopenharmony_ci */ 137661847f8eSopenharmony_ci getLongestLine(): number; 137761847f8eSopenharmony_ci 137861847f8eSopenharmony_ci /** 137961847f8eSopenharmony_ci * Get the longest line of horizontal space this paragraph occupies, and this horizontal space contains the width 138061847f8eSopenharmony_ci * of indent. 138161847f8eSopenharmony_ci * @returns { number } The longest line with indent of horizontal space this paragraph occupies. 138261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 138361847f8eSopenharmony_ci * @since 13 138461847f8eSopenharmony_ci */ 138561847f8eSopenharmony_ci getLongestLineWithIndent(): number; 138661847f8eSopenharmony_ci 138761847f8eSopenharmony_ci /** 138861847f8eSopenharmony_ci * Get the min intrinsic width of horizontal space this paragraph occupies. 138961847f8eSopenharmony_ci * @returns { number } The min intrinsic width of horizontal space this paragraph occupies. 139061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 139161847f8eSopenharmony_ci * @since 12 139261847f8eSopenharmony_ci */ 139361847f8eSopenharmony_ci getMinIntrinsicWidth(): number; 139461847f8eSopenharmony_ci 139561847f8eSopenharmony_ci /** 139661847f8eSopenharmony_ci * Get the max intrinsic width. 139761847f8eSopenharmony_ci * @returns { number } Intrinsic Width. 139861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 139961847f8eSopenharmony_ci * @since 12 140061847f8eSopenharmony_ci */ 140161847f8eSopenharmony_ci getMaxIntrinsicWidth(): number; 140261847f8eSopenharmony_ci 140361847f8eSopenharmony_ci /** 140461847f8eSopenharmony_ci * Get the alphabetic baseline. 140561847f8eSopenharmony_ci * @returns { number } Alphabetic Baseline. 140661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 140761847f8eSopenharmony_ci * @since 12 140861847f8eSopenharmony_ci */ 140961847f8eSopenharmony_ci getAlphabeticBaseline(): number; 141061847f8eSopenharmony_ci 141161847f8eSopenharmony_ci /** 141261847f8eSopenharmony_ci * Get the ideographic baseline. 141361847f8eSopenharmony_ci * @returns { number } Ideographic Baseline. 141461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 141561847f8eSopenharmony_ci * @since 12 141661847f8eSopenharmony_ci */ 141761847f8eSopenharmony_ci getIdeographicBaseline(): number; 141861847f8eSopenharmony_ci 141961847f8eSopenharmony_ci /** 142061847f8eSopenharmony_ci * Get the rects for range. 142161847f8eSopenharmony_ci * @param { Range } range - The range to set. 142261847f8eSopenharmony_ci * @param { RectWidthStyle } widthStyle - Width style to set. 142361847f8eSopenharmony_ci * @param { RectHeightStyle } heightStyle - Height style to set. 142461847f8eSopenharmony_ci * @returns { Array<TextBox> } The rects for range. 142561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 142661847f8eSopenharmony_ci * @since 12 142761847f8eSopenharmony_ci */ 142861847f8eSopenharmony_ci getRectsForRange(range: Range, widthStyle: RectWidthStyle, heightStyle: RectHeightStyle): Array<TextBox>; 142961847f8eSopenharmony_ci 143061847f8eSopenharmony_ci /** 143161847f8eSopenharmony_ci * Get the rects for placeholders. 143261847f8eSopenharmony_ci * @returns { Array<TextBox> } The rects for placeholders. 143361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 143461847f8eSopenharmony_ci * @since 12 143561847f8eSopenharmony_ci */ 143661847f8eSopenharmony_ci getRectsForPlaceholders(): Array<TextBox>; 143761847f8eSopenharmony_ci 143861847f8eSopenharmony_ci /** 143961847f8eSopenharmony_ci * Get the glyph position at coordinate. 144061847f8eSopenharmony_ci * @param { number } x - the positionX of typography to set. 144161847f8eSopenharmony_ci * @param { number } y - the positionY of typography to set. 144261847f8eSopenharmony_ci * @returns { PositionWithAffinity } TextBlob object. 144361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 144461847f8eSopenharmony_ci * @since 12 144561847f8eSopenharmony_ci */ 144661847f8eSopenharmony_ci getGlyphPositionAtCoordinate(x: number, y: number): PositionWithAffinity; 144761847f8eSopenharmony_ci 144861847f8eSopenharmony_ci /** 144961847f8eSopenharmony_ci * Find the start and end position of the word containing the glyphs of the given offset. 145061847f8eSopenharmony_ci * @param { number } offset - offset value 145161847f8eSopenharmony_ci * @returns { Range } The range value returned to the caller. 145261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 145361847f8eSopenharmony_ci * @since 12 145461847f8eSopenharmony_ci */ 145561847f8eSopenharmony_ci getWordBoundary(offset: number): Range; 145661847f8eSopenharmony_ci 145761847f8eSopenharmony_ci /** 145861847f8eSopenharmony_ci * Get line count. 145961847f8eSopenharmony_ci * @returns { number } The line count value returned to the caller. 146061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 146161847f8eSopenharmony_ci * @since 12 146261847f8eSopenharmony_ci */ 146361847f8eSopenharmony_ci getLineCount(): number; 146461847f8eSopenharmony_ci 146561847f8eSopenharmony_ci /** 146661847f8eSopenharmony_ci * Get the line height of the specified line. 146761847f8eSopenharmony_ci * @param { number } line - line number 146861847f8eSopenharmony_ci * @returns { number } The line height value returned to the caller. 146961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 147061847f8eSopenharmony_ci * @since 12 147161847f8eSopenharmony_ci */ 147261847f8eSopenharmony_ci getLineHeight(line: number): number; 147361847f8eSopenharmony_ci 147461847f8eSopenharmony_ci /** 147561847f8eSopenharmony_ci * Get the line width of the specified line. 147661847f8eSopenharmony_ci * @param { number } line - line number 147761847f8eSopenharmony_ci * @returns { number } The line width value returned to the caller. 147861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 147961847f8eSopenharmony_ci * @since 12 148061847f8eSopenharmony_ci */ 148161847f8eSopenharmony_ci getLineWidth(line: number): number; 148261847f8eSopenharmony_ci 148361847f8eSopenharmony_ci /** 148461847f8eSopenharmony_ci * Return whether it exceed the maximum lines of typography. 148561847f8eSopenharmony_ci * @returns { boolean } The true indicates exceeding, the false indicates not exceeding. 148661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 148761847f8eSopenharmony_ci * @since 12 148861847f8eSopenharmony_ci */ 148961847f8eSopenharmony_ci didExceedMaxLines(): boolean; 149061847f8eSopenharmony_ci 149161847f8eSopenharmony_ci /** 149261847f8eSopenharmony_ci * Get the text lines of paragraph. 149361847f8eSopenharmony_ci * @returns { Array<TextLine> } the tuple of TextLine. 149461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 149561847f8eSopenharmony_ci * @since 12 149661847f8eSopenharmony_ci */ 149761847f8eSopenharmony_ci getTextLines(): Array<TextLine>; 149861847f8eSopenharmony_ci 149961847f8eSopenharmony_ci /** 150061847f8eSopenharmony_ci * Returns the visible text on the line (excluding a possible ellipsis). 150161847f8eSopenharmony_ci * @param { number } lineNumber - a line number 150261847f8eSopenharmony_ci * @param { boolean } includeSpaces - indicates if the whitespaces should be included 150361847f8eSopenharmony_ci * @returns { Range } The range of text. 150461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 150561847f8eSopenharmony_ci * @since 12 150661847f8eSopenharmony_ci */ 150761847f8eSopenharmony_ci getActualTextRange(lineNumber: number, includeSpaces: boolean): Range; 150861847f8eSopenharmony_ci 150961847f8eSopenharmony_ci /** 151061847f8eSopenharmony_ci * Returns the array of line metrics for a line of text. 151161847f8eSopenharmony_ci * @returns { Array<LineMetrics> } Array of line metrics. 151261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 151361847f8eSopenharmony_ci * @since 12 151461847f8eSopenharmony_ci */ 151561847f8eSopenharmony_ci getLineMetrics(): Array<LineMetrics>; 151661847f8eSopenharmony_ci 151761847f8eSopenharmony_ci /** 151861847f8eSopenharmony_ci * Returns line metrics info for the line. 151961847f8eSopenharmony_ci * @param { number } lineNumber - a line number 152061847f8eSopenharmony_ci * @returns { LineMetrics | undefined } line metrics. 152161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 152261847f8eSopenharmony_ci * @since 12 152361847f8eSopenharmony_ci */ 152461847f8eSopenharmony_ci getLineMetrics(lineNumber: number): LineMetrics | undefined; 152561847f8eSopenharmony_ci } 152661847f8eSopenharmony_ci 152761847f8eSopenharmony_ci /** 152861847f8eSopenharmony_ci * Provides the abilities to typeset by line. 152961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 153061847f8eSopenharmony_ci * @since 14 153161847f8eSopenharmony_ci */ 153261847f8eSopenharmony_ci class LineTypeset { 153361847f8eSopenharmony_ci /** 153461847f8eSopenharmony_ci * Calculate the line breakpoint based on the width provided. 153561847f8eSopenharmony_ci * @param { number } startIndex - The starting point for the line-break calculations. 153661847f8eSopenharmony_ci * @param { number } width - The requested line-break width. 153761847f8eSopenharmony_ci * @returns { number } A count of the characters from startIndex that would cause the line break. 153861847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 153961847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 154061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 154161847f8eSopenharmony_ci * @since 14 154261847f8eSopenharmony_ci */ 154361847f8eSopenharmony_ci getLineBreak(startIndex: number, width: number): number; 154461847f8eSopenharmony_ci 154561847f8eSopenharmony_ci /** 154661847f8eSopenharmony_ci * Creates a text line object based on the text range provided. 154761847f8eSopenharmony_ci * @param { number } startIndex - The starting index of the text range. 154861847f8eSopenharmony_ci * @param { number } count - The characters count of the text range. 154961847f8eSopenharmony_ci * @returns { TextLine } Text line object. 155061847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 155161847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 155261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 155361847f8eSopenharmony_ci * @since 14 155461847f8eSopenharmony_ci */ 155561847f8eSopenharmony_ci createLine(startIndex: number, count: number): TextLine; 155661847f8eSopenharmony_ci } 155761847f8eSopenharmony_ci 155861847f8eSopenharmony_ci /** 155961847f8eSopenharmony_ci * Box that contain text. 156061847f8eSopenharmony_ci * @typedef TextBox 156161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 156261847f8eSopenharmony_ci * @since 12 156361847f8eSopenharmony_ci */ 156461847f8eSopenharmony_ci interface TextBox{ 156561847f8eSopenharmony_ci /** 156661847f8eSopenharmony_ci * Rect of text box. 156761847f8eSopenharmony_ci * @type { common2D.Rect } 156861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 156961847f8eSopenharmony_ci * @since 12 157061847f8eSopenharmony_ci */ 157161847f8eSopenharmony_ci rect: common2D.Rect; 157261847f8eSopenharmony_ci 157361847f8eSopenharmony_ci /** 157461847f8eSopenharmony_ci * Text direction. 157561847f8eSopenharmony_ci * @type { TextDirection } 157661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 157761847f8eSopenharmony_ci * @since 12 157861847f8eSopenharmony_ci */ 157961847f8eSopenharmony_ci direction: TextDirection; 158061847f8eSopenharmony_ci } 158161847f8eSopenharmony_ci 158261847f8eSopenharmony_ci /** 158361847f8eSopenharmony_ci * Position and affinity. 158461847f8eSopenharmony_ci * @typedef PositionWithAffinity 158561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 158661847f8eSopenharmony_ci * @since 12 158761847f8eSopenharmony_ci */ 158861847f8eSopenharmony_ci interface PositionWithAffinity { 158961847f8eSopenharmony_ci /** 159061847f8eSopenharmony_ci * Position of text. 159161847f8eSopenharmony_ci * @type { number } 159261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 159361847f8eSopenharmony_ci * @since 12 159461847f8eSopenharmony_ci */ 159561847f8eSopenharmony_ci position: number; 159661847f8eSopenharmony_ci 159761847f8eSopenharmony_ci /** 159861847f8eSopenharmony_ci * Affinity of text. 159961847f8eSopenharmony_ci * @type { Affinity } 160061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 160161847f8eSopenharmony_ci * @since 12 160261847f8eSopenharmony_ci */ 160361847f8eSopenharmony_ci affinity: Affinity; 160461847f8eSopenharmony_ci } 160561847f8eSopenharmony_ci 160661847f8eSopenharmony_ci /** 160761847f8eSopenharmony_ci * Enumerates rect width style. 160861847f8eSopenharmony_ci * @enum { number } 160961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 161061847f8eSopenharmony_ci * @since 12 161161847f8eSopenharmony_ci */ 161261847f8eSopenharmony_ci enum RectWidthStyle { 161361847f8eSopenharmony_ci /** 161461847f8eSopenharmony_ci * Tight width. 161561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 161661847f8eSopenharmony_ci * @since 12 161761847f8eSopenharmony_ci */ 161861847f8eSopenharmony_ci TIGHT, 161961847f8eSopenharmony_ci 162061847f8eSopenharmony_ci /** 162161847f8eSopenharmony_ci * Max width. 162261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 162361847f8eSopenharmony_ci * @since 12 162461847f8eSopenharmony_ci */ 162561847f8eSopenharmony_ci MAX, 162661847f8eSopenharmony_ci } 162761847f8eSopenharmony_ci 162861847f8eSopenharmony_ci /** 162961847f8eSopenharmony_ci * Enumerates rect height style. 163061847f8eSopenharmony_ci * @enum { number } 163161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 163261847f8eSopenharmony_ci * @since 12 163361847f8eSopenharmony_ci */ 163461847f8eSopenharmony_ci enum RectHeightStyle { 163561847f8eSopenharmony_ci /** 163661847f8eSopenharmony_ci * Provide tight bounding boxes that fit heights per run. 163761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 163861847f8eSopenharmony_ci * @since 12 163961847f8eSopenharmony_ci */ 164061847f8eSopenharmony_ci TIGHT, 164161847f8eSopenharmony_ci 164261847f8eSopenharmony_ci /** 164361847f8eSopenharmony_ci * The height of the boxes will be the maximum height of all runs in the line. All rects in the same 164461847f8eSopenharmony_ci * line will be the same height. 164561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 164661847f8eSopenharmony_ci * @since 12 164761847f8eSopenharmony_ci */ 164861847f8eSopenharmony_ci MAX, 164961847f8eSopenharmony_ci 165061847f8eSopenharmony_ci /** 165161847f8eSopenharmony_ci * The top and bottom of each rect will cover half of the space above and half of the space below the line. 165261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 165361847f8eSopenharmony_ci * @since 12 165461847f8eSopenharmony_ci */ 165561847f8eSopenharmony_ci INCLUDE_LINE_SPACE_MIDDLE, 165661847f8eSopenharmony_ci 165761847f8eSopenharmony_ci /** 165861847f8eSopenharmony_ci * The line spacing will be added to the top of the rect. 165961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 166061847f8eSopenharmony_ci * @since 12 166161847f8eSopenharmony_ci */ 166261847f8eSopenharmony_ci INCLUDE_LINE_SPACE_TOP, 166361847f8eSopenharmony_ci 166461847f8eSopenharmony_ci /** 166561847f8eSopenharmony_ci * The line spacing will be added to the bottom of the rect. 166661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 166761847f8eSopenharmony_ci * @since 12 166861847f8eSopenharmony_ci */ 166961847f8eSopenharmony_ci INCLUDE_LINE_SPACE_BOTTOM, 167061847f8eSopenharmony_ci 167161847f8eSopenharmony_ci /** 167261847f8eSopenharmony_ci * The height of the boxes will be calculated by text strut. 167361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 167461847f8eSopenharmony_ci * @since 12 167561847f8eSopenharmony_ci */ 167661847f8eSopenharmony_ci STRUT, 167761847f8eSopenharmony_ci } 167861847f8eSopenharmony_ci 167961847f8eSopenharmony_ci /** 168061847f8eSopenharmony_ci * Enumerates text affinity.When a selection range involves line breaks or other special characters, the 168161847f8eSopenharmony_ci * affinity determines which side of the characters the start and end of the selection range should be 168261847f8eSopenharmony_ci * closer to. 168361847f8eSopenharmony_ci * @enum { number } 168461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 168561847f8eSopenharmony_ci * @since 12 168661847f8eSopenharmony_ci */ 168761847f8eSopenharmony_ci enum Affinity { 168861847f8eSopenharmony_ci /** 168961847f8eSopenharmony_ci * The position has affinity for the upstream side of the text position. 169061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 169161847f8eSopenharmony_ci * @since 12 169261847f8eSopenharmony_ci */ 169361847f8eSopenharmony_ci 169461847f8eSopenharmony_ci UPSTREAM, 169561847f8eSopenharmony_ci /** 169661847f8eSopenharmony_ci * The position has affinity for the downstream side of the text position. 169761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 169861847f8eSopenharmony_ci * @since 12 169961847f8eSopenharmony_ci */ 170061847f8eSopenharmony_ci DOWNSTREAM, 170161847f8eSopenharmony_ci } 170261847f8eSopenharmony_ci 170361847f8eSopenharmony_ci /** 170461847f8eSopenharmony_ci * Builds a Paragraph containing text with the given styling information. 170561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 170661847f8eSopenharmony_ci * @since 12 170761847f8eSopenharmony_ci */ 170861847f8eSopenharmony_ci class ParagraphBuilder { 170961847f8eSopenharmony_ci /** 171061847f8eSopenharmony_ci * Constructor ParagraphBuilder. 171161847f8eSopenharmony_ci * @param { ParagraphStyle } paragraphStyle - Paragraph style {@link ParagraphStyle} 171261847f8eSopenharmony_ci * @param { FontCollection } fontCollection - Font collection {@link FontCollection} 171361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 171461847f8eSopenharmony_ci * @since 12 171561847f8eSopenharmony_ci */ 171661847f8eSopenharmony_ci constructor(paragraphStyle: ParagraphStyle, fontCollection: FontCollection); 171761847f8eSopenharmony_ci 171861847f8eSopenharmony_ci /** 171961847f8eSopenharmony_ci * Push a style to the stack. 172061847f8eSopenharmony_ci * @param { TextStyle } textStyle - Text style {@link TextStyle} 172161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 172261847f8eSopenharmony_ci * @since 12 172361847f8eSopenharmony_ci */ 172461847f8eSopenharmony_ci pushStyle(textStyle: TextStyle): void; 172561847f8eSopenharmony_ci 172661847f8eSopenharmony_ci /** 172761847f8eSopenharmony_ci * Remove a style from the stack. 172861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 172961847f8eSopenharmony_ci * @since 12 173061847f8eSopenharmony_ci */ 173161847f8eSopenharmony_ci popStyle(): void; 173261847f8eSopenharmony_ci 173361847f8eSopenharmony_ci /** 173461847f8eSopenharmony_ci * Adds text to the builder. 173561847f8eSopenharmony_ci * @param { string } text - Text string 173661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 173761847f8eSopenharmony_ci * @since 12 173861847f8eSopenharmony_ci */ 173961847f8eSopenharmony_ci addText(text: string): void; 174061847f8eSopenharmony_ci 174161847f8eSopenharmony_ci /** 174261847f8eSopenharmony_ci * Add placeholder. 174361847f8eSopenharmony_ci * @param { PlaceholderSpan } placeholderSpan - Placeholder Span {@link PlaceholderSpan} 174461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 174561847f8eSopenharmony_ci * @since 12 174661847f8eSopenharmony_ci */ 174761847f8eSopenharmony_ci addPlaceholder(placeholderSpan: PlaceholderSpan): void; 174861847f8eSopenharmony_ci 174961847f8eSopenharmony_ci /** 175061847f8eSopenharmony_ci * Create paragraph object. 175161847f8eSopenharmony_ci * @returns { Paragraph } The paragraph value returned to the caller. 175261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 175361847f8eSopenharmony_ci * @since 12 175461847f8eSopenharmony_ci */ 175561847f8eSopenharmony_ci build(): Paragraph; 175661847f8eSopenharmony_ci 175761847f8eSopenharmony_ci /** 175861847f8eSopenharmony_ci * Create LineTypeset object. 175961847f8eSopenharmony_ci * @returns { LineTypeset } The LineTypeset value returned to the caller. 176061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 176161847f8eSopenharmony_ci * @since 14 176261847f8eSopenharmony_ci */ 176361847f8eSopenharmony_ci buildLineTypeset(): LineTypeset; 176461847f8eSopenharmony_ci 176561847f8eSopenharmony_ci /** 176661847f8eSopenharmony_ci * Add symbolId. 176761847f8eSopenharmony_ci * @param { number } symbolId - Symbol Id 176861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 176961847f8eSopenharmony_ci * @since 12 177061847f8eSopenharmony_ci */ 177161847f8eSopenharmony_ci addSymbol(symbolId: number): void; 177261847f8eSopenharmony_ci } 177361847f8eSopenharmony_ci 177461847f8eSopenharmony_ci /** 177561847f8eSopenharmony_ci * Provides the definition of the typographic bounds. 177661847f8eSopenharmony_ci * @typedef TypographicBounds 177761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 177861847f8eSopenharmony_ci * @since 14 177961847f8eSopenharmony_ci */ 178061847f8eSopenharmony_ci interface TypographicBounds { 178161847f8eSopenharmony_ci /** 178261847f8eSopenharmony_ci * Distance Retained Above Baseline. 178361847f8eSopenharmony_ci * @type { number } 178461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 178561847f8eSopenharmony_ci * @since 14 178661847f8eSopenharmony_ci */ 178761847f8eSopenharmony_ci ascent: number; 178861847f8eSopenharmony_ci 178961847f8eSopenharmony_ci /** 179061847f8eSopenharmony_ci * The distance that remains below the baseline. 179161847f8eSopenharmony_ci * @type { number } 179261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 179361847f8eSopenharmony_ci * @since 14 179461847f8eSopenharmony_ci */ 179561847f8eSopenharmony_ci descent: number; 179661847f8eSopenharmony_ci 179761847f8eSopenharmony_ci /** 179861847f8eSopenharmony_ci * Line Spacing. 179961847f8eSopenharmony_ci * @type { number } 180061847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 180161847f8eSopenharmony_ci * @since 14 180261847f8eSopenharmony_ci */ 180361847f8eSopenharmony_ci leading: number; 180461847f8eSopenharmony_ci 180561847f8eSopenharmony_ci /** 180661847f8eSopenharmony_ci * The total width of the typesetting border. 180761847f8eSopenharmony_ci * @type { number } 180861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 180961847f8eSopenharmony_ci * @since 14 181061847f8eSopenharmony_ci */ 181161847f8eSopenharmony_ci width: number; 181261847f8eSopenharmony_ci } 181361847f8eSopenharmony_ci 181461847f8eSopenharmony_ci /** 181561847f8eSopenharmony_ci * Offset callback function of caret. 181661847f8eSopenharmony_ci * 181761847f8eSopenharmony_ci * @typedef { function } CaretOffsetsCallback 181861847f8eSopenharmony_ci * @param { number } offset - Character offset is traversed as an argument to the callback function. 181961847f8eSopenharmony_ci * @param { number } index - Character index is traversed as an argument to the callback function. 182061847f8eSopenharmony_ci * @param { boolean } leadingEdge - Whether the current offset is at the character front, as an argument to the 182161847f8eSopenharmony_ci * callback function. 182261847f8eSopenharmony_ci * @returns { boolean } The return value of the user-defined callback function. If false is returned, the traversal 182361847f8eSopenharmony_ci * continues. If true is returned, the traversal stops. 182461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 182561847f8eSopenharmony_ci * @since 14 182661847f8eSopenharmony_ci */ 182761847f8eSopenharmony_ci type CaretOffsetsCallback = (offset: number, index: number, leadingEdge: boolean) => boolean; 182861847f8eSopenharmony_ci 182961847f8eSopenharmony_ci /** 183061847f8eSopenharmony_ci * The structure of text line that provides the basis of paragraph for graphics. 183161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 183261847f8eSopenharmony_ci * @since 12 183361847f8eSopenharmony_ci */ 183461847f8eSopenharmony_ci class TextLine { 183561847f8eSopenharmony_ci /** 183661847f8eSopenharmony_ci * Get the count of glyphs. 183761847f8eSopenharmony_ci * @returns { number } The counts of glyphs. 183861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 183961847f8eSopenharmony_ci * @since 12 184061847f8eSopenharmony_ci */ 184161847f8eSopenharmony_ci getGlyphCount(): number; 184261847f8eSopenharmony_ci 184361847f8eSopenharmony_ci /** 184461847f8eSopenharmony_ci * Get the range of text line. 184561847f8eSopenharmony_ci * @returns { Range } The range of text. 184661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 184761847f8eSopenharmony_ci * @since 12 184861847f8eSopenharmony_ci */ 184961847f8eSopenharmony_ci getTextRange(): Range; 185061847f8eSopenharmony_ci 185161847f8eSopenharmony_ci /** 185261847f8eSopenharmony_ci * Get the glyph runs of text line. 185361847f8eSopenharmony_ci * @returns { Array<Run> } The tuple of glyph runs of text. 185461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 185561847f8eSopenharmony_ci * @since 12 185661847f8eSopenharmony_ci */ 185761847f8eSopenharmony_ci getGlyphRuns(): Array<Run>; 185861847f8eSopenharmony_ci 185961847f8eSopenharmony_ci /** 186061847f8eSopenharmony_ci * Paint the range of text line. 186161847f8eSopenharmony_ci * @param { drawing.Canvas } canvas - Canvas. 186261847f8eSopenharmony_ci * @param { number } x - Represents the X-axis position on the canvas. 186361847f8eSopenharmony_ci * @param { number } y - Represents the Y-axis position on the canvas. 186461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 186561847f8eSopenharmony_ci * @since 12 186661847f8eSopenharmony_ci */ 186761847f8eSopenharmony_ci paint(canvas: drawing.Canvas, x: number, y: number): void; 186861847f8eSopenharmony_ci 186961847f8eSopenharmony_ci /** 187061847f8eSopenharmony_ci * Creates a truncated text line object. 187161847f8eSopenharmony_ci * @param { number } width - The width of the truncated line. 187261847f8eSopenharmony_ci * @param { EllipsisMode } ellipsisMode - Text ellipsis mode, EllipsisMode:MIDDLE is not supported. 187361847f8eSopenharmony_ci * @param { string } ellipsis - Text ellipsis. 187461847f8eSopenharmony_ci * @returns { TextLine } Truncated text line object. 187561847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 187661847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 187761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 187861847f8eSopenharmony_ci * @since 14 187961847f8eSopenharmony_ci */ 188061847f8eSopenharmony_ci createTruncatedLine(width: number, ellipsisMode: EllipsisMode, ellipsis: string): TextLine; 188161847f8eSopenharmony_ci 188261847f8eSopenharmony_ci /** 188361847f8eSopenharmony_ci * Gets the text line typographic bounds. 188461847f8eSopenharmony_ci * @returns { TypographicBounds } The text line of typographic bounds. 188561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 188661847f8eSopenharmony_ci * @since 14 188761847f8eSopenharmony_ci */ 188861847f8eSopenharmony_ci getTypographicBounds(): TypographicBounds; 188961847f8eSopenharmony_ci 189061847f8eSopenharmony_ci /** 189161847f8eSopenharmony_ci * Gets the text line image bounds. 189261847f8eSopenharmony_ci * @returns { common2D.Rect } Rect of text line. 189361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 189461847f8eSopenharmony_ci * @since 14 189561847f8eSopenharmony_ci */ 189661847f8eSopenharmony_ci getImageBounds(): common2D.Rect; 189761847f8eSopenharmony_ci 189861847f8eSopenharmony_ci /** 189961847f8eSopenharmony_ci * Gets the tail space width. 190061847f8eSopenharmony_ci * @returns { number } The tail space width. 190161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 190261847f8eSopenharmony_ci * @since 14 190361847f8eSopenharmony_ci */ 190461847f8eSopenharmony_ci getTrailingSpaceWidth(): number; 190561847f8eSopenharmony_ci 190661847f8eSopenharmony_ci /** 190761847f8eSopenharmony_ci * Gets the string index of the given position. 190861847f8eSopenharmony_ci * @param { common2D.Point } point - The given position. 190961847f8eSopenharmony_ci * @returns { number } The string index for a given position. 191061847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 191161847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 191261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 191361847f8eSopenharmony_ci * @since 14 191461847f8eSopenharmony_ci */ 191561847f8eSopenharmony_ci getStringIndexForPosition(point: common2D.Point): number; 191661847f8eSopenharmony_ci 191761847f8eSopenharmony_ci /** 191861847f8eSopenharmony_ci * Gets the offset of the given string index. 191961847f8eSopenharmony_ci * @param { number } index - The given string index. 192061847f8eSopenharmony_ci * @returns { number } The offset for a given string index. 192161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 192261847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 192361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 192461847f8eSopenharmony_ci * @since 14 192561847f8eSopenharmony_ci */ 192661847f8eSopenharmony_ci getOffsetForStringIndex(index: number): number; 192761847f8eSopenharmony_ci 192861847f8eSopenharmony_ci /** 192961847f8eSopenharmony_ci * Enumerate caret offset and index in text lines. 193061847f8eSopenharmony_ci * @param { CaretOffsetsCallback } callback - User-defined callback functions. 193161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 193261847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 193361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 193461847f8eSopenharmony_ci * @since 14 193561847f8eSopenharmony_ci */ 193661847f8eSopenharmony_ci enumerateCaretOffsets(callback: CaretOffsetsCallback): void; 193761847f8eSopenharmony_ci 193861847f8eSopenharmony_ci /** 193961847f8eSopenharmony_ci * Gets the text offset based on the given alignment factor and alignment width. 194061847f8eSopenharmony_ci * @param { number } alignmentFactor - The coefficients that text needs to be aligned. 194161847f8eSopenharmony_ci * Less than or equal to 0 is left justified, 0.5 is center justified, 194261847f8eSopenharmony_ci * and greater than or equal to 1 is right justified. 194361847f8eSopenharmony_ci * @param { number } alignmentWidth - The width of the text to be aligned. 194461847f8eSopenharmony_ci * Returns 0 if it is less than the actual width of the text. 194561847f8eSopenharmony_ci * @returns { number } The offset of the aligned text. 194661847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 194761847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 194861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 194961847f8eSopenharmony_ci * @since 14 195061847f8eSopenharmony_ci */ 195161847f8eSopenharmony_ci getAlignmentOffset(alignmentFactor: number, alignmentWidth: number): number; 195261847f8eSopenharmony_ci } 195361847f8eSopenharmony_ci 195461847f8eSopenharmony_ci /** 195561847f8eSopenharmony_ci * Independent rendering of text layout. 195661847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 195761847f8eSopenharmony_ci * @since 12 195861847f8eSopenharmony_ci */ 195961847f8eSopenharmony_ci class Run { 196061847f8eSopenharmony_ci /** 196161847f8eSopenharmony_ci * Gets the number of glyph. 196261847f8eSopenharmony_ci * @returns { number } The number of glyph. 196361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 196461847f8eSopenharmony_ci * @since 12 196561847f8eSopenharmony_ci */ 196661847f8eSopenharmony_ci getGlyphCount(): number; 196761847f8eSopenharmony_ci 196861847f8eSopenharmony_ci /** 196961847f8eSopenharmony_ci * Gets the glyph identifier for each character. 197061847f8eSopenharmony_ci * @returns { Array<number> } Glyph identifier. 197161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 197261847f8eSopenharmony_ci * @since 12 197361847f8eSopenharmony_ci */ 197461847f8eSopenharmony_ci getGlyphs(): Array<number>; 197561847f8eSopenharmony_ci 197661847f8eSopenharmony_ci /** 197761847f8eSopenharmony_ci * Gets the range glyph identifier for each character. 197861847f8eSopenharmony_ci * @param { Range } range of run, range.start is the starting index of the run block, starting from 0. 197961847f8eSopenharmony_ci * range.end is run length, if range.start and range.end are set to 0, then get all of the current run. 198061847f8eSopenharmony_ci * @returns { Array<number> } Glyph identifier or undefined. 198161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 198261847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 198361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 198461847f8eSopenharmony_ci * @since 14 198561847f8eSopenharmony_ci */ 198661847f8eSopenharmony_ci getGlyphs(range: Range): Array<number>; 198761847f8eSopenharmony_ci 198861847f8eSopenharmony_ci /** 198961847f8eSopenharmony_ci * Gets the font position offset. 199061847f8eSopenharmony_ci * @returns { Array<common2D.Point> } The position of the font in the layout. 199161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 199261847f8eSopenharmony_ci * @since 12 199361847f8eSopenharmony_ci */ 199461847f8eSopenharmony_ci getPositions(): Array<common2D.Point>; 199561847f8eSopenharmony_ci 199661847f8eSopenharmony_ci /** 199761847f8eSopenharmony_ci * Gets the range font position offset. 199861847f8eSopenharmony_ci * @param { Range } range of run, range.start is the starting index of the run block, starting from 0. 199961847f8eSopenharmony_ci * range.end is run length, if range.start and range.end are set to 0, then get all of the current run. 200061847f8eSopenharmony_ci * @returns { Array<common2D.Point> } The position of the font in the layout or undefined. 200161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 200261847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 200361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 200461847f8eSopenharmony_ci * @since 14 200561847f8eSopenharmony_ci */ 200661847f8eSopenharmony_ci getPositions(range: Range): Array<common2D.Point>; 200761847f8eSopenharmony_ci 200861847f8eSopenharmony_ci /** 200961847f8eSopenharmony_ci * Gets the font position offset array. 201061847f8eSopenharmony_ci * @returns { Array<common2D.Point> } The position offset of the font in the layout. 201161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 201261847f8eSopenharmony_ci * @since 12 201361847f8eSopenharmony_ci */ 201461847f8eSopenharmony_ci getOffsets(): Array<common2D.Point>; 201561847f8eSopenharmony_ci 201661847f8eSopenharmony_ci /** 201761847f8eSopenharmony_ci * Gets the font object instance. 201861847f8eSopenharmony_ci * @returns { drawing.Font } The font object instance. 201961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 202061847f8eSopenharmony_ci * @since 12 202161847f8eSopenharmony_ci */ 202261847f8eSopenharmony_ci getFont(): drawing.Font; 202361847f8eSopenharmony_ci 202461847f8eSopenharmony_ci /** 202561847f8eSopenharmony_ci * Paint the laid out text onto the supplied canvas at (x, y). 202661847f8eSopenharmony_ci * @param { drawing.Canvas } canvas - Object. 202761847f8eSopenharmony_ci * @param { number } x - Represents the X-axis position on the canvas. 202861847f8eSopenharmony_ci * @param { number } y - Represents the Y-axis position on the canvas. 202961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 203061847f8eSopenharmony_ci * @since 12 203161847f8eSopenharmony_ci */ 203261847f8eSopenharmony_ci paint(canvas: drawing.Canvas, x: number, y: number): void; 203361847f8eSopenharmony_ci 203461847f8eSopenharmony_ci /** 203561847f8eSopenharmony_ci * Gets the range of run glyph indices, the offset of the indices relative to the entire paragraph. 203661847f8eSopenharmony_ci * @param { Range } range of run, range.start is the starting index of the run block, starting from 0. 203761847f8eSopenharmony_ci * range.end is run length, if range.start range.and end are set to 0, then get all of the current run. 203861847f8eSopenharmony_ci * @returns { Array<number> } The glyph indices or undefined. 203961847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 204061847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 204161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 204261847f8eSopenharmony_ci * @since 14 204361847f8eSopenharmony_ci */ 204461847f8eSopenharmony_ci getStringIndices(range?: Range): Array<number>; 204561847f8eSopenharmony_ci 204661847f8eSopenharmony_ci /** 204761847f8eSopenharmony_ci * Gets the run glyph location and length. 204861847f8eSopenharmony_ci * @returns { Range } The run of glyph location and length, Range.start is location, Range.end is length. 204961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 205061847f8eSopenharmony_ci * @since 14 205161847f8eSopenharmony_ci */ 205261847f8eSopenharmony_ci getStringRange(): Range; 205361847f8eSopenharmony_ci 205461847f8eSopenharmony_ci /** 205561847f8eSopenharmony_ci * Gets the run typographic bounds. 205661847f8eSopenharmony_ci * @returns { TypographicBounds } The run of typographic bounds. 205761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 205861847f8eSopenharmony_ci * @since 14 205961847f8eSopenharmony_ci */ 206061847f8eSopenharmony_ci getTypographicBounds(): TypographicBounds; 206161847f8eSopenharmony_ci 206261847f8eSopenharmony_ci /** 206361847f8eSopenharmony_ci * Gets the run image bounds. 206461847f8eSopenharmony_ci * @returns { common2D.Rect } The run rect bounds. 206561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 206661847f8eSopenharmony_ci * @since 14 206761847f8eSopenharmony_ci */ 206861847f8eSopenharmony_ci getImageBounds(): common2D.Rect; 206961847f8eSopenharmony_ci } 207061847f8eSopenharmony_ci 207161847f8eSopenharmony_ci /** 207261847f8eSopenharmony_ci * Describes the layout information and metrics for a continuous piece of text (a run) in a line of text. 207361847f8eSopenharmony_ci * @typedef RunMetrics 207461847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 207561847f8eSopenharmony_ci * @since 12 207661847f8eSopenharmony_ci */ 207761847f8eSopenharmony_ci interface RunMetrics { 207861847f8eSopenharmony_ci /** 207961847f8eSopenharmony_ci * The metrics of an Font. 208061847f8eSopenharmony_ci * @type { TextStyle } 208161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 208261847f8eSopenharmony_ci * @since 12 208361847f8eSopenharmony_ci */ 208461847f8eSopenharmony_ci textStyle: TextStyle; 208561847f8eSopenharmony_ci 208661847f8eSopenharmony_ci /** 208761847f8eSopenharmony_ci * Describes text style. 208861847f8eSopenharmony_ci * @type { drawing.FontMetrics } 208961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 209061847f8eSopenharmony_ci * @since 12 209161847f8eSopenharmony_ci */ 209261847f8eSopenharmony_ci fontMetrics: drawing.FontMetrics; 209361847f8eSopenharmony_ci } 209461847f8eSopenharmony_ci 209561847f8eSopenharmony_ci /** 209661847f8eSopenharmony_ci * Describes the metric information for a line of text in a text layout. 209761847f8eSopenharmony_ci * @typedef LineMetrics 209861847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 209961847f8eSopenharmony_ci * @since 12 210061847f8eSopenharmony_ci */ 210161847f8eSopenharmony_ci interface LineMetrics { 210261847f8eSopenharmony_ci /** 210361847f8eSopenharmony_ci * The indexes in the text buffer the line begins. 210461847f8eSopenharmony_ci * @type { number } 210561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 210661847f8eSopenharmony_ci * @since 12 210761847f8eSopenharmony_ci */ 210861847f8eSopenharmony_ci startIndex: number; 210961847f8eSopenharmony_ci 211061847f8eSopenharmony_ci /** 211161847f8eSopenharmony_ci * The indexes in the text buffer the line ends. 211261847f8eSopenharmony_ci * @type { number } 211361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 211461847f8eSopenharmony_ci * @since 12 211561847f8eSopenharmony_ci */ 211661847f8eSopenharmony_ci endIndex: number; 211761847f8eSopenharmony_ci 211861847f8eSopenharmony_ci /** 211961847f8eSopenharmony_ci * The height of the text rise, the distance from the baseline to the top of the character. 212061847f8eSopenharmony_ci * @type { number } 212161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 212261847f8eSopenharmony_ci * @since 12 212361847f8eSopenharmony_ci */ 212461847f8eSopenharmony_ci ascent: number; 212561847f8eSopenharmony_ci 212661847f8eSopenharmony_ci /** 212761847f8eSopenharmony_ci * The height of the text drop, the distance from the baseline to the bottom of the character. 212861847f8eSopenharmony_ci * @type { number } 212961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 213061847f8eSopenharmony_ci * @since 12 213161847f8eSopenharmony_ci */ 213261847f8eSopenharmony_ci descent: number; 213361847f8eSopenharmony_ci 213461847f8eSopenharmony_ci /** 213561847f8eSopenharmony_ci * The height of the current line is `round(ascent + descent)`. 213661847f8eSopenharmony_ci * @type { number } 213761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 213861847f8eSopenharmony_ci * @since 12 213961847f8eSopenharmony_ci */ 214061847f8eSopenharmony_ci height: number; 214161847f8eSopenharmony_ci 214261847f8eSopenharmony_ci /** 214361847f8eSopenharmony_ci * Width of the line. 214461847f8eSopenharmony_ci * @type { number } 214561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 214661847f8eSopenharmony_ci * @since 12 214761847f8eSopenharmony_ci */ 214861847f8eSopenharmony_ci width: number; 214961847f8eSopenharmony_ci 215061847f8eSopenharmony_ci /** 215161847f8eSopenharmony_ci * The left edge of the line. The right edge can be obtained with `left + width`. 215261847f8eSopenharmony_ci * @type { number } 215361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 215461847f8eSopenharmony_ci * @since 12 215561847f8eSopenharmony_ci */ 215661847f8eSopenharmony_ci left: number; 215761847f8eSopenharmony_ci 215861847f8eSopenharmony_ci /** 215961847f8eSopenharmony_ci * The y position of the baseline for this line from the top of the paragraph. 216061847f8eSopenharmony_ci * @type { number } 216161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 216261847f8eSopenharmony_ci * @since 12 216361847f8eSopenharmony_ci */ 216461847f8eSopenharmony_ci baseline: number; 216561847f8eSopenharmony_ci 216661847f8eSopenharmony_ci /** 216761847f8eSopenharmony_ci * Zero indexed line number. 216861847f8eSopenharmony_ci * @type { number } 216961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 217061847f8eSopenharmony_ci * @since 12 217161847f8eSopenharmony_ci */ 217261847f8eSopenharmony_ci lineNumber: number; 217361847f8eSopenharmony_ci 217461847f8eSopenharmony_ci /** 217561847f8eSopenharmony_ci * Height from the top. 217661847f8eSopenharmony_ci * @type { number } 217761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 217861847f8eSopenharmony_ci * @since 12 217961847f8eSopenharmony_ci */ 218061847f8eSopenharmony_ci topHeight: number; 218161847f8eSopenharmony_ci 218261847f8eSopenharmony_ci /** 218361847f8eSopenharmony_ci * Mapping between text index ranges and the FontMetrics associated with 218461847f8eSopenharmony_ci * them. The first run will be keyed under start_index. The metrics here. 218561847f8eSopenharmony_ci * are before layout and are the base values we calculate from. 218661847f8eSopenharmony_ci * @type { Map<number, RunMetrics> } 218761847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 218861847f8eSopenharmony_ci * @since 12 218961847f8eSopenharmony_ci */ 219061847f8eSopenharmony_ci runMetrics: Map<number, RunMetrics>; 219161847f8eSopenharmony_ci } 219261847f8eSopenharmony_ci 219361847f8eSopenharmony_ci /** 219461847f8eSopenharmony_ci * Obtain the corresponding font full names array based on the font type. 219561847f8eSopenharmony_ci * @param { SystemFontType } fontType - System font type. 219661847f8eSopenharmony_ci * @returns { Promise<Array<string>> } An array of font full names. 219761847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 219861847f8eSopenharmony_ci * <br>2. Incorrect parameter types; 3. Parameter verification failed. 219961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 220061847f8eSopenharmony_ci * @since 14 220161847f8eSopenharmony_ci */ 220261847f8eSopenharmony_ci function getSystemFontFullNamesByType(fontType: SystemFontType): Promise<Array<string>>; 220361847f8eSopenharmony_ci 220461847f8eSopenharmony_ci /** 220561847f8eSopenharmony_ci * Get font details according to the font full name and the font type, supporting generic fonts, stylish fonts, and 220661847f8eSopenharmony_ci * installed fonts. 220761847f8eSopenharmony_ci * @param { string } fullName - Font full name. 220861847f8eSopenharmony_ci * @param { SystemFontType } fontType - System font type. 220961847f8eSopenharmony_ci * @returns { Promise<FontDescriptor> } Returns the font descriptor. 221061847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 221161847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 221261847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 221361847f8eSopenharmony_ci * @since 14 221461847f8eSopenharmony_ci */ 221561847f8eSopenharmony_ci function getFontDescriptorByFullName(fullName: string, fontType: SystemFontType): Promise<FontDescriptor>; 221661847f8eSopenharmony_ci 221761847f8eSopenharmony_ci /** 221861847f8eSopenharmony_ci * Obtain all system font descriptive symbols that match the specified font descriptor. 221961847f8eSopenharmony_ci * @param { FontDescriptor } desc - Custom font descriptor, where the 'path' fields are not 222061847f8eSopenharmony_ci * considered as valid matching values. If all fields are default values, get all font descriptors. 222161847f8eSopenharmony_ci * @returns { Promise<Array<FontDescriptor>> } List of font descriptors, and an empty array will be returned 222261847f8eSopenharmony_ci * if the matching fails. 222361847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 222461847f8eSopenharmony_ci * <br>2. Incorrect parameter types. 222561847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 222661847f8eSopenharmony_ci * @since 14 222761847f8eSopenharmony_ci */ 222861847f8eSopenharmony_ci function matchFontDescriptors(desc: FontDescriptor): Promise<Array<FontDescriptor>>; 222961847f8eSopenharmony_ci 223061847f8eSopenharmony_ci /** 223161847f8eSopenharmony_ci * Text tab contains alignment type and location in paragraph style. 223261847f8eSopenharmony_ci * @typedef TextTab 223361847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 223461847f8eSopenharmony_ci * @since 14 223561847f8eSopenharmony_ci */ 223661847f8eSopenharmony_ci interface TextTab { 223761847f8eSopenharmony_ci /** 223861847f8eSopenharmony_ci * The alignment of tab. Support left alignment right alignment center alignment, 223961847f8eSopenharmony_ci * other enumeration values are left alignment effect. 224061847f8eSopenharmony_ci * @type { TextAlign } 224161847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 224261847f8eSopenharmony_ci * @since 14 224361847f8eSopenharmony_ci */ 224461847f8eSopenharmony_ci alignment: TextAlign; 224561847f8eSopenharmony_ci 224661847f8eSopenharmony_ci /** 224761847f8eSopenharmony_ci * The position of the tab relative to the start of the line. 224861847f8eSopenharmony_ci * @type { number } 224961847f8eSopenharmony_ci * @syscap SystemCapability.Graphics.Drawing 225061847f8eSopenharmony_ci * @since 14 225161847f8eSopenharmony_ci */ 225261847f8eSopenharmony_ci location: number; 225361847f8eSopenharmony_ci } 225461847f8eSopenharmony_ci} 225561847f8eSopenharmony_ci 225661847f8eSopenharmony_ciexport default text; 2257