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

52 lines
1.5 KiB
C

#ifndef _COMPO_ROTARY_H
#define _COMPO_ROTARY_H
#define ROTARY_DISP_ITEM_MAX 6 //最大支持显示6个转盘
#define ROTARY_PIC_ITEM_MAX 10 //最多支持6张图片
//转盘项定义
typedef struct compo_rotary_item_t_ {
} compo_rotary_item_t;
typedef struct compo_rotary_t_ {
COMPO_STRUCT_COMMON;
widget_page_t *page;
s16 cx;
s16 cy;
s16 angle; //转盘旋转角度
u8 disp_cnt; //转盘个数
u8 pic_cnt; //转盘图片数量
u8 pic_index; //当前图片索引
u8 sidx;
u32 res_addr[ROTARY_PIC_ITEM_MAX]; //图标
u32 disp_res_addr[ROTARY_DISP_ITEM_MAX];
widget_image_t *item_img[ROTARY_DISP_ITEM_MAX];
} compo_rotary_t;
/**
* @brief 创建一个转盘组件
* @param[in] frm : 窗体指针
* @param[in] pic_array : 图片集合
* @param[in] pic_cnt : 图片数量
* @param[in] disp_cnt : 显示的转盘个数
* @return 返回转盘指针
**/
compo_rotary_t *compo_rotary_create(compo_form_t *frm, u32 const *pic_array, u8 pic_cnt, u8 disp_cnt);
/**
* @brief 更新转盘Widget
* @param[in] rotary : 转盘指针
**/
void compo_rotary_update(compo_rotary_t *rotary, bool frist);
/**
* @brief 设置转盘的旋转角度 (0 ~ 3599)
* @param[in] rotary : 转盘指针
* @param[in] angle : 旋转角度
**/
void compo_rotary_set_rotation(compo_rotary_t *rotary, s16 angle);
#endif