81 lines
1.7 KiB
C++
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);
|
|
}
|