#ifndef MYWIN_USER_STATUS_BAR_H__ #define MYWIN_USER_STATUS_BAR_H__ //状态栏,继承自MYWIN框架 //用户界面,根据具体显示用途编写,没有通用性 #include "elf.h" //状态栏需要的资源数据结构体 typedef struct { u8 *bluetooth; u8 *heart; u8 *nfc; u8 *betty; }STATUSBAR_ResStruct; //状态参数 typedef struct { u32 structType; //结构体类型 char time[20]; char mode[100]; int mode_x; //在字符超过显示宽度时,滚动显示x方向的偏移 char betty[5]; int blueState; int heartState; int nfcState; int bettyState; }STATUSBAR_DataStruct; typedef struct { app_struct *app; RECT_Struct enter; RECT_Struct exit; }STATUSBAR_AppStruct; typedef struct { WIN_WindowStruct win; STATUSBAR_ResStruct res; //显示用的资源 STATUSBAR_DataStruct stat; int img_xsize;//图标最大横向尺寸 WIN_PicStruct pic;//状态栏背景图片 u32 backColor; //背景颜色 u32 color ; //前景颜色 int timerId; //定时器id int timerIdGet; //用于获取时间 u8 sec; int mov_start; //移动开始 int y_size_def; //默认的y尺寸 int dis; //滑动方向,1,展开,0,缩小 int app_num; int app_y_step; STATUSBAR_AppStruct app_item[APPM_LIST_MAXLEN]; }WIN_StatusBarStruct; //在堆里构造一个状态栏 WIN_StatusBarStruct *WIN_CreatStatusBar (WIN_WindowStruct *base, void (*msgLoop)(struct _WIN_WindowStruct *win,WIN_MsgStruct *msg), int x,int y,int x_size,int y_size); //状态信息更新 void STATUSBAR_StateUpdata (WIN_StatusBarStruct *statusbar,STATUSBAR_DataStruct *s); //设置资源文件 void STATUSBAR_SetRes (WIN_StatusBarStruct *statusbar,STATUSBAR_ResStruct *r); //设置背景图片 void STATUSBAR_SetBackPic (WIN_StatusBarStruct *statusbar,WIN_PicStruct *pic); //默认绘制函数 void STATUSBAR_DefaultPaint (WIN_StatusBarStruct *statusbar); //默认消息处理函数 void STATUSBAR_DefaultMsgLoop (WIN_StatusBarStruct *statusbar,WIN_MsgStruct *msg); #endif