K1Guitar/UI/UI_Restore.c

150 lines
4.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "includes.h"
// ==============================
// 按键界面配置参数
// ==============================
#define BTN_Y_START 115 // 按键Y轴起始坐标
#define BTN_HEIGHT 80 // 按键高度
#define BTN_WIDTH 220 // 按键宽度
#define BTN_GAP 5 // 按键之间的间距
#define BTN_RADIUS 6 // 圆角半径
// 按键颜色配置
#define BTN_COLOR_CANCEL 0x4A4A // 取消按键背景色
#define BTN_COLOR_CONFIRM 0x03B7 // 确认按键背景色
#define BTN_TEXT_COLOR 0xFFFF // 按键字体颜色
#define BTN_TEXT_SIZE 24 // 按键文字字号
extern const Touch_AreaTypeDef *pCurrentTouch_Area;
const Touch_AreaTypeDef Touch_Restore_Areas[] =
{
// Xmin, Xmax, Ymin, Ymax, flag, Value, ID, action
{ 0, 50, 0, 50, 0, 0, 0, NULL },
{ 10, 10+BTN_WIDTH, BTN_Y_START, BTN_Y_START+BTN_HEIGHT, 0, 1, 1, NULL },
{ 10, 10+BTN_WIDTH, BTN_Y_START, BTN_Y_START+BTN_HEIGHT, 0, 2, 0, NULL },
};
#define TOUCH_AREA_SYSTEMSETTING_NUM (sizeof(Touch_Restore_Areas)/sizeof(Touch_AreaTypeDef))
void UI_Draw_Buttons(void)
{
// LCD_FillByColor(10, 270, 220, 320, BLACK);
LCD_FillRoundRect(
10,
BTN_Y_START,
BTN_WIDTH,
BTN_HEIGHT,
BTN_RADIUS,
BTN_COLOR_CANCEL
);
LCD_ShowChinese_AutoAlign(
10, 10 + BTN_WIDTH,
BTN_Y_START + (BTN_HEIGHT - BTN_TEXT_SIZE)/2,
(uint8_t*)"\xC8\xB7\xB6\xA8\x00",
LCD_ALIGN_CENTER,
BTN_TEXT_COLOR,
BTN_COLOR_CANCEL,
0,
BTN_TEXT_SIZE
);
LCD_FillRoundRect(
10,
BTN_Y_START+BTN_HEIGHT+BTN_GAP,
BTN_WIDTH,
BTN_HEIGHT,
BTN_RADIUS,
BTN_COLOR_CONFIRM
);
LCD_ShowChinese_AutoAlign(
10, 10 + BTN_WIDTH,
BTN_Y_START + BTN_HEIGHT + (BTN_HEIGHT - BTN_TEXT_SIZE)/2,
(uint8_t*)"\xC8\xB1\xCF\xF8\x00",
LCD_ALIGN_CENTER,
BTN_TEXT_COLOR,
BTN_COLOR_CONFIRM,
0,
BTN_TEXT_SIZE
);
}
#define TOP_TITLE_X1 0
#define TOP_TITLE_X2 240
#define TOP_TITLE_Y1 0
#define TOP_TITLE_Y2 35
#define TOP_TITLE_BG_COLOR BLACK // <20><><EFBFBD><EFBFBD>ɫ
#define TOP_TITLE_TEXT_COLOR WHITE // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define TOP_TITLE_FONT_SIZE 13 // 标题字号
#define TOP_TITLE_ALIGN LCD_ALIGN_CENTER // <20><><EFBFBD><EFBFBD>
// ==============================
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3BA><EFBFBD><EFBFBD>̨
// ==============================
void UI_DrawTop_Restore(void)
{
//const uint16_t btn_color = /*DARKLGRAY*/0x2988; // 深灰<E6B7B1>?????
// <20><>ˢ<EFBFBD><CBA2>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
//LCD_FillByColor(TOP_TITLE_X1, TOP_TITLE_Y1, TOP_TITLE_X2, TOP_TITLE_Y2, TOP_TITLE_BG_COLOR);
LCD_FillByColor(0, 0, 240, 320, TOP_TITLE_BG_COLOR);
//LCD_DrawLine(0, 30, 240, 30, btn_color);
LCD_WR_PIC(10,0 ,40,31,gImage_Return);
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>16<31><36><EFBFBD>֣<EFBFBD>
LCD_ShowChinese_AutoAlign(
TOP_TITLE_X1, TOP_TITLE_X2, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TOP_TITLE_Y1 + (TOP_TITLE_Y2 - TOP_TITLE_Y1 - TOP_TITLE_FONT_SIZE)/2, // <20><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>
(uint8_t*)"\xBB\xD6\xB8\xB4\xB3\xF6\xB3\xA7\xC9\xE8\xD6\xC3", // <20><><EFBFBD><EFBFBD>̨
TOP_TITLE_ALIGN,
TOP_TITLE_TEXT_COLOR,
TOP_TITLE_BG_COLOR,
0,
TOP_TITLE_FONT_SIZE
);
}
void UI_Restore_Select_Init(void)
{
// LCD_WR_REG(0x28); // Display OFF
UI_DrawTop_Restore();
UI_Draw_Buttons();
pCurrentTouch_Area = Touch_Restore_Areas;
// LCD_WR_REG(0x29); // Display ON
}
void UI_Restore_Select_Process(DisplayTaskMessage_Type msg)
{
switch(msg.MessageType)
{
case MSG_ID_TOUCH :
for(uint8_t k=0; k<TOUCH_AREA_SYSTEMSETTING_NUM; k++)
{
if( msg.HiByte >= pCurrentTouch_Area[k].x_min &&
msg.HiByte <= pCurrentTouch_Area[k].x_max &&
msg.LoByte >= pCurrentTouch_Area[k].y_min &&
msg.LoByte <= pCurrentTouch_Area[k].y_max )
{
switch(pCurrentTouch_Area[k].ID)
{
case 0:
MenuPage_Setting_Proc();
break;
case 1:
RestoreSetting();
MenuPage_Setting_Proc();
break;
case 2:
MenuPage_Setting_Proc();
break;
}
ResetAutoPowerCount();
}
}
break;
}
}