Merge pull request #3400 from jlewin/design_tools

Revise padding assignment to prevent space between bottom edge and bar
This commit is contained in:
johnlewin 2018-06-09 12:03:42 -07:00 committed by GitHub
commit 01f3b3bc45
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 24 deletions

View file

@ -2125,12 +2125,6 @@ namespace MatterHackers.MatterControl
public View3DWidget View3DWidget { get; set; }
public PrinterConfig Printer { get; internal set; }
public BedConfig SceneContext { get; set; }
public void Reset()
{
this.View3DWidget = null;
this.SceneContext = null;
}
}
public class RunningTaskDetails : IProgress<ProgressStatus>

View file

@ -50,12 +50,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
private ThemeConfig theme;
private BedConfig sceneContext;
private View3DWidget view3DWidget;
private SectionWidget selectedObjectEditorSection;
private SectionWidget editorSectionWidget;
private TextButton editButton;
private GuiWidget editorPanel;
private InlineTitleEdit inlineTitleEdit;
private BottomResizeContainer selectedObjectEditorColumn;
private BottomResizeContainer editorResizeContainer;
public SelectedObjectPanel(View3DWidget view3DWidget, BedConfig sceneContext, ThemeConfig theme)
: base(FlowDirection.TopToBottom)
@ -85,7 +85,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
this.AddChild(scrollable);
selectedObjectEditorColumn = new BottomResizeContainer(theme)
editorResizeContainer = new BottomResizeContainer(theme)
{
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Absolute,
@ -98,11 +98,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Fit
};
selectedObjectEditorColumn.AddChild(toolbar);
editorResizeContainer.AddChild(toolbar);
selectedObjectEditorColumn.Resized += (s, e) =>
editorResizeContainer.Resized += (s, e) =>
{
sceneContext.ViewState.SelectedObjectEditorHeight = selectedObjectEditorColumn.Height;
sceneContext.ViewState.SelectedObjectEditorHeight = editorResizeContainer.Height;
};
var scene = sceneContext.Scene;
@ -197,16 +197,16 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
});
scrollableEditor.ScrollArea.HAnchor = HAnchor.Stretch;
selectedObjectEditorColumn.AddChild(scrollableEditor);
editorResizeContainer.AddChild(scrollableEditor);
// Put the bottom resize container in a guiwidgt that is H:stretch V:fit so that the container can be hiden and shown and the resize container can keep it's size.
var selectedObjectEditorColumnContainer = new GuiWidget()
// A wrapping container to fix resize quirks - GuiWidget with H:Stretch V:Fit that can be hidden and shown and allow the ResizeContainer can keep it's size
var editorResizeWrapper = new GuiWidget()
{
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Fit
VAnchor = VAnchor.Fit,
Name = "editorRootContainer"
};
selectedObjectEditorColumnContainer.AddChild(selectedObjectEditorColumn);
editorResizeWrapper.AddChild(editorResizeContainer);
inlineTitleEdit = new InlineTitleEdit("", theme, "Object Name");
inlineTitleEdit.TitleChanged += (s, e) =>
@ -217,18 +217,18 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
};
selectedObjectEditorSection = new SectionWidget("Editor", selectedObjectEditorColumnContainer, theme, serializationKey: UserSettingsKey.EditorPanelExpanded, defaultExpansion: true)
editorSectionWidget = new SectionWidget("Editor", editorResizeWrapper, theme, serializationKey: UserSettingsKey.EditorPanelExpanded, defaultExpansion: true)
{
VAnchor = VAnchor.Fit,
};
// TODO: Replace hackery with practical solution
if (selectedObjectEditorSection.Children.FirstOrDefault() is ExpandCheckboxButton checkbox)
if (editorSectionWidget.Children.FirstOrDefault() is ExpandCheckboxButton checkbox)
{
checkbox.ReplaceChild(checkbox.Children[1], inlineTitleEdit);
}
this.ContentPanel.AddChild(selectedObjectEditorSection);
this.ContentPanel.AddChild(editorSectionWidget);
var colorSection = new SectionWidget(
"Color".Localize(),
@ -264,9 +264,18 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
// Enforce panel padding in sidebar
foreach(var sectionWidget in this.ContentPanel.Children<SectionWidget>())
{
sectionWidget.ContentPanel.Padding = new BorderDouble(10, 10, 10, 0);
sectionWidget.ExpandableWhenDisabled = true;
sectionWidget.Enabled = false;
// Special case for editorResizeWrapper due to ResizeContainer
if (sectionWidget.ContentPanel == editorResizeWrapper)
{
// Apply padding to ResizeContainer not wrapper
editorResizeContainer.Padding = new BorderDouble(10, 10, 10, 0);
}
else
{
sectionWidget.ContentPanel.Padding = new BorderDouble(10, 10, 10, 0);
sectionWidget.ExpandableWhenDisabled = true;
sectionWidget.Enabled = false;
}
}
}