126 lines
5.2 KiB
C
126 lines
5.2 KiB
C
#include "includes.h"
|
||
|
||
/* ==============================
|
||
* 0902 ????????????? / ???????? / ?????? / ???????
|
||
* ?? 214x40????????? 50???????????? / ????? / ?????
|
||
* ============================== */
|
||
#define SET_ROW_X 13
|
||
#define SET_ROW_W 214
|
||
#define SET_ROW_H 40
|
||
#define SET_ROW_Y0 42
|
||
#define SET_ROW_PITCH 50
|
||
|
||
extern const Touch_AreaTypeDef *pCurrentTouch_Area;
|
||
|
||
const Touch_AreaTypeDef Touch_SystemSetting_Areas[] =
|
||
{
|
||
/* ??? / ????????????????? Flag -1/+1???????? */
|
||
{ 13, 119, SET_ROW_Y0 + SET_ROW_PITCH, SET_ROW_Y0 + SET_ROW_PITCH + SET_ROW_H - 1, -1, 0, GUI_BLUETOOTH_SW, NULL },
|
||
{ 120, 227, SET_ROW_Y0 + SET_ROW_PITCH, SET_ROW_Y0 + SET_ROW_PITCH + SET_ROW_H - 1, 1, 0, GUI_BLUETOOTH_SW, NULL },
|
||
{ 13, 119, SET_ROW_Y0 + SET_ROW_PITCH * 2, SET_ROW_Y0 + SET_ROW_PITCH * 2 + SET_ROW_H - 1, -1, 0, GUI_AUTOCLOSE, NULL },
|
||
{ 120, 227, SET_ROW_Y0 + SET_ROW_PITCH * 2, SET_ROW_Y0 + SET_ROW_PITCH * 2 + SET_ROW_H - 1, 1, 0, GUI_AUTOCLOSE, NULL },
|
||
{ 13, 227, SET_ROW_Y0 + SET_ROW_PITCH * 3, SET_ROW_Y0 + SET_ROW_PITCH * 3 + SET_ROW_H - 1, 0, 0, GUI_RESTORE, NULL },
|
||
{ 0, 59, 280, 319, 0, UI0902_NAV_UNIVERSAL, GUI_NAV_BAR, NULL },
|
||
{ 60, 119, 280, 319, 0, UI0902_NAV_NORMAL, GUI_NAV_BAR, NULL },
|
||
{ 120, 179, 280, 319, 0, UI0902_NAV_EXPERT, GUI_NAV_BAR, NULL },
|
||
{ 180, 239, 280, 319, 0, UI0902_NAV_SETTING, GUI_NAV_BAR, NULL },
|
||
};
|
||
|
||
#define TOUCH_AREA_SYSTEMSETTING_NUM (sizeof(Touch_SystemSetting_Areas)/sizeof(Touch_AreaTypeDef))
|
||
|
||
GUI_SWITCH mGuiData_SystemSETTING[] = {
|
||
{ 0, 0, 2, GUI_VERSION},
|
||
{ 0, 0, 1, GUI_BLUETOOTH_SW},
|
||
{ 0, 1, 3, GUI_AUTOCLOSE},
|
||
{ 0, 0, 1, GUI_RESTORE},
|
||
};
|
||
|
||
LEBEL_UI SystemSetting[] =
|
||
{
|
||
/* ?????? */
|
||
{SET_ROW_X, SET_ROW_W, SET_ROW_Y0, SET_ROW_H, (const uint8_t*)"\xB9\xCC\xBC\xFE\xB0\xE6\xB1\xBE", LCD_ALIGN_LEFT, WHITE, BLACK, 13, LCD_ALIGN_CENTER, WHITE, BLACK, 11, GUI_VERSION},
|
||
/* ????????????????????????????????????????????????????????????? */
|
||
{SET_ROW_X, SET_ROW_W, SET_ROW_Y0 + SET_ROW_PITCH, SET_ROW_H, (const uint8_t*)"\xC0\xB6\xD1\xC0\xC1\xAC\xBD\xD3", LCD_ALIGN_LEFT, WHITE, BLACK, 13, LCD_ALIGN_CENTER, WHITE, BLACK, 11, GUI_BLUETOOTH_SW},
|
||
{SET_ROW_X, SET_ROW_W, SET_ROW_Y0 + SET_ROW_PITCH*2, SET_ROW_H, (const uint8_t*)"\xD7\xD4\xB6\xAF\xB9\xD8\xBB\xFA", LCD_ALIGN_LEFT, WHITE, BLACK, 13, LCD_ALIGN_CENTER, WHITE, BLACK, 11, GUI_AUTOCLOSE},
|
||
{SET_ROW_X, SET_ROW_W, SET_ROW_Y0 + SET_ROW_PITCH*3, SET_ROW_H, (const uint8_t*)"\xBB\xD6\xB8\xB4\xB3\xF6\xB3\xA7\xC9\xE8\xD6\xC3", LCD_ALIGN_LEFT, WHITE, BLACK, 13, LCD_ALIGN_CENTER, WHITE, BLACK, 11, GUI_RESTORE},
|
||
};
|
||
|
||
void DrawSystemSetting(void)
|
||
{
|
||
Draw_System_Item_List(&SystemSetting[GUI_VERSION],&mGuiData_SystemSETTING[GUI_VERSION]);
|
||
Draw_System_Item_List(&SystemSetting[GUI_BLUETOOTH_SW],&mGuiData_SystemSETTING[GUI_BLUETOOTH_SW]);
|
||
Draw_System_Item_List(&SystemSetting[GUI_AUTOCLOSE],&mGuiData_SystemSETTING[GUI_AUTOCLOSE]);
|
||
Draw_System_Item_List(&SystemSetting[GUI_RESTORE],&mGuiData_SystemSETTING[GUI_RESTORE]);
|
||
}
|
||
|
||
void Touch_SystemSettingAction(int8_t FLAG, uint8_t ID, uint8_t areaIndex, uint8_t value)
|
||
{
|
||
uint16_t last_value;
|
||
(void)areaIndex;
|
||
|
||
if (ID == GUI_NAV_BAR)
|
||
{
|
||
/* ???????????<3F><>????????????????????<3F><>?????? */
|
||
if (value == UI0902_NAV_SETTING)
|
||
UI_GotoCurrentModePage();
|
||
else
|
||
UI_NavBar_Action(value);
|
||
return;
|
||
}
|
||
|
||
last_value = mGuiData_SystemSETTING[ID].Current;
|
||
switch(ID)
|
||
{
|
||
case GUI_BLUETOOTH_SW:
|
||
mGuiData_SystemSETTING[ID].Current = !mGuiData_SystemSETTING[ID].Current;
|
||
if (!UI_SetFocus(ID))
|
||
RefreshSystemSetting(last_value, &SystemSetting[ID], &mGuiData_SystemSETTING[ID]);
|
||
break;
|
||
|
||
case GUI_AUTOCLOSE:
|
||
GUI_Item_AjustLoopValue(&mGuiData_SystemSETTING[ID], FLAG >= 0 ? 1 : -1);
|
||
if (!UI_SetFocus(ID))
|
||
RefreshSystemSetting(last_value, &SystemSetting[ID], &mGuiData_SystemSETTING[ID]);
|
||
break;
|
||
|
||
case GUI_RESTORE:
|
||
MenuPage_Restore_Proc();
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void UI_Setting_Init(void)
|
||
{
|
||
UI_ClearFocus();
|
||
LCD_FillByColor(0, 0, 240, 320, UI0902_BG_COLOR);
|
||
/* ?????? */
|
||
LCD_ShowChinese_AutoAlign(0, 240, 8, (const uint8_t*)"\xCF\xB5\xCD\xB3\xC9\xE8\xD6\xC3", LCD_ALIGN_CENTER, WHITE, UI0902_BG_COLOR, 0, 16);
|
||
DrawSystemSetting();
|
||
Draw_Bottom_Bar(UI0902_NAV_SETTING, 0);
|
||
pCurrentTouch_Area = Touch_SystemSetting_Areas;
|
||
}
|
||
|
||
void UI_Setting_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 )
|
||
{
|
||
Touch_SystemSettingAction(pCurrentTouch_Area[k].Flag,pCurrentTouch_Area[k].ID,k,pCurrentTouch_Area[k].Value);
|
||
ResetAutoPowerCount();
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
case MSG_ID_EC_VOL:
|
||
break;
|
||
}
|
||
}
|