📄 menuicon.c
字号:
#include "menu.h"
#include <stdio.h>
#define ICON_XOFF 24 //+ BarXOffset
#define ICON_YOFF TITLEH + VINTERVAL //BarYOffset
#define ICON_SIZE 64
GUI_RECT grTitle = {0, 0, SCREENX-1, TITLEH-1};
unsigned int LCD_L0_GetPixelIndex(int x, int y);
void DrawIcons(int i)
{
int x, y;
x = ICON_XOFF + i % 3 * ICON_SIZE;
y = ICON_YOFF + i / 3 * ICON_SIZE;
GUI_DrawCircle(x+ICON_SIZE/2, y+ICON_SIZE/2, ICON_SIZE/2);
GUI_DispDecAt(i, x+ICON_SIZE/2-10, y+ICON_SIZE/2-10, 2);
}
void SleIcon(int i)
{
// int m, n;
int x, y;
// unsigned int t, r, g, b;
int Xpos, Ypos;
Xpos = ICON_XOFF + i % 3 * ICON_SIZE;
Ypos = ICON_YOFF + i / 3 * ICON_SIZE;
x = Xpos, y = Ypos;
MenuHigLight(x, y, ICON_SIZE, ICON_SIZE, 1);
/*
for (m=0; m<ICON_SIZE; m++)
for (n=0; n<ICON_SIZE; n++) {
t = LCD_L0_GetPixelIndex(x+n, y+m);
r = (t & 0x1f);
g = (t >> 5) & 0x3f;
b = (t >> 11) & 0x1f;
r += (0x1f - r) >> 2;
g += (0x3f - g) >> 2;
b += (0x1f - b) >> 2;
t = r | (g << 5) | (b << 11);
LCD_L0_SetPixelIndex(x+n, y+m, t);
}
*//*
GUI_DrawHLine(Ypos, Xpos, Xpos+20);
GUI_DrawHLine(Ypos, Xpos + ICON_SIZE - 20, Xpos + ICON_SIZE);
GUI_DrawHLine(Ypos + ICON_SIZE, Xpos, Xpos+20);
GUI_DrawHLine(Ypos + ICON_SIZE, Xpos + ICON_SIZE - 20, Xpos + ICON_SIZE);
GUI_DrawLine(Xpos, Ypos, Xpos, Ypos+20);
GUI_DrawLine(Xpos + ICON_SIZE, Ypos, Xpos + ICON_SIZE, Ypos+20);
GUI_DrawLine(Xpos, Ypos + ICON_SIZE -20, Xpos, Ypos + ICON_SIZE);
GUI_DrawLine(Xpos + ICON_SIZE, Ypos + ICON_SIZE - 20, Xpos + ICON_SIZE, Ypos + ICON_SIZE);
*/
}
/*
*****************************************************************************
* DispIcoMenuInit - 图标层菜单界面
* DESCRIPTION: -
* 共有5个函数
DispIcoMenuInit DispIcoMenuUp DispIcoMenuDown
DispIcoMenuLeft DispIcoMenuRight
* @Return :
*
*****************************************************************************
*/
void DispIcoMenuInit()
{
unsigned int tm;
ItemNum = IcoMenu[language].TextNum;//多少数据项
DispItem = IcoMenu[language].Text; //数据
if(Flash == FlashMode_AutoInit){//从0进入,初始化Item等值
PUSH();
Item = 0;
Where = 0;
}
GUI_SetBkColor(MENU_BC);
GUI_SetColor(MENU_FC);
// GUI_SetFont(MENU_CF);
{
// GUI_MEMDEV_Handle hMem;
// hMem = GUI_MEMDEV_Create(0, 0, 240, 320);
// GUI_MEMDEV_Select(hMem);
MenuShowBmp(MENU_ICO_BMP, 0, 0);
SleIcon(Item);
// GUI_MEMDEV_CopyToLCD(hMem);
// GUI_MEMDEV_Select(0);
}
GUI_SetFont(MENU_TF);
tm = GUI_SetTextMode(GUI_TM_TRANS);
GUI_DispStringInRect((char *)*(DispItem+Item), &grTitle, GUI_TA_HCENTER|GUI_TA_VCENTER);
GUI_SetTextMode(tm);
GUI_SetFont(MENU_CF);
return;
}
/*
*****************************************************************************
* DispIcoMenuUp - 图标层下确定键的行为
* DESCRIPTION: -
* 分发处理各个跳转
* 第一层菜单的Up键处理
* Return :
*
*****************************************************************************
*/
void DispIcoMenuUp()
{
int t, li;
t = Item - 3;
if (t < 0) {
li = (ItemNum % 3) ? ItemNum / 3 + 1 : ItemNum / 3;
li *= 3;
t = li + t;
if (t >= ItemNum)
t -= 3;
}
Item = t;
// GUI_DispStringAtBar(*(DispItem+Item),0,ICO_PosY+ICO_YSize,126,GUI_TA_HCENTER);//菜单名字
// GUI_DrawIcon(icos[Item],ICO_PosX,ICO_PosY); //图标
// Jump2Menu(SelfMenuIndex,FlashMode_NoAction);
Jump2Menu(SelfMenuIndex,FlashMode_ReFlash);
// Jump2Menu(SelfMenuIndex,FlashMode_ReFlash);
}
void DispIcoMenuDown()
{
Item += 3;
if (Item >= ItemNum) {
Item %= 3;
}
Jump2Menu(SelfMenuIndex,FlashMode_ReFlash);
}
void DispIcoMenuLeft()
{
if(Item==0){
Item = ItemNum-1;
}else{
Item--;
}
Jump2Menu(SelfMenuIndex,FlashMode_ReFlash);
}
void DispIcoMenuRight(void)
{
if(Item==(ItemNum-1)){
Item = 0;
}else{
Item++;
}
Jump2Menu(SelfMenuIndex,FlashMode_ReFlash);
}
void DispIcoMenuSel(void)
{
switch(Item){
case 0:{
//LCD_Clear(White);
//功能
Jump2Menu(MenuFuncIndex,FlashMode_AutoInit);
return;
}
case 1: {
int Rfid_Demo(void);
Rfid_Demo();
Jump2Menu(SelfMenuIndex,FlashMode_ReFlash);
return;
}
case 2: {
void GUIDEMO_Adc(void);
GUIDEMO_Adc();
Jump2Menu(SelfMenuIndex,FlashMode_ReFlash);
return;
}
default:{
Jump2Menu(MenuTopIndex,FlashMode_ReFlash);
return;
}
}
}
void DispIcoMenuCancel(void)
{
POP();
}
//---------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -