/* Copyright(C) 2010- , JIELI TECHNOLOGY, Inc. * All right reserved. */ /* ------------------------------------------------------------------------------------*/ /* * @file ui_progress_multi.h * * @brief 多重圆弧进度条控件API接口头文件 * * @author * * @version V201 * * @date 2022-12-15 */ /* ------------------------------------------------------------------------------------*/ #ifndef __UI_PROGRESS_MULTI_WIDGET_H__ #define __UI_PROGRESS_MULTI_WIDGET_H__ #include "jlui/control.h" #include "jlui/ui_core.h" /* ------------------------------------------------------------------------------------*/ /** * @brief 多重圆弧进度条控件子控件数量定义 */ /* ------------------------------------------------------------------------------------*/ #define MULTIPROGRESS_CHILD_NUM (CTRL_MULTIPROGRESS_CHILD_END - CTRL_MULTIPROGRESS_CHILD_BEGIN) struct multiprogress_highlight_info { struct ui_ctrl_info_head head; u16 number; s16 center_x; // 圆环中心 s16 center_y; u16 radius0_big; // 第一圈圆环大、小半径,颜色 u16 radius0_small; u16 color0; u16 radius1_big; // 第二圈圆环大、小半径、颜色 u16 radius1_small; u16 color1; u16 radius2_big; // 第三圈圆环大、小半径、颜色 u16 radius2_small; u16 color2; u16 angle_begin; // 开始、结束角度 u16 angle_end; struct ui_image_list *img; }; /* ------------------------------------------------------------------------------------*/ /** * @brief 多重圆弧进度条控件句柄结构定义 */ /* ------------------------------------------------------------------------------------*/ struct ui_multiprogress { struct element elm; struct element child_elm[MULTIPROGRESS_CHILD_NUM]; // 子控件元素 1 char source[9]; // 数据源 s16 center_x; // 中心x坐标 s16 center_y; // 中心y坐标 u16 angle_begin; // 进度条的起始角度 u16 angle_end; // 进度条的结束角度 u16 radius; // 半径 u8 ctrl_num; // 控件数量,从flash读进来 char percent[3]; // 百分比(三个进度条) const struct layout_info *info; const struct multiprogress_highlight_info *pic_info[MULTIPROGRESS_CHILD_NUM]; const struct element_event_handler *handler; }; // 164byte /* ------------------------------------------------------------------------------------*/ /** * @brief 通过ID获取多重圆弧进度条控件句柄 */ /* ------------------------------------------------------------------------------------*/ #define ui_multiprogress_for_id(id) \ ui_element_for_id(id, struct ui_multiprogress) /* ------------------------------------------------------------------------------------*/ /** * @brief ui_multiprogress_enable 多重进度条控件使能(内部调用) */ /* ------------------------------------------------------------------------------------*/ void ui_multiprogress_enable(); int ui_multiprogress_set_persent_by_id(int id, int persent); int ui_multiprogress_set_second_persent_by_id(int id, int percent); int ui_multiprogress_set_third_persent_by_id(int id, int percent); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_multiprogress_set_persent_by_id 设置第一个进度条的百分比(待redraw) * * @param id 多重进度条控件ID * @param persent 第一个进度条显示的百分比 * * @return 0 正常,-22 控件不存在 */ /* ------------------------------------------------------------------------------------*/ int ui_multiprogress_set_persent_by_id(int id, int persent); // 第一个进度条 /* ------------------------------------------------------------------------------------*/ /** * @brief ui_multiprogress_set_second_persent_by_id 设置第二个进度条的百分比(待redraw) * * @param id 多重进度条控件ID * @param persent 第二个进度条显示的百分比 * * @return 0 正常,-22 控件不存在 */ /* ------------------------------------------------------------------------------------*/ int ui_multiprogress_set_second_persent_by_id(int id, int percent); // 第二个进度条 /* ------------------------------------------------------------------------------------*/ /** * @brief ui_multiprogress_set_third_persent_by_id 设置第三个进度条的百分比(待redraw) * * @param id 多重进度条控件ID * @param persent 第三个进度条显示的百分比 * * @return 0 正常,-22 控件不存在 */ /* ------------------------------------------------------------------------------------*/ int ui_multiprogress_set_third_persent_by_id(int id, int percent); // 第三个进度条 /* ------------------------------------------------------------------------------------*/ /** * @brief ui_multiprogress_set_persent 设置多重圆弧进度条第一个的百分比(不带redraw) * * @param multiprogress 多重圆弧进度条句柄 * @param percent 第一个圆弧进度条百分比 * * @return 0 正常,-22 控件不存在 */ /* ------------------------------------------------------------------------------------*/ int ui_multiprogress_set_persent(struct ui_multiprogress *multiprogress, int percent); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_multiprogress_set_second_persent 设置多重圆弧进度条第二个的百分比(不带redraw) * * @param multiprogress 多重圆弧进度条句柄 * @param percent 第二个圆弧进度条百分比 * * @return 0 正常,-22 控件不存在 */ /* ------------------------------------------------------------------------------------*/ int ui_multiprogress_set_second_persent(struct ui_multiprogress *multiprogress, int percent); /* ------------------------------------------------------------------------------------*/ /** * @brief ui_multiprogress_set_third_persent 设置多重圆弧进度条第三个的百分比(不带redraw) * * @param multiprogress 多重圆弧进度条句柄 * @param percent 第三个圆弧进度条百分比 * * @return 0 正常,-22 控件不存在 */ /* ------------------------------------------------------------------------------------*/ int ui_multiprogress_set_third_persent(struct ui_multiprogress *multiprogress, int percent); #endif