Move bed colors into theme
- Issue MatterHackers/MCCentral#5325 Migrate to themed bed colors
This commit is contained in:
parent
3a3e5f9155
commit
92a3693772
4 changed files with 58 additions and 25 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
}
|
||||
}
|
||||
|
|
@ -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; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue