From 2a81428697efd092c249ce90192f16e1c509a63d Mon Sep 17 00:00:00 2001 From: Mike Date: Tue, 8 Nov 2022 09:42:11 -0500 Subject: [PATCH] Add setting for optional zip compression This is useful when the ReClass.NET project is in a git repository and multiple people are working on it at once. Git software often cannot merge ZIP archives, and thus cannot merge rcnet project files. Having the ability to save the project without compression can solve this issue. --- .../ReClass/ReClassDataFile.Constants.cs | 41 ++ .../ReClass/ReClassDataFile.Read.cs | 333 +++++++++++ .../ReClass/ReClassDataFile.Write.cs | 243 ++++++++ .../DataExchange/ReClass/ReClassDataFile.cs | 85 +++ .../ReClass/ReClassNetFile.Write.cs | 6 + ReClass.NET/Forms/MainForm.Functions.cs | 9 +- ReClass.NET/Forms/MainForm.cs | 10 +- ReClass.NET/Forms/SettingsForm.Designer.cs | 559 +++++++++++------- ReClass.NET/Forms/SettingsForm.cs | 6 + ReClass.NET/ReClass.NET.csproj | 4 + ReClass.NET/Settings.cs | 6 +- 11 files changed, 1092 insertions(+), 210 deletions(-) create mode 100644 ReClass.NET/DataExchange/ReClass/ReClassDataFile.Constants.cs create mode 100644 ReClass.NET/DataExchange/ReClass/ReClassDataFile.Read.cs create mode 100644 ReClass.NET/DataExchange/ReClass/ReClassDataFile.Write.cs create mode 100644 ReClass.NET/DataExchange/ReClass/ReClassDataFile.cs diff --git a/ReClass.NET/DataExchange/ReClass/ReClassDataFile.Constants.cs b/ReClass.NET/DataExchange/ReClass/ReClassDataFile.Constants.cs new file mode 100644 index 00000000..e24e483b --- /dev/null +++ b/ReClass.NET/DataExchange/ReClass/ReClassDataFile.Constants.cs @@ -0,0 +1,41 @@ +namespace ReClassNET.DataExchange.ReClass +{ + public partial class ReClassDataFile + { + public const string FormatName = "ReClass.NET Data File"; + public const string FileExtension = ".xml"; + public const string FileExtensionId = "rcdatafile"; + + private const uint FileVersion = 0x00010001; + private const uint FileVersionCriticalMask = 0xFFFF0000; + + private const string SerializationClassName = "__Serialization_Class__"; + + public const string XmlRootElement = "reclass"; + public const string XmlCustomDataElement = "custom_data"; + public const string XmlTypeMappingElement = "type_mapping"; + public const string XmlEnumsElement = "enums"; + public const string XmlEnumElement = "enum"; + public const string XmlClassesElement = "classes"; + public const string XmlClassElement = "class"; + public const string XmlNodeElement = "node"; + public const string XmlMethodElement = "method"; + public const string XmlVersionAttribute = "version"; + public const string XmlPlatformAttribute = "type"; + public const string XmlUuidAttribute = "uuid"; + public const string XmlNameAttribute = "name"; + public const string XmlCommentAttribute = "comment"; + public const string XmlHiddenAttribute = "hidden"; + public const string XmlAddressAttribute = "address"; + public const string XmlTypeAttribute = "type"; + public const string XmlReferenceAttribute = "reference"; + public const string XmlCountAttribute = "count"; + public const string XmlBitsAttribute = "bits"; + public const string XmlLengthAttribute = "length"; + public const string XmlSizeAttribute = "size"; + public const string XmlSignatureAttribute = "signature"; + public const string XmlFlagsAttribute = "flags"; + public const string XmlItemElement = "item"; + public const string XmlValueAttribute = "value"; + } +} diff --git a/ReClass.NET/DataExchange/ReClass/ReClassDataFile.Read.cs b/ReClass.NET/DataExchange/ReClass/ReClassDataFile.Read.cs new file mode 100644 index 00000000..55267527 --- /dev/null +++ b/ReClass.NET/DataExchange/ReClass/ReClassDataFile.Read.cs @@ -0,0 +1,333 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.Contracts; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.Xml.Linq; +using ReClassNET.DataExchange.ReClass.Legacy; +using ReClassNET.Extensions; +using ReClassNET.Logger; +using ReClassNET.Nodes; +using ReClassNET.Project; + +namespace ReClassNET.DataExchange.ReClass +{ + public partial class ReClassDataFile + { + public void Load(string filePath, ILogger logger) + { + using var fs = new FileStream(filePath, FileMode.Open); + + Load(fs, logger); + } + + public void Load(Stream input, ILogger logger) + { + Contract.Requires(input != null); + Contract.Requires(logger != null); + + var document = XDocument.Load(input); + if (document.Root?.Element(XmlClassesElement) == null) + { + throw new FormatException("The data has not the correct format."); + } + + uint.TryParse(document.Root.Attribute(XmlVersionAttribute)?.Value, out var fileVersion); + if ((fileVersion & FileVersionCriticalMask) > (FileVersion & FileVersionCriticalMask)) + { + throw new FormatException($"The file version is unsupported. A newer {Constants.ApplicationName} version is required to read it."); + } + + var platform = document.Root.Attribute(XmlPlatformAttribute)?.Value; + if (platform != Constants.Platform) + { + logger.Log(LogLevel.Warning, $"The platform of the file ({platform}) doesn't match the program platform ({Constants.Platform})."); + } + + var customDataElement = document.Root.Element(XmlCustomDataElement); + if (customDataElement != null) + { + project.CustomData.Deserialize(customDataElement); + } + + var typeMappingElement = document.Root.Element(XmlTypeMappingElement); + if (typeMappingElement != null) + { + project.TypeMapping.Deserialize(typeMappingElement); + } + + var enumsElement = document.Root.Element(XmlEnumsElement); + if (enumsElement != null) + { + foreach (var enumElement in enumsElement.Elements(XmlEnumElement)) + { + var name = enumElement.Attribute(XmlNameAttribute)?.Value ?? string.Empty; + var useFlagsMode = (bool?)enumElement.Attribute(XmlFlagsAttribute) ?? false; + var size = enumElement.Attribute(XmlSizeAttribute).GetEnumValue(); + + var values = new Dictionary(); + foreach (var itemElement in enumElement.Elements(XmlItemElement)) + { + var itemName = itemElement.Attribute(XmlNameAttribute)?.Value ?? string.Empty; + var itemValue = (long?)itemElement.Attribute(XmlValueAttribute) ?? 0L; + + values.Add(itemName, itemValue); + } + + var @enum = new EnumDescription + { + Name = name + }; + @enum.SetData(useFlagsMode, size, values); + + project.AddEnum(@enum); + } + } + + var classes = new List<(XElement, ClassNode)>(); + + var classesElement = document.Root.Element(XmlClassesElement); + if (classesElement != null) + { + foreach (var element in classesElement + .Elements(XmlClassElement) + .DistinctBy(e => e.Attribute(XmlUuidAttribute)?.Value)) + { + var node = new ClassNode(false) + { + Uuid = ParseUuid(element.Attribute(XmlUuidAttribute)?.Value), + Name = element.Attribute(XmlNameAttribute)?.Value ?? string.Empty, + Comment = element.Attribute(XmlCommentAttribute)?.Value ?? string.Empty, + AddressFormula = element.Attribute(XmlAddressAttribute)?.Value ?? string.Empty + }; + + if (!project.ContainsClass(node.Uuid)) + { + project.AddClass(node); + + classes.Add((element, node)); + } + } + } + + foreach (var (element, classNode) in classes) + { + var nodes = element.Elements(XmlNodeElement) + .Select(e => CreateNodeFromElement(e, classNode, logger)) + .Where(n => n != null); + + classNode.BeginUpdate(); + classNode.AddNodes(nodes); + classNode.EndUpdate(); + } + } + + private BaseNode CreateNodeFromElement(XElement element, BaseNode parent, ILogger logger) + { + Contract.Requires(element != null); + Contract.Requires(logger != null); + + BaseNode CreateNode() + { + var converter = CustomNodeSerializer.GetReadConverter(element); + if (converter != null) + { + return converter.CreateNodeFromElement(element, parent, project.Classes, logger, CreateNodeFromElement); + } + + if (!buildInStringToTypeMap.TryGetValue(element.Attribute(XmlTypeAttribute)?.Value ?? string.Empty, out var nodeType)) + { + logger.Log(LogLevel.Error, $"Skipping node with unknown type: {element.Attribute(XmlTypeAttribute)?.Value}"); + logger.Log(LogLevel.Warning, element.ToString()); + + return null; + } + + return BaseNode.CreateInstanceFromType(nodeType, false); + } + + var node = CreateNode(); + if (node == null) + { + logger.Log(LogLevel.Error, "Could not create node."); + + return null; + } + + node.ParentNode = parent; + + node.Name = element.Attribute(XmlNameAttribute)?.Value ?? string.Empty; + node.Comment = element.Attribute(XmlCommentAttribute)?.Value ?? string.Empty; + node.IsHidden = bool.TryParse(element.Attribute(XmlHiddenAttribute)?.Value, out var val) && val; + + if (node is BaseWrapperNode wrapperNode) + { + ClassNode GetClassNodeFromElementReference() + { + var reference = ParseUuid(element.Attribute(XmlReferenceAttribute)?.Value); + if (!project.ContainsClass(reference)) + { + logger.Log(LogLevel.Error, $"Skipping node with unknown reference: {reference}"); + logger.Log(LogLevel.Warning, element.ToString()); + + return null; + } + + return project.GetClassByUuid(reference); + } + + // Legacy Support + if (node is ClassPointerNode || node is ClassInstanceArrayNode || node is ClassPointerArrayNode) + { + var innerClass = GetClassNodeFromElementReference(); + if (innerClass == null) + { + return null; + } + + node = node switch + { + BaseClassArrayNode classArrayNode => classArrayNode.GetEquivalentNode(0, innerClass), + ClassPointerNode classPointerNode => classPointerNode.GetEquivalentNode(innerClass) + }; + } + else + { + BaseNode innerNode = null; + + if (node is BaseClassWrapperNode) + { + innerNode = GetClassNodeFromElementReference(); + if (innerNode == null) + { + return null; + } + } + else + { + var innerElement = element.Elements().FirstOrDefault(); + if (innerElement != null) + { + innerNode = CreateNodeFromElement(innerElement, node, logger); + } + } + + if (wrapperNode.CanChangeInnerNodeTo(innerNode)) + { + var rootWrapperNode = node.GetRootWrapperNode(); + if (rootWrapperNode.ShouldPerformCycleCheckForInnerNode() + && innerNode is ClassNode classNode + && ClassUtil.IsCyclicIfClassIsAccessibleFromParent(node.GetParentClass(), classNode, project.Classes)) + { + logger.Log(LogLevel.Error, $"Skipping node with cyclic class reference: {node.GetParentClass().Name}->{rootWrapperNode.Name}"); + + return null; + } + + wrapperNode.ChangeInnerNode(innerNode); + } + else + { + logger.Log(LogLevel.Error, $"The node {innerNode} is not a valid child for {node}."); + } + } + } + + switch (node) + { + case VirtualMethodTableNode vtableNode: + { + var nodes = element + .Elements(XmlMethodElement) + .Select(e => new VirtualMethodNode + { + Name = e.Attribute(XmlNameAttribute)?.Value ?? string.Empty, + Comment = e.Attribute(XmlCommentAttribute)?.Value ?? string.Empty, + IsHidden = (bool?)e.Attribute(XmlHiddenAttribute) ?? false + }); + + vtableNode.AddNodes(nodes); + break; + } + case UnionNode unionNode: + { + var nodes = element + .Elements() + .Select(e => CreateNodeFromElement(e, unionNode, logger)); + + unionNode.AddNodes(nodes); + break; + } + case BaseWrapperArrayNode arrayNode: + { + arrayNode.Count = (int?)element.Attribute(XmlCountAttribute) ?? 0; + break; + } + case BaseTextNode textNode: + { + textNode.Length = (int?)element.Attribute(XmlLengthAttribute) ?? 0; + break; + } + case BitFieldNode bitFieldNode: + { + bitFieldNode.Bits = (int?)element.Attribute(XmlBitsAttribute) ?? 0; + break; + } + case FunctionNode functionNode: + { + functionNode.Signature = element.Attribute(XmlSignatureAttribute)?.Value ?? string.Empty; + + var reference = ParseUuid(element.Attribute(XmlReferenceAttribute)?.Value); + if (project.ContainsClass(reference)) + { + functionNode.BelongsToClass = project.GetClassByUuid(reference); + } + break; + } + case EnumNode enumNode: + { + var enumName = element.Attribute(XmlReferenceAttribute)?.Value ?? string.Empty; + var @enum = project.Enums.FirstOrDefault(e => e.Name == enumName) ?? EnumDescription.Default; + + enumNode.ChangeEnum(@enum); + break; + } + } + + return node; + } + + private static Guid ParseUuid(string raw) => raw == null + ? throw new ArgumentNullException() + : raw.Length == 24 + ? new Guid(Convert.FromBase64String(raw)) + : Guid.Parse(raw); + + public static Tuple, List> DeserializeNodesFromStream(Stream input, ReClassNetProject templateProject, ILogger logger) + { + Contract.Requires(input != null); + Contract.Requires(logger != null); + Contract.Ensures(Contract.Result, List>>() != null); + + using var project = new ReClassNetProject(); + templateProject?.Classes.ForEach(project.AddClass); + + var file = new ReClassDataFile(project); + file.Load(input, logger); + + var classes = project.Classes + .Where(c => c.Name != SerializationClassName); + if (templateProject != null) + { + classes = classes.Where(c => !templateProject.ContainsClass(c.Uuid)); + } + + var nodes = project.Classes + .Where(c => c.Name == SerializationClassName) + .SelectMany(c => c.Nodes); + + return Tuple.Create(classes.ToList(), nodes.ToList()); + } + } +} diff --git a/ReClass.NET/DataExchange/ReClass/ReClassDataFile.Write.cs b/ReClass.NET/DataExchange/ReClass/ReClassDataFile.Write.cs new file mode 100644 index 00000000..71fffe26 --- /dev/null +++ b/ReClass.NET/DataExchange/ReClass/ReClassDataFile.Write.cs @@ -0,0 +1,243 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.Contracts; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.Xml.Linq; +using ReClassNET.Logger; +using ReClassNET.Nodes; +using ReClassNET.Project; + +namespace ReClassNET.DataExchange.ReClass +{ + public partial class ReClassDataFile + { + public void Save(string filePath, ILogger logger) + { + //Adjust path according to the format we are saving in + if(filePath.EndsWith(ReClassNetFile.FileExtension)) + { + filePath.Substring(0, filePath.Length - ReClassNetFile.FileExtension.Length); + filePath += ReClassDataFile.FileExtension; + } + using var fs = new FileStream(filePath, FileMode.Create); + + Save(fs, logger); + } + + public void Save(Stream output, ILogger logger) + { + var document = new XDocument( + new XComment($"{Constants.ApplicationName} {Constants.ApplicationVersion} by {Constants.Author}"), + new XComment($"Website: {Constants.HomepageUrl}"), + new XElement( + XmlRootElement, + new XAttribute(XmlVersionAttribute, FileVersion), + new XAttribute(XmlPlatformAttribute, Constants.Platform), + project.CustomData.Serialize(XmlCustomDataElement), + project.TypeMapping.Serialize(XmlTypeMappingElement), + new XElement(XmlEnumsElement, CreateEnumElements(project.Enums)), + new XElement(XmlClassesElement, CreateClassElements(project.Classes, logger)) + ) + ); + + document.Save(output); + } + + private static IEnumerable CreateEnumElements(IEnumerable enums) + { + return enums.Select(e => new XElement( + XmlEnumElement, + new XAttribute(XmlNameAttribute, e.Name), + new XAttribute(XmlSizeAttribute, e.Size), + new XAttribute(XmlFlagsAttribute, e.UseFlagsMode), + e.Values.Select(kv => new XElement( + XmlItemElement, + new XAttribute(XmlNameAttribute, kv.Key), + new XAttribute(XmlValueAttribute, kv.Value) + )) + )); + } + + private static IEnumerable CreateClassElements(IEnumerable classes, ILogger logger) + { + Contract.Requires(classes != null); + Contract.Requires(Contract.ForAll(classes, c => c != null)); + Contract.Requires(logger != null); + Contract.Ensures(Contract.Result>() != null); + + return classes.Select(c => new XElement( + XmlClassElement, + new XAttribute(XmlUuidAttribute, c.Uuid), + new XAttribute(XmlNameAttribute, c.Name ?? string.Empty), + new XAttribute(XmlCommentAttribute, c.Comment ?? string.Empty), + new XAttribute(XmlAddressAttribute, c.AddressFormula ?? string.Empty), + c.Nodes.Select(n => CreateElementFromNode(n, logger)).Where(e => e != null) + )); + } + + private static XElement CreateElementFromNode(BaseNode node, ILogger logger) + { + Contract.Requires(node != null); + Contract.Requires(logger != null); + + XElement CreateElement() + { + var converter = CustomNodeSerializer.GetWriteConverter(node); + if (converter != null) + { + return converter.CreateElementFromNode(node, logger, CreateElementFromNode); + } + + if (!buildInTypeToStringMap.TryGetValue(node.GetType(), out var typeString)) + { + logger.Log(LogLevel.Error, $"Skipping node with unknown type: {node.Name}"); + logger.Log(LogLevel.Warning, node.GetType().ToString()); + + return null; + } + + return new XElement( + XmlNodeElement, + new XAttribute(XmlTypeAttribute, typeString) + ); + } + + var element = CreateElement(); + if (element == null) + { + logger.Log(LogLevel.Error, "Could not create element."); + + return null; + } + + element.SetAttributeValue(XmlNameAttribute, node.Name ?? string.Empty); + element.SetAttributeValue(XmlCommentAttribute, node.Comment ?? string.Empty); + element.SetAttributeValue(XmlHiddenAttribute, node.IsHidden); + + if (node is BaseWrapperNode wrapperNode) + { + if (node is BaseClassWrapperNode classWrapperNode) + { + element.SetAttributeValue(XmlReferenceAttribute, ((ClassNode)classWrapperNode.InnerNode).Uuid); + } + else if (wrapperNode.InnerNode != null) + { + element.Add(CreateElementFromNode(wrapperNode.InnerNode, logger)); + } + } + + switch (node) + { + case VirtualMethodTableNode vtableNode: + { + element.Add(vtableNode.Nodes.Select(n => new XElement( + XmlMethodElement, + new XAttribute(XmlNameAttribute, n.Name ?? string.Empty), + new XAttribute(XmlCommentAttribute, n.Comment ?? string.Empty), + new XAttribute(XmlHiddenAttribute, n.IsHidden) + ))); + break; + } + case UnionNode unionNode: + { + element.Add(unionNode.Nodes.Select(n => CreateElementFromNode(n, logger))); + break; + } + case BaseWrapperArrayNode arrayNode: + { + element.SetAttributeValue(XmlCountAttribute, arrayNode.Count); + break; + } + case BaseTextNode textNode: + { + element.SetAttributeValue(XmlLengthAttribute, textNode.Length); + break; + } + case BitFieldNode bitFieldNode: + { + element.SetAttributeValue(XmlBitsAttribute, bitFieldNode.Bits); + break; + } + case FunctionNode functionNode: + { + var uuid = functionNode.BelongsToClass?.Uuid ?? Guid.Empty; + element.SetAttributeValue(XmlReferenceAttribute, uuid); + element.SetAttributeValue(XmlSignatureAttribute, functionNode.Signature); + break; + } + case EnumNode enumNode: + { + element.SetAttributeValue(XmlReferenceAttribute, enumNode.Enum.Name); + break; + } + } + + return element; + } + + public static void SerializeNodesToStream(Stream output, IEnumerable nodes, ILogger logger) + { + Contract.Requires(output != null); + Contract.Requires(nodes != null); + Contract.Requires(Contract.ForAll(nodes, n => n != null)); + Contract.Requires(logger != null); + + using var project = new ReClassNetProject(); + + void RecursiveAddClasses(BaseNode node) + { + ClassNode classNode = null; + switch (node) + { + case ClassNode c1: + classNode = c1; + break; + case BaseWrapperNode wrapperNode when wrapperNode.ResolveMostInnerNode() is ClassNode c2: + classNode = c2; + break; + } + + if (classNode == null || project.ContainsClass(classNode.Uuid)) + { + return; + } + + project.AddClass(classNode); + + foreach (var wrapperNodeChild in classNode.Nodes.OfType()) + { + RecursiveAddClasses(wrapperNodeChild); + } + } + + var serialisationClass = new ClassNode(false) + { + Name = SerializationClassName + }; + + var needsSerialisationClass = true; + + foreach (var node in nodes) + { + RecursiveAddClasses(node); + + if (!(node is ClassNode)) + { + if (needsSerialisationClass) + { + needsSerialisationClass = false; + + project.AddClass(serialisationClass); + } + + serialisationClass.AddNode(node); + } + } + + var file = new ReClassDataFile(project); + file.Save(output, logger); + } + } +} diff --git a/ReClass.NET/DataExchange/ReClass/ReClassDataFile.cs b/ReClass.NET/DataExchange/ReClass/ReClassDataFile.cs new file mode 100644 index 00000000..58bec3f8 --- /dev/null +++ b/ReClass.NET/DataExchange/ReClass/ReClassDataFile.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.Contracts; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ReClassNET.DataExchange.ReClass.Legacy; +using ReClassNET.Nodes; +using ReClassNET.Project; + +namespace ReClassNET.DataExchange.ReClass +{ + public partial class ReClassDataFile : IReClassImport, IReClassExport + { + private readonly ReClassNetProject project; + + public ReClassDataFile(ReClassNetProject project) + { + Contract.Requires(project != null); + + this.project = project; + } + + static ReClassDataFile() + { + // Obsolete: The name of the class was changed. Because of this older versions can't load these nodes. + buildInStringToTypeMap["UTF8TextNode"] = typeof(Utf8TextNode); + buildInStringToTypeMap["UTF8TextPtrNode"] = typeof(Utf8TextPtrNode); + buildInStringToTypeMap["UTF16TextNode"] = typeof(Utf16TextNode); + buildInStringToTypeMap["UTF16TextPtrNode"] = typeof(Utf16TextPtrNode); + buildInStringToTypeMap["UTF32TextNode"] = typeof(Utf32TextNode); + buildInStringToTypeMap["UTF32TextPtrNode"] = typeof(Utf32TextPtrNode); + buildInStringToTypeMap["VTableNode"] = typeof(VirtualMethodTableNode); + + // Legacy + buildInStringToTypeMap["ClassInstanceArrayNode"] = typeof(ClassInstanceArrayNode); + buildInStringToTypeMap["ClassPtrArrayNode"] = typeof(ClassPointerArrayNode); + buildInStringToTypeMap["ClassPtrNode"] = typeof(ClassPointerNode); + } + + private static readonly Dictionary buildInStringToTypeMap = new[] + { + typeof(BoolNode), + typeof(BitFieldNode), + typeof(EnumNode), + typeof(ClassInstanceNode), + typeof(DoubleNode), + typeof(FloatNode), + typeof(FunctionNode), + typeof(FunctionPtrNode), + typeof(Hex8Node), + typeof(Hex16Node), + typeof(Hex32Node), + typeof(Hex64Node), + typeof(Int8Node), + typeof(Int16Node), + typeof(Int32Node), + typeof(Int64Node), + typeof(NIntNode), + typeof(Matrix3x3Node), + typeof(Matrix3x4Node), + typeof(Matrix4x4Node), + typeof(UInt8Node), + typeof(UInt16Node), + typeof(UInt32Node), + typeof(UInt64Node), + typeof(NUIntNode), + typeof(Utf8TextNode), + typeof(Utf8TextPtrNode), + typeof(Utf16TextNode), + typeof(Utf16TextPtrNode), + typeof(Utf32TextNode), + typeof(Utf32TextPtrNode), + typeof(Vector2Node), + typeof(Vector3Node), + typeof(Vector4Node), + typeof(VirtualMethodTableNode), + typeof(ArrayNode), + typeof(PointerNode), + typeof(UnionNode) + }.ToDictionary(t => t.Name, t => t); + + private static readonly Dictionary buildInTypeToStringMap = buildInStringToTypeMap.ToDictionary(kv => kv.Value, kv => kv.Key); + } +} diff --git a/ReClass.NET/DataExchange/ReClass/ReClassNetFile.Write.cs b/ReClass.NET/DataExchange/ReClass/ReClassNetFile.Write.cs index 1d33ebc5..693371a4 100644 --- a/ReClass.NET/DataExchange/ReClass/ReClassNetFile.Write.cs +++ b/ReClass.NET/DataExchange/ReClass/ReClassNetFile.Write.cs @@ -15,6 +15,12 @@ public partial class ReClassNetFile { public void Save(string filePath, ILogger logger) { + //Adjust path according to the format we are saving in + if (filePath.EndsWith(ReClassDataFile.FileExtension)) + { + filePath.Substring(0, filePath.Length - ReClassDataFile.FileExtension.Length); + filePath += ReClassNetFile.FileExtension; + } using var fs = new FileStream(filePath, FileMode.Create); Save(fs, logger); diff --git a/ReClass.NET/Forms/MainForm.Functions.cs b/ReClass.NET/Forms/MainForm.Functions.cs index 84f1b53a..f3fc1604 100644 --- a/ReClass.NET/Forms/MainForm.Functions.cs +++ b/ReClass.NET/Forms/MainForm.Functions.cs @@ -197,6 +197,7 @@ public static string ShowOpenProjectFileDialog() + $"|{ReClassNetFile.FormatName} (*{ReClassNetFile.FileExtension})|*{ReClassNetFile.FileExtension}" + $"|{ReClassFile.FormatName} (*{ReClassFile.FileExtension})|*{ReClassFile.FileExtension}" + $"|{ReClassQtFile.FormatName} (*{ReClassQtFile.FileExtension})|*{ReClassQtFile.FileExtension}" + + $"|{ReClassDataFile.FormatName} (*{ReClassDataFile.FileExtension})|*{ReClassDataFile.FileExtension}" }; if (ofd.ShowDialog() == DialogResult.OK) @@ -217,8 +218,9 @@ public void LoadProjectFromPath(string path) LoadProjectFromPath(path, ref project); - // If the file is a ReClass.NET file remember the path. - if (Path.GetExtension(path) == ReClassNetFile.FileExtension) + // If the file is a ReClass.NET file or ReClass.NET Data file remember the path. + if (Path.GetExtension(path) == ReClassNetFile.FileExtension || + Path.GetExtension(path) == ReClassDataFile.FileExtension) { project.Path = path; } @@ -241,6 +243,9 @@ private static void LoadProjectFromPath(string path, ref ReClassNetProject proje case ReClassNetFile.FileExtension: import = new ReClassNetFile(project); break; + case ReClassDataFile.FileExtension: + import = new ReClassDataFile(project); + break; case ReClassQtFile.FileExtension: import = new ReClassQtFile(project); break; diff --git a/ReClass.NET/Forms/MainForm.cs b/ReClass.NET/Forms/MainForm.cs index 010eea25..c308cc9f 100644 --- a/ReClass.NET/Forms/MainForm.cs +++ b/ReClass.NET/Forms/MainForm.cs @@ -294,7 +294,15 @@ private void saveToolStripMenuItem_Click(object sender, EventArgs e) return; } - var file = new ReClassNetFile(currentProject); + IReClassExport file; + if (Program.Settings.CompressAsZip) + { + file = new ReClassNetFile(currentProject); + } + else + { + file = new ReClassDataFile(currentProject); + } file.Save(currentProject.Path, Program.Logger); } diff --git a/ReClass.NET/Forms/SettingsForm.Designer.cs b/ReClass.NET/Forms/SettingsForm.Designer.cs index 82e4efd9..3f09f02c 100644 --- a/ReClass.NET/Forms/SettingsForm.Designer.cs +++ b/ReClass.NET/Forms/SettingsForm.Designer.cs @@ -83,6 +83,8 @@ private void InitializeComponent() this.backgroundLabel = new System.Windows.Forms.Label(); this.backgroundColorBox = new ReClassNET.Controls.ColorBox(); this.typeDefinitionsSettingsTabPage = new System.Windows.Forms.TabPage(); + this.utf32TextSettingsLabel = new System.Windows.Forms.Label(); + this.utf32TextTypeTextBox = new System.Windows.Forms.TextBox(); this.nuintSettingsLabel = new System.Windows.Forms.Label(); this.nuintTypeTextBox = new System.Windows.Forms.TextBox(); this.nintSettingsLabel = new System.Windows.Forms.Label(); @@ -129,8 +131,9 @@ private void InitializeComponent() this.int8SettingsLabel = new System.Windows.Forms.Label(); this.int8TypeTextBox = new System.Windows.Forms.TextBox(); this.bannerBox = new ReClassNET.Controls.BannerBox(); - this.utf32TextSettingsLabel = new System.Windows.Forms.Label(); - this.utf32TextTypeTextBox = new System.Windows.Forms.TextBox(); + this.projectSettingTabPage = new System.Windows.Forms.TabPage(); + this.compressZipCheckBox = new System.Windows.Forms.CheckBox(); + this.label1 = new System.Windows.Forms.Label(); this.settingsTabControl.SuspendLayout(); this.generalSettingsTabPage.SuspendLayout(); this.fileAssociationGroupBox.SuspendLayout(); @@ -140,6 +143,7 @@ private void InitializeComponent() this.nodeColorGroupBox.SuspendLayout(); this.typeDefinitionsSettingsTabPage.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.bannerBox)).BeginInit(); + this.projectSettingTabPage.SuspendLayout(); this.SuspendLayout(); // // settingsTabControl @@ -147,10 +151,12 @@ private void InitializeComponent() this.settingsTabControl.Controls.Add(this.generalSettingsTabPage); this.settingsTabControl.Controls.Add(this.colorsSettingTabPage); this.settingsTabControl.Controls.Add(this.typeDefinitionsSettingsTabPage); - this.settingsTabControl.Location = new System.Drawing.Point(12, 60); + this.settingsTabControl.Controls.Add(this.projectSettingTabPage); + this.settingsTabControl.Location = new System.Drawing.Point(16, 74); + this.settingsTabControl.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.settingsTabControl.Name = "settingsTabControl"; this.settingsTabControl.SelectedIndex = 0; - this.settingsTabControl.Size = new System.Drawing.Size(562, 355); + this.settingsTabControl.Size = new System.Drawing.Size(749, 437); this.settingsTabControl.TabIndex = 1; // // generalSettingsTabPage @@ -159,10 +165,11 @@ private void InitializeComponent() this.generalSettingsTabPage.Controls.Add(this.commentsGroupBox); this.generalSettingsTabPage.Controls.Add(this.displayGroupBox); this.generalSettingsTabPage.Controls.Add(this.stayOnTopCheckBox); - this.generalSettingsTabPage.Location = new System.Drawing.Point(4, 22); + this.generalSettingsTabPage.Location = new System.Drawing.Point(4, 25); + this.generalSettingsTabPage.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.generalSettingsTabPage.Name = "generalSettingsTabPage"; - this.generalSettingsTabPage.Padding = new System.Windows.Forms.Padding(3); - this.generalSettingsTabPage.Size = new System.Drawing.Size(554, 329); + this.generalSettingsTabPage.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.generalSettingsTabPage.Size = new System.Drawing.Size(741, 408); this.generalSettingsTabPage.TabIndex = 0; this.generalSettingsTabPage.Text = "General"; this.generalSettingsTabPage.UseVisualStyleBackColor = true; @@ -172,9 +179,11 @@ private void InitializeComponent() this.fileAssociationGroupBox.Controls.Add(this.removeAssociationButton); this.fileAssociationGroupBox.Controls.Add(this.createAssociationButton); this.fileAssociationGroupBox.Controls.Add(this.associationInfoLabel); - this.fileAssociationGroupBox.Location = new System.Drawing.Point(6, 231); + this.fileAssociationGroupBox.Location = new System.Drawing.Point(8, 284); + this.fileAssociationGroupBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.fileAssociationGroupBox.Name = "fileAssociationGroupBox"; - this.fileAssociationGroupBox.Size = new System.Drawing.Size(542, 85); + this.fileAssociationGroupBox.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.fileAssociationGroupBox.Size = new System.Drawing.Size(723, 105); this.fileAssociationGroupBox.TabIndex = 4; this.fileAssociationGroupBox.TabStop = false; this.fileAssociationGroupBox.Text = "RCNET File Association"; @@ -182,9 +191,10 @@ private void InitializeComponent() // removeAssociationButton // this.removeAssociationButton.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.removeAssociationButton.Location = new System.Drawing.Point(146, 52); + this.removeAssociationButton.Location = new System.Drawing.Point(195, 64); + this.removeAssociationButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.removeAssociationButton.Name = "removeAssociationButton"; - this.removeAssociationButton.Size = new System.Drawing.Size(135, 23); + this.removeAssociationButton.Size = new System.Drawing.Size(180, 28); this.removeAssociationButton.TabIndex = 2; this.removeAssociationButton.Text = "&Remove Association"; this.removeAssociationButton.UseVisualStyleBackColor = true; @@ -193,9 +203,10 @@ private void InitializeComponent() // createAssociationButton // this.createAssociationButton.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.createAssociationButton.Location = new System.Drawing.Point(9, 52); + this.createAssociationButton.Location = new System.Drawing.Point(12, 64); + this.createAssociationButton.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.createAssociationButton.Name = "createAssociationButton"; - this.createAssociationButton.Size = new System.Drawing.Size(131, 23); + this.createAssociationButton.Size = new System.Drawing.Size(175, 28); this.createAssociationButton.TabIndex = 1; this.createAssociationButton.Text = "Create &Association"; this.createAssociationButton.UseVisualStyleBackColor = true; @@ -203,9 +214,10 @@ private void InitializeComponent() // // associationInfoLabel // - this.associationInfoLabel.Location = new System.Drawing.Point(6, 21); + this.associationInfoLabel.Location = new System.Drawing.Point(8, 26); + this.associationInfoLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.associationInfoLabel.Name = "associationInfoLabel"; - this.associationInfoLabel.Size = new System.Drawing.Size(525, 28); + this.associationInfoLabel.Size = new System.Drawing.Size(700, 34); this.associationInfoLabel.TabIndex = 0; this.associationInfoLabel.Text = "RCNET files can be associated with ReClass.NET. When you double-click a RCNET fil" + "e, they will automatically be opened by ReClass.NET."; @@ -219,9 +231,11 @@ private void InitializeComponent() this.commentsGroupBox.Controls.Add(this.showPointerCheckBox); this.commentsGroupBox.Controls.Add(this.showIntegerCheckBox); this.commentsGroupBox.Controls.Add(this.showFloatCheckBox); - this.commentsGroupBox.Location = new System.Drawing.Point(6, 39); + this.commentsGroupBox.Location = new System.Drawing.Point(8, 48); + this.commentsGroupBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.commentsGroupBox.Name = "commentsGroupBox"; - this.commentsGroupBox.Size = new System.Drawing.Size(265, 186); + this.commentsGroupBox.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.commentsGroupBox.Size = new System.Drawing.Size(353, 229); this.commentsGroupBox.TabIndex = 3; this.commentsGroupBox.TabStop = false; this.commentsGroupBox.Text = "Node Comments"; @@ -229,9 +243,10 @@ private void InitializeComponent() // showPluginInfoCheckBox // this.showPluginInfoCheckBox.AutoSize = true; - this.showPluginInfoCheckBox.Location = new System.Drawing.Point(6, 157); + this.showPluginInfoCheckBox.Location = new System.Drawing.Point(8, 193); + this.showPluginInfoCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showPluginInfoCheckBox.Name = "showPluginInfoCheckBox"; - this.showPluginInfoCheckBox.Size = new System.Drawing.Size(111, 17); + this.showPluginInfoCheckBox.Size = new System.Drawing.Size(133, 20); this.showPluginInfoCheckBox.TabIndex = 6; this.showPluginInfoCheckBox.Text = "Show Plugin Infos"; this.showPluginInfoCheckBox.UseVisualStyleBackColor = true; @@ -239,9 +254,10 @@ private void InitializeComponent() // showStringCheckBox // this.showStringCheckBox.AutoSize = true; - this.showStringCheckBox.Location = new System.Drawing.Point(6, 134); + this.showStringCheckBox.Location = new System.Drawing.Point(8, 165); + this.showStringCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showStringCheckBox.Name = "showStringCheckBox"; - this.showStringCheckBox.Size = new System.Drawing.Size(88, 17); + this.showStringCheckBox.Size = new System.Drawing.Size(106, 20); this.showStringCheckBox.TabIndex = 5; this.showStringCheckBox.Text = "Show Strings"; this.showStringCheckBox.UseVisualStyleBackColor = true; @@ -249,9 +265,10 @@ private void InitializeComponent() // showSymbolsCheckBox // this.showSymbolsCheckBox.AutoSize = true; - this.showSymbolsCheckBox.Location = new System.Drawing.Point(6, 111); + this.showSymbolsCheckBox.Location = new System.Drawing.Point(8, 137); + this.showSymbolsCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showSymbolsCheckBox.Name = "showSymbolsCheckBox"; - this.showSymbolsCheckBox.Size = new System.Drawing.Size(130, 17); + this.showSymbolsCheckBox.Size = new System.Drawing.Size(162, 20); this.showSymbolsCheckBox.TabIndex = 4; this.showSymbolsCheckBox.Text = "Show Debug Symbols"; this.showSymbolsCheckBox.UseVisualStyleBackColor = true; @@ -259,9 +276,10 @@ private void InitializeComponent() // showRttiCheckBox // this.showRttiCheckBox.AutoSize = true; - this.showRttiCheckBox.Location = new System.Drawing.Point(6, 88); + this.showRttiCheckBox.Location = new System.Drawing.Point(8, 108); + this.showRttiCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showRttiCheckBox.Name = "showRttiCheckBox"; - this.showRttiCheckBox.Size = new System.Drawing.Size(81, 17); + this.showRttiCheckBox.Size = new System.Drawing.Size(96, 20); this.showRttiCheckBox.TabIndex = 3; this.showRttiCheckBox.Text = "Show RTTI"; this.showRttiCheckBox.UseVisualStyleBackColor = true; @@ -269,9 +287,10 @@ private void InitializeComponent() // showPointerCheckBox // this.showPointerCheckBox.AutoSize = true; - this.showPointerCheckBox.Location = new System.Drawing.Point(6, 65); + this.showPointerCheckBox.Location = new System.Drawing.Point(8, 80); + this.showPointerCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showPointerCheckBox.Name = "showPointerCheckBox"; - this.showPointerCheckBox.Size = new System.Drawing.Size(94, 17); + this.showPointerCheckBox.Size = new System.Drawing.Size(114, 20); this.showPointerCheckBox.TabIndex = 2; this.showPointerCheckBox.Text = "Show Pointers"; this.showPointerCheckBox.UseVisualStyleBackColor = true; @@ -279,9 +298,10 @@ private void InitializeComponent() // showIntegerCheckBox // this.showIntegerCheckBox.AutoSize = true; - this.showIntegerCheckBox.Location = new System.Drawing.Point(6, 42); + this.showIntegerCheckBox.Location = new System.Drawing.Point(8, 52); + this.showIntegerCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showIntegerCheckBox.Name = "showIntegerCheckBox"; - this.showIntegerCheckBox.Size = new System.Drawing.Size(124, 17); + this.showIntegerCheckBox.Size = new System.Drawing.Size(151, 20); this.showIntegerCheckBox.TabIndex = 1; this.showIntegerCheckBox.Text = "Show Integer Values"; this.showIntegerCheckBox.UseVisualStyleBackColor = true; @@ -289,9 +309,10 @@ private void InitializeComponent() // showFloatCheckBox // this.showFloatCheckBox.AutoSize = true; - this.showFloatCheckBox.Location = new System.Drawing.Point(6, 19); + this.showFloatCheckBox.Location = new System.Drawing.Point(8, 23); + this.showFloatCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showFloatCheckBox.Name = "showFloatCheckBox"; - this.showFloatCheckBox.Size = new System.Drawing.Size(114, 17); + this.showFloatCheckBox.Size = new System.Drawing.Size(140, 20); this.showFloatCheckBox.TabIndex = 0; this.showFloatCheckBox.Text = "Show Float Values"; this.showFloatCheckBox.UseVisualStyleBackColor = true; @@ -304,9 +325,11 @@ private void InitializeComponent() this.displayGroupBox.Controls.Add(this.showTextCheckBox); this.displayGroupBox.Controls.Add(this.showNodeOffsetCheckBox); this.displayGroupBox.Controls.Add(this.showNodeAddressCheckBox); - this.displayGroupBox.Location = new System.Drawing.Point(283, 39); + this.displayGroupBox.Location = new System.Drawing.Point(377, 48); + this.displayGroupBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.displayGroupBox.Name = "displayGroupBox"; - this.displayGroupBox.Size = new System.Drawing.Size(265, 160); + this.displayGroupBox.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.displayGroupBox.Size = new System.Drawing.Size(353, 197); this.displayGroupBox.TabIndex = 2; this.displayGroupBox.TabStop = false; this.displayGroupBox.Text = "Display"; @@ -314,9 +337,10 @@ private void InitializeComponent() // randomizeWindowTitleCheckBox // this.randomizeWindowTitleCheckBox.AutoSize = true; - this.randomizeWindowTitleCheckBox.Location = new System.Drawing.Point(6, 134); + this.randomizeWindowTitleCheckBox.Location = new System.Drawing.Point(8, 165); + this.randomizeWindowTitleCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.randomizeWindowTitleCheckBox.Name = "randomizeWindowTitleCheckBox"; - this.randomizeWindowTitleCheckBox.Size = new System.Drawing.Size(137, 17); + this.randomizeWindowTitleCheckBox.Size = new System.Drawing.Size(168, 20); this.randomizeWindowTitleCheckBox.TabIndex = 5; this.randomizeWindowTitleCheckBox.Text = "Randomize window title"; this.randomizeWindowTitleCheckBox.UseVisualStyleBackColor = true; @@ -324,9 +348,10 @@ private void InitializeComponent() // runAsAdminCheckBox // this.runAsAdminCheckBox.AutoSize = true; - this.runAsAdminCheckBox.Location = new System.Drawing.Point(6, 111); + this.runAsAdminCheckBox.Location = new System.Drawing.Point(8, 137); + this.runAsAdminCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.runAsAdminCheckBox.Name = "runAsAdminCheckBox"; - this.runAsAdminCheckBox.Size = new System.Drawing.Size(200, 17); + this.runAsAdminCheckBox.Size = new System.Drawing.Size(251, 20); this.runAsAdminCheckBox.TabIndex = 4; this.runAsAdminCheckBox.Text = "Run as administrator (requires restart)"; this.runAsAdminCheckBox.UseVisualStyleBackColor = true; @@ -334,9 +359,10 @@ private void InitializeComponent() // highlightChangedValuesCheckBox // this.highlightChangedValuesCheckBox.AutoSize = true; - this.highlightChangedValuesCheckBox.Location = new System.Drawing.Point(6, 88); + this.highlightChangedValuesCheckBox.Location = new System.Drawing.Point(8, 108); + this.highlightChangedValuesCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.highlightChangedValuesCheckBox.Name = "highlightChangedValuesCheckBox"; - this.highlightChangedValuesCheckBox.Size = new System.Drawing.Size(148, 17); + this.highlightChangedValuesCheckBox.Size = new System.Drawing.Size(184, 20); this.highlightChangedValuesCheckBox.TabIndex = 3; this.highlightChangedValuesCheckBox.Text = "Highlight Changed Values"; this.highlightChangedValuesCheckBox.UseVisualStyleBackColor = true; @@ -344,9 +370,10 @@ private void InitializeComponent() // showTextCheckBox // this.showTextCheckBox.AutoSize = true; - this.showTextCheckBox.Location = new System.Drawing.Point(6, 65); + this.showTextCheckBox.Location = new System.Drawing.Point(8, 80); + this.showTextCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showTextCheckBox.Name = "showTextCheckBox"; - this.showTextCheckBox.Size = new System.Drawing.Size(166, 17); + this.showTextCheckBox.Size = new System.Drawing.Size(204, 20); this.showTextCheckBox.TabIndex = 2; this.showTextCheckBox.Text = "Show Textual Representation"; this.showTextCheckBox.UseVisualStyleBackColor = true; @@ -354,9 +381,10 @@ private void InitializeComponent() // showNodeOffsetCheckBox // this.showNodeOffsetCheckBox.AutoSize = true; - this.showNodeOffsetCheckBox.Location = new System.Drawing.Point(6, 42); + this.showNodeOffsetCheckBox.Location = new System.Drawing.Point(8, 52); + this.showNodeOffsetCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showNodeOffsetCheckBox.Name = "showNodeOffsetCheckBox"; - this.showNodeOffsetCheckBox.Size = new System.Drawing.Size(113, 17); + this.showNodeOffsetCheckBox.Size = new System.Drawing.Size(136, 20); this.showNodeOffsetCheckBox.TabIndex = 1; this.showNodeOffsetCheckBox.Text = "Show Node Offset"; this.showNodeOffsetCheckBox.UseVisualStyleBackColor = true; @@ -364,9 +392,10 @@ private void InitializeComponent() // showNodeAddressCheckBox // this.showNodeAddressCheckBox.AutoSize = true; - this.showNodeAddressCheckBox.Location = new System.Drawing.Point(6, 19); + this.showNodeAddressCheckBox.Location = new System.Drawing.Point(8, 23); + this.showNodeAddressCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.showNodeAddressCheckBox.Name = "showNodeAddressCheckBox"; - this.showNodeAddressCheckBox.Size = new System.Drawing.Size(123, 17); + this.showNodeAddressCheckBox.Size = new System.Drawing.Size(153, 20); this.showNodeAddressCheckBox.TabIndex = 0; this.showNodeAddressCheckBox.Text = "Show Node Address"; this.showNodeAddressCheckBox.UseVisualStyleBackColor = true; @@ -374,9 +403,10 @@ private void InitializeComponent() // stayOnTopCheckBox // this.stayOnTopCheckBox.AutoSize = true; - this.stayOnTopCheckBox.Location = new System.Drawing.Point(6, 6); + this.stayOnTopCheckBox.Location = new System.Drawing.Point(8, 7); + this.stayOnTopCheckBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.stayOnTopCheckBox.Name = "stayOnTopCheckBox"; - this.stayOnTopCheckBox.Size = new System.Drawing.Size(187, 17); + this.stayOnTopCheckBox.Size = new System.Drawing.Size(232, 20); this.stayOnTopCheckBox.TabIndex = 1; this.stayOnTopCheckBox.Text = "Force ReClass.NET to stay on top"; this.stayOnTopCheckBox.UseVisualStyleBackColor = true; @@ -386,10 +416,11 @@ private void InitializeComponent() this.colorsSettingTabPage.Controls.Add(this.nodeColorGroupBox); this.colorsSettingTabPage.Controls.Add(this.backgroundLabel); this.colorsSettingTabPage.Controls.Add(this.backgroundColorBox); - this.colorsSettingTabPage.Location = new System.Drawing.Point(4, 22); + this.colorsSettingTabPage.Location = new System.Drawing.Point(4, 25); + this.colorsSettingTabPage.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.colorsSettingTabPage.Name = "colorsSettingTabPage"; - this.colorsSettingTabPage.Padding = new System.Windows.Forms.Padding(3); - this.colorsSettingTabPage.Size = new System.Drawing.Size(554, 329); + this.colorsSettingTabPage.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.colorsSettingTabPage.Size = new System.Drawing.Size(741, 408); this.colorsSettingTabPage.TabIndex = 1; this.colorsSettingTabPage.Text = "Colors"; this.colorsSettingTabPage.UseVisualStyleBackColor = true; @@ -422,9 +453,11 @@ private void InitializeComponent() this.nodeColorGroupBox.Controls.Add(this.nodeTypeLabel); this.nodeColorGroupBox.Controls.Add(this.nodeNameLabel); this.nodeColorGroupBox.Controls.Add(this.nodeNameColorBox); - this.nodeColorGroupBox.Location = new System.Drawing.Point(9, 43); + this.nodeColorGroupBox.Location = new System.Drawing.Point(12, 53); + this.nodeColorGroupBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nodeColorGroupBox.Name = "nodeColorGroupBox"; - this.nodeColorGroupBox.Size = new System.Drawing.Size(539, 225); + this.nodeColorGroupBox.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.nodeColorGroupBox.Size = new System.Drawing.Size(719, 277); this.nodeColorGroupBox.TabIndex = 28; this.nodeColorGroupBox.TabStop = false; this.nodeColorGroupBox.Text = "Node Colors"; @@ -432,25 +465,28 @@ private void InitializeComponent() // nodeValueLabel // this.nodeValueLabel.AutoSize = true; - this.nodeValueLabel.Location = new System.Drawing.Point(9, 198); + this.nodeValueLabel.Location = new System.Drawing.Point(12, 244); + this.nodeValueLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeValueLabel.Name = "nodeValueLabel"; - this.nodeValueLabel.Size = new System.Drawing.Size(64, 13); + this.nodeValueLabel.Size = new System.Drawing.Size(80, 16); this.nodeValueLabel.TabIndex = 17; this.nodeValueLabel.Text = "Value Color:"; // // nodePluginLabel // this.nodePluginLabel.AutoSize = true; - this.nodePluginLabel.Location = new System.Drawing.Point(286, 172); + this.nodePluginLabel.Location = new System.Drawing.Point(381, 212); + this.nodePluginLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodePluginLabel.Name = "nodePluginLabel"; - this.nodePluginLabel.Size = new System.Drawing.Size(87, 13); + this.nodePluginLabel.Size = new System.Drawing.Size(106, 16); this.nodePluginLabel.TabIndex = 27; this.nodePluginLabel.Text = "Plugin Info Color:"; // // nodeHexValueColorBox // this.nodeHexValueColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeHexValueColorBox.Location = new System.Drawing.Point(133, 117); + this.nodeHexValueColorBox.Location = new System.Drawing.Point(177, 144); + this.nodeHexValueColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeHexValueColorBox.Name = "nodeHexValueColorBox"; this.nodeHexValueColorBox.Size = new System.Drawing.Size(123, 20); this.nodeHexValueColorBox.TabIndex = 2; @@ -458,7 +494,8 @@ private void InitializeComponent() // nodePluginColorBox // this.nodePluginColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodePluginColorBox.Location = new System.Drawing.Point(410, 169); + this.nodePluginColorBox.Location = new System.Drawing.Point(547, 208); + this.nodePluginColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodePluginColorBox.Name = "nodePluginColorBox"; this.nodePluginColorBox.Size = new System.Drawing.Size(123, 20); this.nodePluginColorBox.TabIndex = 26; @@ -466,25 +503,28 @@ private void InitializeComponent() // nodeHexValueLabel // this.nodeHexValueLabel.AutoSize = true; - this.nodeHexValueLabel.Location = new System.Drawing.Point(9, 120); + this.nodeHexValueLabel.Location = new System.Drawing.Point(12, 148); + this.nodeHexValueLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeHexValueLabel.Name = "nodeHexValueLabel"; - this.nodeHexValueLabel.Size = new System.Drawing.Size(86, 13); + this.nodeHexValueLabel.Size = new System.Drawing.Size(107, 16); this.nodeHexValueLabel.TabIndex = 3; this.nodeHexValueLabel.Text = "Hex Value Color:"; // // nodeVTableLabel // this.nodeVTableLabel.AutoSize = true; - this.nodeVTableLabel.Location = new System.Drawing.Point(286, 94); + this.nodeVTableLabel.Location = new System.Drawing.Point(381, 116); + this.nodeVTableLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeVTableLabel.Name = "nodeVTableLabel"; - this.nodeVTableLabel.Size = new System.Drawing.Size(71, 13); + this.nodeVTableLabel.Size = new System.Drawing.Size(90, 16); this.nodeVTableLabel.TabIndex = 25; this.nodeVTableLabel.Text = "VTable Color:"; // // nodeOffsetColorBox // this.nodeOffsetColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeOffsetColorBox.Location = new System.Drawing.Point(133, 91); + this.nodeOffsetColorBox.Location = new System.Drawing.Point(177, 112); + this.nodeOffsetColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeOffsetColorBox.Name = "nodeOffsetColorBox"; this.nodeOffsetColorBox.Size = new System.Drawing.Size(123, 20); this.nodeOffsetColorBox.TabIndex = 4; @@ -492,7 +532,8 @@ private void InitializeComponent() // nodeVTableColorBox // this.nodeVTableColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeVTableColorBox.Location = new System.Drawing.Point(410, 91); + this.nodeVTableColorBox.Location = new System.Drawing.Point(547, 112); + this.nodeVTableColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeVTableColorBox.Name = "nodeVTableColorBox"; this.nodeVTableColorBox.Size = new System.Drawing.Size(123, 20); this.nodeVTableColorBox.TabIndex = 24; @@ -500,25 +541,28 @@ private void InitializeComponent() // nodeOffsetLabel // this.nodeOffsetLabel.AutoSize = true; - this.nodeOffsetLabel.Location = new System.Drawing.Point(9, 94); + this.nodeOffsetLabel.Location = new System.Drawing.Point(12, 116); + this.nodeOffsetLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeOffsetLabel.Name = "nodeOffsetLabel"; - this.nodeOffsetLabel.Size = new System.Drawing.Size(65, 13); + this.nodeOffsetLabel.Size = new System.Drawing.Size(79, 16); this.nodeOffsetLabel.TabIndex = 5; this.nodeOffsetLabel.Text = "Offset Color:"; // // nodeTextLabel // this.nodeTextLabel.AutoSize = true; - this.nodeTextLabel.Location = new System.Drawing.Point(286, 146); + this.nodeTextLabel.Location = new System.Drawing.Point(381, 180); + this.nodeTextLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeTextLabel.Name = "nodeTextLabel"; - this.nodeTextLabel.Size = new System.Drawing.Size(58, 13); + this.nodeTextLabel.Size = new System.Drawing.Size(71, 16); this.nodeTextLabel.TabIndex = 23; this.nodeTextLabel.Text = "Text Color:"; // // nodeAddressColorBox // this.nodeAddressColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeAddressColorBox.Location = new System.Drawing.Point(133, 65); + this.nodeAddressColorBox.Location = new System.Drawing.Point(177, 80); + this.nodeAddressColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeAddressColorBox.Name = "nodeAddressColorBox"; this.nodeAddressColorBox.Size = new System.Drawing.Size(123, 20); this.nodeAddressColorBox.TabIndex = 6; @@ -526,7 +570,8 @@ private void InitializeComponent() // nodeTextColorBox // this.nodeTextColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeTextColorBox.Location = new System.Drawing.Point(410, 143); + this.nodeTextColorBox.Location = new System.Drawing.Point(547, 176); + this.nodeTextColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeTextColorBox.Name = "nodeTextColorBox"; this.nodeTextColorBox.Size = new System.Drawing.Size(123, 20); this.nodeTextColorBox.TabIndex = 22; @@ -534,25 +579,28 @@ private void InitializeComponent() // nodeAddressLabel // this.nodeAddressLabel.AutoSize = true; - this.nodeAddressLabel.Location = new System.Drawing.Point(9, 68); + this.nodeAddressLabel.Location = new System.Drawing.Point(12, 84); + this.nodeAddressLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeAddressLabel.Name = "nodeAddressLabel"; - this.nodeAddressLabel.Size = new System.Drawing.Size(75, 13); + this.nodeAddressLabel.Size = new System.Drawing.Size(96, 16); this.nodeAddressLabel.TabIndex = 7; this.nodeAddressLabel.Text = "Address Color:"; // // nodeCommentLabel // this.nodeCommentLabel.AutoSize = true; - this.nodeCommentLabel.Location = new System.Drawing.Point(286, 120); + this.nodeCommentLabel.Location = new System.Drawing.Point(381, 148); + this.nodeCommentLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeCommentLabel.Name = "nodeCommentLabel"; - this.nodeCommentLabel.Size = new System.Drawing.Size(81, 13); + this.nodeCommentLabel.Size = new System.Drawing.Size(102, 16); this.nodeCommentLabel.TabIndex = 21; this.nodeCommentLabel.Text = "Comment Color:"; // // nodeHiddenColorBox // this.nodeHiddenColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeHiddenColorBox.Location = new System.Drawing.Point(410, 18); + this.nodeHiddenColorBox.Location = new System.Drawing.Point(547, 22); + this.nodeHiddenColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeHiddenColorBox.Name = "nodeHiddenColorBox"; this.nodeHiddenColorBox.Size = new System.Drawing.Size(123, 20); this.nodeHiddenColorBox.TabIndex = 8; @@ -560,7 +608,8 @@ private void InitializeComponent() // nodeCommentColorBox // this.nodeCommentColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeCommentColorBox.Location = new System.Drawing.Point(410, 117); + this.nodeCommentColorBox.Location = new System.Drawing.Point(547, 144); + this.nodeCommentColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeCommentColorBox.Name = "nodeCommentColorBox"; this.nodeCommentColorBox.Size = new System.Drawing.Size(123, 20); this.nodeCommentColorBox.TabIndex = 20; @@ -568,25 +617,28 @@ private void InitializeComponent() // nodeHiddenLabel // this.nodeHiddenLabel.AutoSize = true; - this.nodeHiddenLabel.Location = new System.Drawing.Point(286, 21); + this.nodeHiddenLabel.Location = new System.Drawing.Point(381, 26); + this.nodeHiddenLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeHiddenLabel.Name = "nodeHiddenLabel"; - this.nodeHiddenLabel.Size = new System.Drawing.Size(71, 13); + this.nodeHiddenLabel.Size = new System.Drawing.Size(89, 16); this.nodeHiddenLabel.TabIndex = 9; this.nodeHiddenLabel.Text = "Hidden Color:"; // // nodeIndexLabel // this.nodeIndexLabel.AutoSize = true; - this.nodeIndexLabel.Location = new System.Drawing.Point(286, 68); + this.nodeIndexLabel.Location = new System.Drawing.Point(381, 84); + this.nodeIndexLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeIndexLabel.Name = "nodeIndexLabel"; - this.nodeIndexLabel.Size = new System.Drawing.Size(63, 13); + this.nodeIndexLabel.Size = new System.Drawing.Size(77, 16); this.nodeIndexLabel.TabIndex = 19; this.nodeIndexLabel.Text = "Index Color:"; // // nodeSelectedColorBox // this.nodeSelectedColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeSelectedColorBox.Location = new System.Drawing.Point(133, 18); + this.nodeSelectedColorBox.Location = new System.Drawing.Point(177, 22); + this.nodeSelectedColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeSelectedColorBox.Name = "nodeSelectedColorBox"; this.nodeSelectedColorBox.Size = new System.Drawing.Size(123, 20); this.nodeSelectedColorBox.TabIndex = 10; @@ -594,7 +646,8 @@ private void InitializeComponent() // nodeIndexColorBox // this.nodeIndexColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeIndexColorBox.Location = new System.Drawing.Point(410, 65); + this.nodeIndexColorBox.Location = new System.Drawing.Point(547, 80); + this.nodeIndexColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeIndexColorBox.Name = "nodeIndexColorBox"; this.nodeIndexColorBox.Size = new System.Drawing.Size(123, 20); this.nodeIndexColorBox.TabIndex = 18; @@ -602,16 +655,18 @@ private void InitializeComponent() // nodeSelectedLabel // this.nodeSelectedLabel.AutoSize = true; - this.nodeSelectedLabel.Location = new System.Drawing.Point(9, 21); + this.nodeSelectedLabel.Location = new System.Drawing.Point(12, 26); + this.nodeSelectedLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeSelectedLabel.Name = "nodeSelectedLabel"; - this.nodeSelectedLabel.Size = new System.Drawing.Size(79, 13); + this.nodeSelectedLabel.Size = new System.Drawing.Size(99, 16); this.nodeSelectedLabel.TabIndex = 11; this.nodeSelectedLabel.Text = "Selected Color:"; // // nodeTypeColorBox // this.nodeTypeColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeTypeColorBox.Location = new System.Drawing.Point(133, 143); + this.nodeTypeColorBox.Location = new System.Drawing.Point(177, 176); + this.nodeTypeColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeTypeColorBox.Name = "nodeTypeColorBox"; this.nodeTypeColorBox.Size = new System.Drawing.Size(123, 20); this.nodeTypeColorBox.TabIndex = 12; @@ -619,7 +674,8 @@ private void InitializeComponent() // nodeValueColorBox // this.nodeValueColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeValueColorBox.Location = new System.Drawing.Point(133, 195); + this.nodeValueColorBox.Location = new System.Drawing.Point(177, 240); + this.nodeValueColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeValueColorBox.Name = "nodeValueColorBox"; this.nodeValueColorBox.Size = new System.Drawing.Size(123, 20); this.nodeValueColorBox.TabIndex = 16; @@ -627,25 +683,28 @@ private void InitializeComponent() // nodeTypeLabel // this.nodeTypeLabel.AutoSize = true; - this.nodeTypeLabel.Location = new System.Drawing.Point(9, 146); + this.nodeTypeLabel.Location = new System.Drawing.Point(12, 180); + this.nodeTypeLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeTypeLabel.Name = "nodeTypeLabel"; - this.nodeTypeLabel.Size = new System.Drawing.Size(61, 13); + this.nodeTypeLabel.Size = new System.Drawing.Size(77, 16); this.nodeTypeLabel.TabIndex = 13; this.nodeTypeLabel.Text = "Type Color:"; // // nodeNameLabel // this.nodeNameLabel.AutoSize = true; - this.nodeNameLabel.Location = new System.Drawing.Point(9, 172); + this.nodeNameLabel.Location = new System.Drawing.Point(12, 212); + this.nodeNameLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nodeNameLabel.Name = "nodeNameLabel"; - this.nodeNameLabel.Size = new System.Drawing.Size(65, 13); + this.nodeNameLabel.Size = new System.Drawing.Size(82, 16); this.nodeNameLabel.TabIndex = 15; this.nodeNameLabel.Text = "Name Color:"; // // nodeNameColorBox // this.nodeNameColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.nodeNameColorBox.Location = new System.Drawing.Point(133, 169); + this.nodeNameColorBox.Location = new System.Drawing.Point(177, 208); + this.nodeNameColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.nodeNameColorBox.Name = "nodeNameColorBox"; this.nodeNameColorBox.Size = new System.Drawing.Size(123, 20); this.nodeNameColorBox.TabIndex = 14; @@ -653,16 +712,18 @@ private void InitializeComponent() // backgroundLabel // this.backgroundLabel.AutoSize = true; - this.backgroundLabel.Location = new System.Drawing.Point(6, 14); + this.backgroundLabel.Location = new System.Drawing.Point(8, 17); + this.backgroundLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.backgroundLabel.Name = "backgroundLabel"; - this.backgroundLabel.Size = new System.Drawing.Size(161, 13); + this.backgroundLabel.Size = new System.Drawing.Size(202, 16); this.backgroundLabel.TabIndex = 1; this.backgroundLabel.Text = "Memory View Background Color:"; // // backgroundColorBox // this.backgroundColorBox.Color = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.backgroundColorBox.Location = new System.Drawing.Point(175, 11); + this.backgroundColorBox.Location = new System.Drawing.Point(233, 14); + this.backgroundColorBox.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); this.backgroundColorBox.Name = "backgroundColorBox"; this.backgroundColorBox.Size = new System.Drawing.Size(123, 20); this.backgroundColorBox.TabIndex = 0; @@ -716,373 +777,437 @@ private void InitializeComponent() this.typeDefinitionsSettingsTabPage.Controls.Add(this.int16TypeTextBox); this.typeDefinitionsSettingsTabPage.Controls.Add(this.int8SettingsLabel); this.typeDefinitionsSettingsTabPage.Controls.Add(this.int8TypeTextBox); - this.typeDefinitionsSettingsTabPage.Location = new System.Drawing.Point(4, 22); + this.typeDefinitionsSettingsTabPage.Location = new System.Drawing.Point(4, 25); + this.typeDefinitionsSettingsTabPage.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.typeDefinitionsSettingsTabPage.Name = "typeDefinitionsSettingsTabPage"; - this.typeDefinitionsSettingsTabPage.Padding = new System.Windows.Forms.Padding(3); - this.typeDefinitionsSettingsTabPage.Size = new System.Drawing.Size(554, 329); + this.typeDefinitionsSettingsTabPage.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.typeDefinitionsSettingsTabPage.Size = new System.Drawing.Size(741, 408); this.typeDefinitionsSettingsTabPage.TabIndex = 2; this.typeDefinitionsSettingsTabPage.Text = "Type Definitions"; this.typeDefinitionsSettingsTabPage.UseVisualStyleBackColor = true; // + // utf32TextSettingsLabel + // + this.utf32TextSettingsLabel.AutoSize = true; + this.utf32TextSettingsLabel.Location = new System.Drawing.Point(339, 287); + this.utf32TextSettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.utf32TextSettingsLabel.Name = "utf32TextSettingsLabel"; + this.utf32TextSettingsLabel.Size = new System.Drawing.Size(51, 16); + this.utf32TextSettingsLabel.TabIndex = 52; + this.utf32TextSettingsLabel.Text = "UTF32:"; + // + // utf32TextTypeTextBox + // + this.utf32TextTypeTextBox.Location = new System.Drawing.Point(461, 283); + this.utf32TextTypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.utf32TextTypeTextBox.Name = "utf32TextTypeTextBox"; + this.utf32TextTypeTextBox.Size = new System.Drawing.Size(159, 22); + this.utf32TextTypeTextBox.TabIndex = 51; + // // nuintSettingsLabel // this.nuintSettingsLabel.AutoSize = true; - this.nuintSettingsLabel.Location = new System.Drawing.Point(6, 233); + this.nuintSettingsLabel.Location = new System.Drawing.Point(8, 287); + this.nuintSettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nuintSettingsLabel.Name = "nuintSettingsLabel"; - this.nuintSettingsLabel.Size = new System.Drawing.Size(38, 13); + this.nuintSettingsLabel.Size = new System.Drawing.Size(43, 16); this.nuintSettingsLabel.TabIndex = 50; this.nuintSettingsLabel.Text = "NUInt:"; // // nuintTypeTextBox // - this.nuintTypeTextBox.Location = new System.Drawing.Point(98, 230); + this.nuintTypeTextBox.Location = new System.Drawing.Point(131, 283); + this.nuintTypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nuintTypeTextBox.Name = "nuintTypeTextBox"; - this.nuintTypeTextBox.Size = new System.Drawing.Size(120, 20); + this.nuintTypeTextBox.Size = new System.Drawing.Size(159, 22); this.nuintTypeTextBox.TabIndex = 49; // // nintSettingsLabel // this.nintSettingsLabel.AutoSize = true; - this.nintSettingsLabel.Location = new System.Drawing.Point(6, 123); + this.nintSettingsLabel.Location = new System.Drawing.Point(8, 151); + this.nintSettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.nintSettingsLabel.Name = "nintSettingsLabel"; - this.nintSettingsLabel.Size = new System.Drawing.Size(30, 13); + this.nintSettingsLabel.Size = new System.Drawing.Size(33, 16); this.nintSettingsLabel.TabIndex = 48; this.nintSettingsLabel.Text = "NInt:"; // // nintTypeTextBox // - this.nintTypeTextBox.Location = new System.Drawing.Point(98, 120); + this.nintTypeTextBox.Location = new System.Drawing.Point(131, 148); + this.nintTypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nintTypeTextBox.Name = "nintTypeTextBox"; - this.nintTypeTextBox.Size = new System.Drawing.Size(120, 20); + this.nintTypeTextBox.Size = new System.Drawing.Size(159, 22); this.nintTypeTextBox.TabIndex = 47; // // boolSettingsLabel // this.boolSettingsLabel.AutoSize = true; - this.boolSettingsLabel.Location = new System.Drawing.Point(254, 35); + this.boolSettingsLabel.Location = new System.Drawing.Point(339, 43); + this.boolSettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.boolSettingsLabel.Name = "boolSettingsLabel"; - this.boolSettingsLabel.Size = new System.Drawing.Size(31, 13); + this.boolSettingsLabel.Size = new System.Drawing.Size(38, 16); this.boolSettingsLabel.TabIndex = 46; this.boolSettingsLabel.Text = "Bool:"; // // boolTypeTextBox // - this.boolTypeTextBox.Location = new System.Drawing.Point(346, 32); + this.boolTypeTextBox.Location = new System.Drawing.Point(461, 39); + this.boolTypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.boolTypeTextBox.Name = "boolTypeTextBox"; - this.boolTypeTextBox.Size = new System.Drawing.Size(120, 20); + this.boolTypeTextBox.Size = new System.Drawing.Size(159, 22); this.boolTypeTextBox.TabIndex = 45; // // generatorInfoLabel // this.generatorInfoLabel.AutoSize = true; - this.generatorInfoLabel.Location = new System.Drawing.Point(6, 6); + this.generatorInfoLabel.Location = new System.Drawing.Point(8, 7); + this.generatorInfoLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.generatorInfoLabel.Name = "generatorInfoLabel"; - this.generatorInfoLabel.Size = new System.Drawing.Size(236, 13); + this.generatorInfoLabel.Size = new System.Drawing.Size(293, 16); this.generatorInfoLabel.TabIndex = 44; this.generatorInfoLabel.Text = "These types are used to generate the C++ code:"; // // functionPtrSettingsLabel // this.functionPtrSettingsLabel.AutoSize = true; - this.functionPtrSettingsLabel.Location = new System.Drawing.Point(254, 255); + this.functionPtrSettingsLabel.Location = new System.Drawing.Point(339, 314); + this.functionPtrSettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.functionPtrSettingsLabel.Name = "functionPtrSettingsLabel"; - this.functionPtrSettingsLabel.Size = new System.Drawing.Size(87, 13); + this.functionPtrSettingsLabel.Size = new System.Drawing.Size(105, 16); this.functionPtrSettingsLabel.TabIndex = 43; this.functionPtrSettingsLabel.Text = "Function Pointer:"; // // functionPtrTypeTextBox // - this.functionPtrTypeTextBox.Location = new System.Drawing.Point(346, 252); + this.functionPtrTypeTextBox.Location = new System.Drawing.Point(461, 310); + this.functionPtrTypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.functionPtrTypeTextBox.Name = "functionPtrTypeTextBox"; - this.functionPtrTypeTextBox.Size = new System.Drawing.Size(120, 20); + this.functionPtrTypeTextBox.Size = new System.Drawing.Size(159, 22); this.functionPtrTypeTextBox.TabIndex = 42; // // utf16TextSettingsLabel // this.utf16TextSettingsLabel.AutoSize = true; - this.utf16TextSettingsLabel.Location = new System.Drawing.Point(254, 211); + this.utf16TextSettingsLabel.Location = new System.Drawing.Point(339, 260); + this.utf16TextSettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.utf16TextSettingsLabel.Name = "utf16TextSettingsLabel"; - this.utf16TextSettingsLabel.Size = new System.Drawing.Size(43, 13); + this.utf16TextSettingsLabel.Size = new System.Drawing.Size(51, 16); this.utf16TextSettingsLabel.TabIndex = 39; this.utf16TextSettingsLabel.Text = "UTF16:"; // // utf16TextTypeTextBox // - this.utf16TextTypeTextBox.Location = new System.Drawing.Point(346, 208); + this.utf16TextTypeTextBox.Location = new System.Drawing.Point(461, 256); + this.utf16TextTypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.utf16TextTypeTextBox.Name = "utf16TextTypeTextBox"; - this.utf16TextTypeTextBox.Size = new System.Drawing.Size(120, 20); + this.utf16TextTypeTextBox.Size = new System.Drawing.Size(159, 22); this.utf16TextTypeTextBox.TabIndex = 38; // // utf8TextSettingsLabel // this.utf8TextSettingsLabel.AutoSize = true; - this.utf8TextSettingsLabel.Location = new System.Drawing.Point(254, 189); + this.utf8TextSettingsLabel.Location = new System.Drawing.Point(339, 233); + this.utf8TextSettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.utf8TextSettingsLabel.Name = "utf8TextSettingsLabel"; - this.utf8TextSettingsLabel.Size = new System.Drawing.Size(37, 13); + this.utf8TextSettingsLabel.Size = new System.Drawing.Size(44, 16); this.utf8TextSettingsLabel.TabIndex = 35; this.utf8TextSettingsLabel.Text = "UTF8:"; // // utf8TextTypeTextBox // - this.utf8TextTypeTextBox.Location = new System.Drawing.Point(346, 186); + this.utf8TextTypeTextBox.Location = new System.Drawing.Point(461, 229); + this.utf8TextTypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.utf8TextTypeTextBox.Name = "utf8TextTypeTextBox"; - this.utf8TextTypeTextBox.Size = new System.Drawing.Size(120, 20); + this.utf8TextTypeTextBox.Size = new System.Drawing.Size(159, 22); this.utf8TextTypeTextBox.TabIndex = 34; // // matrix3x3SettingsLabel // this.matrix3x3SettingsLabel.AutoSize = true; - this.matrix3x3SettingsLabel.Location = new System.Drawing.Point(254, 123); + this.matrix3x3SettingsLabel.Location = new System.Drawing.Point(339, 151); + this.matrix3x3SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.matrix3x3SettingsLabel.Name = "matrix3x3SettingsLabel"; - this.matrix3x3SettingsLabel.Size = new System.Drawing.Size(64, 13); + this.matrix3x3SettingsLabel.Size = new System.Drawing.Size(76, 16); this.matrix3x3SettingsLabel.TabIndex = 33; this.matrix3x3SettingsLabel.Text = "Matrix (3x3):"; // // matrix3x3TypeTextBox // - this.matrix3x3TypeTextBox.Location = new System.Drawing.Point(346, 120); + this.matrix3x3TypeTextBox.Location = new System.Drawing.Point(461, 148); + this.matrix3x3TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.matrix3x3TypeTextBox.Name = "matrix3x3TypeTextBox"; - this.matrix3x3TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.matrix3x3TypeTextBox.Size = new System.Drawing.Size(159, 22); this.matrix3x3TypeTextBox.TabIndex = 32; // // matrix3x4SettingsLabel // this.matrix3x4SettingsLabel.AutoSize = true; - this.matrix3x4SettingsLabel.Location = new System.Drawing.Point(254, 145); + this.matrix3x4SettingsLabel.Location = new System.Drawing.Point(339, 178); + this.matrix3x4SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.matrix3x4SettingsLabel.Name = "matrix3x4SettingsLabel"; - this.matrix3x4SettingsLabel.Size = new System.Drawing.Size(64, 13); + this.matrix3x4SettingsLabel.Size = new System.Drawing.Size(76, 16); this.matrix3x4SettingsLabel.TabIndex = 31; this.matrix3x4SettingsLabel.Text = "Matrix (3x4):"; // // matrix3x4TypeTextBox // - this.matrix3x4TypeTextBox.Location = new System.Drawing.Point(346, 142); + this.matrix3x4TypeTextBox.Location = new System.Drawing.Point(461, 175); + this.matrix3x4TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.matrix3x4TypeTextBox.Name = "matrix3x4TypeTextBox"; - this.matrix3x4TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.matrix3x4TypeTextBox.Size = new System.Drawing.Size(159, 22); this.matrix3x4TypeTextBox.TabIndex = 30; // // matrix4x4SettingsLabel // this.matrix4x4SettingsLabel.AutoSize = true; - this.matrix4x4SettingsLabel.Location = new System.Drawing.Point(254, 167); + this.matrix4x4SettingsLabel.Location = new System.Drawing.Point(339, 206); + this.matrix4x4SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.matrix4x4SettingsLabel.Name = "matrix4x4SettingsLabel"; - this.matrix4x4SettingsLabel.Size = new System.Drawing.Size(64, 13); + this.matrix4x4SettingsLabel.Size = new System.Drawing.Size(76, 16); this.matrix4x4SettingsLabel.TabIndex = 29; this.matrix4x4SettingsLabel.Text = "Matrix (4x4):"; // // matrix4x4TypeTextBox // - this.matrix4x4TypeTextBox.Location = new System.Drawing.Point(346, 164); + this.matrix4x4TypeTextBox.Location = new System.Drawing.Point(461, 202); + this.matrix4x4TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.matrix4x4TypeTextBox.Name = "matrix4x4TypeTextBox"; - this.matrix4x4TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.matrix4x4TypeTextBox.Size = new System.Drawing.Size(159, 22); this.matrix4x4TypeTextBox.TabIndex = 28; // // vector2SettingsLabel // this.vector2SettingsLabel.AutoSize = true; - this.vector2SettingsLabel.Location = new System.Drawing.Point(254, 57); + this.vector2SettingsLabel.Location = new System.Drawing.Point(339, 70); + this.vector2SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.vector2SettingsLabel.Name = "vector2SettingsLabel"; - this.vector2SettingsLabel.Size = new System.Drawing.Size(47, 13); + this.vector2SettingsLabel.Size = new System.Drawing.Size(56, 16); this.vector2SettingsLabel.TabIndex = 27; this.vector2SettingsLabel.Text = "Vector2:"; // // vector2TypeTextBox // - this.vector2TypeTextBox.Location = new System.Drawing.Point(346, 54); + this.vector2TypeTextBox.Location = new System.Drawing.Point(461, 66); + this.vector2TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.vector2TypeTextBox.Name = "vector2TypeTextBox"; - this.vector2TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.vector2TypeTextBox.Size = new System.Drawing.Size(159, 22); this.vector2TypeTextBox.TabIndex = 26; // // vector3SettingsLabel // this.vector3SettingsLabel.AutoSize = true; - this.vector3SettingsLabel.Location = new System.Drawing.Point(254, 79); + this.vector3SettingsLabel.Location = new System.Drawing.Point(339, 97); + this.vector3SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.vector3SettingsLabel.Name = "vector3SettingsLabel"; - this.vector3SettingsLabel.Size = new System.Drawing.Size(47, 13); + this.vector3SettingsLabel.Size = new System.Drawing.Size(56, 16); this.vector3SettingsLabel.TabIndex = 25; this.vector3SettingsLabel.Text = "Vector3:"; // // vector3TypeTextBox // - this.vector3TypeTextBox.Location = new System.Drawing.Point(346, 76); + this.vector3TypeTextBox.Location = new System.Drawing.Point(461, 94); + this.vector3TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.vector3TypeTextBox.Name = "vector3TypeTextBox"; - this.vector3TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.vector3TypeTextBox.Size = new System.Drawing.Size(159, 22); this.vector3TypeTextBox.TabIndex = 24; // // vector4SettingsLabel // this.vector4SettingsLabel.AutoSize = true; - this.vector4SettingsLabel.Location = new System.Drawing.Point(254, 101); + this.vector4SettingsLabel.Location = new System.Drawing.Point(339, 124); + this.vector4SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.vector4SettingsLabel.Name = "vector4SettingsLabel"; - this.vector4SettingsLabel.Size = new System.Drawing.Size(47, 13); + this.vector4SettingsLabel.Size = new System.Drawing.Size(56, 16); this.vector4SettingsLabel.TabIndex = 23; this.vector4SettingsLabel.Text = "Vector4:"; // // vector4TypeTextBox // - this.vector4TypeTextBox.Location = new System.Drawing.Point(346, 98); + this.vector4TypeTextBox.Location = new System.Drawing.Point(461, 121); + this.vector4TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.vector4TypeTextBox.Name = "vector4TypeTextBox"; - this.vector4TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.vector4TypeTextBox.Size = new System.Drawing.Size(159, 22); this.vector4TypeTextBox.TabIndex = 22; // // doubleSettingsLabel // this.doubleSettingsLabel.AutoSize = true; - this.doubleSettingsLabel.Location = new System.Drawing.Point(6, 277); + this.doubleSettingsLabel.Location = new System.Drawing.Point(8, 341); + this.doubleSettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.doubleSettingsLabel.Name = "doubleSettingsLabel"; - this.doubleSettingsLabel.Size = new System.Drawing.Size(44, 13); + this.doubleSettingsLabel.Size = new System.Drawing.Size(54, 16); this.doubleSettingsLabel.TabIndex = 21; this.doubleSettingsLabel.Text = "Double:"; // // doubleTypeTextBox // - this.doubleTypeTextBox.Location = new System.Drawing.Point(98, 274); + this.doubleTypeTextBox.Location = new System.Drawing.Point(131, 337); + this.doubleTypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.doubleTypeTextBox.Name = "doubleTypeTextBox"; - this.doubleTypeTextBox.Size = new System.Drawing.Size(120, 20); + this.doubleTypeTextBox.Size = new System.Drawing.Size(159, 22); this.doubleTypeTextBox.TabIndex = 20; // // floatSettingsLabel // this.floatSettingsLabel.AutoSize = true; - this.floatSettingsLabel.Location = new System.Drawing.Point(6, 255); + this.floatSettingsLabel.Location = new System.Drawing.Point(8, 314); + this.floatSettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.floatSettingsLabel.Name = "floatSettingsLabel"; - this.floatSettingsLabel.Size = new System.Drawing.Size(33, 13); + this.floatSettingsLabel.Size = new System.Drawing.Size(40, 16); this.floatSettingsLabel.TabIndex = 19; this.floatSettingsLabel.Text = "Float:"; // // floatTypeTextBox // - this.floatTypeTextBox.Location = new System.Drawing.Point(98, 252); + this.floatTypeTextBox.Location = new System.Drawing.Point(131, 310); + this.floatTypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.floatTypeTextBox.Name = "floatTypeTextBox"; - this.floatTypeTextBox.Size = new System.Drawing.Size(120, 20); + this.floatTypeTextBox.Size = new System.Drawing.Size(159, 22); this.floatTypeTextBox.TabIndex = 18; // // uint64SettingsLabel // this.uint64SettingsLabel.AutoSize = true; - this.uint64SettingsLabel.Location = new System.Drawing.Point(6, 211); + this.uint64SettingsLabel.Location = new System.Drawing.Point(8, 260); + this.uint64SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.uint64SettingsLabel.Name = "uint64SettingsLabel"; - this.uint64SettingsLabel.Size = new System.Drawing.Size(42, 13); + this.uint64SettingsLabel.Size = new System.Drawing.Size(47, 16); this.uint64SettingsLabel.TabIndex = 17; this.uint64SettingsLabel.Text = "UInt64:"; // // uint64TypeTextBox // - this.uint64TypeTextBox.Location = new System.Drawing.Point(98, 208); + this.uint64TypeTextBox.Location = new System.Drawing.Point(131, 256); + this.uint64TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.uint64TypeTextBox.Name = "uint64TypeTextBox"; - this.uint64TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.uint64TypeTextBox.Size = new System.Drawing.Size(159, 22); this.uint64TypeTextBox.TabIndex = 16; // // uint32SettingsLabel // this.uint32SettingsLabel.AutoSize = true; - this.uint32SettingsLabel.Location = new System.Drawing.Point(6, 189); + this.uint32SettingsLabel.Location = new System.Drawing.Point(8, 233); + this.uint32SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.uint32SettingsLabel.Name = "uint32SettingsLabel"; - this.uint32SettingsLabel.Size = new System.Drawing.Size(42, 13); + this.uint32SettingsLabel.Size = new System.Drawing.Size(47, 16); this.uint32SettingsLabel.TabIndex = 15; this.uint32SettingsLabel.Text = "UInt32:"; // // uint32TypeTextBox // - this.uint32TypeTextBox.Location = new System.Drawing.Point(98, 186); + this.uint32TypeTextBox.Location = new System.Drawing.Point(131, 229); + this.uint32TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.uint32TypeTextBox.Name = "uint32TypeTextBox"; - this.uint32TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.uint32TypeTextBox.Size = new System.Drawing.Size(159, 22); this.uint32TypeTextBox.TabIndex = 14; // // uint16SettingsLabel // this.uint16SettingsLabel.AutoSize = true; - this.uint16SettingsLabel.Location = new System.Drawing.Point(6, 167); + this.uint16SettingsLabel.Location = new System.Drawing.Point(8, 206); + this.uint16SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.uint16SettingsLabel.Name = "uint16SettingsLabel"; - this.uint16SettingsLabel.Size = new System.Drawing.Size(42, 13); + this.uint16SettingsLabel.Size = new System.Drawing.Size(47, 16); this.uint16SettingsLabel.TabIndex = 13; this.uint16SettingsLabel.Text = "UInt16:"; // // uint16TypeTextBox // - this.uint16TypeTextBox.Location = new System.Drawing.Point(98, 164); + this.uint16TypeTextBox.Location = new System.Drawing.Point(131, 202); + this.uint16TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.uint16TypeTextBox.Name = "uint16TypeTextBox"; - this.uint16TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.uint16TypeTextBox.Size = new System.Drawing.Size(159, 22); this.uint16TypeTextBox.TabIndex = 12; // // uint8SettingsLabel // this.uint8SettingsLabel.AutoSize = true; - this.uint8SettingsLabel.Location = new System.Drawing.Point(6, 145); + this.uint8SettingsLabel.Location = new System.Drawing.Point(8, 178); + this.uint8SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.uint8SettingsLabel.Name = "uint8SettingsLabel"; - this.uint8SettingsLabel.Size = new System.Drawing.Size(36, 13); + this.uint8SettingsLabel.Size = new System.Drawing.Size(40, 16); this.uint8SettingsLabel.TabIndex = 11; this.uint8SettingsLabel.Text = "UInt8:"; // // uint8TypeTextBox // - this.uint8TypeTextBox.Location = new System.Drawing.Point(98, 142); + this.uint8TypeTextBox.Location = new System.Drawing.Point(131, 175); + this.uint8TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.uint8TypeTextBox.Name = "uint8TypeTextBox"; - this.uint8TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.uint8TypeTextBox.Size = new System.Drawing.Size(159, 22); this.uint8TypeTextBox.TabIndex = 10; // // int64SettingsLabel // this.int64SettingsLabel.AutoSize = true; - this.int64SettingsLabel.Location = new System.Drawing.Point(6, 101); + this.int64SettingsLabel.Location = new System.Drawing.Point(8, 124); + this.int64SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.int64SettingsLabel.Name = "int64SettingsLabel"; - this.int64SettingsLabel.Size = new System.Drawing.Size(34, 13); + this.int64SettingsLabel.Size = new System.Drawing.Size(37, 16); this.int64SettingsLabel.TabIndex = 9; this.int64SettingsLabel.Text = "Int64:"; // // int64TypeTextBox // - this.int64TypeTextBox.Location = new System.Drawing.Point(98, 98); + this.int64TypeTextBox.Location = new System.Drawing.Point(131, 121); + this.int64TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.int64TypeTextBox.Name = "int64TypeTextBox"; - this.int64TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.int64TypeTextBox.Size = new System.Drawing.Size(159, 22); this.int64TypeTextBox.TabIndex = 8; // // int32SettingsLabel // this.int32SettingsLabel.AutoSize = true; - this.int32SettingsLabel.Location = new System.Drawing.Point(6, 79); + this.int32SettingsLabel.Location = new System.Drawing.Point(8, 97); + this.int32SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.int32SettingsLabel.Name = "int32SettingsLabel"; - this.int32SettingsLabel.Size = new System.Drawing.Size(34, 13); + this.int32SettingsLabel.Size = new System.Drawing.Size(37, 16); this.int32SettingsLabel.TabIndex = 7; this.int32SettingsLabel.Text = "Int32:"; // // int32TypeTextBox // - this.int32TypeTextBox.Location = new System.Drawing.Point(98, 76); + this.int32TypeTextBox.Location = new System.Drawing.Point(131, 94); + this.int32TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.int32TypeTextBox.Name = "int32TypeTextBox"; - this.int32TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.int32TypeTextBox.Size = new System.Drawing.Size(159, 22); this.int32TypeTextBox.TabIndex = 6; // // int16SettingsLabel // this.int16SettingsLabel.AutoSize = true; - this.int16SettingsLabel.Location = new System.Drawing.Point(6, 57); + this.int16SettingsLabel.Location = new System.Drawing.Point(8, 70); + this.int16SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.int16SettingsLabel.Name = "int16SettingsLabel"; - this.int16SettingsLabel.Size = new System.Drawing.Size(34, 13); + this.int16SettingsLabel.Size = new System.Drawing.Size(37, 16); this.int16SettingsLabel.TabIndex = 5; this.int16SettingsLabel.Text = "Int16:"; // // int16TypeTextBox // - this.int16TypeTextBox.Location = new System.Drawing.Point(98, 54); + this.int16TypeTextBox.Location = new System.Drawing.Point(131, 66); + this.int16TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.int16TypeTextBox.Name = "int16TypeTextBox"; - this.int16TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.int16TypeTextBox.Size = new System.Drawing.Size(159, 22); this.int16TypeTextBox.TabIndex = 4; // // int8SettingsLabel // this.int8SettingsLabel.AutoSize = true; - this.int8SettingsLabel.Location = new System.Drawing.Point(6, 35); + this.int8SettingsLabel.Location = new System.Drawing.Point(8, 43); + this.int8SettingsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.int8SettingsLabel.Name = "int8SettingsLabel"; - this.int8SettingsLabel.Size = new System.Drawing.Size(28, 13); + this.int8SettingsLabel.Size = new System.Drawing.Size(30, 16); this.int8SettingsLabel.TabIndex = 3; this.int8SettingsLabel.Text = "Int8:"; // // int8TypeTextBox // - this.int8TypeTextBox.Location = new System.Drawing.Point(98, 32); + this.int8TypeTextBox.Location = new System.Drawing.Point(131, 39); + this.int8TypeTextBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.int8TypeTextBox.Name = "int8TypeTextBox"; - this.int8TypeTextBox.Size = new System.Drawing.Size(120, 20); + this.int8TypeTextBox.Size = new System.Drawing.Size(159, 22); this.int8TypeTextBox.TabIndex = 2; // // bannerBox @@ -1090,36 +1215,53 @@ private void InitializeComponent() this.bannerBox.Dock = System.Windows.Forms.DockStyle.Top; this.bannerBox.Icon = global::ReClassNET.Properties.Resources.B32x32_Cogs; this.bannerBox.Location = new System.Drawing.Point(0, 0); + this.bannerBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.bannerBox.Name = "bannerBox"; - this.bannerBox.Size = new System.Drawing.Size(586, 48); + this.bannerBox.Size = new System.Drawing.Size(781, 48); this.bannerBox.TabIndex = 2; this.bannerBox.Text = "Configure the global settings."; this.bannerBox.Title = "Settings"; // - // utf32TextSettingsLabel - // - this.utf32TextSettingsLabel.AutoSize = true; - this.utf32TextSettingsLabel.Location = new System.Drawing.Point(254, 233); - this.utf32TextSettingsLabel.Name = "utf32TextSettingsLabel"; - this.utf32TextSettingsLabel.Size = new System.Drawing.Size(43, 13); - this.utf32TextSettingsLabel.TabIndex = 52; - this.utf32TextSettingsLabel.Text = "UTF32:"; - // - // utf32TextTypeTextBox - // - this.utf32TextTypeTextBox.Location = new System.Drawing.Point(346, 230); - this.utf32TextTypeTextBox.Name = "utf32TextTypeTextBox"; - this.utf32TextTypeTextBox.Size = new System.Drawing.Size(120, 20); - this.utf32TextTypeTextBox.TabIndex = 51; + // projectSettingTabPage + // + this.projectSettingTabPage.Controls.Add(this.label1); + this.projectSettingTabPage.Controls.Add(this.compressZipCheckBox); + this.projectSettingTabPage.Location = new System.Drawing.Point(4, 25); + this.projectSettingTabPage.Name = "projectSettingTabPage"; + this.projectSettingTabPage.Size = new System.Drawing.Size(741, 408); + this.projectSettingTabPage.TabIndex = 3; + this.projectSettingTabPage.Text = "Project Settings"; + this.projectSettingTabPage.UseVisualStyleBackColor = true; + // + // compressZipCheckBox + // + this.compressZipCheckBox.AutoSize = true; + this.compressZipCheckBox.Location = new System.Drawing.Point(25, 38); + this.compressZipCheckBox.Name = "compressZipCheckBox"; + this.compressZipCheckBox.Size = new System.Drawing.Size(132, 20); + this.compressZipCheckBox.TabIndex = 0; + this.compressZipCheckBox.Text = "Compress as ZIP"; + this.compressZipCheckBox.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(4, 10); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(301, 16); + this.label1.TabIndex = 45; + this.label1.Text = "These settings only affect the project when saved:"; // // SettingsForm // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(586, 427); + this.ClientSize = new System.Drawing.Size(781, 526); this.Controls.Add(this.bannerBox); this.Controls.Add(this.settingsTabControl); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "SettingsForm"; @@ -1141,6 +1283,8 @@ private void InitializeComponent() this.typeDefinitionsSettingsTabPage.ResumeLayout(false); this.typeDefinitionsSettingsTabPage.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.bannerBox)).EndInit(); + this.projectSettingTabPage.ResumeLayout(false); + this.projectSettingTabPage.PerformLayout(); this.ResumeLayout(false); } @@ -1247,5 +1391,8 @@ private void InitializeComponent() private System.Windows.Forms.TextBox nintTypeTextBox; private System.Windows.Forms.Label utf32TextSettingsLabel; private System.Windows.Forms.TextBox utf32TextTypeTextBox; - } + private System.Windows.Forms.TabPage projectSettingTabPage; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.CheckBox compressZipCheckBox; + } } \ No newline at end of file diff --git a/ReClass.NET/Forms/SettingsForm.cs b/ReClass.NET/Forms/SettingsForm.cs index fcc4121e..132f0fb3 100644 --- a/ReClass.NET/Forms/SettingsForm.cs +++ b/ReClass.NET/Forms/SettingsForm.cs @@ -40,6 +40,7 @@ public SettingsForm(Settings settings, CppTypeMapping typeMapping) SetGeneralBindings(); SetColorBindings(); SetTypeDefinitionBindings(); + SetProjectSettingsBindings(); if (NativeMethods.IsUnix()) { @@ -153,5 +154,10 @@ private void SetTypeDefinitionBindings() SetBinding(utf32TextTypeTextBox, nameof(TextBox.Text), typeMapping, nameof(CppTypeMapping.TypeUtf32Text)); SetBinding(functionPtrTypeTextBox, nameof(TextBox.Text), typeMapping, nameof(CppTypeMapping.TypeFunctionPtr)); } + + private void SetProjectSettingsBindings() + { + SetBinding(compressZipCheckBox, nameof(CheckBox.Checked), settings, nameof(Settings.CompressAsZip)); + } } } diff --git a/ReClass.NET/ReClass.NET.csproj b/ReClass.NET/ReClass.NET.csproj index 0c990cc2..0b20f255 100644 --- a/ReClass.NET/ReClass.NET.csproj +++ b/ReClass.NET/ReClass.NET.csproj @@ -151,9 +151,13 @@ + + + + diff --git a/ReClass.NET/Settings.cs b/ReClass.NET/Settings.cs index b5d9268b..1a260084 100644 --- a/ReClass.NET/Settings.cs +++ b/ReClass.NET/Settings.cs @@ -1,4 +1,4 @@ -using System.Drawing; +using System.Drawing; using System.Text; using ReClassNET.Util; @@ -77,5 +77,9 @@ public class Settings public CustomDataMap CustomData { get; } = new CustomDataMap(); public Settings Clone() => MemberwiseClone() as Settings; + + // Project Settings + + public bool CompressAsZip { get; set; } = true; } }