K1Guitar/UI/UI_Setting.c

123 lines
4.7 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"
/* ==============================
* 0902 设置页4 行列表(蓝牙设置/自动关机/恢复出厂设置/版本信息)
* 行 214x33纵向间距 46底栏返回 / 调音台 / 模式选择
* ============================== */
#define SET_ROW_X 13
#define SET_ROW_W 214
#define SET_ROW_H 33
extern const Touch_AreaTypeDef *pCurrentTouch_Area;
const Touch_AreaTypeDef Touch_SystemSetting_Areas[] =
{
// Xmin, Xmax, Ymin, Ymax, flag, Value, ID, action
{ 13, 227, 42, 75, 1, 0, GUI_BLUETOOTH_SW, NULL },
{ 13, 227, 88, 121, 1, 0, GUI_AUTOCLOSE, NULL },
{ 13, 227, 134, 167, 0, 0, GUI_RESTORE, NULL },
{ 0, 79, 280, 319, 0, UI0902_NAV_SETTING, GUI_NAV_BAR, NULL }, /* 返回 */
{ 80, 159, 280, 319, 0, UI0902_NAV_MIXER, GUI_NAV_BAR, NULL },
{ 160, 239, 280, 319, 0, UI0902_NAV_MODE, 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, 0, 1, GUI_BLUETOOTH_SW},
{ 0, 1, 3, GUI_AUTOCLOSE},
{ 0, 0, 1, GUI_RESTORE},
};
LEBEL_UI SystemSetting[] =
{
{SET_ROW_X, SET_ROW_W, 180, SET_ROW_H, (const uint8_t*)"\xB0\xE6\xB1\xBE\xD0\xC5\xCF\xA2", LCD_ALIGN_LEFT, WHITE, BLACK, 13, LCD_ALIGN_CENTER, WHITE, BLACK, 11, GUI_VERSION},
{SET_ROW_X, SET_ROW_W, 42, SET_ROW_H, (const uint8_t*)"\xC0\xB6\xD1\xC0\xC9\xE8\xD6\xC3", LCD_ALIGN_LEFT, WHITE, BLACK, 13, LCD_ALIGN_CENTER, WHITE, BLACK, 11, GUI_BLUETOOTH_SW},
{SET_ROW_X, SET_ROW_W, 88, 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, 134, 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)FLAG; (void)areaIndex;
if (ID == GUI_NAV_BAR)
{
switch (value)
{
case UI0902_NAV_SETTING: UI_GotoCurrentModePage(); break; /* 返回当前模式页 */
case UI0902_NAV_MIXER: MenuPage_Mixer_Proc(); break;
case UI0902_NAV_MODE: UI_ReturnToModeSelect(); break;
default: break;
}
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], 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*)"\xC9\xE8\xD6\xC3", LCD_ALIGN_CENTER, WHITE, UI0902_BG_COLOR, 0, 16);
DrawSystemSetting();
Draw_Bottom_Bar(UI0902_NAV_NONE, 1);
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;
}
}