Files
player/Project/Src/MyWinApp/mywin_user_status_bar.h

98 lines
2.0 KiB
C
Raw Normal View History

2025-06-27 00:32:57 +08:00
#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