KT24-1110_65E-HA-651B/apps/soundbox/include/ui/lcd_simple/ui.h
2024-11-10 18:44:17 +08:00

77 lines
2.9 KiB
C

#ifndef __LCDSIMULATOR_H__
#define __LCDSIMULATOR_H__
#include "menu.h"
#include "font/language_list.h"
#include "typedef.h"
// #define USE_BLANK_FUNC 1
// #define LCDPAGE 8
// #define LCDCOLUMN 128
// #define SCR_WIDTH LCDCOLUMN
// #define SCR_HEIGHT (LCDPAGE*8)
#define MENUICONWIDTH 12 //菜单项目左边图标的宽度(象素)
#define MENUITEMHEIGHT 16 //菜单项目的高度(象素)
#define SCROLLBARWIDTH 6 //垂直滚动条的宽度(象素)
#define MENUITEMSUMPERSCR (SCR_HEIGHT/MENUITEMHEIGHT) //每屏可显示的最大菜单项
#define MENUITEMPAGEHEIGHT 2 //每个菜单项所占的页数 2个LCDPAGE --> 2*8=16个像素
#define RESFILESTARTADDRESS 0 //资源文件的起始地址
#define PROGRESSLENGTH 100 //进度条长度(象素)
#define SLIDERLENGTH 100 //滑动条长度(象素)
#define SLIDERMOVESTEP 5 //滑动块的移动步长
#define SLIDER_NOMOVE_TIMEEXIT 10 //滑动条不动超过此时间自动退出,(*0.5S)
#define MENUWAITTIME (8*2) //菜单界面不操作超过MENUWAITTIME时间则自动返回
#define ntohl(x) (unsigned long)((x>>24)|((x>>8)&0xff00)|(x<<24)|((x&0xff00)<<8))
#define ntoh(x) (unsigned short int )((x>>8&0x00ff)|x<<8&0xff00)
//#pragma pack(1)
typedef u8(* FUN)(u8 mode);
typedef struct _MENULIST {
u8 ItemSum; //菜单项目总数
u8 ActiveItemNum; //当前活动菜单项目序号:1--ItemSum
u8 IconID[2]; //第一个为菜单选中时显示图标的ID号,第二个为菜单未选中时显示图标的ID号
u16 TitleID; //菜单的标题字符串ID号,没有标题此值为0
u16 *ItemString; //菜单项目对应的字符串ID号
// FUN fun;
} MENULIST;
//////函数声明//////
u8 TurnPixelReverse_Page(u8 startpage, u8 pagelen);
u8 TurnPixelReverse_Rect(u8 left, u8 top, u8 right, u8 bottom);
void UI_MenuSelectOn(u8 showitemnum);
void Scrol_String(u16 StringID);
u8 SetScrollBar(u8 Start_x);
u8 SetSlideBlock(u8 Start_x, u8 Start_y);
u8 UI_Slider(FUN gslider);
u8 UI_Progress(u8 currentpos, u8 progress_y_pos, u8 progresslength);
u8 SetSlider(u8 start_x, u8 start_y, u8 length);
u8 SetProgress(u8 start_x, u8 start_y, u8 length);
u8 ClearLcdBuf_Page(u8 startpage, u8 pagelen);
u8 ClearLcdBuf_Rect(u8 left, u8 top, u8 right, u8 bottom);
u8 draw_slider(s8 currentpos, u8 slider_y_pos, u8 sliderlength);
#define UI_SLIDER_CURR_VALUE 0
#define UI_SLIDER_DEC 1
#define UI_SLIDER_INC 2
extern s8 MenuItemSelectOnNum; //当前屏幕活动page序号:0--(MENUITEMSUMPERSCR-1)
extern s8 CurrentScreenNum; //当前所处屏幕数,从0序号开始
extern u8 NeedScreenSumViaItem; //菜单项目总数将占用屏幕的屏数
extern u8 LaseScreenRemainMenuItem; //最后一屏只需显示的菜单项目数
extern u8 LanguageMode;
extern void clear_lcd();
extern void draw_lcd(u8 start_page, u8 page_len);
extern void clear_lcd_area(u8 start_page, u8 end_page);
#endif