2014-01-29 19:09:30 -08:00
|
|
|
|
/*
|
2014-02-15 18:06:03 -08:00
|
|
|
|
Copyright (c) 2014, Lars Brubaker
|
2014-01-29 19:09:30 -08:00
|
|
|
|
All rights reserved.
|
|
|
|
|
|
|
|
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
2015-04-08 15:20:10 -07:00
|
|
|
|
modification, are permitted provided that the following conditions are met:
|
2014-01-29 19:09:30 -08:00
|
|
|
|
|
|
|
|
|
|
1. Redistributions of source code must retain the above copyright notice, this
|
2015-04-08 15:20:10 -07:00
|
|
|
|
list of conditions and the following disclaimer.
|
2014-01-29 19:09:30 -08:00
|
|
|
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
|
|
|
|
this list of conditions and the following disclaimer in the documentation
|
2015-04-08 15:20:10 -07:00
|
|
|
|
and/or other materials provided with the distribution.
|
2014-01-29 19:09:30 -08:00
|
|
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
|
|
|
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
|
|
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
|
|
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
|
|
|
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
|
|
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
|
|
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
|
|
|
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
|
|
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
|
|
|
|
|
|
|
The views and conclusions contained in the software and documentation are those
|
2015-04-08 15:20:10 -07:00
|
|
|
|
of the authors and should not be interpreted as representing official policies,
|
2014-01-29 19:09:30 -08:00
|
|
|
|
either expressed or implied, of the FreeBSD Project.
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
using MatterHackers.Agg;
|
2014-06-19 15:55:20 -07:00
|
|
|
|
using MatterHackers.Agg.UI;
|
|
|
|
|
|
using MatterHackers.MatterControl.CustomWidgets;
|
2014-06-11 14:52:58 -07:00
|
|
|
|
using MatterHackers.MatterControl.PrinterCommunication;
|
2015-04-08 15:20:10 -07:00
|
|
|
|
using MatterHackers.MatterControl.PrinterControls;
|
2014-06-19 15:55:20 -07:00
|
|
|
|
using MatterHackers.MatterControl.SlicerConfiguration;
|
2015-04-08 15:20:10 -07:00
|
|
|
|
using System;
|
2016-12-08 15:39:23 -08:00
|
|
|
|
using System.Linq;
|
2017-02-23 12:43:37 -08:00
|
|
|
|
using MatterHackers.Localizations;
|
2014-01-29 19:09:30 -08:00
|
|
|
|
|
|
|
|
|
|
namespace MatterHackers.MatterControl
|
|
|
|
|
|
{
|
2017-02-23 12:43:37 -08:00
|
|
|
|
public class ManualPrinterControls : GuiWidget
|
2015-04-08 15:20:10 -07:00
|
|
|
|
{
|
2015-04-09 17:45:14 -07:00
|
|
|
|
static public RootedObjectEventHandler AddPluginControls = new RootedObjectEventHandler();
|
|
|
|
|
|
private static bool pluginsQueuedToAdd = false;
|
2015-04-08 15:20:10 -07:00
|
|
|
|
|
2017-02-23 12:43:37 -08:00
|
|
|
|
public void AddPlugins()
|
|
|
|
|
|
{
|
|
|
|
|
|
AddPluginControls.CallEvents(this, null);
|
|
|
|
|
|
pluginsQueuedToAdd = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ManualPrinterControls()
|
|
|
|
|
|
{
|
2017-05-24 14:19:02 -07:00
|
|
|
|
this.BackgroundColor = ApplicationController.Instance.Theme.TabBodyBackground;
|
2017-02-23 12:43:37 -08:00
|
|
|
|
AnchorAll();
|
|
|
|
|
|
if (UserSettings.Instance.IsTouchScreen)
|
|
|
|
|
|
{
|
|
|
|
|
|
AddChild(new ManualPrinterControlsTouchScreen());
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
AddChild(new ManualPrinterControlsDesktop());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!pluginsQueuedToAdd && ActiveSliceSettings.Instance.GetValue("include_firmware_updater") == "Simple Arduino")
|
|
|
|
|
|
{
|
|
|
|
|
|
UiThread.RunOnIdle(AddPlugins);
|
|
|
|
|
|
pluginsQueuedToAdd = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class ManualPrinterControlsDesktop : ScrollableWidget
|
|
|
|
|
|
{
|
2015-04-08 15:20:10 -07:00
|
|
|
|
private DisableableWidget fanControlsContainer;
|
2015-04-09 17:45:14 -07:00
|
|
|
|
|
2016-01-13 14:11:47 -08:00
|
|
|
|
private DisableableWidget macroControlsContainer;
|
2016-12-08 15:39:23 -08:00
|
|
|
|
private DisableableWidget actionControlsContainer;
|
2015-04-08 15:20:10 -07:00
|
|
|
|
|
2016-01-13 07:39:22 -08:00
|
|
|
|
private MovementControls movementControlsContainer;
|
2015-04-09 17:45:14 -07:00
|
|
|
|
|
|
|
|
|
|
private TemperatureControls temperatureControlsContainer;
|
|
|
|
|
|
|
2015-04-08 15:20:10 -07:00
|
|
|
|
private TextImageButtonFactory textImageButtonFactory = new TextImageButtonFactory();
|
|
|
|
|
|
|
2016-01-13 16:11:13 -08:00
|
|
|
|
private DisableableWidget tuningAdjustmentControlsContainer;
|
|
|
|
|
|
|
2017-02-23 12:43:37 -08:00
|
|
|
|
public ManualPrinterControlsDesktop()
|
2015-04-08 15:20:10 -07:00
|
|
|
|
{
|
2016-10-05 10:36:07 -07:00
|
|
|
|
ScrollArea.HAnchor |= Agg.UI.HAnchor.ParentLeftRight;
|
|
|
|
|
|
AnchorAll();
|
|
|
|
|
|
AutoScroll = true;
|
|
|
|
|
|
|
2017-02-23 12:43:37 -08:00
|
|
|
|
HAnchor = HAnchor.Max_FitToChildren_ParentWidth;
|
|
|
|
|
|
VAnchor = VAnchor.ParentBottomTop;
|
2015-04-08 15:20:10 -07:00
|
|
|
|
|
|
|
|
|
|
FlowLayoutWidget controlsTopToBottomLayout = new FlowLayoutWidget(FlowDirection.TopToBottom);
|
|
|
|
|
|
controlsTopToBottomLayout.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth;
|
|
|
|
|
|
controlsTopToBottomLayout.VAnchor = Agg.UI.VAnchor.FitToChildren;
|
|
|
|
|
|
controlsTopToBottomLayout.Name = "ManualPrinterControls.ControlsContainer";
|
|
|
|
|
|
controlsTopToBottomLayout.Margin = new BorderDouble(0);
|
|
|
|
|
|
|
2016-12-08 15:39:23 -08:00
|
|
|
|
AddActionControls(controlsTopToBottomLayout);
|
2016-11-30 13:31:19 -08:00
|
|
|
|
|
2015-04-08 15:20:10 -07:00
|
|
|
|
AddTemperatureControls(controlsTopToBottomLayout);
|
|
|
|
|
|
AddMovementControls(controlsTopToBottomLayout);
|
2015-04-23 20:19:00 -07:00
|
|
|
|
|
2016-12-08 15:39:23 -08:00
|
|
|
|
AddMacroControls(controlsTopToBottomLayout);
|
|
|
|
|
|
|
2015-04-23 20:19:00 -07:00
|
|
|
|
FlowLayoutWidget linearPanel = new FlowLayoutWidget();
|
|
|
|
|
|
linearPanel.HAnchor = Agg.UI.HAnchor.ParentLeftRight;
|
|
|
|
|
|
controlsTopToBottomLayout.AddChild(linearPanel);
|
|
|
|
|
|
|
|
|
|
|
|
AddFanControls(linearPanel);
|
|
|
|
|
|
AddAtxPowerControls(linearPanel);
|
|
|
|
|
|
|
2016-01-13 16:11:13 -08:00
|
|
|
|
AddAdjustmentControls(controlsTopToBottomLayout);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
|
|
|
|
|
|
AddChild(controlsTopToBottomLayout);
|
|
|
|
|
|
AddHandlers();
|
|
|
|
|
|
SetVisibleControls();
|
|
|
|
|
|
}
|
2014-10-15 16:57:26 -07:00
|
|
|
|
|
2016-12-29 06:55:12 -08:00
|
|
|
|
private EventHandler unregisterEvents;
|
2015-04-08 15:20:10 -07:00
|
|
|
|
|
2017-02-03 13:06:08 -08:00
|
|
|
|
public override void OnClosed(ClosedEventArgs e)
|
2015-04-09 17:45:14 -07:00
|
|
|
|
{
|
2016-10-05 10:36:07 -07:00
|
|
|
|
unregisterEvents?.Invoke(this, null);
|
2015-04-09 17:45:14 -07:00
|
|
|
|
base.OnClosed(e);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2016-01-13 16:11:13 -08:00
|
|
|
|
private void AddAdjustmentControls(FlowLayoutWidget controlsTopToBottomLayout)
|
|
|
|
|
|
{
|
|
|
|
|
|
tuningAdjustmentControlsContainer = new AdjustmentControls();
|
|
|
|
|
|
controlsTopToBottomLayout.AddChild(tuningAdjustmentControlsContainer);
|
2017-02-24 10:17:34 -08:00
|
|
|
|
|
|
|
|
|
|
// this is a hack to make the layout engine fire again for this control
|
|
|
|
|
|
UiThread.RunOnIdle(() => tuningAdjustmentControlsContainer.Width = tuningAdjustmentControlsContainer.Width + 1);
|
2016-01-13 16:11:13 -08:00
|
|
|
|
}
|
|
|
|
|
|
|
2015-04-08 15:20:10 -07:00
|
|
|
|
private void AddFanControls(FlowLayoutWidget controlsTopToBottomLayout)
|
|
|
|
|
|
{
|
|
|
|
|
|
fanControlsContainer = new FanControls();
|
2016-07-12 17:46:48 -07:00
|
|
|
|
if (ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.has_fan))
|
2015-04-08 15:20:10 -07:00
|
|
|
|
{
|
|
|
|
|
|
controlsTopToBottomLayout.AddChild(fanControlsContainer);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2015-04-23 20:19:00 -07:00
|
|
|
|
private void AddAtxPowerControls(FlowLayoutWidget controlsTopToBottomLayout)
|
|
|
|
|
|
{
|
2017-02-23 15:24:27 -08:00
|
|
|
|
#if !__ANDROID__
|
2015-04-23 20:19:00 -07:00
|
|
|
|
controlsTopToBottomLayout.AddChild(new PowerControls());
|
2017-02-23 15:24:27 -08:00
|
|
|
|
#endif
|
2015-04-23 20:19:00 -07:00
|
|
|
|
}
|
|
|
|
|
|
|
2015-04-09 17:45:14 -07:00
|
|
|
|
private void AddHandlers()
|
|
|
|
|
|
{
|
2017-06-13 17:22:49 -07:00
|
|
|
|
PrinterConnection.Instance.CommunicationStateChanged.RegisterEvent(onPrinterStatusChanged, ref unregisterEvents);
|
|
|
|
|
|
PrinterConnection.Instance.EnableChanged.RegisterEvent(onPrinterStatusChanged, ref unregisterEvents);
|
2015-04-09 17:45:14 -07:00
|
|
|
|
}
|
|
|
|
|
|
|
2016-12-08 15:39:23 -08:00
|
|
|
|
private void AddActionControls(FlowLayoutWidget controlsTopToBottomLayout)
|
|
|
|
|
|
{
|
|
|
|
|
|
actionControlsContainer = new ActionControls();
|
|
|
|
|
|
controlsTopToBottomLayout.AddChild(actionControlsContainer);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2015-04-08 15:20:10 -07:00
|
|
|
|
private void AddMacroControls(FlowLayoutWidget controlsTopToBottomLayout)
|
|
|
|
|
|
{
|
2016-01-13 14:11:47 -08:00
|
|
|
|
macroControlsContainer = new MacroControls();
|
|
|
|
|
|
controlsTopToBottomLayout.AddChild(macroControlsContainer);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void AddMovementControls(FlowLayoutWidget controlsTopToBottomLayout)
|
|
|
|
|
|
{
|
|
|
|
|
|
movementControlsContainer = new MovementControls();
|
|
|
|
|
|
controlsTopToBottomLayout.AddChild(movementControlsContainer);
|
|
|
|
|
|
}
|
2014-01-29 19:09:30 -08:00
|
|
|
|
|
2015-04-08 15:20:10 -07:00
|
|
|
|
private void AddTemperatureControls(FlowLayoutWidget controlsTopToBottomLayout)
|
|
|
|
|
|
{
|
|
|
|
|
|
temperatureControlsContainer = new TemperatureControls();
|
|
|
|
|
|
controlsTopToBottomLayout.AddChild(temperatureControlsContainer);
|
|
|
|
|
|
}
|
2015-06-11 12:06:40 -07:00
|
|
|
|
private void invalidateWidget()
|
2015-04-08 15:20:10 -07:00
|
|
|
|
{
|
2015-04-09 17:45:14 -07:00
|
|
|
|
this.Invalidate();
|
2015-04-08 15:20:10 -07:00
|
|
|
|
}
|
|
|
|
|
|
|
2015-04-09 17:45:14 -07:00
|
|
|
|
private void onPrinterStatusChanged(object sender, EventArgs e)
|
2015-04-08 15:20:10 -07:00
|
|
|
|
{
|
2015-04-09 17:45:14 -07:00
|
|
|
|
SetVisibleControls();
|
|
|
|
|
|
UiThread.RunOnIdle(invalidateWidget);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void SetVisibleControls()
|
|
|
|
|
|
{
|
2016-07-21 15:05:59 -07:00
|
|
|
|
if (!ActiveSliceSettings.Instance.PrinterSelected)
|
2015-04-08 15:20:10 -07:00
|
|
|
|
{
|
|
|
|
|
|
// no printer selected
|
|
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
|
|
|
|
|
extruderTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
}
|
|
|
|
|
|
else // we at least have a printer selected
|
|
|
|
|
|
{
|
2017-06-13 17:22:49 -07:00
|
|
|
|
switch (PrinterConnection.Instance.CommunicationState)
|
2015-04-08 15:20:10 -07:00
|
|
|
|
{
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.Disconnecting:
|
|
|
|
|
|
case CommunicationStates.ConnectionLost:
|
|
|
|
|
|
case CommunicationStates.Disconnected:
|
|
|
|
|
|
case CommunicationStates.AttemptingToConnect:
|
|
|
|
|
|
case CommunicationStates.FailedToConnect:
|
2015-04-08 15:20:10 -07:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
|
|
|
|
|
extruderTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
|
|
|
|
|
|
foreach (var widget in movementControlsContainer.DisableableWidgets)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
}
|
2017-02-27 13:26:33 -08:00
|
|
|
|
movementControlsContainer?.jogControls.SetEnabledLevels(false, false);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
|
2015-04-08 15:20:10 -07:00
|
|
|
|
break;
|
|
|
|
|
|
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.FinishedPrint:
|
|
|
|
|
|
case CommunicationStates.Connected:
|
2015-04-08 15:20:10 -07:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
|
|
|
|
|
extruderTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
|
|
|
|
|
|
foreach (var widget in movementControlsContainer.DisableableWidgets)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
}
|
2017-02-27 13:26:33 -08:00
|
|
|
|
movementControlsContainer?.jogControls.SetEnabledLevels(false, true);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
break;
|
|
|
|
|
|
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.PrintingFromSd:
|
2015-04-08 15:20:10 -07:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
extruderTemperatureControlWidget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
break;
|
|
|
|
|
|
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.PreparingToPrint:
|
|
|
|
|
|
case CommunicationStates.Printing:
|
2017-06-13 17:22:49 -07:00
|
|
|
|
switch (PrinterConnection.Instance.PrintingState)
|
2015-04-08 15:20:10 -07:00
|
|
|
|
{
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case DetailedPrintingState.HomingAxis:
|
|
|
|
|
|
case DetailedPrintingState.HeatingBed:
|
|
|
|
|
|
case DetailedPrintingState.HeatingExtruder:
|
|
|
|
|
|
case DetailedPrintingState.Printing:
|
2015-04-08 15:20:10 -07:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
extruderTemperatureControlWidget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
|
|
|
|
|
|
foreach(var widget in movementControlsContainer.DisableableWidgets)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
}
|
|
|
|
|
|
|
2017-02-27 13:26:33 -08:00
|
|
|
|
movementControlsContainer?.jogControls.SetEnabledLevels(true, false);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.Paused:
|
2015-04-08 15:20:10 -07:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
extruderTemperatureControlWidget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2015-04-08 15:20:10 -07:00
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
|
|
|
|
|
|
foreach (var widget in movementControlsContainer.DisableableWidgets)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
}
|
2017-02-27 13:26:33 -08:00
|
|
|
|
movementControlsContainer?.jogControls.SetEnabledLevels(false, true);
|
2016-01-13 07:39:22 -08:00
|
|
|
|
|
2015-04-08 15:20:10 -07:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
public class ManualPrinterControlsTouchScreen : TabControl
|
|
|
|
|
|
{
|
|
|
|
|
|
event EventHandler unregisterEvents;
|
|
|
|
|
|
|
|
|
|
|
|
TemperatureControls temperatureControlsContainer;
|
|
|
|
|
|
MovementControls movementControlsContainer;
|
|
|
|
|
|
DisableableWidget fanControlsContainer;
|
|
|
|
|
|
DisableableWidget tuningAdjustmentControlsContainer;
|
|
|
|
|
|
DisableableWidget terminalControlsContainer;
|
|
|
|
|
|
DisableableWidget macroControlsContainer;
|
|
|
|
|
|
DisableableWidget actionControlsContainer;
|
|
|
|
|
|
|
|
|
|
|
|
int TabTextSize;
|
|
|
|
|
|
|
|
|
|
|
|
TextImageButtonFactory textImageButtonFactory = new TextImageButtonFactory();
|
|
|
|
|
|
|
|
|
|
|
|
public ManualPrinterControlsTouchScreen()
|
|
|
|
|
|
: base(Orientation.Vertical)
|
|
|
|
|
|
{
|
|
|
|
|
|
RGBA_Bytes unselectedTextColor = ActiveTheme.Instance.TabLabelUnselected;
|
|
|
|
|
|
|
|
|
|
|
|
this.TabBar.BackgroundColor = ActiveTheme.Instance.TransparentLightOverlay;
|
2017-05-23 10:51:12 -07:00
|
|
|
|
this.TabBar.BorderColor = RGBA_Bytes.Transparent;
|
2017-02-23 12:43:37 -08:00
|
|
|
|
this.TabBar.Margin = new BorderDouble(0);
|
|
|
|
|
|
this.TabBar.Padding = new BorderDouble(4, 4);
|
|
|
|
|
|
|
|
|
|
|
|
this.AnchorAll();
|
|
|
|
|
|
this.VAnchor |= VAnchor.FitToChildren;
|
|
|
|
|
|
|
|
|
|
|
|
this.Margin = new BorderDouble(0);
|
|
|
|
|
|
this.TabTextSize = 13;
|
|
|
|
|
|
|
|
|
|
|
|
// add action tab
|
|
|
|
|
|
{
|
|
|
|
|
|
GuiWidget actionContainerContainer = new GuiWidget();
|
|
|
|
|
|
actionContainerContainer.Padding = new BorderDouble(6);
|
|
|
|
|
|
actionContainerContainer.AnchorAll();
|
|
|
|
|
|
|
|
|
|
|
|
actionControlsContainer = new ActionControls();
|
|
|
|
|
|
actionControlsContainer.VAnchor = VAnchor.ParentTop;
|
|
|
|
|
|
if (ActiveSliceSettings.Instance.ActionMacros().Any())
|
|
|
|
|
|
{
|
|
|
|
|
|
actionContainerContainer.AddChild(actionControlsContainer);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (ActiveSliceSettings.Instance.ActionMacros().Any())
|
|
|
|
|
|
{
|
|
|
|
|
|
TabPage actionTabPage = new TabPage(actionContainerContainer, "Actions".Localize().ToUpper());
|
|
|
|
|
|
this.AddTab(new SimpleTextTabWidget(actionTabPage, "Actions Tab", TabTextSize,
|
|
|
|
|
|
ActiveTheme.Instance.SecondaryAccentColor, new RGBA_Bytes(), unselectedTextColor, new RGBA_Bytes()));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// add temperature tab
|
|
|
|
|
|
{
|
|
|
|
|
|
GuiWidget temperatureContainerContainer = new GuiWidget();
|
|
|
|
|
|
temperatureContainerContainer.Padding = new BorderDouble(6);
|
|
|
|
|
|
temperatureContainerContainer.AnchorAll();
|
|
|
|
|
|
|
|
|
|
|
|
temperatureControlsContainer = new TemperatureControls();
|
2017-02-23 16:59:13 -08:00
|
|
|
|
temperatureControlsContainer.VAnchor |= VAnchor.ParentTop;
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
temperatureContainerContainer.AddChild(temperatureControlsContainer);
|
|
|
|
|
|
|
|
|
|
|
|
TabPage temperatureTabPage = new TabPage(temperatureContainerContainer, "Temperature".Localize().ToUpper());
|
|
|
|
|
|
this.AddTab(new SimpleTextTabWidget(temperatureTabPage, "Temperature Tab", TabTextSize,
|
|
|
|
|
|
ActiveTheme.Instance.SecondaryAccentColor, new RGBA_Bytes(), unselectedTextColor, new RGBA_Bytes()));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// add movement tab
|
|
|
|
|
|
{
|
|
|
|
|
|
GuiWidget movementContainerContainer = new GuiWidget();
|
|
|
|
|
|
movementContainerContainer.Padding = new BorderDouble(6);
|
|
|
|
|
|
movementContainerContainer.AnchorAll();
|
|
|
|
|
|
|
|
|
|
|
|
movementControlsContainer = new MovementControls();
|
|
|
|
|
|
movementControlsContainer.VAnchor = VAnchor.ParentTop;
|
|
|
|
|
|
|
|
|
|
|
|
movementContainerContainer.AddChild(movementControlsContainer);
|
|
|
|
|
|
|
|
|
|
|
|
TabPage movementTabPage = new TabPage(movementContainerContainer, "Movement".Localize().ToUpper());
|
|
|
|
|
|
this.AddTab(new SimpleTextTabWidget(movementTabPage, "Movement Tab", TabTextSize,
|
|
|
|
|
|
ActiveTheme.Instance.SecondaryAccentColor, new RGBA_Bytes(), unselectedTextColor, new RGBA_Bytes()));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// add macro tab
|
|
|
|
|
|
{
|
|
|
|
|
|
GuiWidget macrosContainerContainer = new GuiWidget();
|
|
|
|
|
|
macrosContainerContainer.Padding = new BorderDouble(6);
|
|
|
|
|
|
macrosContainerContainer.AnchorAll();
|
|
|
|
|
|
|
|
|
|
|
|
macroControlsContainer = new MacroControls();
|
|
|
|
|
|
macroControlsContainer.VAnchor |= VAnchor.ParentTop;
|
|
|
|
|
|
macrosContainerContainer.AddChild(macroControlsContainer);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TabPage macrosTabPage = new TabPage(macrosContainerContainer, "Macros".Localize().ToUpper());
|
|
|
|
|
|
this.AddTab(new SimpleTextTabWidget(macrosTabPage, "Macros Tab", TabTextSize,
|
|
|
|
|
|
ActiveTheme.Instance.SecondaryAccentColor, new RGBA_Bytes(), unselectedTextColor, new RGBA_Bytes()));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (ActiveSliceSettings.Instance.GetValue<bool>("has_fan"))
|
|
|
|
|
|
{
|
|
|
|
|
|
// add fan tab
|
|
|
|
|
|
GuiWidget fanContainerContainer = new GuiWidget();
|
|
|
|
|
|
fanContainerContainer.Padding = new BorderDouble(6);
|
|
|
|
|
|
fanContainerContainer.AnchorAll();
|
|
|
|
|
|
|
|
|
|
|
|
fanControlsContainer = new FanControls();
|
|
|
|
|
|
fanControlsContainer.VAnchor = VAnchor.ParentTop;
|
|
|
|
|
|
|
|
|
|
|
|
fanContainerContainer.AddChild(fanControlsContainer);
|
|
|
|
|
|
|
|
|
|
|
|
TabPage fanTabPage = new TabPage(fanContainerContainer, "Fan Controls".Localize().ToUpper());
|
|
|
|
|
|
this.AddTab(new SimpleTextTabWidget(fanTabPage, "Fan Controls Tab", TabTextSize,
|
|
|
|
|
|
ActiveTheme.Instance.SecondaryAccentColor, new RGBA_Bytes(), unselectedTextColor, new RGBA_Bytes()));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// add tunning tab
|
|
|
|
|
|
{
|
|
|
|
|
|
GuiWidget tuningContainerContainer = new GuiWidget();
|
|
|
|
|
|
tuningContainerContainer.Padding = new BorderDouble(6);
|
|
|
|
|
|
tuningContainerContainer.AnchorAll();
|
|
|
|
|
|
|
|
|
|
|
|
tuningAdjustmentControlsContainer = new AdjustmentControls();
|
|
|
|
|
|
tuningAdjustmentControlsContainer.VAnchor = VAnchor.ParentTop;
|
|
|
|
|
|
|
|
|
|
|
|
tuningContainerContainer.AddChild(tuningAdjustmentControlsContainer);
|
|
|
|
|
|
|
|
|
|
|
|
TabPage tuningTabPage = new TabPage(tuningContainerContainer, "Tuning Adjust".Localize().ToUpper());
|
|
|
|
|
|
this.AddTab(new SimpleTextTabWidget(tuningTabPage, "Tuning Tab", TabTextSize,
|
|
|
|
|
|
ActiveTheme.Instance.SecondaryAccentColor, new RGBA_Bytes(), unselectedTextColor, new RGBA_Bytes()));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// add terminal tab
|
|
|
|
|
|
{
|
|
|
|
|
|
GuiWidget terminalContainerContainer = new GuiWidget();
|
|
|
|
|
|
terminalContainerContainer.Padding = new BorderDouble(6);
|
|
|
|
|
|
terminalContainerContainer.AnchorAll();
|
|
|
|
|
|
|
|
|
|
|
|
terminalControlsContainer = new TerminalControls();
|
|
|
|
|
|
terminalControlsContainer.VAnchor |= VAnchor.ParentBottomTop;
|
|
|
|
|
|
|
|
|
|
|
|
terminalContainerContainer.AddChild(terminalControlsContainer);
|
|
|
|
|
|
|
|
|
|
|
|
TabPage terminalTabPage = new TabPage(terminalContainerContainer, "Terminal".Localize().ToUpper());
|
|
|
|
|
|
this.AddTab(new SimpleTextTabWidget(terminalTabPage, "Terminal Tab", TabTextSize,
|
|
|
|
|
|
ActiveTheme.Instance.SecondaryAccentColor, new RGBA_Bytes(), unselectedTextColor, new RGBA_Bytes()));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-06-13 17:22:49 -07:00
|
|
|
|
PrinterConnection.Instance.CommunicationStateChanged.RegisterEvent(onPrinterStatusChanged, ref unregisterEvents);
|
|
|
|
|
|
PrinterConnection.Instance.EnableChanged.RegisterEvent(onPrinterStatusChanged, ref unregisterEvents);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
SetVisibleControls();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void OnClosed(ClosedEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
unregisterEvents?.Invoke(this, null);
|
|
|
|
|
|
|
|
|
|
|
|
base.OnClosed(e);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void SetVisibleControls()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (ActiveSliceSettings.Instance == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
// no printer selected
|
|
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
|
|
|
|
|
extruderTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
2017-02-23 16:30:00 -08:00
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
}
|
|
|
|
|
|
else // we at least have a printer selected
|
|
|
|
|
|
{
|
2017-06-13 17:22:49 -07:00
|
|
|
|
switch (PrinterConnection.Instance.CommunicationState)
|
2017-02-23 12:43:37 -08:00
|
|
|
|
{
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.Disconnecting:
|
|
|
|
|
|
case CommunicationStates.ConnectionLost:
|
|
|
|
|
|
case CommunicationStates.Disconnected:
|
|
|
|
|
|
case CommunicationStates.AttemptingToConnect:
|
|
|
|
|
|
case CommunicationStates.FailedToConnect:
|
2017-02-23 12:43:37 -08:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
extruderTemperatureControlWidget?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
foreach (var widget in movementControlsContainer.DisableableWidgets)
|
|
|
|
|
|
{
|
|
|
|
|
|
widget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
}
|
2017-02-27 13:26:33 -08:00
|
|
|
|
movementControlsContainer.jogControls.SetEnabledLevels(false, false);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.FinishedPrint:
|
|
|
|
|
|
case CommunicationStates.Connected:
|
2017-02-23 12:43:37 -08:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
|
|
|
|
|
extruderTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
foreach (var widget in movementControlsContainer.DisableableWidgets)
|
|
|
|
|
|
{
|
|
|
|
|
|
widget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
}
|
2017-02-27 13:26:33 -08:00
|
|
|
|
movementControlsContainer.jogControls.SetEnabledLevels(false, true);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.PrintingFromSd:
|
2017-02-23 12:43:37 -08:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
|
|
|
|
|
extruderTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
break;
|
|
|
|
|
|
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.PreparingToPrint:
|
|
|
|
|
|
case CommunicationStates.Printing:
|
2017-06-13 17:22:49 -07:00
|
|
|
|
switch (PrinterConnection.Instance.PrintingState)
|
2017-02-23 12:43:37 -08:00
|
|
|
|
{
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case DetailedPrintingState.HomingAxis:
|
|
|
|
|
|
case DetailedPrintingState.HeatingBed:
|
|
|
|
|
|
case DetailedPrintingState.HeatingExtruder:
|
|
|
|
|
|
case DetailedPrintingState.Printing:
|
2017-02-23 12:43:37 -08:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
|
|
|
|
|
extruderTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.ConfigOnly);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var widget in movementControlsContainer.DisableableWidgets)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
}
|
|
|
|
|
|
|
2017-02-27 13:26:33 -08:00
|
|
|
|
movementControlsContainer?.jogControls.SetEnabledLevels(true, false);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
2017-06-13 17:32:38 -07:00
|
|
|
|
case CommunicationStates.Paused:
|
2017-02-23 12:43:37 -08:00
|
|
|
|
foreach (DisableableWidget extruderTemperatureControlWidget in temperatureControlsContainer.ExtruderWidgetContainers)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
extruderTemperatureControlWidget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
}
|
2017-02-23 16:30:00 -08:00
|
|
|
|
temperatureControlsContainer?.BedTemperatureControlWidget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
movementControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
fanControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
macroControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
actionControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
|
|
|
|
|
tuningAdjustmentControlsContainer?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
foreach (var widget in movementControlsContainer.DisableableWidgets)
|
|
|
|
|
|
{
|
2017-02-23 16:30:00 -08:00
|
|
|
|
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
}
|
2017-02-27 13:26:33 -08:00
|
|
|
|
movementControlsContainer?.jogControls.SetEnabledLevels(false, true);
|
2017-02-23 12:43:37 -08:00
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void onPrinterStatusChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
SetVisibleControls();
|
|
|
|
|
|
UiThread.RunOnIdle(this.Invalidate);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|