本帖最后由 emyhello 于 2015-12-20 17:04 编辑
/* 这是定义每个显示页面的最小元素--Icon, 每个Icon有图片和文本两种,对应不同的底层调用; */
/* 有些功能可以按需求去掉。 */
typedef struct
{
enIconType_t enIconType; //当前 Icon的 类型
stcImgIcon_t stcImg; // 图片类型的信息,比如图片大小、源位置等等
stcTextIcon_t stcText; // 文本类型的信息,比如有几个字,字体,放大等
stcValidArea_t stcIconArea; // 当前Icon触摸的有效果范围
stcDispLocation_t stcImgDisp; // 图片类型显示的特殊调用,如是为NULL,则为普通调用
stcDispLocation_t stcTextDisp; // 文本类型显示的特殊调用,如是为NULL,则为普通调用
boolean_t EnLock; // 该Icon是否允许被上锁(若为TRUE,则上锁后其不允许操作)
boolean_t EnDisp; // 该Icon是否允许显示(False的话,显示隐藏,但触摸有操作有效果)
boolean_t EnJmp; // 该Icon是否允许跳转页面
boolean_t EnMove; // 该Icon是否支持移动功能
boolean_t EnTouch; // 该Icon是否允许触摸,若为TRUE,下面的TouchHandle才有效果
boolean_t EnChgAlpha; // 该Icon是否允许改变透明度
uint32_t JmpPage; // 若EnJmp为TRUE,默认pSigRls后,会跳转到相应的页面
enIconSlect_t enIconSlect; // 该Icon是否支持选择(默认有触摸时,其透明度有变化)
uint8_t Alpha; // 透明度变化的值
TouchHandle pDisp; // 进入时,显示是否需要有特殊处理
TouchHandle pOther; // 进入时,是否需要有其它特殊处理
TouchHandle pDropOut; // 退出时,是否需要有其它特殊处理
TouchHandle pNoTouch; // 无触摸时,是否有其它特殊处理;若为NULL,默认处理
TouchHandle pSigTouch; // 单触摸时,是否有其它特殊处理;若为NULL,默认处理
TouchHandle pSigHold; // 单长触摸时,是否有其它特殊处理;若为NULL,默认处理
TouchHandle pSigMove; // 单拖动时,是否有其它特殊处理;若为NULL,默认处理
TouchHandle pSigRls; // 单触摸release时,是否有其它特殊处理;若为NULL,默认处理
TouchHandle pSigHoldRls; // 单长触摸release时,是否有其它特殊处理;若为NULL,默认处理
TouchHandle pSigMoveRls; // 单拖动release时,是否有其它特殊处理;若为NULL,默认处理
TouchHandle pMultiTouch; // 多点触摸时,是否有其它特殊处理;若为NULL,默认处理
TouchHandle pMultiRls; // 多点触摸release时,是否有其它特殊处理;若为NULL,默认处理
}stcDispIconAttr_t;
/* 显示页信息 */
typedef struct
{
uint32_t BgImgAddr; // 背景图片的源地址
uint32_t BgImgWidth; // 背景图片的宽度
uint32_t BgImgHeight; // 背景图片的长度
uint32_t IconTotal; // 显示页的Icon数目
PageHandle pPageHandle; // 进入页时,是否需要特殊处理
stcDispIconAttr_t stcIconArray[ITEM_MAX_NUM]; // Icon数组
stcMoveEvent_t stcMoveEvent; // 移动事件
stcDialogBoxPage_t stcDialogBox; // 对话框事件
}stcPageAttr_t;
可以参考下这个思路。
|