Files
MKS-TFT35-Firmware/User/ui/draw_temperature_settings.cpp
makerbase-mks 3a0357562d update
2020-05-21 11:39:24 +08:00

344 lines
16 KiB
C++

#include "gui.h"
#include "button.h"
#include "draw_ui.h"
#include "at24cxx.h"
#ifndef GUI_FLASH
#define GUI_FLASH
#endif
static GUI_HWIN hTemperatureSettingsWnd;
static BUTTON_STRUCT NozzleCnt_text,NozzleMaxT_text,HotBedEnable_text,HotBedMaxT_text;
static BUTTON_STRUCT NozzleCnt_value,NozzleMaxT_value,HotBedEnable_sel,HotBedMaxT_value;
static BUTTON_STRUCT NozzleMaxT_default,HotBedMaxT_default,NozzleCnt_default;
static BUTTON_STRUCT button_back;
static void cbTemperatureSettingsWin(WM_MESSAGE * pMsg) {
struct PressEvt *press_event;
switch (pMsg->MsgId)
{
case WM_PAINT:
//GUI_SetColor(gCfgItems.state_background_color);
//GUI_DrawRect(LCD_WIDTH/4+X_ADD, 0, LCD_WIDTH *3 / 4-X_INTERVAL, imgHeight /2 -15);
GUI_SetColor(0xff5449);
GUI_FillRect(10, 90, 470,90);
GUI_FillRect(10, 140, 470,140);
//GUI_FillRect(10, 190, 470,190);
GUI_FillRect(10, 190, 470,190);
GUI_FillRect(10, 240, 470,240);
break;
case WM_TOUCH:
press_event = (struct PressEvt *)pMsg->Data.p;
break;
case WM_TOUCH_CHILD:
press_event = (struct PressEvt *)pMsg->Data.p;
break;
case WM_NOTIFY_PARENT:
if(pMsg->Data.v == WM_NOTIFICATION_RELEASED)
{
if(pMsg->hWinSrc == button_back.btnHandle)
{
last_disp_state = TEMPERATURE_SETTINGS_UI;
Clear_TemperatureSettings();
draw_return_ui();
}
else if(pMsg->hWinSrc == NozzleCnt_value.btnHandle)
{
value=Nozzle_Cnt;
last_disp_state = TEMPERATURE_SETTINGS_UI;
Clear_TemperatureSettings();
draw_NumberKey();
}
else if(pMsg->hWinSrc == NozzleMaxT_value.btnHandle)
{
value=Nozzle_max;
last_disp_state = TEMPERATURE_SETTINGS_UI;
Clear_TemperatureSettings();
draw_NumberKey();
}
else if(pMsg->hWinSrc == NozzleMaxT_default.btnHandle)
{
last_disp_state = TEMPERATURE_SETTINGS_UI;
gCfgItems.preheat_max_desireSprayerTemp=270;
HAL::AT24CXX_Write(BAK_SPRAYER1_MAXTEMP_ADDR,(uint8_t *)&gCfgItems.preheat_max_desireSprayerTemp,2);
memset(cmd_code,0,sizeof(cmd_code));
// if((gCfgItems.language == LANG_SIMPLE_CHINESE)||(gCfgItems.language == LANG_COMPLEX_CHINESE))
sprintf(cmd_code,"%d",gCfgItems.preheat_max_desireSprayerTemp);
// else
// sprintf(cmd_code,TEMP_UNIT_SYBOL,gCfgItems.preheat_max_desireSprayerTemp);
BUTTON_SetText(NozzleMaxT_value.btnHandle,cmd_code);
}
else if(pMsg->hWinSrc == NozzleCnt_default.btnHandle)
{
last_disp_state = TEMPERATURE_SETTINGS_UI;
gCfgItems.sprayerNum=1;
HAL::AT24CXX_Write(BAK_SPRAYER_NUM_ADDR,(uint8_t *)&gCfgItems.sprayerNum,1);
memset(cmd_code,0,sizeof(cmd_code));
sprintf(cmd_code,"%d",gCfgItems.sprayerNum);
BUTTON_SetText(NozzleCnt_value.btnHandle,cmd_code);
}
else if(pMsg->hWinSrc == HotBedMaxT_value.btnHandle)
{
if(gCfgItems.custom_bed_flag == 1)
{
last_disp_state = TEMPERATURE_SETTINGS_UI;
Clear_TemperatureSettings();
value=HotBed_max;
draw_NumberKey();
}
}
else if(pMsg->hWinSrc == HotBedMaxT_default.btnHandle)
{
last_disp_state = TEMPERATURE_SETTINGS_UI;
gCfgItems.preheat_max_desireBedTemp=150;
HAL::AT24CXX_Write(BAK_BED_MAXTEMP_ADDR,(uint8_t *)&gCfgItems.preheat_max_desireBedTemp,2);
memset(cmd_code,0,sizeof(cmd_code));
// if((gCfgItems.language == LANG_SIMPLE_CHINESE)||(gCfgItems.language == LANG_COMPLEX_CHINESE))
sprintf(cmd_code,"%d",gCfgItems.preheat_max_desireBedTemp);
// else
// sprintf(cmd_code,TEMP_UNIT_SYBOL,gCfgItems.preheat_max_desireBedTemp);
BUTTON_SetText(HotBedMaxT_value.btnHandle,cmd_code);
}
else if(pMsg->hWinSrc == HotBedEnable_sel.btnHandle)
{
if(gCfgItems.custom_bed_flag == 1)
{
gCfgItems.custom_bed_flag = 0;
BUTTON_SetBmpFileName(HotBedEnable_sel.btnHandle, "bmp_disable.bin",1);
BUTTON_SetBmpFileName(HotBedMaxT_value.btnHandle, "bmp_pic70x28.bin",1);
if(gCfgItems.multiple_language != 0)
BUTTON_SetText(HotBedEnable_sel.btnHandle,machine_menu.disable);
BUTTON_SetBkColor(HotBedMaxT_value.btnHandle, BUTTON_CI_PRESSED, 0x8f8f8f);
BUTTON_SetBkColor(HotBedMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, 0x8f8f8f);
BUTTON_SetTextColor(HotBedMaxT_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_text_color);
BUTTON_SetTextColor(HotBedMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_text_color);
}
else
{
gCfgItems.custom_bed_flag = 1;
BUTTON_SetBmpFileName(HotBedEnable_sel.btnHandle, "bmp_enable.bin",1);
BUTTON_SetBmpFileName(HotBedMaxT_value.btnHandle, "bmp_pic70x28_1.bin",1);
if(gCfgItems.multiple_language != 0)
BUTTON_SetText(HotBedEnable_sel.btnHandle,machine_menu.enable);
BUTTON_SetBkColor(HotBedMaxT_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_bk_color);
BUTTON_SetBkColor(HotBedMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_bk_color);
BUTTON_SetTextColor(HotBedMaxT_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_text_color);
BUTTON_SetTextColor(HotBedMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_text_color);
}
HAL::AT24CXX_Write(BAK_CUSTOM_BED_FLAG_ADDR,(uint8_t *)&gCfgItems.custom_bed_flag,1);
}
#if 0
else if((pMsg->hWinSrc == buttonpreTemperatureSetting.btnHandle)||
(pMsg->hWinSrc == preTemperatureSettingArrow.btnHandle))
{
last_disp_state = TEMPERATURE_SETTINGS_UI;
Clear_TemperatureSettings();
}
#endif
}
break;
default:
WM_DefaultProc(pMsg);
}
}
void draw_TemperatureSettings()
{
int i;
if(disp_state_stack._disp_state[disp_state_stack._disp_index] != TEMPERATURE_SETTINGS_UI)
{
disp_state_stack._disp_index++;
disp_state_stack._disp_state[disp_state_stack._disp_index] = TEMPERATURE_SETTINGS_UI;
}
disp_state = TEMPERATURE_SETTINGS_UI;
GUI_SetBkColor(gCfgItems.background_color);
GUI_SetColor(gCfgItems.title_color);
GUI_Clear();
GUI_DispStringAt(machine_menu.TemperatureConfTitle, TITLE_XPOS, TITLE_YPOS);
hTemperatureSettingsWnd = WM_CreateWindow(0, 0, LCD_WIDTH, LCD_HEIGHT, WM_CF_SHOW, cbTemperatureSettingsWin, 0);
NozzleCnt_text.btnHandle = BUTTON_CreateEx(10,50,300,40,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
NozzleCnt_value.btnHandle = BUTTON_CreateEx(320,50+5,VALUE_DEFAULT_X,VALUE_DEFAULT_Y,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
NozzleCnt_default.btnHandle = BUTTON_CreateEx(400,50+5,VALUE_DEFAULT_X,VALUE_DEFAULT_Y,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
NozzleMaxT_text.btnHandle = BUTTON_CreateEx(10,100,300,40,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
NozzleMaxT_value.btnHandle = BUTTON_CreateEx(320,100,VALUE_DEFAULT_X,VALUE_DEFAULT_Y,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
NozzleMaxT_default.btnHandle = BUTTON_CreateEx(400,100,VALUE_DEFAULT_X,VALUE_DEFAULT_Y,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
HotBedEnable_text.btnHandle = BUTTON_CreateEx(10,150,300,40,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
// NozzleCnt_value.btnHandle = BUTTON_CreateEx(320,50+5,VALUE_DEFAULT_X,VALUE_DEFAULT_Y,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
HotBedEnable_sel.btnHandle = BUTTON_CreateEx(370,150,90,40,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
HotBedMaxT_text.btnHandle = BUTTON_CreateEx(10,200,300,40,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
HotBedMaxT_value.btnHandle = BUTTON_CreateEx(320,200,VALUE_DEFAULT_X,VALUE_DEFAULT_Y,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
HotBedMaxT_default.btnHandle = BUTTON_CreateEx(400,200,VALUE_DEFAULT_X,VALUE_DEFAULT_Y,hTemperatureSettingsWnd, BUTTON_CF_SHOW, 0, alloc_win_id());
BUTTON_SetBmpFileName(NozzleCnt_value.btnHandle, "bmp_pic70x28_1.bin",1);
BUTTON_SetBmpFileName(NozzleMaxT_value.btnHandle, "bmp_pic70x28_1.bin",1);
if (gCfgItems.custom_bed_flag == 1)
{
BUTTON_SetBmpFileName(HotBedMaxT_value.btnHandle, "bmp_pic70x28_1.bin",1);
BUTTON_SetBmpFileName(HotBedEnable_sel.btnHandle, "bmp_enable.bin",1);
}
else
{
BUTTON_SetBmpFileName(HotBedMaxT_value.btnHandle, "bmp_pic70x28.bin",1);
BUTTON_SetBmpFileName(HotBedEnable_sel.btnHandle, "bmp_disable.bin",1);
}
BUTTON_SetBmpFileName(NozzleCnt_default.btnHandle, "bmp_pic70x28_2.bin",1);
BUTTON_SetBmpFileName(NozzleMaxT_default.btnHandle, "bmp_pic70x28_2.bin",1);
BUTTON_SetBmpFileName(HotBedMaxT_default.btnHandle, "bmp_pic70x28_2.bin",1);
BUTTON_SetBmpFileName(NozzleCnt_text.btnHandle,NULL,1);
BUTTON_SetBmpFileName(NozzleMaxT_text.btnHandle,NULL,1);
BUTTON_SetBmpFileName(HotBedMaxT_text.btnHandle,NULL,1);
BUTTON_SetBmpFileName(HotBedEnable_text.btnHandle,NULL,1);
BUTTON_SetBitmapEx(NozzleCnt_value.btnHandle,0,&bmp_struct70X28,0,0);
BUTTON_SetBitmapEx(NozzleMaxT_value.btnHandle,0,&bmp_struct70X28,0,0);
BUTTON_SetBitmapEx(HotBedMaxT_value.btnHandle,0,&bmp_struct70X28,0,0);
BUTTON_SetBitmapEx(HotBedEnable_sel.btnHandle,0,&bmp_struct90X30,0,5);
BUTTON_SetBitmapEx(NozzleCnt_default.btnHandle,0,&bmp_struct70X28,0,0);
BUTTON_SetBitmapEx(NozzleMaxT_default.btnHandle,0,&bmp_struct70X28,0,0);
BUTTON_SetBitmapEx(HotBedMaxT_default.btnHandle,0,&bmp_struct70X28,0,0);
BUTTON_SetTextAlign(NozzleCnt_text.btnHandle,GUI_TA_LEFT|GUI_TA_VCENTER );
BUTTON_SetTextAlign(NozzleMaxT_text.btnHandle,GUI_TA_LEFT|GUI_TA_VCENTER );
BUTTON_SetTextAlign(HotBedMaxT_text.btnHandle,GUI_TA_LEFT|GUI_TA_VCENTER );
BUTTON_SetTextAlign(HotBedEnable_text.btnHandle,GUI_TA_LEFT|GUI_TA_VCENTER );
BUTTON_SetTextAlign(NozzleCnt_value.btnHandle,GUI_TA_HCENTER|GUI_TA_VCENTER );
BUTTON_SetTextAlign(NozzleMaxT_value.btnHandle,GUI_TA_HCENTER|GUI_TA_VCENTER );
BUTTON_SetTextAlign(HotBedMaxT_value.btnHandle,GUI_TA_HCENTER|GUI_TA_VCENTER );
BUTTON_SetTextAlign(HotBedEnable_sel.btnHandle,GUI_TA_HCENTER|GUI_TA_VCENTER );
BUTTON_SetTextAlign(NozzleCnt_default.btnHandle,GUI_TA_HCENTER|GUI_TA_VCENTER );
BUTTON_SetTextAlign(NozzleMaxT_default.btnHandle,GUI_TA_HCENTER|GUI_TA_VCENTER );
BUTTON_SetTextAlign(HotBedMaxT_default.btnHandle,GUI_TA_HCENTER|GUI_TA_VCENTER );
BUTTON_SetBkColor(NozzleCnt_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_bk_color);
BUTTON_SetBkColor(NozzleCnt_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_bk_color);
BUTTON_SetTextColor(NozzleCnt_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_text_color);
BUTTON_SetTextColor(NozzleCnt_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_text_color);
BUTTON_SetBkColor(NozzleMaxT_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_bk_color);
BUTTON_SetBkColor(NozzleMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_bk_color);
BUTTON_SetTextColor(NozzleMaxT_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_text_color);
BUTTON_SetTextColor(NozzleMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_text_color);
if( gCfgItems.custom_bed_flag == 1 )
{
BUTTON_SetBkColor(HotBedMaxT_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_bk_color);
BUTTON_SetBkColor(HotBedMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_bk_color);
BUTTON_SetTextColor(HotBedMaxT_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_text_color);
BUTTON_SetTextColor(HotBedMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_text_color);
}
else
{
BUTTON_SetBkColor(HotBedMaxT_value.btnHandle, BUTTON_CI_PRESSED, 0x8f8f8f);
BUTTON_SetBkColor(HotBedMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, 0x8f8f8f);
BUTTON_SetTextColor(HotBedMaxT_value.btnHandle, BUTTON_CI_PRESSED, gCfgItems.value_text_color);
BUTTON_SetTextColor(HotBedMaxT_value.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.value_text_color);
}
BUTTON_SetBkColor(NozzleCnt_default.btnHandle, BUTTON_CI_PRESSED, gCfgItems.default_bk_color);
BUTTON_SetBkColor(NozzleCnt_default.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.default_bk_color);
BUTTON_SetTextColor(NozzleCnt_default.btnHandle, BUTTON_CI_PRESSED, gCfgItems.default_text_color);
BUTTON_SetTextColor(NozzleCnt_default.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.default_text_color);
BUTTON_SetBkColor(NozzleMaxT_default.btnHandle, BUTTON_CI_PRESSED, gCfgItems.default_bk_color);
BUTTON_SetBkColor(NozzleMaxT_default.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.default_bk_color);
BUTTON_SetTextColor(NozzleMaxT_default.btnHandle, BUTTON_CI_PRESSED, gCfgItems.default_text_color);
BUTTON_SetTextColor(NozzleMaxT_default.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.default_text_color);
BUTTON_SetBkColor(HotBedMaxT_default.btnHandle, BUTTON_CI_PRESSED, gCfgItems.default_bk_color);
BUTTON_SetBkColor(HotBedMaxT_default.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.default_bk_color);
BUTTON_SetTextColor(HotBedMaxT_default.btnHandle, BUTTON_CI_PRESSED, gCfgItems.default_text_color);
BUTTON_SetTextColor(HotBedMaxT_default.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.default_text_color);
memset(cmd_code,0,sizeof(cmd_code));
sprintf(cmd_code,"%d",gCfgItems.sprayerNum);
BUTTON_SetText(NozzleCnt_value.btnHandle,cmd_code);
memset(cmd_code,0,sizeof(cmd_code));
sprintf(cmd_code,"%d",gCfgItems.preheat_max_desireSprayerTemp);
BUTTON_SetText(NozzleMaxT_value.btnHandle,cmd_code);
sprintf(cmd_code,"%d",gCfgItems.preheat_max_desireBedTemp);
BUTTON_SetText(HotBedMaxT_value.btnHandle,cmd_code);
button_back.btnHandle = BUTTON_CreateEx(400,270,70,40,hTemperatureSettingsWnd,BUTTON_CF_SHOW,0,alloc_win_id());
BUTTON_SetBmpFileName(button_back.btnHandle, "bmp_pic70x40.bin",1);
BUTTON_SetBitmapEx(button_back.btnHandle, 0, &bmp_struct70X40,0, 0);
BUTTON_SetBkColor(button_back.btnHandle, BUTTON_CI_PRESSED, gCfgItems.back1_btn_color);
BUTTON_SetBkColor(button_back.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.back1_btn_color);
BUTTON_SetTextColor(button_back.btnHandle, BUTTON_CI_PRESSED, gCfgItems.back1_btn_textcolor);
BUTTON_SetTextColor(button_back.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.back1_btn_textcolor);
BUTTON_SetTextAlign(button_back.btnHandle,GUI_TA_HCENTER|GUI_TA_VCENTER );
if(gCfgItems.multiple_language != 0)
{
BUTTON_SetText(button_back.btnHandle,machine_menu.back);
BUTTON_SetText(NozzleCnt_text.btnHandle,machine_menu.NozzleCnt);
BUTTON_SetText(NozzleMaxT_text.btnHandle,machine_menu.NozzleMaxTemperature);
BUTTON_SetText(HotBedEnable_text.btnHandle,machine_menu.HotbedEnable);
if(gCfgItems.custom_bed_flag == 1)
BUTTON_SetText(HotBedEnable_sel.btnHandle,machine_menu.enable);
else
BUTTON_SetText(HotBedEnable_sel.btnHandle,machine_menu.disable); //HotbedEnable
BUTTON_SetText(HotBedMaxT_text.btnHandle,machine_menu.HotbedMaxTemperature);
BUTTON_SetText(NozzleCnt_default.btnHandle,machine_menu.default_value);
BUTTON_SetText(HotBedMaxT_default.btnHandle,machine_menu.default_value);
BUTTON_SetText(NozzleMaxT_default.btnHandle,machine_menu.default_value);
}
}
void Clear_TemperatureSettings()
{
GUI_SetBkColor(gCfgItems.background_color);
if(WM_IsWindow(hTemperatureSettingsWnd))
{
WM_DeleteWindow(hTemperatureSettingsWnd);
}
}