Merge pull request #1961 from larsbrubaker/1.7

Fixed the e controls to disable correctly.
This commit is contained in:
johnlewin 2017-02-27 13:43:49 -08:00 committed by GitHub
commit c5675a1fa5
3 changed files with 47 additions and 43 deletions

View file

@ -14,44 +14,47 @@ namespace MatterHackers.MatterControl.CustomWidgets
this.Margin = new BorderDouble(3);
disableOverlay = new GuiWidget(0, 0);
this.BoundsChanged += (s, e) =>
{
if (Parent != null
&& Parent.Visible && Parent.Width > 0
&& Parent.Height > 0
&& Parent.Children.Count > 1)
{
if(Children.IndexOf(disableOverlay) != Children.Count-1)
{
Children.RemoveAt(Children.IndexOf(disableOverlay));
disableOverlay.ClearRemovedFlag();
Children.Add(disableOverlay);
}
var childBounds = GetChildrenBoundsIncludingMargins(considerChild: (parent, child) =>
{
if (child == disableOverlay)
{
return false;
}
return true;
});
if (childBounds != RectangleDouble.ZeroIntersection)
{
disableOverlay.LocalBounds = new RectangleDouble(childBounds.Left,
childBounds.Bottom,
childBounds.Right,
childBounds.Top - disableOverlay.Margin.Top);
}
}
};
this.BoundsChanged += (s, e) => EnsureCorrectBounds();
this.ParentChanged += (s, e) => EnsureCorrectBounds();
disableOverlay.Visible = false;
base.AddChild(disableOverlay);
}
private void EnsureCorrectBounds()
{
if (Parent != null
&& Parent.Visible && Parent.Width > 0
&& Parent.Height > 0
&& Parent.Children.Count > 1)
{
if (Children.IndexOf(disableOverlay) != Children.Count - 1)
{
Children.RemoveAt(Children.IndexOf(disableOverlay));
disableOverlay.ClearRemovedFlag();
Children.Add(disableOverlay);
}
var childBounds = GetChildrenBoundsIncludingMargins(considerChild: (parent, child) =>
{
if (child == disableOverlay)
{
return false;
}
return true;
});
if (childBounds != RectangleDouble.ZeroIntersection)
{
disableOverlay.LocalBounds = new RectangleDouble(childBounds.Left,
childBounds.Bottom,
childBounds.Right,
childBounds.Top - disableOverlay.Margin.Top);
}
}
}
public enum EnableLevel { Disabled, ConfigOnly, Enabled };
public void SetEnableLevel(EnableLevel enabledLevel)

View file

@ -234,7 +234,7 @@ namespace MatterHackers.MatterControl
{
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
}
movementControlsContainer?.jogControls.EnableBabystepping(false);
movementControlsContainer?.jogControls.SetEnabledLevels(false, false);
break;
@ -255,7 +255,7 @@ namespace MatterHackers.MatterControl
{
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
}
movementControlsContainer?.jogControls.EnableBabystepping(false);
movementControlsContainer?.jogControls.SetEnabledLevels(false, true);
break;
case PrinterConnectionAndCommunication.CommunicationStates.PrintingFromSd:
@ -294,7 +294,7 @@ namespace MatterHackers.MatterControl
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
}
movementControlsContainer?.jogControls.EnableBabystepping(true);
movementControlsContainer?.jogControls.SetEnabledLevels(true, false);
break;
default:
@ -318,7 +318,7 @@ namespace MatterHackers.MatterControl
{
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
}
movementControlsContainer?.jogControls.EnableBabystepping(false);
movementControlsContainer?.jogControls.SetEnabledLevels(false, true);
break;
@ -533,7 +533,7 @@ namespace MatterHackers.MatterControl
{
widget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
}
movementControlsContainer.jogControls.EnableBabystepping(false);
movementControlsContainer.jogControls.SetEnabledLevels(false, false);
break;
@ -554,7 +554,7 @@ namespace MatterHackers.MatterControl
{
widget.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
}
movementControlsContainer.jogControls.EnableBabystepping(false);
movementControlsContainer.jogControls.SetEnabledLevels(false, true);
break;
@ -595,7 +595,7 @@ namespace MatterHackers.MatterControl
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Disabled);
}
movementControlsContainer?.jogControls.EnableBabystepping(true);
movementControlsContainer?.jogControls.SetEnabledLevels(true, false);
break;
@ -621,7 +621,7 @@ namespace MatterHackers.MatterControl
{
widget?.SetEnableLevel(DisableableWidget.EnableLevel.Enabled);
}
movementControlsContainer?.jogControls.EnableBabystepping(false);
movementControlsContainer?.jogControls.SetEnabledLevels(false, true);
break;

View file

@ -257,6 +257,7 @@ namespace MatterHackers.MatterControl
FlowLayoutWidget eButtons = CreateEButtons(buttonSeparationDistance);
disableableEButtons = new DisableableWidget()
{
Name = "disableableEButtons",
HAnchor = HAnchor.FitToChildren,
VAnchor = VAnchor.FitToChildren | VAnchor.ParentTop,
};
@ -275,7 +276,7 @@ namespace MatterHackers.MatterControl
// this.HAnchor |= HAnchor.ParentLeftRight;
}
internal void EnableBabystepping(bool enableBabysteppingMode)
internal void SetEnabledLevels(bool enableBabysteppingMode, bool enableEControls)
{
if (enableBabysteppingMode)
{
@ -295,7 +296,7 @@ namespace MatterHackers.MatterControl
tenButton.Enabled = !enableBabysteppingMode;
oneHundredButton.Enabled = !enableBabysteppingMode;
disableableEButtons.SetEnableLevel(enableBabysteppingMode ? DisableableWidget.EnableLevel.Disabled : DisableableWidget.EnableLevel.Enabled);
disableableEButtons.SetEnableLevel(enableEControls ? DisableableWidget.EnableLevel.Enabled : DisableableWidget.EnableLevel.Disabled);
tooBigForBabyStepping.SetEnableLevel(enableBabysteppingMode ? DisableableWidget.EnableLevel.Disabled : DisableableWidget.EnableLevel.Enabled);
}