#include "includes.h" // ============================== // ��ť���� // ============================== #define BTN_Y_START 275 // ��ť��ʼY #define BTN_HEIGHT 40 // ��ť�߶� #define BTN_WIDTH 105 // ��ť��� #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 16 extern const Touch_AreaTypeDef *pCurrentTouch_Area; const Touch_AreaTypeDef Touch_SystemSetting_Areas[] = { // Xmin, Xmax, Ymin, Ymax, flag, Value, ID, action { 115, 170, 110, 170, -1, 0, GUI_BLUETOOTH_SW, NULL }, { 170, 225, 110, 170, 1, 0, GUI_BLUETOOTH_SW, NULL }, { 115, 170, 175, 235, -1, 0, GUI_AUTOCLOSE, NULL }, { 170, 225, 175, 235, 1, 0, GUI_AUTOCLOSE, NULL }, { 115, 170, 240, 300, -1, 0, GUI_RESTORE, NULL }, { 170, 225, 240, 300, 1, 0, GUI_RESTORE, NULL }, // { 15, 15+BTN_WIDTH, BTN_Y_START, BTN_Y_START+BTN_HEIGHT, 0, 0, GUI_CANCEL, NULL }, // { 15+BTN_WIDTH+BTN_GAP, 15+BTN_WIDTH*2+BTN_GAP, BTN_Y_START, BTN_Y_START+BTN_HEIGHT, 0, 1, GUI_CONFIRM, NULL }, { 0, 50, 0, 50, 0, 0, 0, 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[] = { {15, 230,35+10,60, (const uint8_t*)"\xB9\xCC\xBC\xFE\xB0\xE6\xB1\xBE", LCD_ALIGN_LEFT, WHITE, BLACK, 12, LCD_ALIGN_CENTER, WHITE, BLACK, 24, GUI_VERSION}, {15, 230,95+10+5,60, (const uint8_t*)"\xC0\xB6\xD1\xC0\xC1\xB4\xBD\xD3", LCD_ALIGN_LEFT, WHITE, BLACK, 12, LCD_ALIGN_CENTER, WHITE, BLACK, 24, GUI_BLUETOOTH_SW}, {15, 230,160+10+5,60,(const uint8_t*)"\xD7\xD4\xB6\xAF\xB9\xD8\xBB\xFA", LCD_ALIGN_LEFT, WHITE, BLACK, 12, LCD_ALIGN_CENTER, WHITE, BLACK, 24, GUI_AUTOCLOSE}, {15, 230,225+10+5,60,(const uint8_t*)"\xBB\xD6\xB8\xB4\xB3\xF6\xB3\xA7\xC9\xE8\xD6\xC3", LCD_ALIGN_LEFT, WHITE, BLACK, 12, LCD_ALIGN_CENTER, WHITE, BLACK, 24, GUI_RESTORE}, }; // ============================== // ���Ƶײ�������ť // ============================== void UI_Draw_Bottom_Buttons(void) { LCD_FillByColor(0, 270, 240, 320, BLACK); // ȡ����ť���� LCD_FillRoundRect( 15, BTN_Y_START, BTN_WIDTH, BTN_HEIGHT, BTN_RADIUS, BTN_COLOR_CANCEL ); LCD_ShowChinese_AutoAlign( 15, 15 + BTN_WIDTH, BTN_Y_START + (BTN_HEIGHT - BTN_TEXT_SIZE)/2, (uint8_t*)"\xC8\xB1\xCF\xF8\x00", LCD_ALIGN_CENTER, BTN_TEXT_COLOR, BTN_COLOR_CANCEL, 0, BTN_TEXT_SIZE ); // ȷ����ť���ң� LCD_FillRoundRect( 15 + BTN_WIDTH + BTN_GAP, BTN_Y_START, BTN_WIDTH, BTN_HEIGHT, BTN_RADIUS, BTN_COLOR_CONFIRM ); LCD_ShowChinese_AutoAlign( 15 + BTN_WIDTH + BTN_GAP, 15 + BTN_WIDTH*2 + BTN_GAP, BTN_Y_START + (BTN_HEIGHT - BTN_TEXT_SIZE)/2, (uint8_t*)"\xC8\xB7\xB6\xA8\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 // ����ɫ #define TOP_TITLE_TEXT_COLOR WHITE // ������ɫ #define TOP_TITLE_FONT_SIZE 16 // �����С #define TOP_TITLE_ALIGN LCD_ALIGN_CENTER // ���� // ============================== // ��ʾ�������⣺����̨ // ============================== void UI_DrawTop_TiaoYinTai(void) { LCD_FillByColor(0, 0, 240, 320, TOP_TITLE_BG_COLOR); LCD_WR_PIC(10,0 ,40,31,gImage_Return); // ��ʾ������̨�����С�16���֣� LCD_ShowChinese_AutoAlign( TOP_TITLE_X1, TOP_TITLE_X2, // �������� TOP_TITLE_Y1 + (TOP_TITLE_Y2 - TOP_TITLE_Y1 - TOP_TITLE_FONT_SIZE)/2, // ��ֱ���� (uint8_t*)"\xB5\xF7\xD2\xF4\xCC\xA8", // ����̨ TOP_TITLE_ALIGN, TOP_TITLE_TEXT_COLOR, TOP_TITLE_BG_COLOR, 0, TOP_TITLE_FONT_SIZE ); } // ============================== // ��ʾ�������⣺ϵͳ���� // ============================== void UI_DrawTop_SystemSetting(void) { LCD_FillByColor(0, 0, 240, 320, TOP_TITLE_BG_COLOR); LCD_WR_PIC(10,0 ,40,31,gImage_Return); // ��ʾ��ϵͳ���ã����С�16���֣� LCD_ShowChinese_AutoAlign( TOP_TITLE_X1, TOP_TITLE_X2, TOP_TITLE_Y1 + (TOP_TITLE_Y2 - TOP_TITLE_Y1 - TOP_TITLE_FONT_SIZE)/2, (uint8_t*)"\xCF\xB5\xCD\xB3\xC9\xE8\xD6\xC3", // ϵͳ���� TOP_TITLE_ALIGN, TOP_TITLE_TEXT_COLOR, TOP_TITLE_BG_COLOR, 0, TOP_TITLE_FONT_SIZE ); } 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; if(ID == 0) { MenuPage_SystemSetting_Proc(); } // -------------------------- // ������ѡ�� // -------------------------- last_value = mGuiData_SystemSETTING[ID].Current; switch(ID) { case GUI_BLUETOOTH_SW: GUI_Item_AjustValue(&mGuiData_SystemSETTING[ID], FLAG); RefreshSystemSetting(last_value, &SystemSetting[ID], &mGuiData_SystemSETTING[ID]); break; case GUI_AUTOCLOSE: GUI_Item_AjustLoopValue(&mGuiData_SystemSETTING[ID], FLAG); RefreshSystemSetting(last_value, &SystemSetting[ID], &mGuiData_SystemSETTING[ID]); break; case GUI_RESTORE: // GUI_Item_AjustValue(&mGuiData_SystemSETTING[ID], FLAG); // RefreshSystemSetting(last_value, &SystemSetting[ID], &mGuiData_SystemSETTING[ID]); MenuPage_Restore_Proc(); break; } } void UI_Setting_Init(void) { // LCD_WR_REG(0x28); // Display OFF UI_DrawTop_SystemSetting(); DrawSystemSetting(); pCurrentTouch_Area = Touch_SystemSetting_Areas; // LCD_WR_REG(0x29); // Display ON } void UI_Setting_Process(DisplayTaskMessage_Type msg) { switch(msg.MessageType) { case MSG_ID_TOUCH : for(uint8_t k=0; k= 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,0); ResetAutoPowerCount(); } } break; case MSG_ID_EC_VOL: // //LCD_ShowString(200, 0, Num_To_String(msg.DataU16[1],buff,3), RED, WHITE, 16, 0); // uint8_t vol = msg.DataU16[1]; // uint8_t level; // if (vol <= 5) level = 0; // else if (vol <= 35) level = 1; // else if (vol <= 65) level = 2; // else if (vol <= 95) level = 3; // else if (vol <= 115) level = 4; // else level = 5; // //Draw_Volume_Bar(5, 5, level, 1, WHITE, GRAY); // uint8_t mMasterSysExVolume[12] = { 0xF0, 0x41, 0x00, 0x42, 0x12, 0x40, 0x00, 0x04, 0x64, 0x00, 0x00,0xF7}; // memset(mMasterSysExVolume+8,msg.DataU16[1],1); // SendMidiDataToDreamDSP(mMasterSysExVolume,12); // // ResetAutoPowerCount(); break; } }