143 lines
4.2 KiB
C
143 lines
4.2 KiB
C
#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
|