SND\eagleeyestudios_cp 01cac2c358 Content Compiler:
- Added missing FakeBuildLogger.cs
- changed the preview implementation to support previewing while working in the main window (handy for multiple screens!)
- Did some cleaning and added #region tags and copyright text
2015-03-15 01:11:51 +01:00

174 lines
8.0 KiB
C#

#region Using Statements
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Text;
using System.Xml;
using ANX.Framework.NonXNA.Development;
#endregion
// This file is part of the EES Content Compiler 4,
// © 2008 - 2012 by Eagle Eye Studios.
// The EES Content Compiler 4 is released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license
namespace ANX.ContentCompiler.GUI
{
[Developer("SilentWarrior/Eagle Eye Studios")]
[PercentageComplete(100)]
[TestState(TestStateAttribute.TestState.Tested)]
public static class Settings
{
public static String DefaultProjectPath { get; set; }
public static Color MainColor { get; set; }
public static Color DarkMainColor { get; set; }
public static Color LightMainColor { get; set; }
public static Color ForeColor { get; set; }
public static Color AccentColor { get; set; }
public static Color AccentColor2 { get; set; }
public static Color AccentColor3 { get; set; }
public static List<String> RecentProjects { get; set; }
public static bool ShowFirstStartScreen { get; set; }
public static void Defaults()
{
DefaultProjectPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
"ANX Content Compiler" + Path.DirectorySeparatorChar + "4.0" +
Path.DirectorySeparatorChar);
RecentProjects = new List<string>();
MainColor = Color.FromArgb(64, 64, 64);
//MainColor = Color.Goldenrod;
DarkMainColor = Color.FromArgb(42, 42, 42);
//DarkMainColor = Color.DarkOrange;
LightMainColor = Color.Gray;
//LightMainColor = Color.Gold;
ForeColor = Color.White;
//ForeColor = Color.DarkRed;
AccentColor = Color.FromArgb(0, 192, 0);
//AccentColor = Color.HotPink;
AccentColor2 = Color.LimeGreen;
//AccentColor2 = Color.IndianRed;
AccentColor3 = Color.Green;
}
public static void Load(string path)
{
DefaultProjectPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
"ANX Content Compiler" + Path.DirectorySeparatorChar + "4.0" +
Path.DirectorySeparatorChar);
RecentProjects = new List<string>();
if (!File.Exists(path)) return;
XmlReader reader = new XmlTextReader(path);
while (!reader.EOF)
{
switch (reader.Name)
{
case "MainColor":
if (reader.NodeType == XmlNodeType.Element)
MainColor = GetColorFromString(reader.ReadElementContentAsString());
break;
case "DarkMainColor":
if (reader.NodeType == XmlNodeType.Element)
DarkMainColor = GetColorFromString(reader.ReadElementContentAsString());
break;
case "LightMainColor":
if (reader.NodeType == XmlNodeType.Element)
LightMainColor = GetColorFromString(reader.ReadElementContentAsString());
break;
case "ForeColor":
if (reader.NodeType == XmlNodeType.Element)
ForeColor = GetColorFromString(reader.ReadElementContentAsString());
break;
case "AccentColor":
if (reader.NodeType == XmlNodeType.Element)
AccentColor = GetColorFromString(reader.ReadElementContentAsString());
break;
case "AccentColor2":
if (reader.NodeType == XmlNodeType.Element)
AccentColor2 = GetColorFromString(reader.ReadElementContentAsString());
break;
case "AccentColor3":
if (reader.NodeType == XmlNodeType.Element)
AccentColor3 = GetColorFromString(reader.ReadElementContentAsString());
break;
case "Path":
if (reader.NodeType == XmlNodeType.Element)
RecentProjects.Add(reader.ReadElementContentAsString());
break;
case "ShowFirstStartScreen":
if (reader.NodeType == XmlNodeType.Element)
ShowFirstStartScreen = reader.ReadElementContentAsBoolean();
break;
default:
reader.Read();
break;
}
}
reader.Close();
}
public static void Save(string path)
{
if (!Directory.Exists(Path.GetDirectoryName(path)))
Directory.CreateDirectory(Path.GetDirectoryName(path));
XmlWriter writer = XmlWriter.Create(path,
new XmlWriterSettings
{
Encoding = Encoding.UTF8,
Indent = true,
NewLineHandling = NewLineHandling.Entitize
});
writer.WriteStartDocument();
writer.WriteStartElement("CCompiler4Settings");
writer.WriteStartElement("MainColor");
writer.WriteValue(GetStringFromColor(MainColor));
writer.WriteFullEndElement();
writer.WriteStartElement("DarkMainColor");
writer.WriteValue(GetStringFromColor(DarkMainColor));
writer.WriteFullEndElement();
writer.WriteStartElement("LightMainColor");
writer.WriteValue(GetStringFromColor(LightMainColor));
writer.WriteFullEndElement();
writer.WriteStartElement("ForeColor");
writer.WriteValue(GetStringFromColor(ForeColor));
writer.WriteFullEndElement();
writer.WriteStartElement("AccentColor");
writer.WriteValue(GetStringFromColor(AccentColor));
writer.WriteFullEndElement();
writer.WriteStartElement("AccentColor2");
writer.WriteValue(GetStringFromColor(AccentColor2));
writer.WriteFullEndElement();
writer.WriteStartElement("AccentColor3");
writer.WriteValue(GetStringFromColor(AccentColor3));
writer.WriteFullEndElement();
writer.WriteStartElement("RecentProjects");
foreach (string recentProject in RecentProjects)
{
writer.WriteStartElement("Path");
writer.WriteString(recentProject);
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteStartElement("ShowFirstStartScreen");
writer.WriteValue(ShowFirstStartScreen);
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
private static string GetStringFromColor(Color color)
{
return color.R + "," + color.G + "," + color.B;
}
private static Color GetColorFromString(string xml)
{
string[] s = xml.Split(new[] {','}, 3);
return Color.FromArgb(Convert.ToInt32(s[0]), Convert.ToInt32(s[1]), Convert.ToInt32(s[2]));
}
}
}