Merge pull request #1961 from larsbrubaker/1.7
Fixed the e controls to disable correctly.
This commit is contained in:
commit
c5675a1fa5
3 changed files with 47 additions and 43 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue