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 eb4c740b31aec95d336462fa6623a70929da050d..35a659015d7a7bb96dfe8c3e753bc25aba921245 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 @@ -348,6 +348,36 @@ typedef struct OH_Drawing_LineMetrics { OH_Drawing_Font_Metrics firstCharMetrics; } OH_Drawing_LineMetrics; +/** + * @brief 描述文本字体特征结构体。 + * + * @since 12 + * @version 1.0 + */ +typedef struct { + /** 字体特征的描述 */ + char* fontFeatureKey; + /** 字体特征的值 */ + int fontFeatureValue; +} OH_Drawing_FontFeature; + +/** + * @brief 文本高度修饰符模式枚举。 + * + * @since 12 + * @version 1.0 + */ +enum OH_Drawing_TextHeightBehavior { + /** 高度修饰符设置为段落中第一行和最后一行都上升 */ + TEXT_HEIGHT_ALL = 0x0, + /** 高度修饰符设置为禁止段落中第一行上升 */ + TEXT_HEIGHT_DISABLE_FIRST_ASCENT = 0x1, + /** 高度修饰符设置为禁止段落中最后一行上升 */ + TEXT_HEIGHT_DISABLE_LAST_ASCENT = 0x2, + /** 高度修饰符设置为段落中第一行和最后一行都不上升 */ + TEXT_HEIGHT_DISABLE_ALL = 0x1 | 0x2, +}; + /** * @brief 创建指向OH_Drawing_TypographyStyle对象的指针。 * @@ -1687,6 +1717,128 @@ OH_Drawing_Range* OH_Drawing_TypographyGetLineTextRange(OH_Drawing_Typography*, */ void OH_Drawing_DestroyTextShadows(OH_Drawing_TextShadow*); +/** + * @brief 设置文本背景矩形框和样式id。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param OH_Drawing_RectStyle_Info 指向OH_Drawing_RectStyle_Info对象的指针。 + * @param int 要设置的样式id。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleSetBackgroundRect(OH_Drawing_TextStyle*, const OH_Drawing_RectStyle_Info*, int styleId); + +/** + * @brief 设置排版创建过程中的符号。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyCreate 指向OH_Drawing_TypographyCreate对象的指针,由{@link OH_Drawing_CreateTypographyHandler}获取。 + * @param uint32_t 要设置的符号。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TypographyHandlerAddSymbol(OH_Drawing_TypographyCreate*, uint32_t symbol); + +/** + * @brief 添加文本字体特征。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param char 指向字体特征键值对中关键字所标识的字符串。 + * @param int 要设置的字体特征键值对的值。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleAddFontFeature(OH_Drawing_TextStyle*, const char* tag, int value); + +/** + * @brief 获取字体特征map容器中的所有内容。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @return OH_Drawing_FontFeature 要获取的字体特征容器的所有内容,指向存放容器所有键值对的一个结构体数组。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_FontFeature* OH_Drawing_TextStyleGetFontFeatures(OH_Drawing_TextStyle*); + +/** + * @brief 释放存放字体特征所有内容的结构体数组所占用的空间。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_FontFeature 指向存放容器所有键值对的结构体数组指针。 + * @param fontFeatureSize 存放容器所有键值对的结构体数组的大小。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleDestroyFontFeatures(OH_Drawing_FontFeature*, size_t fontFeatureSize); + +/** + * @brief 获取字体特征map容器的大小。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @return size_t 字体特征map容器的大小。 + * @since 12 + * @version 1.0 + */ +size_t OH_Drawing_TextStyleGetFontFeatureSize(OH_Drawing_TextStyle*); + +/** + * @brief 清除字体特征map容器中的所有元素。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleClearFontFeature(OH_Drawing_TextStyle*); + +/** + * @brief 获取文本的基线漂移。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @return double 基线位移的值。 + * @since 12 + * @version 1.0 + */ +double OH_Drawing_TextStyleGetBaseLineShift(OH_Drawing_TextStyle*); + +/** + * @brief 设置文本的基线漂移。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TextStyle 指向OH_Drawing_TextStyle对象的指针,由{@link OH_Drawing_CreateTextStyle}获取。 + * @param double 位移。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TextStyleSetBaseLineShift(OH_Drawing_TextStyle*, double lineShift); + +/** + * @brief 设置文本高度修饰符模式。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @param heightMode 文本高度修饰符模式,为OH_Drawing_TextHeightBehavior类型的枚举值。 + * @since 12 + * @version 1.0 + */ +void OH_Drawing_TypographyTextSetHeightMode(OH_Drawing_TypographyStyle*, OH_Drawing_TextHeightBehavior heightMode); + +/** + * @brief 获取文本高度修饰符模式。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param OH_Drawing_TypographyStyle 指向OH_Drawing_TypographyStyle对象的指针,由{@link OH_Drawing_CreateTypographyStyle}获取。 + * @return 返回文本高度修饰符模式,为OH_Drawing_TextHeightBehavior类型的枚举值。 + * @since 12 + * @version 1.0 + */ +OH_Drawing_TextHeightBehavior OH_Drawing_TypographyTextGetHeightMode(OH_Drawing_TypographyStyle*); + #ifdef __cplusplus } #endif diff --git a/zh-cn/native_sdk/graphic/native_drawing/drawing_types.h b/zh-cn/native_sdk/graphic/native_drawing/drawing_types.h index 695f871485f717e33eda8637e5c61014a4f8a590..b3cb20ba053f49a48fca2e5ada5baee8a8bb06b4 100644 --- a/zh-cn/native_sdk/graphic/native_drawing/drawing_types.h +++ b/zh-cn/native_sdk/graphic/native_drawing/drawing_types.h @@ -245,7 +245,7 @@ typedef struct OH_Drawing_TextBlobBuilder OH_Drawing_TextBlobBuilder; /** * @brief 用于描述位图像素的存储格式。 - * + * * @since 8 * @version 1.0 */ @@ -266,7 +266,7 @@ typedef enum OH_Drawing_ColorFormat { /** * @brief 用于描述位图像素的透明度分量。 - * + * * @since 8 * @version 1.0 */ @@ -385,6 +385,25 @@ typedef struct OH_Drawing_Image_Info { OH_Drawing_AlphaFormat alphaType; } OH_Drawing_Image_Info; +/** + * @brief 定义矩形框样式结构体。 + * + * @since 12 + * @version 1.0 + */ +typedef struct { + /** 矩形框的颜色 */ + uint32_t color; + /** 矩形框的左上半径 */ + double leftTopRadius; + /** 矩形框的右上半径 */ + double rightTopRadius; + /** 矩形框的右下半径 */ + double rightBottomRadius; + /** 矩形框的左下半径 */ + double leftBottomRadius; +} OH_Drawing_RectStyle_Info; + /** * @brief 文本编码类型枚举。 * @since 12