mcu_ab568x/app/platform/gui/components/compo_textbox.h
2025-05-30 18:03:10 +08:00

141 lines
4.2 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _COMPO_TEXTBOX_H
#define _COMPO_TEXTBOX_H
#define TEXTBOX_TEXT_BUF_LEN 100 // 字符串文本数组长度
//
enum {
TEXT_AUTOROLL_MODE_NULL,
TEXT_AUTOROLL_MODE_SROLL_CIRC, //文字环形循环滚动
TEXT_AUTOROLL_MODE_SROLL, //文字前后往返滚动
};
/**
* @brief 创建一个文本框
* @param[in] frm : 窗体指针
* @param[in] max_word_cnt : 最大字数
* @return 返回文本指针
**/
compo_textbox_t *compo_textbox_create(compo_form_t *frm, u16 max_word_cnt);
/**
* @brief 创建一个文本框
* @param[in] frm : 窗体指针
* @param[in] parent : 父页面
* @param[in] max_word_cnt : 最大字数
* @return 返回文本指针
**/
compo_textbox_t *compo_textbox_create_for_page(compo_form_t *frm, void* page, u16 max_word_cnt);
/**
* @brief 设置字库资源地址
* @param[in] textbox : 文本指针
* @param[in] font_res_addr : 设置字库资源地址, 0则表示用回系统字体
**/
void compo_textbox_set_font(compo_textbox_t *textbox, u32 font_res_addr);
/**
* @brief 设置文本框内容
* @param[in] textbox : 文本指针
* @param[in] text : 文本内容 例:"遥遥领先"
**/
void compo_textbox_set(compo_textbox_t *textbox, const char *text);
/**
* @brief 获取文本框内容行数
* @param[in] textbox : 文本指针
**/
u8 compo_textbox_get_line_cnt(compo_textbox_t *textbox);
/**
* @brief 设置文本框的坐标及大小
注意:文本框设置的坐标是以默认的中心点作为参考
* @param[in] textbox : 文本指针
* @param[in] x : x轴坐标
* @param[in] y : y轴坐标
* @param[in] width : 文本框宽度
* @param[in] height : 文本框高度
**/
void compo_textbox_set_location(compo_textbox_t *textbox, s16 x, s16 y, s16 width, s16 height);
/**
* @brief 设置文本框的坐标
注意:文本框设置的坐标是以默认的中心点作为参考
* @param[in] textbox : 文本指针
* @param[in] x : x轴坐标
* @param[in] y : y轴坐标
**/
void compo_textbox_set_pos(compo_textbox_t *textbox, s16 x, s16 y);
/**
* @brief 设置文本框是否自适应尺寸
* @param[in] textbox : 文本指针
* @param[in] autosize : 是否自适应尺寸
**/
void compo_textbox_set_autosize(compo_textbox_t *textbox, bool autosize);
/**
* @brief 设置文本框是否为多行
* @param[in] textbox : 文本指针
* @param[in] multiline : 是否换行
**/
void compo_textbox_set_multiline(compo_textbox_t *textbox, bool multiline);
/**
* @brief 设置文本框是否居中
* @param[in] textbox : 文本指针
* @param[in] align_center : 是否居中
**/
void compo_textbox_set_align_center(compo_textbox_t *textbox, bool align_center);
/**
* @brief 设置文本框文字的颜色
* @param[in] textbox : 文本指针
* @param[in] color : 颜色
**/
void compo_textbox_set_forecolor(compo_textbox_t *textbox, u16 color);
/**
* @brief 设置文本框的透明度
* @param[in] textbox : 文本指针
* @param[in] alpha : 透明度
**/
void compo_textbox_set_alpha(compo_textbox_t *textbox, u8 alpha);
/**
* @brief 设置文本框是否可见
* @param[in] textbox : 文本指针
* @param[in] visible : 是否可见
**/
void compo_textbox_set_visible(compo_textbox_t *textbox, bool visible);
/**
* @brief 设置文本框滚动模式
* @param[in] textbox : 文本指针
* @param[in] mode : 滚动模式1:环形滚动 0、左右、普通滚动
**/
void compo_textbox_set_autoroll_mode(compo_textbox_t *textbox, u8 mode);
/**
* @brief 设置文本框滚动前后间隔
* @param[in] textbox : 文本指针
* @param[in] space_pixel : 环形滚动间隔以像素为单位默认是50
**/
void compo_textbox_set_autoroll_circ_space(compo_textbox_t *textbox, u16 space_pixel);
/**
* @brief 设置多行文本框可以拖动文本
* @param[in] textbox : 文本指针
* @param[in] autoroll : 是否可以拖动文本
**/
void compo_textbox_set_multiline_drag(compo_textbox_t *textbox, bool is_drag);
/**
* @brief 设置文本排版方向
* @param[in] textbox : 文本指针
* @param[in] right_align : 是否右对齐
**/
void compo_textbox_set_right_align(compo_textbox_t *textbox, bool right_align);
#endif