From efc05d544efa58aab29d299a694f7504d78555fe Mon Sep 17 00:00:00 2001 From: John Lewin Date: Thu, 14 Sep 2017 08:55:30 -0700 Subject: [PATCH] Move disabled widget logic to new type --- SlicerConfiguration/SliceSettingsWidget.cs | 28 ++++++++++++++-------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/SlicerConfiguration/SliceSettingsWidget.cs b/SlicerConfiguration/SliceSettingsWidget.cs index 271452c34..2765883eb 100644 --- a/SlicerConfiguration/SliceSettingsWidget.cs +++ b/SlicerConfiguration/SliceSettingsWidget.cs @@ -725,23 +725,31 @@ namespace MatterHackers.MatterControl.SlicerConfiguration } else { - var holder = new GuiWidget() - { - VAnchor = VAnchor.Fit, - HAnchor = HAnchor.Stretch - }; - holder.AddChild(settingsRow); + return new DisabledOverlay(settingsRow); + } + } - var disable = new GuiWidget() + private class DisabledOverlay : GuiWidget + { + private GuiWidget disableOverlay; + + public DisabledOverlay(GuiWidget widgetToWrap) + { + this.VAnchor = VAnchor.Fit; + this.HAnchor = HAnchor.Stretch; + + this.AddChild(widgetToWrap); + + disableOverlay = new GuiWidget() { VAnchor = VAnchor.Stretch, HAnchor = HAnchor.Stretch, BackgroundColor = new RGBA_Bytes(ActiveTheme.Instance.TertiaryBackgroundColor, 200) }; - holder.AddChild(disable); - - return holder; + this.AddChild(disableOverlay); } + + public override bool Enabled { get => !disableOverlay.Visible; set => disableOverlay.Visible = value; } } public static GuiWidget CreateQuickMenu(SliceSettingData settingData, SettingsContext settingsContext, GuiWidget content, InternalTextEditWidget internalTextWidget)