Move bed colors into theme

- Issue MatterHackers/MCCentral#5325
Migrate to themed bed colors
This commit is contained in:
John Lewin 2019-04-13 01:54:01 -07:00
parent 3a3e5f9155
commit 92a3693772
4 changed files with 58 additions and 25 deletions

View file

@ -178,6 +178,7 @@ namespace MatterHackers.MatterControl
if (File.Exists(ProfileManager.Instance.ProfileThemeSetPath))
{
themeset = JsonConvert.DeserializeObject<ThemeSet>(File.ReadAllText(ProfileManager.Instance.ProfileThemeSetPath));
themeset.Theme.EnsureDefaults();
// If the serialized format is older than the current format, null and fall back to latest default below
if (themeset.SchemeVersion != ThemeSet.LatestSchemeVersion)
@ -205,7 +206,10 @@ namespace MatterHackers.MatterControl
{
string json = AggContext.StaticData.ReadAllText(themePath);
return JsonConvert.DeserializeObject<ThemeConfig>(json);
var themeConfig = JsonConvert.DeserializeObject<ThemeConfig>(json);
themeConfig.EnsureDefaults();
return themeConfig;
}
}
catch

View file

@ -202,6 +202,32 @@ namespace MatterHackers.MatterControl
public Color BorderColor { get; set; }
public Color BorderColor40 { get; set; }
public Color BorderColor20 { get; set; }
internal void EnsureDefaults()
{
if (this.BedColor == Color.Transparent)
{
this.BedColor = this.ResolveColor(this.BackgroundColor, Color.Gray.WithAlpha(60));
}
if (this.UnderBedColor == Color.Transparent)
{
this.UnderBedColor = new Color(this.BedColor, this.BedColor.alpha / 4);
}
if (this.BedGridColors == null
|| (this.BedGridColors.Line == Color.Transparent && this.BedGridColors.Red == Color.Transparent))
{
this.BedGridColors = new GridColors()
{
Line = Color.Black,
Red = this.ResolveColor(this.BackgroundColor, new Color(Color.Red, this.IsDarkTheme ? 105 : 170)),
Green = this.ResolveColor(this.BackgroundColor, new Color(Color.Green, this.IsDarkTheme ? 105 : 170)),
Blue = this.ResolveColor(this.BackgroundColor, new Color(Color.Blue, 195))
};
}
}
public Color RowBorder { get; set; }
public DropListStyle DropList { get; set; } = new DropListStyle();
@ -213,6 +239,14 @@ namespace MatterHackers.MatterControl
public Color SectionBackgroundColor { get; set; }
public Color PopupBorderColor { get; set; }
public Color BedColor { get; set; }
public Color UnderBedColor { get; set; }
public Color BedLabelColor { get; set; }
public GridColors BedGridColors { get; set; }
public GuiWidget CreateSearchButton()
{
return new IconButton(AggContext.StaticData.LoadIcon("icon_search_24x24.png", 16, 16, this.InvertIcons), this)
@ -533,4 +567,12 @@ namespace MatterHackers.MatterControl
public Color QualityPreset { get; set; } = Color.Yellow;
public Color UserOverride { get; set; } = new Color(68, 95, 220, 150);
}
public class GridColors
{
public Color Red { get; set; }
public Color Green { get; set; }
public Color Blue { get; set; }
public Color Line { get; set; }
}
}

View file

@ -38,13 +38,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
{
public class FloorDrawable : IDrawable
{
private GridColors gridColors;
private ISceneContext sceneContext;
private InteractionLayer.EditorType editorType;
private ThemeConfig theme;
private Color buildVolumeColor;
private Color bedColor;
private Color underBedColor;
public FloorDrawable(InteractionLayer.EditorType editorType, ISceneContext sceneContext, Color buildVolumeColor, ThemeConfig theme)
{
@ -53,16 +50,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
this.editorType = editorType;
this.theme = theme;
bedColor = theme.ResolveColor(Color.White, theme.BackgroundColor.WithAlpha(111));
underBedColor = new Color(bedColor, bedColor.alpha / 4);
gridColors = new GridColors()
{
Gray = theme.ResolveColor(theme.BackgroundColor, theme.GetBorderColor((theme.IsDarkTheme ? 35 : 55))),
Red = theme.ResolveColor(theme.BackgroundColor, new Color(Color.Red, (theme.IsDarkTheme ? 105 : 170))),
Green = theme.ResolveColor(theme.BackgroundColor, new Color(Color.Green, (theme.IsDarkTheme ? 105 : 170))),
Blue = theme.ResolveColor(theme.BackgroundColor, new Color(Color.Blue, 195))
};
}
public bool Enabled { get; set; }
@ -85,7 +73,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
{
GLHelper.Render(
sceneContext.Mesh,
this.LookingDownOnBed ? Color.Red : underBedColor,
theme.UnderBedColor,
RenderTypes.Shaded,
world.ModelviewMatrix,
blendTexture: !this.LookingDownOnBed);
@ -140,12 +128,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
}
private class GridColors
{
public Color Red { get; set; }
public Color Green { get; set; }
public Color Blue { get; set; }
public Color Gray { get; set; }
}
}
}

View file

@ -47,9 +47,6 @@ namespace MatterHackers.MatterControl
{
private static ImageBuffer watermarkImage = null;
private static Color bedBaseColor = new Color(245, 245, 255);
private static Color bedMarkingsColor = Color.Black;
public static ImageBuffer CreatePrintBedImage(PrinterConfig printer)
{
ImageBuffer bedImage;
@ -148,9 +145,12 @@ namespace MatterHackers.MatterControl
skip = 5;
}
var theme = AppContext.Theme;
var bedMarkingsColor = theme.BedGridColors.Line;
var bedplateImage = new ImageBuffer(1024, 1024);
Graphics2D graphics2D = bedplateImage.NewGraphics2D();
graphics2D.Clear(bedBaseColor);
graphics2D.Clear(theme.BedColor);
var originPixels = new Vector2();
{
@ -187,7 +187,7 @@ namespace MatterHackers.MatterControl
}
Ellipse bedCircle = new Ellipse(bedplateImage.Width/2, bedplateImage.Height/2, bedplateImage.Width/2, bedplateImage.Height/2);
graphics2D.Render(bedCircle, bedBaseColor);
graphics2D.Render(bedCircle, theme.BedColor);
//graphics2D.Clear(bedBaseColor);
{
@ -261,9 +261,13 @@ namespace MatterHackers.MatterControl
skip = 5;
}
var theme = AppContext.Theme;
var bedMarkingsColor = theme.BedGridColors.Line;
var bedplateImage = new ImageBuffer(1024, 1024);
Graphics2D graphics2D = bedplateImage.NewGraphics2D();
graphics2D.Clear(bedBaseColor);
graphics2D.Clear(theme.BedColor);
{
double lineDist = bedplateImage.Width / (displayVolumeToBuild.X / divisor);