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

143 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_FORM_H
#define _COMPO_FORM_H
#define COMPO_FORM_MODE_SHOW_TITLE BIT(0) //标题栏显示文字
#define COMPO_FORM_MODE_SHOW_TIME BIT(1) //标题栏显示时间
#define COMPO_FORM_MODE_SHOW_ICON BIT(2) //标题栏显示自定义状态图标
typedef struct compo_textbox_t_ {
COMPO_STRUCT_COMMON;
widget_text_t *txt;
compo_roll_cb_t roll_cb;
bool multiline; //多行
} compo_textbox_t;
typedef struct compo_form_t_ {
COMPO_STRUCT_COMMON;
widget_page_t *page;
widget_page_t *page_body;
widget_icon_t *icon;
widget_icon_t *title_icon;
compo_textbox_t *title;
widget_text_t *time;
int mode;
#if defined(TJD_MENU_ADD_BACKGROUND)
widget_icon_t *bg_icon; //背景icon
#endif
} compo_form_t;
/**
* @brief 创建窗体
窗体为其他组件的容器
* @param[in] flag_top : 是否放在界面的顶层
false在底层
true在顶层
* @return 返回窗体指针
**/
compo_form_t *compo_form_create(bool flag_top);
/**
* @brief 销毁窗体
* @param[in] frm : 窗体指针
**/
void compo_form_destroy(compo_form_t *frm);
/**
* @brief 设置窗体坐标及大小
注意:该设置默认的坐标是以中心点作为参考点
* @param[in] frm : 窗体指针
* @param[in] x : x轴坐标
* @param[in] y : y轴坐标
* @param[in] width : 窗体宽度
* @param[in] height : 窗体高度
**/
void compo_form_set_location(compo_form_t *frm, s16 x, s16 y, s16 width, s16 height);
/**
* @brief 设置窗体坐标
注意:该设置默认的坐标是以中心点作为参考点
* @param[in] frm : 窗体指针
* @param[in] x : x轴坐标
* @param[in] y : y轴坐标
**/
void compo_form_set_pos(compo_form_t *frm, s16 x, s16 y);
/**
* @brief 窗体缩放
以中心点缩放
* @param[in] frm : 窗体指针
* @param[in] width : 缩放后的窗体宽度
* @param[in] height : 缩放后的窗体高度
**/
void compo_form_scale_to(compo_form_t *frm, s16 width, s16 height);
/**
* @brief 窗体设置Alpha
* @param[in] frm : 窗体指针
* @param[in] alpha : 透明度
**/
void compo_form_set_alpha(compo_form_t *frm, u8 alpha);
/**
* @brief 设置窗体标题栏
通常和compo_form_set_title窗体模式一起调用
* @param[in] frm : 窗体指针
* @param[in] title : 标题文本
**/
void compo_form_set_title(compo_form_t *frm, const char *title);
/**
* @author gzj
* @brief 设置窗体标题移动[自己瞎加的-如果后续使用过程中出现问题记得排查]
* @param[in] frm : 窗体指针
* @param[in] move_y : 移动的y坐标
**/
void compo_form_set_title_move_y(compo_form_t *frm, s16 move_y);
/**
* @brief 设置窗体模式
通常和compo_form_set_title窗体标题栏一起调用
* @param[in] frm : 窗体指针
* @param[in] mode : COMPO_FORM_MODE_SHOW_TITLE BIT(0) 标题栏显示文字
COMPO_FORM_MODE_SHOW_TIME BIT(1) 标题栏显示时间
**/
void compo_form_set_mode(compo_form_t *frm, int mode);
/**
* @brief 设置窗体标题居中
* @param[in] frm : 窗体指针
* @param[in] align_center : 是否居中
**/
void compo_form_set_title_center(compo_form_t *frm, bool align_center);
void compo_form_set_bg2(compo_form_t *frm, u32 res_addr, s16 x, s16 y);
/**
* @brief 窗体中添加图片
注意:该设置默认的坐标是以中心点作为参考点
* @param[in] frm : 窗体指针
* @param[in] res_addr : 图片资源的地址
* @param[in] x : x轴坐标
* @param[in] y : y轴坐标
**/
void compo_form_add_image(compo_form_t *frm, u32 res_addr, s16 x, s16 y);
void compo_form_add_image_page(compo_form_t *frm, u32 res_addr, s16 x, s16 y);
/**
* @brief 窗体中设置背景
* @param[in] frm : 窗体指针
* @param[in] res_addr : 图片资源的地址
**/
void compo_form_set_bg(compo_form_t *frm, u32 res_addr);
/**
* @brief title的图标
* @param[in] frm : 窗体指针
* @param[in] res_addr : 图片资源的地址
**/
void compo_form_set_title_icon(compo_form_t *frm, u32 res_addr);
#endif