From 5872a780b8ad6758364c2667d5a0b0b8b8812925 Mon Sep 17 00:00:00 2001 From: "SND\\AstrorEnales_cp" Date: Sat, 5 Nov 2011 11:35:05 +0000 Subject: [PATCH] - added operators to MouseState - working on AdapterList for OpenGL - working on XNA to ANX converter tool --- .../ANX.Framework.Windows.GL3.csproj | 1 + ANX.Framework.Windows.GL3/Creator.cs | 68 +++++++- ANX.Framework.sln | 21 ++- ANX.Framework/Graphics/TextureCollection.cs | 13 +- ANX.Framework/Input/MouseState.cs | 32 ++++ Tools/ANXStatusComparer/Output/HtmlOutput.cs | 4 +- .../ConverterForm.Designer.cs | 147 ++++++++++++++++++ Tools/XNAToANXConverter/ConverterForm.cs | 98 ++++++++++++ Tools/XNAToANXConverter/ConverterForm.resx | 120 ++++++++++++++ Tools/XNAToANXConverter/Program.cs | 21 +++ .../Properties/AssemblyInfo.cs | 36 +++++ .../XNAToANXConverter.csproj | 64 ++++++++ 12 files changed, 613 insertions(+), 12 deletions(-) create mode 100644 Tools/XNAToANXConverter/ConverterForm.Designer.cs create mode 100644 Tools/XNAToANXConverter/ConverterForm.cs create mode 100644 Tools/XNAToANXConverter/ConverterForm.resx create mode 100644 Tools/XNAToANXConverter/Program.cs create mode 100644 Tools/XNAToANXConverter/Properties/AssemblyInfo.cs create mode 100644 Tools/XNAToANXConverter/XNAToANXConverter.csproj diff --git a/ANX.Framework.Windows.GL3/ANX.Framework.Windows.GL3.csproj b/ANX.Framework.Windows.GL3/ANX.Framework.Windows.GL3.csproj index 513b849b..97e42494 100644 --- a/ANX.Framework.Windows.GL3/ANX.Framework.Windows.GL3.csproj +++ b/ANX.Framework.Windows.GL3/ANX.Framework.Windows.GL3.csproj @@ -37,6 +37,7 @@ ..\lib\OpenTK\OpenTK.dll + diff --git a/ANX.Framework.Windows.GL3/Creator.cs b/ANX.Framework.Windows.GL3/Creator.cs index 4ceb053c..7d8bfb16 100644 --- a/ANX.Framework.Windows.GL3/Creator.cs +++ b/ANX.Framework.Windows.GL3/Creator.cs @@ -2,6 +2,10 @@ using System.IO; using ANX.Framework.Graphics; using ANX.Framework.NonXNA; +using System.Collections.ObjectModel; +using OpenTK; +using System.Collections.Generic; +using System.Windows.Forms; #region License @@ -224,10 +228,64 @@ namespace ANX.Framework.Windows.GL3 } #endregion + #region GetAdapterList + /// + /// Get a list of available graphics adapter information. + /// + /// List of graphics adapters. + public ReadOnlyCollection GetAdapterList() + { + var result = new List(); + foreach (DisplayDevice device in DisplayDevice.AvailableDisplays) + { + var displayModeCollection = new DisplayModeCollection(); + foreach (string format in Enum.GetNames(typeof(SurfaceFormat))) + { + SurfaceFormat surfaceFormat = + (SurfaceFormat)Enum.Parse(typeof(SurfaceFormat), format); - public System.Collections.ObjectModel.ReadOnlyCollection GetAdapterList() - { - throw new NotImplementedException(); - } - } + // TODO: device.BitsPerPixel + if (surfaceFormat != SurfaceFormat.Color)//adapter.Supports(surfaceFormat) == false) + { + continue; + } + + var modes = new List(); + + foreach (DisplayResolution res in device.AvailableResolutions) + { + float aspect = (float)res.Width / (float)res.Height; + modes.Add(new DisplayMode + { + AspectRatio = aspect, + Width = res.Width, + Height = res.Height, + TitleSafeArea = new Rectangle(0, 0, res.Width, res.Height), + Format = surfaceFormat, + }); + } + + displayModeCollection[surfaceFormat] = modes.ToArray(); + } + + GraphicsAdapter newAdapter = new GraphicsAdapter + { + SupportedDisplayModes = displayModeCollection, + IsDefaultAdapter = device.IsPrimary, + + // TODO: + DeviceId = 0, + DeviceName = "", + Revision = 0, + SubSystemId = 0, + VendorId = 0, + }; + + result.Add(newAdapter); + } + + return new ReadOnlyCollection(result); + } + #endregion + } } diff --git a/ANX.Framework.sln b/ANX.Framework.sln index a9bf8ee3..eb510e3e 100644 --- a/ANX.Framework.sln +++ b/ANX.Framework.sln @@ -43,11 +43,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xinput", "Samples\Xinput\Xi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsGame", "Samples\WindowsGame\WindowsGame.csproj", "{A08575E0-7B21-4822-9D4C-6B9EEB7EFFF7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XNAToANXConverter", "Tools\XNAToANXConverter\XNAToANXConverter.csproj", "{B5209A04-B2F8-4033-A5E7-545BE771214C}" +EndProject Global - GlobalSection(SubversionScc) = preSolution - Svn-Managed = True - Manager = AnkhSVN - Subversion Support for Visual Studio - EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|Mixed Platforms = Debug|Mixed Platforms @@ -211,6 +209,16 @@ Global {A08575E0-7B21-4822-9D4C-6B9EEB7EFFF7}.Release|Mixed Platforms.Build.0 = Release|x86 {A08575E0-7B21-4822-9D4C-6B9EEB7EFFF7}.Release|x86.ActiveCfg = Release|x86 {A08575E0-7B21-4822-9D4C-6B9EEB7EFFF7}.Release|x86.Build.0 = Release|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Debug|Any CPU.ActiveCfg = Debug|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Debug|x86.ActiveCfg = Debug|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Debug|x86.Build.0 = Debug|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Release|Any CPU.ActiveCfg = Release|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Release|Mixed Platforms.Build.0 = Release|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Release|x86.ActiveCfg = Release|x86 + {B5209A04-B2F8-4033-A5E7-545BE771214C}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -220,6 +228,7 @@ Global {B30DE9C2-0926-46B6-8351-9AF276C472D5} = {D421509A-9AE3-4D7E-881B-EAFED598B028} {5BE49183-2F6F-4527-AC90-D816911FCF90} = {D421509A-9AE3-4D7E-881B-EAFED598B028} {9D8DC781-2E0D-4348-BAD9-745F91428A3F} = {B24A8593-562A-4A25-BB08-46C163F10F3F} + {B5209A04-B2F8-4033-A5E7-545BE771214C} = {B24A8593-562A-4A25-BB08-46C163F10F3F} {F945515B-394D-4ED4-80E0-98EB59B69D24} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} {AAA20E99-A897-4C91-A23E-D02B8F08ACA5} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} {BC79B021-10E4-4D01-945A-7048FFF53A22} = {9B0DD48B-3912-4F33-AF3F-691AF02B73F9} @@ -229,4 +238,8 @@ Global {60D08399-244F-46A3-91F1-4CFD26D961A3} = {7AD65E6B-2A48-437F-81D9-4CA9C9A85C64} {6A582788-C4D2-410C-96CD-177F75712D65} = {5725DA44-4F5C-4E93-A957-AC5C85603EE9} EndGlobalSection + GlobalSection(SubversionScc) = preSolution + Svn-Managed = True + Manager = AnkhSVN - Subversion Support for Visual Studio + EndGlobalSection EndGlobal diff --git a/ANX.Framework/Graphics/TextureCollection.cs b/ANX.Framework/Graphics/TextureCollection.cs index 42312716..2cb0a67d 100644 --- a/ANX.Framework/Graphics/TextureCollection.cs +++ b/ANX.Framework/Graphics/TextureCollection.cs @@ -57,7 +57,18 @@ using ANX.Framework.Graphics; namespace ANX.Framework.Graphics { - public class TextureCollection + public sealed class TextureCollection { + public Texture this[int index] + { + get + { + throw new NotImplementedException(); + } + set + { + throw new NotImplementedException(); + } + } } } diff --git a/ANX.Framework/Input/MouseState.cs b/ANX.Framework/Input/MouseState.cs index 20e4fdac..e90e26b0 100644 --- a/ANX.Framework/Input/MouseState.cs +++ b/ANX.Framework/Input/MouseState.cs @@ -84,6 +84,38 @@ namespace ANX.Framework.Input public int X { get { return this.x; } } public int Y { get { return this.y; } } + public static bool operator ==(MouseState left, MouseState right) + { + return left.X == right.X && + left.Y == right.Y && + left.LeftButton == right.LeftButton && + left.MiddleButton == right.MiddleButton && + left.RightButton == right.RightButton && + left.XButton1 == right.XButton1 && + left.XButton2 == right.XButton2 && + left.ScrollWheelValue == right.ScrollWheelValue; + } + public static bool operator !=(MouseState left, MouseState right) + { + return left.X != right.X || + left.Y != right.Y || + left.LeftButton != right.LeftButton || + left.MiddleButton != right.MiddleButton || + left.RightButton != right.RightButton || + left.XButton1 != right.XButton1 || + left.XButton2 != right.XButton2 || + left.ScrollWheelValue != right.ScrollWheelValue; + } + + public override bool Equals(object obj) + { + if (obj is MouseState) + { + return this == (MouseState)obj; + } + + return false; + } } } diff --git a/Tools/ANXStatusComparer/Output/HtmlOutput.cs b/Tools/ANXStatusComparer/Output/HtmlOutput.cs index 98f35172..3d5cfada 100644 --- a/Tools/ANXStatusComparer/Output/HtmlOutput.cs +++ b/Tools/ANXStatusComparer/Output/HtmlOutput.cs @@ -142,7 +142,7 @@ namespace ANXStatusComparer.Output {0} {1} ", - EmptyCell, classData.Handle.Name); + EmptyCell, classData.Handle.FullName); } text += @" @@ -181,7 +181,7 @@ namespace ANXStatusComparer.Output {0} {1} ", - EmptyCell, structData.Handle.Name); + EmptyCell, structData.Handle.FullName); } text += @" diff --git a/Tools/XNAToANXConverter/ConverterForm.Designer.cs b/Tools/XNAToANXConverter/ConverterForm.Designer.cs new file mode 100644 index 00000000..22a4d3fd --- /dev/null +++ b/Tools/XNAToANXConverter/ConverterForm.Designer.cs @@ -0,0 +1,147 @@ +namespace XnaToAnxConverter +{ + partial class ConverterForm + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Windows Form-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.convertButton = new System.Windows.Forms.Button(); + this.sourcePath = new System.Windows.Forms.TextBox(); + this.destPath = new System.Windows.Forms.TextBox(); + this.browsePath1 = new System.Windows.Forms.Button(); + this.browsePath2 = new System.Windows.Forms.Button(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // convertButton + // + this.convertButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.convertButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.convertButton.Location = new System.Drawing.Point(161, 64); + this.convertButton.Name = "convertButton"; + this.convertButton.Size = new System.Drawing.Size(275, 25); + this.convertButton.TabIndex = 0; + this.convertButton.Text = "Convert"; + this.convertButton.UseVisualStyleBackColor = true; + this.convertButton.Click += new System.EventHandler(this.convertButton_Click); + // + // sourcePath + // + this.sourcePath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.sourcePath.Location = new System.Drawing.Point(161, 13); + this.sourcePath.Name = "sourcePath"; + this.sourcePath.Size = new System.Drawing.Size(203, 20); + this.sourcePath.TabIndex = 1; + // + // destPath + // + this.destPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.destPath.Location = new System.Drawing.Point(161, 38); + this.destPath.Name = "destPath"; + this.destPath.Size = new System.Drawing.Size(203, 20); + this.destPath.TabIndex = 2; + // + // browsePath1 + // + this.browsePath1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.browsePath1.Location = new System.Drawing.Point(370, 13); + this.browsePath1.Name = "browsePath1"; + this.browsePath1.Size = new System.Drawing.Size(66, 20); + this.browsePath1.TabIndex = 3; + this.browsePath1.Text = "•••"; + this.browsePath1.UseVisualStyleBackColor = true; + this.browsePath1.Click += new System.EventHandler(this.browsePath1_Click); + // + // browsePath2 + // + this.browsePath2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.browsePath2.Location = new System.Drawing.Point(370, 38); + this.browsePath2.Name = "browsePath2"; + this.browsePath2.Size = new System.Drawing.Size(66, 20); + this.browsePath2.TabIndex = 4; + this.browsePath2.Text = "•••"; + this.browsePath2.UseVisualStyleBackColor = true; + this.browsePath2.Click += new System.EventHandler(this.browsePath2_Click); + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.BackColor = System.Drawing.Color.Transparent; + this.checkBox1.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.checkBox1.Location = new System.Drawing.Point(15, 39); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(140, 17); + this.checkBox1.TabIndex = 5; + this.checkBox1.Text = "Convert to different path"; + this.checkBox1.UseVisualStyleBackColor = false; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.BackColor = System.Drawing.Color.Transparent; + this.label1.Location = new System.Drawing.Point(114, 15); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(41, 13); + this.label1.TabIndex = 6; + this.label1.Text = "Source"; + // + // ConverterForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(451, 101); + this.Controls.Add(this.label1); + this.Controls.Add(this.checkBox1); + this.Controls.Add(this.browsePath2); + this.Controls.Add(this.browsePath1); + this.Controls.Add(this.destPath); + this.Controls.Add(this.sourcePath); + this.Controls.Add(this.convertButton); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "ConverterForm"; + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "XNA To ANX Converter"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button convertButton; + private System.Windows.Forms.TextBox sourcePath; + private System.Windows.Forms.TextBox destPath; + private System.Windows.Forms.Button browsePath1; + private System.Windows.Forms.Button browsePath2; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.Label label1; + } +} + diff --git a/Tools/XNAToANXConverter/ConverterForm.cs b/Tools/XNAToANXConverter/ConverterForm.cs new file mode 100644 index 00000000..d9b9d9e2 --- /dev/null +++ b/Tools/XNAToANXConverter/ConverterForm.cs @@ -0,0 +1,98 @@ +using System; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.IO; +using System.Windows.Forms; + +namespace XnaToAnxConverter +{ + public partial class ConverterForm : Form + { + #region Constructor + public ConverterForm() + { + InitializeComponent(); + + destPath.Enabled = false; + browsePath2.Enabled = false; + } + #endregion + + #region OnPaintBackground + protected override void OnPaintBackground(PaintEventArgs e) + { + base.OnPaintBackground(e); + + e.Graphics.FillRectangle(new LinearGradientBrush( + Point.Empty, new Point(0, ClientSize.Height), + Color.CornflowerBlue, Color.White), + ClientRectangle); + } + #endregion + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + destPath.Enabled = checkBox1.Checked; + browsePath2.Enabled = checkBox1.Checked; + } + + private void browsePath1_Click(object sender, EventArgs e) + { + using (OpenFileDialog dialog = new OpenFileDialog()) + { + dialog.Title = "Select a .csproj file to convert..."; + dialog.InitialDirectory = "C:\\"; + dialog.Filter = "csproj file|*.csproj"; + dialog.CheckFileExists = true; + if (dialog.ShowDialog() == DialogResult.OK) + { + sourcePath.Text = dialog.FileName; + } + } + } + + private void browsePath2_Click(object sender, EventArgs e) + { + using (SaveFileDialog dialog = new SaveFileDialog()) + { + dialog.Title = "Select where to save the converted files..."; + dialog.InitialDirectory = "C:\\"; + dialog.Filter = "csproj file|*.csproj"; + dialog.CheckFileExists = false; + if (dialog.ShowDialog() == DialogResult.OK) + { + destPath.Text = dialog.FileName; + } + } + } + + private void convertButton_Click(object sender, EventArgs e) + { + string source = sourcePath.Text; + string dest = checkBox1.Checked ? destPath.Text : sourcePath.Text; + + if (String.IsNullOrEmpty(source)) + { + MessageBox.Show("Failed to convert because you need to enter a " + + "source filepath!"); + return; + } + + if (File.Exists(source) == false) + { + MessageBox.Show("Failed to convert because the source project file " + + "doesn't exist!"); + return; + } + + if (String.IsNullOrEmpty(dest)) + { + MessageBox.Show("Failed to convert because you need to enter a " + + "destination filepath!"); + return; + } + + // TODO: convert + } + } +} diff --git a/Tools/XNAToANXConverter/ConverterForm.resx b/Tools/XNAToANXConverter/ConverterForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Tools/XNAToANXConverter/ConverterForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tools/XNAToANXConverter/Program.cs b/Tools/XNAToANXConverter/Program.cs new file mode 100644 index 00000000..13ddaad4 --- /dev/null +++ b/Tools/XNAToANXConverter/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace XnaToAnxConverter +{ + static class Program + { + /// + /// Der Haupteinstiegspunkt für die Anwendung. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new ConverterForm()); + } + } +} diff --git a/Tools/XNAToANXConverter/Properties/AssemblyInfo.cs b/Tools/XNAToANXConverter/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..1288ef17 --- /dev/null +++ b/Tools/XNAToANXConverter/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die mit einer Assembly verknüpft sind. +[assembly: AssemblyTitle("XNAToANXConverter")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("XNAToANXConverter")] +[assembly: AssemblyCopyright("Copyright © 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar +// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von +// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("6ad195a6-d002-433a-9e7e-1643e179ba08")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern +// übernehmen, indem Sie "*" eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tools/XNAToANXConverter/XNAToANXConverter.csproj b/Tools/XNAToANXConverter/XNAToANXConverter.csproj new file mode 100644 index 00000000..40328d82 --- /dev/null +++ b/Tools/XNAToANXConverter/XNAToANXConverter.csproj @@ -0,0 +1,64 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {B5209A04-B2F8-4033-A5E7-545BE771214C} + WinExe + Properties + XNAToANXConverter + XNAToANXConverter + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + Form + + + ConverterForm.cs + + + + + ConverterForm.cs + + + + + \ No newline at end of file