mirror of
https://github.com/makerbase-mks/MKS-TFT35-Firmware.git
synced 2026-03-22 00:26:57 +01:00
283 lines
10 KiB
C++
283 lines
10 KiB
C++
#include "gui.h"
|
|
//#include "button.h"
|
|
//#include "PROGBAR.h"
|
|
#include "draw_tool.h"
|
|
#include "draw_ui.h"
|
|
#include "draw_print_file.h"
|
|
#include "pic.h"
|
|
//#include "fontLib.h"
|
|
#include "draw_move_motor.h"
|
|
//#include "text.h"
|
|
//#include "printer.h"
|
|
#include "draw_more.h"
|
|
#include "draw_manual_leveling.h"
|
|
#include "draw_filamentchange.h"
|
|
#include "sd_usr.h"
|
|
#include "draw_pre_heat.h"
|
|
#include "draw_extrusion.h"
|
|
#include "draw_zero.h"
|
|
#include "pic_manager.h"
|
|
#include "spi_flash.h"
|
|
#ifndef GUI_FLASH
|
|
#define GUI_FLASH
|
|
#endif
|
|
|
|
extern volatile unsigned char *codebufpoint;
|
|
extern char cmd_code[201];
|
|
|
|
extern uint8_t Get_Temperature_Flg;
|
|
extern volatile uint8_t get_temp_flag;
|
|
extern uint8_t leveling_first_time;
|
|
|
|
static BUTTON_STRUCT buttonPreHeat, buttonExtruse, buttonMove, buttonZero,buttonLeveling,buttonFilament,buttonMore,buttonRet;
|
|
static GUI_HWIN hToolWnd;
|
|
|
|
//extern GUI_FLASH const GUI_FONT GUI_FontHZ_fontHz18;
|
|
static TEXT_Handle Tool_Title_Text,Tool_state_Text;
|
|
|
|
static void cbDrawToolWin(WM_MESSAGE * pMsg) {
|
|
|
|
switch (pMsg->MsgId) {
|
|
case WM_PAINT:
|
|
|
|
break;
|
|
|
|
case WM_NOTIFY_PARENT:
|
|
if(pMsg->Data.v == WM_NOTIFICATION_RELEASED)
|
|
{
|
|
if(pMsg->hWinSrc == buttonMove.btnHandle)
|
|
{
|
|
gCfgItems.getzpos_flg = 1;
|
|
last_disp_state = TOOL_UI;
|
|
Clear_Tool();
|
|
draw_move_motor();
|
|
}
|
|
else if(pMsg->hWinSrc == buttonPreHeat.btnHandle)
|
|
{
|
|
last_disp_state = TOOL_UI;
|
|
Get_Temperature_Flg = 1;
|
|
get_temp_flag = 1;
|
|
Clear_Tool();
|
|
draw_preHeat();
|
|
}
|
|
else if(pMsg->hWinSrc == buttonExtruse.btnHandle)
|
|
{
|
|
last_disp_state = TOOL_UI;
|
|
Get_Temperature_Flg = 1;
|
|
get_temp_flag = 1;
|
|
Clear_Tool();
|
|
draw_extrusion();
|
|
}
|
|
else if(pMsg->hWinSrc == buttonZero.btnHandle)
|
|
{
|
|
last_disp_state = TOOL_UI;
|
|
Clear_Tool();
|
|
draw_Zero();
|
|
}
|
|
else if(pMsg->hWinSrc == buttonLeveling.btnHandle)
|
|
{
|
|
if(gCfgItems.leveling_mode == 1)
|
|
{
|
|
SPI_FLASH_BufferRead((u8*)cmd_code,BUTTON_AUTOLEVELING_ADDR,201);
|
|
codebufpoint = (u8*)cmd_code;
|
|
}
|
|
else
|
|
{
|
|
last_disp_state = TOOL_UI;
|
|
leveling_first_time = 1;
|
|
Clear_Tool();
|
|
draw_leveling();
|
|
}
|
|
}
|
|
else if(pMsg->hWinSrc == buttonFilament.btnHandle)
|
|
{
|
|
//gCfgItems.desireSprayerTempBak_1[gCfgItems.curSprayerChoose] = gCfgItems.desireSprayerTemp[gCfgItems.curSprayerChoose];
|
|
last_disp_state = TOOL_UI;
|
|
Clear_Tool();
|
|
draw_FilamentChange();
|
|
}
|
|
else if(pMsg->hWinSrc == buttonMore.btnHandle)
|
|
{
|
|
last_disp_state = TOOL_UI;
|
|
Clear_Tool();
|
|
draw_More();
|
|
}
|
|
else if(pMsg->hWinSrc == buttonRet.btnHandle)
|
|
{
|
|
last_disp_state = TOOL_UI;
|
|
Clear_Tool();
|
|
draw_return_ui();
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
WM_DefaultProc(pMsg);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void draw_tool()
|
|
{
|
|
int i;
|
|
if(disp_state_stack._disp_state[disp_state_stack._disp_index] != TOOL_UI)
|
|
{
|
|
disp_state_stack._disp_index++;
|
|
disp_state_stack._disp_state[disp_state_stack._disp_index] = TOOL_UI;
|
|
}
|
|
disp_state = TOOL_UI;
|
|
|
|
|
|
//GUI_SetFont(&GUI_Font8x18);
|
|
GUI_SetBkColor(gCfgItems.background_color);
|
|
GUI_SetColor(gCfgItems.title_color);
|
|
GUI_Clear();
|
|
//GUI_SetFont(&FONT_TITLE);
|
|
#if 0
|
|
if(gCfgItems.language == LANG_COMPLEX_CHINESE)
|
|
{
|
|
GUI_SetFont(&GUI_FontHZ16);
|
|
}
|
|
else
|
|
{
|
|
GUI_SetFont(&FONT_TITLE);
|
|
}
|
|
#endif
|
|
GUI_DispStringAt(creat_title_text(), 0, 0);
|
|
|
|
|
|
hToolWnd = WM_CreateWindow(0, titleHeight, LCD_WIDTH, imgHeight, WM_CF_SHOW, cbDrawToolWin, 0);
|
|
//Tool_Title_Text = TEXT_CreateEx(0,0, LCD_WIDTH, titleHeight, hToolWnd, WM_CF_SHOW, TEXT_CF_LEFT, alloc_win_id(), "Tool");
|
|
buttonPreHeat.btnHandle = BUTTON_CreateEx(INTERVAL_V, 0,BTN_X_PIXEL, BTN_Y_PIXEL,hToolWnd, BUTTON_CF_SHOW,0,alloc_win_id());
|
|
buttonExtruse.btnHandle = BUTTON_CreateEx(BTN_X_PIXEL+INTERVAL_V*2, 0,BTN_X_PIXEL,BTN_Y_PIXEL,hToolWnd,BUTTON_CF_SHOW,0,alloc_win_id());
|
|
buttonMove.btnHandle = BUTTON_CreateEx(BTN_X_PIXEL*2+INTERVAL_V*3,0,BTN_X_PIXEL,BTN_Y_PIXEL,hToolWnd,BUTTON_CF_SHOW,0,alloc_win_id());
|
|
buttonZero.btnHandle = BUTTON_CreateEx(BTN_X_PIXEL*3+INTERVAL_V*4,0,BTN_X_PIXEL,BTN_Y_PIXEL,hToolWnd,BUTTON_CF_SHOW,0,alloc_win_id());
|
|
if(gCfgItems.leveling_mode!=2)
|
|
{
|
|
buttonLeveling.btnHandle = BUTTON_CreateEx(INTERVAL_V,BTN_Y_PIXEL+INTERVAL_H,BTN_X_PIXEL,BTN_Y_PIXEL, hToolWnd,BUTTON_CF_SHOW,0,305);
|
|
buttonFilament.btnHandle = BUTTON_CreateEx(BTN_X_PIXEL+INTERVAL_V*2,BTN_Y_PIXEL+INTERVAL_H,BTN_X_PIXEL,BTN_Y_PIXEL,hToolWnd,BUTTON_CF_SHOW, 0, 306);
|
|
buttonMore.btnHandle = BUTTON_CreateEx(BTN_X_PIXEL*2+INTERVAL_V*3,BTN_Y_PIXEL+INTERVAL_H,BTN_X_PIXEL,BTN_Y_PIXEL,hToolWnd,BUTTON_CF_SHOW, 0, 307);
|
|
}
|
|
else
|
|
{
|
|
buttonFilament.btnHandle = BUTTON_CreateEx(INTERVAL_V,BTN_Y_PIXEL+INTERVAL_H,BTN_X_PIXEL,BTN_Y_PIXEL, hToolWnd,BUTTON_CF_SHOW,0,305);
|
|
buttonMore.btnHandle = BUTTON_CreateEx(BTN_X_PIXEL+INTERVAL_V*2,BTN_Y_PIXEL+INTERVAL_H,BTN_X_PIXEL,BTN_Y_PIXEL,hToolWnd,BUTTON_CF_SHOW, 0, 306);
|
|
}
|
|
buttonRet.btnHandle = BUTTON_CreateEx(BTN_X_PIXEL*3+INTERVAL_V*4,BTN_Y_PIXEL+INTERVAL_H,BTN_X_PIXEL,BTN_Y_PIXEL,hToolWnd,BUTTON_CF_SHOW, 0, 308);
|
|
//Tool_state_Text = TEXT_CreateEx(0,LCD_HEIGHT-statHeight, LCD_WIDTH, statHeight, hToolWnd, WM_CF_SHOW, TEXT_CF_LEFT, alloc_win_id(), " ");
|
|
|
|
//TEXT_SetTextColor(Tool_Title_Text, gCfgItems.title_color);
|
|
//TEXT_SetTextAlign(Tool_Title_Text, GUI_TA_VCENTER | GUI_TA_HCENTER);
|
|
//TEXT_SetTextColor(Tool_state_Text, gCfgItems.title_color);
|
|
//TEXT_SetTextAlign(Tool_state_Text, GUI_TA_VCENTER | GUI_TA_LEFT);
|
|
|
|
|
|
//TEXT_SetText(Tool_Title_Text,tool_menu.title);
|
|
BUTTON_SetBmpFileName(buttonPreHeat.btnHandle, "bmp_preHeat.bin",1);
|
|
BUTTON_SetBmpFileName(buttonExtruse.btnHandle, "bmp_extruct.bin",1);
|
|
BUTTON_SetBmpFileName(buttonMove.btnHandle, "bmp_mov.bin",1);
|
|
BUTTON_SetBmpFileName(buttonZero.btnHandle, "bmp_zero.bin",1);
|
|
if(gCfgItems.leveling_mode != 2)
|
|
{
|
|
if(gCfgItems.leveling_mode == 1)
|
|
{
|
|
BUTTON_SetBmpFileName(buttonLeveling.btnHandle, "bmp_autoleveling.bin",1);
|
|
}
|
|
else
|
|
{
|
|
BUTTON_SetBmpFileName(buttonLeveling.btnHandle, "bmp_leveling.bin",1);
|
|
}
|
|
}
|
|
BUTTON_SetBmpFileName(buttonFilament.btnHandle, "bmp_filamentchange.bin",1);
|
|
BUTTON_SetBmpFileName(buttonMore.btnHandle, "bmp_more.bin",1);
|
|
BUTTON_SetBmpFileName(buttonRet.btnHandle, "bmp_return.bin",1);
|
|
//bmp_struct.XSize = toolbtm_image_X;
|
|
//bmp_struct.YSize = toolbtm_image_Y;
|
|
BUTTON_SetBitmapEx(buttonPreHeat.btnHandle, 0, &bmp_struct,BMP_PIC_X, BMP_PIC_Y);
|
|
BUTTON_SetBitmapEx(buttonExtruse.btnHandle, 0, &bmp_struct,BMP_PIC_X, BMP_PIC_Y);
|
|
BUTTON_SetBitmapEx(buttonMove.btnHandle, 0, &bmp_struct,BMP_PIC_X, BMP_PIC_Y);
|
|
BUTTON_SetBitmapEx(buttonZero.btnHandle, 0, &bmp_struct,BMP_PIC_X, BMP_PIC_Y);
|
|
if(gCfgItems.leveling_mode != 2)
|
|
{
|
|
BUTTON_SetBitmapEx(buttonLeveling.btnHandle, 0, &bmp_struct,BMP_PIC_X, BMP_PIC_Y);
|
|
}
|
|
|
|
BUTTON_SetBitmapEx(buttonFilament.btnHandle, 0, &bmp_struct,BMP_PIC_X, BMP_PIC_Y);
|
|
BUTTON_SetBitmapEx(buttonMore.btnHandle, 0, &bmp_struct,BMP_PIC_X, BMP_PIC_Y);
|
|
BUTTON_SetBitmapEx(buttonRet.btnHandle, 0, &bmp_struct,BMP_PIC_X, BMP_PIC_Y);
|
|
|
|
BUTTON_SetBkColor(buttonPreHeat.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetBkColor(buttonPreHeat.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetTextColor(buttonPreHeat.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_textcolor);
|
|
BUTTON_SetTextColor(buttonPreHeat.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_textcolor);
|
|
|
|
BUTTON_SetBkColor(buttonExtruse.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetBkColor(buttonExtruse.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetTextColor(buttonExtruse.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_textcolor);
|
|
BUTTON_SetTextColor(buttonExtruse.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_textcolor);
|
|
|
|
BUTTON_SetBkColor(buttonMove.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetBkColor(buttonMove.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetTextColor(buttonMove.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_textcolor);
|
|
BUTTON_SetTextColor(buttonMove.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_textcolor);
|
|
|
|
BUTTON_SetBkColor(buttonZero.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetBkColor(buttonZero.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetTextColor(buttonZero.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_textcolor);
|
|
BUTTON_SetTextColor(buttonZero.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_textcolor);
|
|
|
|
BUTTON_SetBkColor(buttonLeveling.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetBkColor(buttonLeveling.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetTextColor(buttonLeveling.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_textcolor);
|
|
BUTTON_SetTextColor(buttonLeveling.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_textcolor);
|
|
|
|
BUTTON_SetBkColor(buttonFilament.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetBkColor(buttonFilament.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetTextColor(buttonFilament.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_textcolor);
|
|
BUTTON_SetTextColor(buttonFilament.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_textcolor);
|
|
|
|
BUTTON_SetBkColor(buttonMore.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetBkColor(buttonMore.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_color);
|
|
BUTTON_SetTextColor(buttonMore.btnHandle, BUTTON_CI_PRESSED, gCfgItems.btn_textcolor);
|
|
BUTTON_SetTextColor(buttonMore.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.btn_textcolor);
|
|
|
|
BUTTON_SetBkColor(buttonRet.btnHandle, BUTTON_CI_PRESSED, gCfgItems.back_btn_color);
|
|
BUTTON_SetBkColor(buttonRet.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.back_btn_color);
|
|
BUTTON_SetTextColor(buttonRet.btnHandle, BUTTON_CI_PRESSED, gCfgItems.back_btn_textcolor);
|
|
BUTTON_SetTextColor(buttonRet.btnHandle, BUTTON_CI_UNPRESSED, gCfgItems.back_btn_textcolor);
|
|
|
|
if(gCfgItems.multiple_language != 0)
|
|
{
|
|
BUTTON_SetText(buttonPreHeat.btnHandle,tool_menu.preheat);
|
|
BUTTON_SetText(buttonExtruse.btnHandle,tool_menu.extrude);
|
|
BUTTON_SetText(buttonMove.btnHandle,tool_menu.move);
|
|
BUTTON_SetText(buttonZero.btnHandle,tool_menu.home);
|
|
if(gCfgItems.leveling_mode != 2)
|
|
{
|
|
if(gCfgItems.leveling_mode == 1)
|
|
BUTTON_SetText(buttonLeveling.btnHandle,tool_menu.autoleveling);
|
|
else
|
|
BUTTON_SetText(buttonLeveling.btnHandle,tool_menu.leveling);
|
|
}
|
|
BUTTON_SetText(buttonFilament.btnHandle,tool_menu.filament);
|
|
BUTTON_SetText(buttonMore.btnHandle,tool_menu.more);
|
|
BUTTON_SetText(buttonRet.btnHandle,common_menu.text_back);
|
|
}
|
|
|
|
}
|
|
|
|
void Clear_Tool()
|
|
{
|
|
GUI_SetBkColor(gCfgItems.background_color);
|
|
if(WM_IsWindow(hToolWnd))
|
|
{
|
|
WM_DeleteWindow(hToolWnd);
|
|
GUI_Exec();
|
|
}
|
|
|
|
//GUI_Clear();
|
|
}
|
|
|