#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