Move PartPreviewWidget factories into ThemeConfig

- Extract ThemeConfig to file
- Pass ThemeConfig to IObject3D creators
This commit is contained in:
John Lewin 2017-06-19 09:17:57 -07:00
parent 5bf9fe27a3
commit 0e646a0c94
11 changed files with 382 additions and 219 deletions

View file

@ -150,6 +150,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
View3DWidget.WindowMode.Embeded,
View3DWidget.AutoRotate.Disabled,
viewControls3D,
ApplicationController.Instance.Theme,
View3DWidget.OpenMode.Editing);
var topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom);
@ -174,7 +175,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
activeSettings.GetValue<Vector2>(SettingsKey.print_center),
activeSettings.GetValue<BedShape>(SettingsKey.bed_shape),
ViewGcodeBasic.WindowMode.Embeded,
viewControls3D);
viewControls3D,
ApplicationController.Instance.Theme);
gcodeViewer.AnchorAll();
this.gcodeViewer.Visible = false;
leftToRight.AddChild(gcodeViewer);

View file

@ -40,6 +40,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
bool Unlocked { get; }
string Name { get; }
IEnumerable<Type> SupportedTypes();
GuiWidget Create(IObject3D item, View3DWidget parentView3D);
GuiWidget Create(IObject3D item, View3DWidget parentView3D, ThemeConfig theme);
}
}

View file

@ -75,7 +75,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
return new Type[] { typeof(Object3D) };
}
public GuiWidget Create(IObject3D item, View3DWidget view3DWidget)
public GuiWidget Create(IObject3D item, View3DWidget view3DWidget, ThemeConfig theme)
{
this.view3DWidget = view3DWidget;
this.item = item;
@ -85,11 +85,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
{
HAnchor = HAnchor.AbsolutePosition,
Visible = true,
Width = view3DWidget.WhiteButtonFactory.FixedWidth
Width = theme.WhiteButtonFactory.FixedWidth
};
mainContainer.AddChild(tabContainer);
Button updateButton = view3DWidget.textImageButtonFactory.Generate("Color".Localize());
Button updateButton = theme.textImageButtonFactory.Generate("Color".Localize());
updateButton.Margin = new BorderDouble(5);
updateButton.HAnchor = HAnchor.ParentRight;
updateButton.Click += ChangeColor;
@ -234,10 +234,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
protected FlowLayoutWidget editPlateButtonsContainer;
private ThemeConfig theme;
public View3DWidget(PrintItemWrapper printItemWrapper, Vector3 viewerVolume, Vector2 bedCenter, BedShape bedShape, WindowMode windowType, AutoRotate autoRotate, ViewControls3D viewControls3D, OpenMode openMode = OpenMode.Viewing)
public View3DWidget(PrintItemWrapper printItemWrapper, Vector3 viewerVolume, Vector2 bedCenter, BedShape bedShape, WindowMode windowType, AutoRotate autoRotate, ViewControls3D viewControls3D, ThemeConfig theme, OpenMode openMode = OpenMode.Viewing)
: base(viewControls3D)
{
this.theme = theme;
this.openMode = openMode;
allowAutoRotate = (autoRotate == AutoRotate.Enabled);
meshViewerWidget = new MeshViewerWidget(viewerVolume, bedCenter, bedShape);
@ -1834,7 +1836,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
{
editorPanel.CloseAllChildren();
var newEditor = editor.Create(Scene.SelectedItem, this);
var newEditor = editor.Create(Scene.SelectedItem, this, this.theme);
editorPanel.AddChild(newEditor);
}

View file

@ -90,9 +90,15 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
private PartViewMode activeViewMode = PartViewMode.Layers3D;
public ViewGcodeBasic(Vector3 viewerVolume, Vector2 bedCenter, BedShape bedShape, WindowMode windowMode, ViewControls3D viewControls3D)
private TextImageButtonFactory textImageButtonFactory;
private TextImageButtonFactory ExpandMenuOptionFactory;
public ViewGcodeBasic(Vector3 viewerVolume, Vector2 bedCenter, BedShape bedShape, WindowMode windowMode, ViewControls3D viewControls3D, ThemeConfig theme)
: base(viewControls3D)
{
this.textImageButtonFactory = theme.textImageButtonFactory;
this.ExpandMenuOptionFactory = theme.ExpandMenuOptionFactory;
this.viewerVolume = viewerVolume;
this.bedShape = bedShape;
this.bedCenter = bedCenter;