diff --git a/zh-cn/native_sdk/graphic/native_drawing/drawing_font_collection.h b/zh-cn/native_sdk/graphic/native_drawing/drawing_font_collection.h index 0a2a02e996ab05d2ee126675de656134b66aa956..3b0ee16b147c608c89fe12503e9999e7e46afe74 100644 --- a/zh-cn/native_sdk/graphic/native_drawing/drawing_font_collection.h +++ b/zh-cn/native_sdk/graphic/native_drawing/drawing_font_collection.h @@ -64,6 +64,26 @@ OH_Drawing_FontCollection* OH_Drawing_CreateFontCollection(void); */ void OH_Drawing_DestroyFontCollection(OH_Drawing_FontCollection*); +/** + * @brief 禁用备用字体。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_FontCollection 指向字体集对象的指针。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_DisableFontCollectionFallback(OH_Drawing_FontCollection* fontCollection); + +/** + * @brief 禁用系统字体。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_FontCollection 指向字体集对象的指针。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_DisableFontCollectionSystemFont(OH_Drawing_FontCollection* fontCollection); + #ifdef __cplusplus } #endif diff --git a/zh-cn/native_sdk/graphic/native_drawing/drawing_text_declaration.h b/zh-cn/native_sdk/graphic/native_drawing/drawing_text_declaration.h index d4830ab1d89dec9ab0bf5d6d15c70779b9032bc1..63bbe61e01aa262da8341f02afd185bc9c6eda36 100644 --- a/zh-cn/native_sdk/graphic/native_drawing/drawing_text_declaration.h +++ b/zh-cn/native_sdk/graphic/native_drawing/drawing_text_declaration.h @@ -107,6 +107,23 @@ typedef struct OH_Drawing_PositionAndAffinity OH_Drawing_PositionAndAffinity; */ typedef struct OH_Drawing_Range OH_Drawing_Range; +/** + * @brief 用于管理文本阴影。 + * + * @since 12 + * @version 1.0 + */ +typedef struct OH_Drawing_TextShadow OH_Drawing_TextShadow; + +/** + * @brief 用来解析系统字体文件。 + * + * @since 12 + * @version 1.0 + */ +typedef struct OH_Drawing_FontParser OH_Drawing_FontParser; + + #ifdef __cplusplus } #endif diff --git a/zh-cn/native_sdk/graphic/native_drawing/drawing_text_typography.h b/zh-cn/native_sdk/graphic/native_drawing/drawing_text_typography.h index c6f265ed4e937dee711cc920acd299be05e01eba..352d3a72fa6fdae6b5b5178f256027e5718168d6 100644 --- a/zh-cn/native_sdk/graphic/native_drawing/drawing_text_typography.h +++ b/zh-cn/native_sdk/graphic/native_drawing/drawing_text_typography.h @@ -286,6 +286,107 @@ typedef enum { RECT_WIDTH_STYLE_MAX, } OH_Drawing_RectWidthStyle; +/** + * @brief 描述字体的详细信息。 + * + * @since 12 + * @version 1.0 + */ +typedef struct { + /** 系统字体的文件路径 */ + char* path; + /** 系统字体的postScript名称 */ + char* postScriptName; + /** 系统字体的名称 */ + char* fullName; + /** 系统字体的字体家族 */ + char* fontFamily; + /** 系统字体的子字体家族 */ + char* fontSubfamily; + /** 系统字体的粗细程度 */ + int weight; + /** 系统字体的宽窄风格属性 */ + int width; + /** 系统字体是否倾斜 */ + int italic; + /** 系统字体是否紧凑 */ + bool monoSpace; + /** 系统字体是否支持符号字体 */ + bool symbolic; +} OH_Drawing_FontDescriptor; + +/** + * @brief 字体的度量。 + * + * @since 12 + * @version 1.0 + */ +typedef struct { + /** 指示哪些度量是有效的 */ + uint32_t fFlags; + /** 在任何字形边界框的原点之上的最大值,通常为负值;不推荐使用可变字体 */ + float top; + /** 在基线以上的距离,通常为负值 */ + float ascent; + /** 在基线以下的距离,通常为负值 */ + float descent; + /** 在任何字形边界框的原点之下的最大值,通常为正值;不推荐使用可变字体 */ + float bottom; + /** 行与行之间要加的距离,通常为正或零 */ + float leading; + /** 平均字符宽度,如果未知则为零 */ + float avgCharWidth; + /** 最大字符宽度,如果未知则为零 */ + float maxCharWidth; + /** 任何字形边界框原点左侧的最大范围,通常为负值;不推荐使用可变字体 */ + float xMin; + /** 任何字形边界框原点右侧的最大范围,通常为负值;不推荐使用可变字体 */ + float xMax; + /** 小写字母“x”的高度,如果未知则为零,通常为负数 */ + float xHeight; + /** 大写字母的高度,如果未知则为零,通常为负数 */ + float capHeight; + /** 下划线粗细 */ + float underlineThickness; + /** 表示下划线的位置,即从基线到文字下方笔画顶部的垂直距离,通常为正值。 */ + float underlinePosition; + /** 删除线粗细 */ + float strikeoutThickness; + /** 表示删除线的位置,即从基线到文字上方笔画底部的垂直距离,通常为负值。 */ + float strikeoutPosition; +} OH_Drawing_FontMetrics; + +/** + * @brief 文字行位置信息 + * + * @since 12 + * @version 1.0 + */ +typedef struct { + /** 文字ascender高度 */ + double ascender; + /** 文字descender高度 */ + double descender; + /** 大写字母的高度 */ + double capHeight; + /** 小写字母的高度 */ + double xHeight; + /** 文字宽度 */ + double width; + /** 行高 */ + double height; + /** 文字左端到容器左端距离,左对齐为0,右对齐为容器宽度减去行文字宽度 */ + double x; + /** 文字上端到容器上端高度,第一行为0,第二行为第一行高度 */ + double y; + /** 行起始位置字符索引 */ + size_t startIndex; + /** 行结束位置字符索引 */ + size_t endIndex; + /** 第一个字的度量信息 */ + OH_Drawing_FontMetrics firstCharMetrics; +} OH_Drawing_LineMetrics; + /** * @brief 创建指向OH_Drawing_TypographyStyle对象的指针。 * @@ -328,6 +429,17 @@ void OH_Drawing_SetTypographyTextDirection(OH_Drawing_TypographyStyle*, int /* O */ void OH_Drawing_SetTypographyTextAlign(OH_Drawing_TypographyStyle*, int /* OH_Drawing_TextAlign */); +/** + * @brief 获取文字对齐方式。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @return 返回文字对齐方式。 + * @since 12 + * @version 1.0 + */ +int OH_Drawing_TypographyGetEffectiveAlignment(OH_Drawing_TypographyStyle* style); + /** * @brief 设置文本最大行数。 * @@ -349,6 +461,17 @@ void OH_Drawing_SetTypographyTextMaxLines(OH_Drawing_TypographyStyle*, int /* ma */ OH_Drawing_TextStyle* OH_Drawing_CreateTextStyle(void); +/** + * @brief 获取字体风格。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @return 返回文本类型。返回类型为{@link OH_Drawing_TextStyle}结构体 + * @since 12 + * @version 1.0 + */ +OH_Drawing_TextStyle* OH_Drawing_TypographyGetTextStyle(OH_Drawing_TypographyStyle* style); + /** * @brief 释放被OH_Drawing_TextStyle对象占据的内存。 * @@ -472,6 +595,94 @@ void OH_Drawing_SetTextStyleFontStyle(OH_Drawing_TextStyle*, int /* OH_Drawing_F */ void OH_Drawing_SetTextStyleLocale(OH_Drawing_TextStyle*, const char*); +/** + * @brief 设置前景色画刷。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_Brush 指向OH_Drawing_Brush对象的指针,由{@link OH_Drawing_Brush}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTextStyleForegroundBrush(OH_Drawing_TextStyle*, OH_Drawing_Brush*); + +/** + * @brief 返回设置的前景色画刷。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_Brush 指向OH_Drawing_Brush对象的指针,由{@link OH_Drawing_Brush}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleGetForegroundBrush(OH_Drawing_TextStyle*, OH_Drawing_Brush*); + +/** + * @brief 设置前景色画笔。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_Pen 指向OH_Drawing_Pen对象的指针,由{@link OH_Drawing_Pen}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTextStyleForegroundPen(OH_Drawing_TextStyle*, OH_Drawing_Pen*); + +/** + * @brief 返回设置的前景色画笔。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_Pen 指向OH_Drawing_Pen对象的指针,由{@link OH_Drawing_Pen}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleGetForegroundPen(OH_Drawing_TextStyle*, OH_Drawing_Pen*); + +/** + * @brief 设置背景色画刷。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_Brush 指向OH_Drawing_Brush对象的指针,由{@link OH_Drawing_Brush}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTextStyleBackgroundBrush(OH_Drawing_TextStyle*, OH_Drawing_Brush*); + +/** + * @brief 返回设置的背景色画刷。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_Brush 指向OH_Drawing_Brush对象的指针,由{@link OH_Drawing_Brush}获取。 + * @since 12 + * @version 1.0 + */ + void OH_Drawing_TextStyleGetBackgroundBrush(OH_Drawing_TextStyle*, OH_Drawing_Brush*); + +/** + * @brief 设置背景色画笔。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_Pen 指向OH_Drawing_Pen对象的指针,由{@link OH_Drawing_Pen}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTextStyleBackgroundPen(OH_Drawing_TextStyle*, OH_Drawing_Pen*); + +/** + * @brief 返回设置的背景色画笔。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_Pen 指向OH_Drawing_Pen对象的指针,由{@link OH_Drawing_Pen}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleGetBackgroundPen(OH_Drawing_TextStyle*, OH_Drawing_Pen*); + /** * @brief 创建指向OH_Drawing_TypographyCreate对象的指针。 * @@ -987,7 +1198,18 @@ void OH_Drawing_SetTypographyTextWordBreakType(OH_Drawing_TypographyStyle*, int) void OH_Drawing_SetTypographyTextEllipsisModal(OH_Drawing_TypographyStyle*, int); /** - * @brief 获取指定行的行高。 + * @brief 设置省略号样式。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param char 省略号样式。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextEllipsis(OH_Drawing_TypographyStyle* style, const char* ellipsis); + +/** + * @brief 获取指定行的行高 * * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing * @param OH_Drawing_Typography 指向OH_Drawing_Typography对象的指针,由{@link OH_Drawing_CreateTypography}获取。 @@ -1010,6 +1232,474 @@ double OH_Drawing_TypographyGetLineHeight(OH_Drawing_Typography*, int); */ double OH_Drawing_TypographyGetLineWidth(OH_Drawing_Typography*, int); +/** + * @brief 设置文本划分比率。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param float 文本划分比率。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextSplitRatio(OH_Drawing_TypographyStyle* style, float textSplitRatio); + +/** + * @brief 获取文本是否有最大行数限制。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @return 返回文本是否有最大行数限制,true表示有最大行数限制,false表示无最大行数限制。 + * @since 12 + * @version 1.0 + */ +bool OH_Drawing_TypographyIsLineUnlimited(OH_Drawing_TypographyStyle* style); + +/** + * @brief 获取文本是否有省略号。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @return 返回文本是否有省略号,true表示有省略号,false表示无省略号。 + * @since 12 + * @version 1.0 + */ +bool OH_Drawing_TypographyIsEllipsized(OH_Drawing_TypographyStyle* style); + +/** + * @brief 设置文本位置。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param char 文本位置。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextLocale(OH_Drawing_TypographyStyle* style, const char* locale); + +/** + * @brief 获取文本字体属性。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_Typography 指向OH_Drawing_TypographyStyle的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @return 返回文本字体属性。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_FontMetrics* OH_Drawing_TextStyleGetFontMetrics(OH_Drawing_TextStyle*, OH_Drawing_Typography*); + +/** + * @brief 设置文本类型。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param OH_Drawing_TextStyle 指向文本类型OH_Drawing_TextStyle的指针。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextStyle(OH_Drawing_TypographyStyle*,OH_Drawing_TextStyle*); + +/** + * @brief 构造OH_Drawing_FontDescriptor对象。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @return 返回指向已创建的OH_Drawing_FontDescriptor对象的指针。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_FontDescriptor* OH_Drawing_CreateFontDescriptor(void); + +/** + * @brief 释放OH_Drawing_FontDescriptor对象占用的内存。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_FontDescriptor 指向OH_Drawing_FontDescriptor对象的指针。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_DestroyFontDescriptor(OH_Drawing_FontDescriptor*); + +/** + * @brief 构造OH_Drawing_FontDescriptor对象。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @return 返回指向已创建的OH_Drawing_FontParser对象的指针。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_FontParser* OH_Drawing_CreateFontParser(void); + +/** + * @brief 释放OH_Drawing_FontParser对象占用的内存。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_FontParser 指向OH_Drawing_FontParser对象的指针。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_DestroyFontParser(OH_Drawing_FontParser*); + +/** + * @brief 获取系统字体名称列表。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_FontParser 指向OH_Drawing_FontParser对象的指针。 + * @param size_t 返回获取到的系统字体名称数量。 + * @return 返回获取到的系统字体列表。 + * @since 12 + * @version 1.0 + */ +char** OH_Drawing_FontParserGetSystemFontList(OH_Drawing_FontParser*, size_t*); + +/** + * @brief 释放系统字体名称列表占用的内存。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param char** 指向系统字体名称列表的指针。 + * @param size_t* 系统字体名称列表的数量。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_DestroySystemFontList(char**, size_t); + +/** + * @brief 根据传入的系统字体名称获取系统字体的相关信息。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_FontParser 指向OH_Drawing_FontParser对象的指针。 + * @param char* 系统字体名。 + * @return Returns system fonts. + * @since 12 + * @version 1.0 + */ +OH_Drawing_FontDescriptor* OH_Drawing_FontParserGetFontByName(OH_Drawing_FontParser*, const char*); + +/** + * @brief 获取行度量信息。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_Typography 指向OH_Drawing_Typography对象的指针。 + * @return 返回指向OH_Drawing_LineMetrics对象的指针。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_LineMetrics* OH_Drawing_TypographyGetLineMetrics(OH_Drawing_Typography*); + +/** + * @brief 获取行数量。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_LineMetrics 指向OH_Drawing_LineMetrics对象的指针。 + * @return 返回行数量。 + * @since 12 + * @version 1.0 + */ +size_t OH_Drawing_LineMetricsGetSize(OH_Drawing_LineMetrics*); + +/** + * @brief 释放行度量占用的内存。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_LineMetrics 指向OH_Drawing_LineMetrics对象的指针。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_DestroyLineMetrics(OH_Drawing_LineMetrics*); + +/** + * @brief 获取指定行度量。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_Typography 指向OH_Drawing_Typography对象的指针。 + * @param int 要获取的行数。 + * @return 返回获取到的指定行度量信息。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_LineMetrics* OH_Drawing_TypographyGetLineMetricsAt(OH_Drawing_Typography*, int); + +/** + * @brief 获取指定行的位置信息或指定行第一个字符的位置信息 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_Typography 指向OH_Drawing_Typography对象的指针,由{@link OH_Drawing_CreateTypography}获取。 + * @param int 行号 + * @param bool true为获取整行的位置信息,false为获取第一个字符的位置信息 + * @param bool 文字宽度是否包含空白符 + * @return 指向OH_Drawing_LineMetrics对象的指针,由{@link OH_Drawing_LineMetrics}获取 + * @since 12 + * @version 1.0 + */ +OH_Drawing_LineMetrics* OH_Drawing_TypographyGetLineInfo(OH_Drawing_Typography*, int, bool, bool); + +/** + * @brief 设置文本排版字重。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param int 设置字重,设置0字重为thin,设置1字重为extra-light,设置2字重为light,设置4字重为medium,设置5字重为semi-bold, + * 设置6字重为bold,设置7字重为extra-bold,设置8字重为black,设置3或其它字重为normal/regular,具体可见{@link OH_Drawing_FontWeight}枚举。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextFontWeight(OH_Drawing_TypographyStyle*, int); + +/** + * @brief 设置文本排版风格。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param int 设置字体风格,设置1为斜体,设置0或其它为非斜体,具体可见{@link OH_Drawing_FontStyle}枚举。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextFontStyle(OH_Drawing_TypographyStyle*, int); + +/** + * @brief 设置文本排版字体类型。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param char 字体类型,数据类型为指向char的指针。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextFontFamily(OH_Drawing_TypographyStyle*, const char*); + +/** + * @brief 设置文本排版字号。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param double 字号。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextFontSize(OH_Drawing_TypographyStyle*, double); + +/** + * @brief 设置文本排版字体高度。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param double 字体高度。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextFontHeight(OH_Drawing_TypographyStyle*, double); + +/** + * @brief 设置文本排版为一半行间距。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param bool 设置一半行间距是否生效,true表示生效,false表示不生效。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextHalfLeading(OH_Drawing_TypographyStyle*, bool); + +/** + * @brief 设置文本排版是否启用行样式。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param bool 设置行样式是否启用,true表示启用,false表示不启用 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextUseLineStyle(OH_Drawing_TypographyStyle*, bool); + +/** + * @brief 设置文本排版行样式字重。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param int 设置字重,设置0字重为thin,设置1字重为extra-light,设置2字重为light,设置4字重为medium,设置5字重为semi-bold, + * 设置6字重为bold,设置7字重为extra-bold,设置8字重为black,设置3或其它字重为normal/regular,具体可见{@link OH_Drawing_FontWeight}枚举。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextLineStyleFontWeight(OH_Drawing_TypographyStyle*, int); + +/** + * @brief 设置文本排版行样式风格。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param int 设置字体风格,设置1为斜体,设置0或其它为非斜体,具体可见{@link OH_Drawing_FontStyle}枚举。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextLineStyleFontStyle(OH_Drawing_TypographyStyle*, int); + +/** + * @brief 设置文本排版行样式字体类型。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param int 字体名称数量。 + * @param char 指向字体类型的指针。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextLineStyleFontFamilies(OH_Drawing_TypographyStyle*, + int /* fontFamiliesNumber */, const char* fontFamilies[]); + +/** + * @brief 设置文本排版行样式字号。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param double 字号。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextFontSize(OH_Drawing_TypographyStyle*, double); + +/** + * @brief 设置文本排版行样式字体高度。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param double 字体高度。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextLineStyleFontHeight(OH_Drawing_TypographyStyle*, double /* fontHeight */); + +/** + * @brief 设置文本排版行样式为一半行间距。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param bool 设置一半行间距是否生效,true表示生效,false表示不生效。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextLineStyleHalfLeading(OH_Drawing_TypographyStyle*, bool); + +/** + * @brief 设置文本排版行样式间距比例。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param double 间距比例。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextLineStyleSpacingScale(OH_Drawing_TypographyStyle*, double); + +/** + * @brief 设置文本排版是否仅启用行样式。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param bool 设置仅启用行样式是否生效,true表示生效,false表示不生效。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_SetTypographyTextLineStyleOnly(OH_Drawing_TypographyStyle*, bool); + +/** + * @brief 创建指向OH_Drawing_TextShadow对象的指针。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @return 指向创建的OH_Drawing_TextShadow对象的指针。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_TextShadow* OH_Drawing_CreateTextShadow(void); + +/** + * @brief 释放被OH_Drawing_TextShadow对象占据的内存。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextShadow 指向OH_Drawing_TextShadow对象的指针,由{@link OH_Drawing_CreateTextShadow}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_DestroyTextShadow(OH_Drawing_TextShadow*); + +/** + * @brief 获取文本阴影容器。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @return 返回指向容器的指针,返回类型为{@link OH_Drawing_TextShadow}结构体。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_TextShadow* OH_Drawing_TextStyleGetShadows(OH_Drawing_TextStyle*); + +/** + * @brief 获取文本阴影容器的大小。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @return int 返回文本阴影容器的大小。 + * @since 12 + * @version 1.0 + */ +int OH_Drawing_TextStyleGetShadowCount(OH_Drawing_TextStyle*); + +/** + * @brief 文本阴影容器中添加元素。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_TextShadow 指向OH_Drawing_TextShadow对象的指针,由{@link OH_Drawing_CreateTextShadow}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleAddShadow(OH_Drawing_TextStyle*, OH_Drawing_TextShadow*); + +/** + * @brief 清除文本阴影容器中的所有元素。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleClearShadows(OH_Drawing_TextStyle*); + +/** + * @brief 根据下标获取文本阴影容器中的元素。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param int 下标索引。 + * @return 返回指向索引对应元素的指针,返回类型为{@link OH_Drawing_TextShadow}结构体。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_TextShadow* OH_Drawing_TextStyleGetShadowWithIndex(OH_Drawing_TextStyle*, int); + +/** + * @brief 设置排版缩进。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_Typography 指向OH_Drawing_Typography对象的指针,由{@link OH_Drawing_CreateTypography}获取。 + * @param int 排版缩进数量。 + * @param float 指向缩进类型的指针。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TypographySetIndents(OH_Drawing_Typography*, int, const float indents[]); + +/** + * @brief 根据下标获取排版缩进容器中的元素。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_Typography 指向OH_Drawing_Typography对象的指针,由{@link OH_Drawing_CreateTypography}获取。 + * @param int 下标索引。 + * @return double 返回索引对应的元素值。 + * @since 12 + * @version 1.0 + */ +double OH_Drawing_TypographyGetIndentsWithIndex(OH_Drawing_Typography*, int); + /** * @brief 获取行的边界。 *