52 lines
1.5 KiB
C
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
|