174 lines
6.7 KiB
C
174 lines
6.7 KiB
C
#ifndef _COMPONENTS_H
|
|
#define _COMPONENTS_H
|
|
|
|
enum COMPO_TYPE {
|
|
COMPO_TYPE_NONE,
|
|
COMPO_TYPE_FORM, //窗体
|
|
COMPO_TYPE_PICTUREBOX, //图像框
|
|
COMPO_TYPE_TEXTBOX, //文本框
|
|
COMPO_TYPE_LABEL, //标签
|
|
COMPO_TYPE_SHAPE, //形状
|
|
COMPO_TYPE_BUTTON, //铵钮
|
|
COMPO_TYPE_NUMBER, //数字
|
|
COMPO_TYPE_DATETIME, //时间
|
|
COMPO_TYPE_QRCODEBOX, //二维码或条形码
|
|
COMPO_TYPE_MSGBOX, //对话框
|
|
COMPO_TYPE_LISTBOX, //列表框
|
|
COMPO_TYPE_ROWBOX, //列表框(横向)
|
|
COMPO_TYPE_STACKLIST, //堆叠列表
|
|
COMPO_TYPE_ICONLIST, //图标集
|
|
COMPO_TYPE_ROTARY, //转盘
|
|
COMPO_TYPE_GRIDBOX, //栅格
|
|
COMPO_TYPE_DISKLIST, //圆盘列表
|
|
COMPO_TYPE_KALEIDOSCOPE, //万花筒
|
|
COMPO_TYPE_ANIMATION, //动图
|
|
COMPO_TYPE_RINGS, //环形
|
|
COMPO_TYPE_ARC, //圆弧
|
|
COMPO_TYPE_CHARTBOX, //图表框
|
|
COMPO_TYPE_CARDBOX, //卡片
|
|
COMPO_TYPE_SYMBOL, //符号位
|
|
};
|
|
|
|
enum PICTUREBOX_TYPE {
|
|
PICTUREBOX_TYPE_NONE,
|
|
PICTUREBOX_TYPE_WEEKDAY,
|
|
PICTUREBOX_TYPE_TEMPERATURE_UNIT,
|
|
PICTUREBOX_TYPE_MONTH,
|
|
};
|
|
|
|
//绑定数据
|
|
enum COMPO_BOND_DATA {
|
|
COMPO_BOND_NONE,
|
|
COMPO_BOND_YEAD, //年
|
|
COMPO_BOND_MONTH, //月
|
|
COMPO_BOND_DAY, //日
|
|
COMPO_BOND_WEEKDAY, //周
|
|
COMPO_BOND_HOUR, //时
|
|
COMPO_BOND_MINUTE, //分
|
|
COMPO_BOND_SECOND, //秒
|
|
COMPO_BOND_HOUR_H, //时(十位)
|
|
COMPO_BOND_HOUR_L, //时(个位)
|
|
COMPO_BOND_MINUTE_H, //分(十位)
|
|
COMPO_BOND_MINUTE_L, //分(个位)
|
|
|
|
COMPO_BOND_DATE, //日期(月/日)
|
|
COMPO_BOND_TIME, //时间(时:分)
|
|
COMPO_BOND_DAY_H, //日(十位)
|
|
COMPO_BOND_DAY_L, //日(个位)
|
|
|
|
COMPO_BOND_IMAGE_STATIC = 16, //静态图片
|
|
COMPO_BOND_IMAGE_CLOCK_PREVIEW, //表盘预览图
|
|
COMPO_BOND_IMAGE_CLICK, //点击图片
|
|
COMPO_BOND_ANIMATION_STATIC, //静态动图
|
|
COMPO_BOND_ANIMATION_CLICK, //点击动图
|
|
COMPO_BOND_IMAGE_WEATHER, //天气
|
|
COMPO_BOND_BLE_STA, //BLE连接状态
|
|
COMPO_BOND_BT_STA, //BT连接状态
|
|
COMPO_BOND_BTBLE_STA, //BTBLE连接状态
|
|
COMPO_BOND_DISTANCE_PROGRESS, //距离进度
|
|
COMPO_BOND_KCAL_PROGRESS, //卡路里进度
|
|
COMPO_BOND_STEPS_PROGRESS, //步数进度
|
|
COMPO_BOND_VBAT_PROGRESS, //电量进度
|
|
COMPO_BOND_ANIMATION_AREA_CLICK, //区域点击动图
|
|
COMPO_BOND_IMAGE_DISTANCE_UNIT, //单位
|
|
COMPO_BOND_IMAGE_AM_PM, //上下午
|
|
|
|
|
|
COMPO_BOND_KCAL = 64, //卡路里
|
|
COMPO_BOND_STEP, //步数
|
|
COMPO_BOND_HEARTRATE, //心率
|
|
COMPO_BOND_BLOOD_OXYGEN, //血氧
|
|
COMPO_BOND_BLOOD_SUGER, //血糖
|
|
COMPO_BOND_WEATHER, //天气
|
|
COMPO_BOND_ATMOMS, //气压
|
|
COMPO_BOND_TEMPERATURE, //温度数字
|
|
COMPO_BOND_TEMPERATURE_UNIT, //温度单位
|
|
COMPO_BOND_ALTITUDE, //海拔 【注:此版本被用作湿度】
|
|
COMPO_BOND_SPORT_NUM, //运动数字
|
|
COMPO_BOND_BATTERY, //电池百分比
|
|
COMPO_BOND_DISTANCE, //距离数字
|
|
COMPO_BOND_SLEEP, //睡眠数字
|
|
COMPO_BOND_DISTANCE_UNIT, //距离单位
|
|
COMPO_BOND_REVERSE2, //保留
|
|
COMPO_BOND_CUSTOM0 = 0xF0, //预留的初始位置 距离的小数位
|
|
COMPO_BOND_CUSTOM_NEW_YORK=0xF1, //纽约时区时间
|
|
COMPO_BOND_CUSTOM_PARIS, //巴黎时区时间
|
|
COMPO_BOND_CUSTOM_WEATHER_MIN, //天气最低温
|
|
COMPO_BOND_CUSTOM_WEATHER_MAX, //天气最高温
|
|
COMPO_BOND_CUSTOM_GAME, //射箭游戏——快捷按钮
|
|
COMPO_BOND_CUSTOM = 255, //
|
|
};
|
|
|
|
#define COMPO_STRUCT_COMMON \
|
|
u8 type; /*组件类型*/ \
|
|
u8 bond_data; /*绑定数据*/ \
|
|
u16 id; /*组件ID*/
|
|
|
|
typedef struct component_t_ {
|
|
COMPO_STRUCT_COMMON;
|
|
u8 content[0]; //组件详细内容
|
|
} component_t;
|
|
|
|
typedef struct compo_cb_t_ {
|
|
u8 *buf0; //组件Buffer
|
|
u32 buf0_size;
|
|
u32 buf0_pos;
|
|
u8 *buf1;
|
|
u32 buf1_size;
|
|
u32 buf1_pos;
|
|
u8 top_num;
|
|
|
|
//组件时间控制
|
|
u32 rtc_cnt;
|
|
u32 rtc_cnt2;
|
|
tm_t tm; //时间tm结构体
|
|
u16 mtime; //毫秒
|
|
bool rtc_update;
|
|
} compo_cb_t;
|
|
|
|
typedef struct component_all_t_ {
|
|
compo_cb_t compo;
|
|
} component_all_t;
|
|
|
|
extern compo_cb_t compo_cb;
|
|
|
|
typedef struct compo_form_t_ compo_form_t;
|
|
|
|
void compos_init(void);
|
|
void *compo_pool_create(bool flag_top);
|
|
void compo_pool_clear(compo_form_t *compo);
|
|
compo_form_t *compo_pool_get_top(void);
|
|
compo_form_t *compo_pool_get_bottom(void);
|
|
void *compo_create(compo_form_t *parent, u8 type);
|
|
void compo_bonddata(void *compo, u8 bond_data); //设置组件绑定数据
|
|
void compo_setid(void *compo, u16 id); //设置组件ID
|
|
void *compo_get_head(void);
|
|
component_t *compo_get_next(component_t *compo);
|
|
void bsp_uitool_create(compo_form_t *frm, u32 base_addr, u16 compo_num);
|
|
|
|
#include "component_func.h"
|
|
#include "compo_form.h"
|
|
#include "compo_picturebox.h"
|
|
#include "compo_textbox.h"
|
|
#include "compo_label.h"
|
|
#include "compo_shape.h"
|
|
#include "compo_button.h"
|
|
#include "compo_number.h"
|
|
#include "compo_datetime.h"
|
|
#include "compo_qrcodebox.h"
|
|
#include "compo_listbox.h"
|
|
#include "compo_rowbox.h"
|
|
#include "compo_stacklist.h"
|
|
#include "compo_iconlist.h"
|
|
#include "compo_rotary.h"
|
|
#include "compo_disklist.h"
|
|
#include "compo_kaleidoscope.h"
|
|
#include "compo_animation.h"
|
|
#include "compo_rings.h"
|
|
#include "compo_arc.h"
|
|
#include "compo_chartbox.h"
|
|
#include "compo_cardbox.h"
|
|
#include "compo_move_ctr.h"
|
|
#include "compo_symbol.h"
|
|
#endif
|