printer-monitor/printermonitor/Menu/CooldownMenu.cpp

81 lines
1.7 KiB
C++

#include "CooldownMenu.h"
#include "TemperatureMenuItem.h"
#include "TemperaturePreset.h"
CooldownMenu::CooldownMenu()
{
MenuTitle = "Cooldown Menu";
}
void CooldownMenu::processKey(char c)
{
if (c >= '1' && c <= '6')
{
TemperatureMenuItem *item = (TemperatureMenuItem *)getItemForKey(c);
if (item != NULL)
{
TriggerCooldown(item);
doExit();
}
}
Menu::processKey(c);
}
void CooldownMenu::TriggerCooldown(TemperatureMenuItem *item)
{
if (item->preheatBed)
{
client->preheatBed(item->preset->bed);
}
if (item->preheatChamber)
{
client->preheatChamber(item->preset->chamber);
}
if (item->preheatExtruder)
{
client->preheatTool(0, item->preset->extruder);
}
}
void CooldownMenu::beforeShow()
{
TemperaturePreset *cooldown = new TemperaturePreset();
cooldown->bed = 0;
cooldown->chamber = 0;
cooldown->extruder = 0;
menuItems.clear();
TemperatureMenuItem *all = new TemperatureMenuItem("All");
all->preset = cooldown;
all->preheatBed = true;
all->preheatChamber = true;
all->preheatExtruder = true;
menuItems.add(all);
TemperatureMenuItem *extruder = new TemperatureMenuItem("Extruder");
extruder->preset = cooldown;
extruder->preheatExtruder = true;
menuItems.add(extruder);
TemperatureMenuItem *bed = new TemperatureMenuItem("Bed");
bed->preset = cooldown;
bed->preheatBed = true;
menuItems.add(bed);
TemperatureMenuItem *chamber = new TemperatureMenuItem("Chamber");
chamber->preset = cooldown;
chamber->preheatChamber = true;
menuItems.add(chamber);
}