2026-08-26 07:26:58 +08:00
|
|
|
|
#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>ɫ
|
2026-08-28 11:24:06 +08:00
|
|
|
|
#define TOP_TITLE_FONT_SIZE 13 // 标题字号
|
2026-08-26 07:26:58 +08:00
|
|
|
|
#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;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|