From 69967ceff359fa6f1ad5d805c651bc7d7b8114af Mon Sep 17 00:00:00 2001 From: AsY!um- <377468+AsYlum-@users.noreply.github.com> Date: Sun, 19 Apr 2026 23:19:10 +0200 Subject: [PATCH 1/6] Migrate to .NET 10.0. --- .github/workflows/build-and-release.yml | 2 +- .github/workflows/build-pr.yml | 2 +- README.md | 6 ++++++ Ultima/ASCIIFont.cs | 2 +- Ultima/Art.cs | 10 +++++----- Ultima/Client.cs | 2 +- Ultima/Gumps.cs | 6 +++--- Ultima/Hues.cs | 2 +- Ultima/RadarCol.cs | 2 +- Ultima/Sound.cs | 10 +++++----- Ultima/Textures.cs | 2 +- Ultima/TileData.cs | 2 +- Ultima/TileMatrix.cs | 6 +++--- Ultima/TileMatrixPatch.cs | 4 ++-- Ultima/Ultima.csproj | 2 +- UoFiddler.Controls/Forms/AnimDataImportForm.cs | 3 +++ UoFiddler.Controls/Forms/ItemDetailForm.cs | 2 ++ UoFiddler.Controls/UoFiddler.Controls.csproj | 4 +--- UoFiddler.Controls/UserControls/AnimatedPictureBox.cs | 4 ++++ UoFiddler.Controls/UserControls/ItemsControl.cs | 1 + UoFiddler.Controls/UserControls/LandTilesControl.cs | 2 ++ UoFiddler.Controls/UserControls/TexturesControl.cs | 2 ++ .../UserControls/TileView/TileViewControl.cs | 11 +++++++++++ UoFiddler.Plugin.Compare/Classes/SecondArt.cs | 6 +++--- UoFiddler.Plugin.Compare/Classes/SecondFileIndex.cs | 2 +- UoFiddler.Plugin.Compare/Classes/SecondGump.cs | 4 ++-- UoFiddler.Plugin.Compare/Classes/SecondTexture.cs | 2 +- .../UoFiddler.Plugin.Compare.csproj | 2 +- .../UoFiddler.Plugin.ExamplePlugin.csproj | 2 +- .../UoFiddler.Plugin.MassImport.csproj | 2 +- .../UoFiddler.Plugin.MultiEditor.csproj | 5 +---- .../UserControls/MultiEditorControl.cs | 2 ++ .../UoFiddler.Plugin.SendItem.csproj | 2 +- .../UoFiddler.Plugin.UopPacker.csproj | 2 +- UoFiddler/UoFiddler.csproj | 3 +-- 35 files changed, 75 insertions(+), 48 deletions(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 8b0e8149..d55656ff 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -37,7 +37,7 @@ jobs: - name: Install .NET Core uses: actions/setup-dotnet@v5.2.0 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Restore & build the application run: dotnet build $env:Solution_Name --configuration $env:Configuration diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index 705b6056..9a60cf55 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -34,7 +34,7 @@ jobs: - name: Install .NET Core uses: actions/setup-dotnet@v5.2.0 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Restore & build the application run: dotnet build $env:Solution_Name --configuration $env:Configuration diff --git a/README.md b/README.md index 486b11b9..dce433cf 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,12 @@ We have dedicated channel on POL Discord: https://discord.gg/4JbC8hA ## Requirements +Starting from version 4.18.0: + +- Requires .NET Desktop Runtime 10.0.x (or SDK) installed to run the application. +- You can download .NET 10.0 at: +- Minimum supported Windows version is Windows 10. + Starting from version 4.11.0: - Requires .NET Desktop Runtime 8.0.x (or SDK) installed to run the application. diff --git a/Ultima/ASCIIFont.cs b/Ultima/ASCIIFont.cs index 0b75244e..6b46a83a 100644 --- a/Ultima/ASCIIFont.cs +++ b/Ultima/ASCIIFont.cs @@ -87,7 +87,7 @@ public static unsafe void Initialize() using (var reader = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) { var buffer = new byte[(int)reader.Length]; - reader.Read(buffer, 0, (int)reader.Length); + reader.ReadExactly(buffer, 0, (int)reader.Length); fixed (byte* bin = buffer) { byte* read = bin; diff --git a/Ultima/Art.cs b/Ultima/Art.cs index a75a67ff..322dd63f 100644 --- a/Ultima/Art.cs +++ b/Ultima/Art.cs @@ -255,7 +255,7 @@ public static bool IsValidStatic(int index) } stream.Seek(4, SeekOrigin.Current); - stream.Read(_validBuffer, 0, 4); + stream.ReadExactly(_validBuffer, 0, 4); short width = (short)(_validBuffer[0] | (_validBuffer[1] << 8)); short height = (short)(_validBuffer[2] | (_validBuffer[3] << 8)); @@ -346,7 +346,7 @@ public static byte[] GetRawLand(int index) } var buffer = new byte[length]; - stream.Read(buffer, 0, length); + stream.ReadExactly(buffer, 0, length); stream.Close(); return buffer; } @@ -418,7 +418,7 @@ public static byte[] GetRawStatic(int index) } var buffer = new byte[length]; - stream.Read(buffer, 0, length); + stream.ReadExactly(buffer, 0, length); stream.Close(); return buffer; } @@ -503,7 +503,7 @@ private static unsafe Bitmap LoadStatic(Stream stream, int length) _streamBuffer = new byte[length]; } - stream.Read(_streamBuffer, 0, length); + stream.ReadExactly(_streamBuffer, 0, length); stream.Close(); Bitmap bmp; @@ -578,7 +578,7 @@ private static unsafe Bitmap LoadLand(Stream stream, int length) _streamBuffer = new byte[length]; } - stream.Read(_streamBuffer, 0, length); + stream.ReadExactly(_streamBuffer, 0, length); stream.Close(); fixed (byte* binData = _streamBuffer) { diff --git a/Ultima/Client.cs b/Ultima/Client.cs index 6db63470..20678e6f 100644 --- a/Ultima/Client.cs +++ b/Ultima/Client.cs @@ -90,7 +90,7 @@ public static int Read(ProcessStream pc, int bytes) { var buffer = new byte[bytes]; - pc.Read(buffer, 0, bytes); + pc.ReadExactly(buffer, 0, bytes); switch (bytes) { diff --git a/Ultima/Gumps.cs b/Ultima/Gumps.cs index 0b338781..15f77bb3 100644 --- a/Ultima/Gumps.cs +++ b/Ultima/Gumps.cs @@ -157,7 +157,7 @@ public static byte[] GetRawGump(int index, out int width, out int height) _streamBuffer = new byte[entry.Length]; } - stream.Read(_streamBuffer, 0, entry.Length); + stream.ReadExactly(_streamBuffer, 0, entry.Length); var result = UopUtils.Decompress(_streamBuffer); if (result.success is false) @@ -272,7 +272,7 @@ public static unsafe Bitmap GetGump(int index, Hue hue, bool onlyHueGrayPixels, _colorTable = colorTable = new byte[128]; } - stream.Read(streamBuffer, 0, length); + stream.ReadExactly(streamBuffer, 0, length); fixed (ushort* psHueColors = hue.Colors) { @@ -445,7 +445,7 @@ public static unsafe Bitmap GetGump(int index, out bool patched) _streamBuffer = new byte[length]; } - stream.Read(_streamBuffer, 0, length); + stream.ReadExactly(_streamBuffer, 0, length); uint width = (uint)entry.Extra1; uint height = (uint)entry.Extra2; diff --git a/Ultima/Hues.cs b/Ultima/Hues.cs index 19183ba8..7c508503 100644 --- a/Ultima/Hues.cs +++ b/Ultima/Hues.cs @@ -47,7 +47,7 @@ public static void Initialize() GCHandle gc = GCHandle.Alloc(buffer, GCHandleType.Pinned); try { - fs.Read(buffer, 0, buffer.Length); + fs.ReadExactly(buffer, 0, buffer.Length); long currentPos = 0; for (int i = 0; i < blockCount; ++i) diff --git a/Ultima/RadarCol.cs b/Ultima/RadarCol.cs index 22d05235..42b3d827 100644 --- a/Ultima/RadarCol.cs +++ b/Ultima/RadarCol.cs @@ -44,7 +44,7 @@ public static void Initialize() Colors = new ushort[fs.Length / 2]; GCHandle gc = GCHandle.Alloc(Colors, GCHandleType.Pinned); var buffer = new byte[(int)fs.Length]; - fs.Read(buffer, 0, (int)fs.Length); + fs.ReadExactly(buffer, 0, (int)fs.Length); Marshal.Copy(buffer, 0, gc.AddrOfPinnedObject(), (int)fs.Length); gc.Free(); } diff --git a/Ultima/Sound.cs b/Ultima/Sound.cs index dde1ddbc..a5b51c3d 100644 --- a/Ultima/Sound.cs +++ b/Ultima/Sound.cs @@ -130,8 +130,8 @@ public static UoSound GetSound(int soundId, out bool translated) var stringBuffer = new byte[32]; var buffer = new byte[length]; - stream.Read(stringBuffer, 0, 32); - stream.Read(buffer, 0, length); + stream.ReadExactly(stringBuffer, 0, 32); + stream.ReadExactly(buffer, 0, length); stream.Close(); var resultBuffer = new byte[buffer.Length + (waveHeader.Length << 2)]; @@ -233,7 +233,7 @@ public static bool IsValidSound(int soundId, out string name, out bool translate } var stringBuffer = new byte[32]; - stream.Read(stringBuffer, 0, 32); + stream.ReadExactly(stringBuffer, 0, 32); stream.Close(); name = Encoding.ASCII.GetString(stringBuffer); // seems that the null terminator's not being properly recognized :/ if (name.IndexOf('\0') > 0) @@ -303,7 +303,7 @@ public static void Add(int id, string name, string file) { byte[] resultBuffer = new byte[wav.Length]; wav.Seek(0, SeekOrigin.Begin); - wav.Read(resultBuffer, 0, (int)wav.Length); + wav.ReadExactly(resultBuffer, 0, (int)wav.Length); resultBuffer = CheckAndFixWave(resultBuffer); @@ -376,7 +376,7 @@ public static void Save(string path) { m.Seek(headerLength, SeekOrigin.Begin); var resultBuffer = new byte[m.Length - headerLength]; - m.Read(resultBuffer, 0, (int)m.Length - headerLength); + m.ReadExactly(resultBuffer, 0, (int)m.Length - headerLength); binmul.Write(resultBuffer); } diff --git a/Ultima/Textures.cs b/Ultima/Textures.cs index 2bb5736d..5106dc3a 100644 --- a/Ultima/Textures.cs +++ b/Ultima/Textures.cs @@ -140,7 +140,7 @@ public static unsafe Bitmap GetTexture(int index, out bool patched) byte[] streamBuffer = new byte[max]; - stream.Read(streamBuffer, 0, max); + stream.ReadExactly(streamBuffer, 0, max); fixed (byte* data = streamBuffer) { diff --git a/Ultima/TileData.cs b/Ultima/TileData.cs index 044c016c..b9313962 100644 --- a/Ultima/TileData.cs +++ b/Ultima/TileData.cs @@ -1335,7 +1335,7 @@ public static unsafe void Initialize() long currentPos = 0; try { - fs.Read(buffer, 0, buffer.Length); + fs.ReadExactly(buffer, 0, buffer.Length); for (int i = 0; i < 0x4000; i += 32) { var ptrHeader = new IntPtr(gc.AddrOfPinnedObject() + currentPos); diff --git a/Ultima/TileMatrix.cs b/Ultima/TileMatrix.cs index b609b9a9..67bc0fec 100644 --- a/Ultima/TileMatrix.cs +++ b/Ultima/TileMatrix.cs @@ -241,7 +241,7 @@ private void InitStatics() GCHandle gc = GCHandle.Alloc(_staticIndex, GCHandleType.Pinned); var buffer = new byte[index.Length]; - index.Read(buffer, 0, (int)index.Length); + index.ReadExactly(buffer, 0, (int)index.Length); Marshal.Copy(buffer, 0, gc.AddrOfPinnedObject(), (int)Math.Min(index.Length, BlockHeight * BlockWidth * 12)); gc.Free(); for (var i = (int)Math.Min(index.Length, BlockHeight * BlockWidth); i < BlockHeight * BlockWidth; ++i) @@ -297,7 +297,7 @@ private unsafe HuedTile[][][] ReadStaticBlock(int x, int y) GCHandle gc = GCHandle.Alloc(_buffer, GCHandleType.Pinned); try { - _statics.Read(_buffer, 0, length); + _statics.ReadExactly(_buffer, 0, length); if (_lists == null) { @@ -496,7 +496,7 @@ private Tile[] ReadLandBlock(int x, int y) _buffer = new byte[192]; } - _map.Read(_buffer, 0, 192); + _map.ReadExactly(_buffer, 0, 192); Marshal.Copy(_buffer, 0, gc.AddrOfPinnedObject(), 192); } diff --git a/Ultima/TileMatrixPatch.cs b/Ultima/TileMatrixPatch.cs index a53bbb01..f66b3dd6 100644 --- a/Ultima/TileMatrixPatch.cs +++ b/Ultima/TileMatrixPatch.cs @@ -193,7 +193,7 @@ private int PatchLand(TileMatrix matrix, string dataPath, string indexPath) _buffer = new byte[192]; } - fsData.Read(_buffer, 0, 192); + fsData.ReadExactly(_buffer, 0, 192); Marshal.Copy(_buffer, 0, gc.AddrOfPinnedObject(), 192); } @@ -277,7 +277,7 @@ private int PatchStatics(TileMatrix matrix, string dataPath, string indexPath, s _buffer = new byte[length]; } - fsData.Read(_buffer, 0, length); + fsData.ReadExactly(_buffer, 0, length); Marshal.Copy(_buffer, 0, gc.AddrOfPinnedObject(), length); diff --git a/Ultima/Ultima.csproj b/Ultima/Ultima.csproj index 2805890f..43e70b79 100644 --- a/Ultima/Ultima.csproj +++ b/Ultima/Ultima.csproj @@ -1,6 +1,6 @@  - net8.0-windows + net10.0-windows true true false diff --git a/UoFiddler.Controls/Forms/AnimDataImportForm.cs b/UoFiddler.Controls/Forms/AnimDataImportForm.cs index 34faa018..3081a939 100644 --- a/UoFiddler.Controls/Forms/AnimDataImportForm.cs +++ b/UoFiddler.Controls/Forms/AnimDataImportForm.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Windows.Forms; using UoFiddler.Controls.Classes; using static Ultima.Animdata; @@ -8,7 +9,9 @@ namespace UoFiddler.Controls.Forms { public partial class AnimDataImportForm : Form { + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Action OnAfterImport { get; set; } + public AnimDataImportForm() { InitializeComponent(); diff --git a/UoFiddler.Controls/Forms/ItemDetailForm.cs b/UoFiddler.Controls/Forms/ItemDetailForm.cs index 4efed343..af3a1405 100644 --- a/UoFiddler.Controls/Forms/ItemDetailForm.cs +++ b/UoFiddler.Controls/Forms/ItemDetailForm.cs @@ -10,6 +10,7 @@ ***************************************************************************/ using System; +using System.ComponentModel; using System.Drawing; using System.Drawing.Imaging; using System.IO; @@ -44,6 +45,7 @@ public ItemDetailForm(int i) /// /// Sets Hue /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int Hue { get => _hue; diff --git a/UoFiddler.Controls/UoFiddler.Controls.csproj b/UoFiddler.Controls/UoFiddler.Controls.csproj index 37fb0b06..4366ec6a 100644 --- a/UoFiddler.Controls/UoFiddler.Controls.csproj +++ b/UoFiddler.Controls/UoFiddler.Controls.csproj @@ -1,7 +1,7 @@  Controls - net8.0-windows + net10.0-windows true false Controls @@ -435,8 +435,6 @@ - - \ No newline at end of file diff --git a/UoFiddler.Controls/UserControls/AnimatedPictureBox.cs b/UoFiddler.Controls/UserControls/AnimatedPictureBox.cs index f668302f..5052408f 100644 --- a/UoFiddler.Controls/UserControls/AnimatedPictureBox.cs +++ b/UoFiddler.Controls/UserControls/AnimatedPictureBox.cs @@ -67,6 +67,7 @@ public AnimatedFrame CurrentFrame get => _frames?[_frameIndex]; } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int FrameIndex { get => _frameIndex; @@ -84,6 +85,7 @@ public int FrameIndex } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool ShowFrameBounds { get => _showFrameBounds; @@ -94,6 +96,7 @@ public bool ShowFrameBounds } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int FrameDelay { get => _timer.Interval; @@ -118,6 +121,7 @@ public int FrameDelay } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool Animate { get => _animate; diff --git a/UoFiddler.Controls/UserControls/ItemsControl.cs b/UoFiddler.Controls/UserControls/ItemsControl.cs index 7f0d636e..92b5c57a 100644 --- a/UoFiddler.Controls/UserControls/ItemsControl.cs +++ b/UoFiddler.Controls/UserControls/ItemsControl.cs @@ -45,6 +45,7 @@ public ItemsControl() private int _selectedGraphicId = -1; + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int SelectedGraphicId { get => _selectedGraphicId; diff --git a/UoFiddler.Controls/UserControls/LandTilesControl.cs b/UoFiddler.Controls/UserControls/LandTilesControl.cs index a170fdc9..0ac9f41b 100644 --- a/UoFiddler.Controls/UserControls/LandTilesControl.cs +++ b/UoFiddler.Controls/UserControls/LandTilesControl.cs @@ -11,6 +11,7 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Drawing; using System.Drawing.Imaging; using System.IO; @@ -46,6 +47,7 @@ public LandTilesControl() private readonly List _tileList = new List(); private bool _showFreeSlots; + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int SelectedGraphicId { get => _selectedGraphicId; diff --git a/UoFiddler.Controls/UserControls/TexturesControl.cs b/UoFiddler.Controls/UserControls/TexturesControl.cs index 160d603c..764195c4 100644 --- a/UoFiddler.Controls/UserControls/TexturesControl.cs +++ b/UoFiddler.Controls/UserControls/TexturesControl.cs @@ -11,6 +11,7 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Drawing; using System.Drawing.Imaging; using System.IO; @@ -39,6 +40,7 @@ public TexturesControl() private bool _loaded; private int _selectedTextureId = -1; + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int SelectedTextureId { get => _selectedTextureId; diff --git a/UoFiddler.Controls/UserControls/TileView/TileViewControl.cs b/UoFiddler.Controls/UserControls/TileView/TileViewControl.cs index c89d6235..5c1cacd4 100644 --- a/UoFiddler.Controls/UserControls/TileView/TileViewControl.cs +++ b/UoFiddler.Controls/UserControls/TileView/TileViewControl.cs @@ -26,6 +26,7 @@ public class TileViewControl : ScrollableControl /// /// Get or Set SelectedIndex, setting this property to -1 will remove selection, -2 is reserved for "do nothing". /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int FocusIndex { get => _focusIndex; @@ -100,6 +101,7 @@ private void ScrollToItem(int value) private bool _multiSelect; [Browsable(true)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool MultiSelect { get => _multiSelect; @@ -115,6 +117,7 @@ public bool MultiSelect /// /// Get or Set amount of Items to be displayed. /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int VirtualListSize { get => _virtualListSize; @@ -184,6 +187,7 @@ private static int DivUp(int a, int b) private Size _tileSize = new Size(256, 256); + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Size TileSize { get => _tileSize; @@ -196,6 +200,7 @@ public Size TileSize private Padding _tileMargin = new Padding(2, 2, 2, 2); // external + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Padding TileMargin { get => _tileMargin; @@ -208,6 +213,7 @@ public Padding TileMargin private Padding _tilePadding = new Padding(2, 2, 2, 2); + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Padding TilePadding { get => _tilePadding; @@ -220,6 +226,7 @@ public Padding TilePadding private readonly Pen _tileBorder = new Pen(Brushes.Black, 1.0f); + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public float TileBorderWidth { get => _tileBorder.Width; @@ -231,6 +238,7 @@ public float TileBorderWidth } [Browsable(true)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Color TileBorderColor { get => _tileBorder.Color; @@ -271,6 +279,7 @@ public double TileHighLightOpacity /// Focused tile border and highlight color /// [Browsable(true)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Color TileFocusColor { get => _tileFocusColor; @@ -287,6 +296,7 @@ public Color TileFocusColor /// Selected tile highlight color /// [Browsable(true)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Color TileHighlightColor { get => _tileHighlightColor; @@ -306,6 +316,7 @@ public Color TileHighlightColor /// Color of tile background /// [Browsable(true)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Color TileBackgroundColor { get => _tileBackgroundColor; diff --git a/UoFiddler.Plugin.Compare/Classes/SecondArt.cs b/UoFiddler.Plugin.Compare/Classes/SecondArt.cs index a3d95d27..c1f320f4 100644 --- a/UoFiddler.Plugin.Compare/Classes/SecondArt.cs +++ b/UoFiddler.Plugin.Compare/Classes/SecondArt.cs @@ -90,7 +90,7 @@ public static bool IsValidStatic(int index) } stream.Seek(4, SeekOrigin.Current); - stream.Read(_validBuffer, 0, 4); + stream.ReadExactly(_validBuffer, 0, 4); short width = (short)(_validBuffer[0] | (_validBuffer[1] << 8)); short height = (short)(_validBuffer[2] | (_validBuffer[3] << 8)); @@ -149,7 +149,7 @@ private static unsafe Bitmap LoadStatic(Stream stream, int length) _streamBuffer = new byte[length]; } - stream.Read(_streamBuffer, 0, length); + stream.ReadExactly(_streamBuffer, 0, length); stream.Close(); fixed (byte* data = _streamBuffer) @@ -264,7 +264,7 @@ private static unsafe Bitmap LoadLand(Stream stream, int length) _streamBuffer = new byte[length]; } - stream.Read(_streamBuffer, 0, length); + stream.ReadExactly(_streamBuffer, 0, length); stream.Close(); fixed (byte* binData = _streamBuffer) { diff --git a/UoFiddler.Plugin.Compare/Classes/SecondFileIndex.cs b/UoFiddler.Plugin.Compare/Classes/SecondFileIndex.cs index e2f06ff4..8d9fcbc3 100644 --- a/UoFiddler.Plugin.Compare/Classes/SecondFileIndex.cs +++ b/UoFiddler.Plugin.Compare/Classes/SecondFileIndex.cs @@ -119,7 +119,7 @@ public SecondFileIndex(string idxFile, string mulFile, int length) GCHandle gc = GCHandle.Alloc(Index, GCHandleType.Pinned); byte[] buffer = new byte[index.Length]; - index.Read(buffer, 0, (int)index.Length); + index.ReadExactly(buffer, 0, (int)index.Length); Marshal.Copy(buffer, 0, gc.AddrOfPinnedObject(), (int)Math.Min(IdxLength, length * 12)); gc.Free(); diff --git a/UoFiddler.Plugin.Compare/Classes/SecondGump.cs b/UoFiddler.Plugin.Compare/Classes/SecondGump.cs index 82b089fa..3932f9dc 100644 --- a/UoFiddler.Plugin.Compare/Classes/SecondGump.cs +++ b/UoFiddler.Plugin.Compare/Classes/SecondGump.cs @@ -74,7 +74,7 @@ public static byte[] GetRawGump(int index, out int width, out int height) } byte[] buffer = new byte[length]; - stream.Read(buffer, 0, length); + stream.ReadExactly(buffer, 0, length); return buffer; } @@ -111,7 +111,7 @@ public static unsafe Bitmap GetGump(int index) _streamBuffer = new byte[length]; } - stream.Read(_streamBuffer, 0, length); + stream.ReadExactly(_streamBuffer, 0, length); fixed (byte* data = _streamBuffer) { diff --git a/UoFiddler.Plugin.Compare/Classes/SecondTexture.cs b/UoFiddler.Plugin.Compare/Classes/SecondTexture.cs index 87f002bf..3cd0e67f 100644 --- a/UoFiddler.Plugin.Compare/Classes/SecondTexture.cs +++ b/UoFiddler.Plugin.Compare/Classes/SecondTexture.cs @@ -94,7 +94,7 @@ private static unsafe Bitmap LoadTexture(Stream stream, int extra) _streamBuffer = new byte[max]; } - stream.Read(_streamBuffer, 0, max); + stream.ReadExactly(_streamBuffer, 0, max); fixed (byte* data = _streamBuffer) { diff --git a/UoFiddler.Plugin.Compare/UoFiddler.Plugin.Compare.csproj b/UoFiddler.Plugin.Compare/UoFiddler.Plugin.Compare.csproj index 214a6193..2705efc5 100644 --- a/UoFiddler.Plugin.Compare/UoFiddler.Plugin.Compare.csproj +++ b/UoFiddler.Plugin.Compare/UoFiddler.Plugin.Compare.csproj @@ -1,7 +1,7 @@  ComparePlugin - net8.0-windows + net10.0-windows true false ComparePlugin diff --git a/UoFiddler.Plugin.ExamplePlugin/UoFiddler.Plugin.ExamplePlugin.csproj b/UoFiddler.Plugin.ExamplePlugin/UoFiddler.Plugin.ExamplePlugin.csproj index c5c94d00..ffe0c05e 100644 --- a/UoFiddler.Plugin.ExamplePlugin/UoFiddler.Plugin.ExamplePlugin.csproj +++ b/UoFiddler.Plugin.ExamplePlugin/UoFiddler.Plugin.ExamplePlugin.csproj @@ -1,7 +1,7 @@  TestPlugin - net8.0-windows + net10.0-windows true false FiddlerPlugin diff --git a/UoFiddler.Plugin.MassImport/UoFiddler.Plugin.MassImport.csproj b/UoFiddler.Plugin.MassImport/UoFiddler.Plugin.MassImport.csproj index a9bc664b..c8d6166f 100644 --- a/UoFiddler.Plugin.MassImport/UoFiddler.Plugin.MassImport.csproj +++ b/UoFiddler.Plugin.MassImport/UoFiddler.Plugin.MassImport.csproj @@ -1,7 +1,7 @@  MassImport - net8.0-windows + net10.0-windows true false MassImportPlugin diff --git a/UoFiddler.Plugin.MultiEditor/UoFiddler.Plugin.MultiEditor.csproj b/UoFiddler.Plugin.MultiEditor/UoFiddler.Plugin.MultiEditor.csproj index 50616991..3ddff6b9 100644 --- a/UoFiddler.Plugin.MultiEditor/UoFiddler.Plugin.MultiEditor.csproj +++ b/UoFiddler.Plugin.MultiEditor/UoFiddler.Plugin.MultiEditor.csproj @@ -1,7 +1,7 @@  MultiEditor - net8.0-windows + net10.0-windows true false MultiEditor @@ -70,7 +70,4 @@ PreserveNewest - - - \ No newline at end of file diff --git a/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.cs b/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.cs index 0c37556a..01bfc8d0 100644 --- a/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.cs +++ b/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.cs @@ -11,6 +11,7 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Drawing; using System.IO; using System.Linq; @@ -116,6 +117,7 @@ public MultiEditorControl() /// /// Current Hovered Tile (set inside MultiComponentList) /// + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public MultiTile HoverTile { get => _hoverTile; diff --git a/UoFiddler.Plugin.SendItem/UoFiddler.Plugin.SendItem.csproj b/UoFiddler.Plugin.SendItem/UoFiddler.Plugin.SendItem.csproj index e26e6995..85007baf 100644 --- a/UoFiddler.Plugin.SendItem/UoFiddler.Plugin.SendItem.csproj +++ b/UoFiddler.Plugin.SendItem/UoFiddler.Plugin.SendItem.csproj @@ -1,7 +1,7 @@  SendItem - net8.0-windows + net10.0-windows true false SendItem diff --git a/UoFiddler.Plugin.UopPacker/UoFiddler.Plugin.UopPacker.csproj b/UoFiddler.Plugin.UopPacker/UoFiddler.Plugin.UopPacker.csproj index 3f9d0b60..ed1dca43 100644 --- a/UoFiddler.Plugin.UopPacker/UoFiddler.Plugin.UopPacker.csproj +++ b/UoFiddler.Plugin.UopPacker/UoFiddler.Plugin.UopPacker.csproj @@ -1,7 +1,7 @@  UOPPacker - net8.0-windows + net10.0-windows true false UOP Packer diff --git a/UoFiddler/UoFiddler.csproj b/UoFiddler/UoFiddler.csproj index 374b5684..093a2b37 100644 --- a/UoFiddler/UoFiddler.csproj +++ b/UoFiddler/UoFiddler.csproj @@ -3,7 +3,7 @@ WinExe Resources\UOFiddlerIcon.ico UoFiddler.Program - net8.0-windows + net10.0-windows true false UoFiddler @@ -159,7 +159,6 @@ - From 52d3033943b1b87fdad02cc33c22ef84645f3f49 Mon Sep 17 00:00:00 2001 From: AsY!um- <377468+AsYlum-@users.noreply.github.com> Date: Fri, 1 May 2026 15:30:15 +0200 Subject: [PATCH 2/6] Use https for links. --- UoFiddler/Forms/AboutBoxForm.cs | 2 +- UoFiddler/Forms/MainForm.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/UoFiddler/Forms/AboutBoxForm.cs b/UoFiddler/Forms/AboutBoxForm.cs index 083976c4..43545cbd 100644 --- a/UoFiddler/Forms/AboutBoxForm.cs +++ b/UoFiddler/Forms/AboutBoxForm.cs @@ -42,7 +42,7 @@ private void OnClickLink(object sender, LinkLabelLinkClickedEventArgs e) { Process.Start(new ProcessStartInfo { - FileName = "http://uofiddler.polserver.com/", + FileName = "https://uofiddler.polserver.com/", UseShellExecute = true }); } diff --git a/UoFiddler/Forms/MainForm.cs b/UoFiddler/Forms/MainForm.cs index 5ed75eee..93388790 100644 --- a/UoFiddler/Forms/MainForm.cs +++ b/UoFiddler/Forms/MainForm.cs @@ -702,7 +702,7 @@ private void ToolStripMenuItemHelp_Click(object sender, EventArgs e) { Process.Start(new ProcessStartInfo { - FileName = "http://uofiddler.polserver.com/help.html", + FileName = "https://uofiddler.polserver.com/", UseShellExecute = true }); } From b26c2d64dc6f8ac8e81837919addbfde3488547f Mon Sep 17 00:00:00 2001 From: AsY!um- <377468+AsYlum-@users.noreply.github.com> Date: Fri, 1 May 2026 15:30:40 +0200 Subject: [PATCH 3/6] Cleanup: use read exactly. --- UoFiddler.Plugin.Compare/Classes/SecondRadarCol.cs | 2 +- UoFiddler.Plugin.Compare/Classes/SecondTileData.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/UoFiddler.Plugin.Compare/Classes/SecondRadarCol.cs b/UoFiddler.Plugin.Compare/Classes/SecondRadarCol.cs index bdc27a57..86eb492a 100644 --- a/UoFiddler.Plugin.Compare/Classes/SecondRadarCol.cs +++ b/UoFiddler.Plugin.Compare/Classes/SecondRadarCol.cs @@ -31,7 +31,7 @@ public static bool Initialize(string filePath) { var colors = new ushort[fs.Length / 2]; var buffer = new byte[(int)fs.Length]; - fs.Read(buffer, 0, (int)fs.Length); + fs.ReadExactly(buffer, 0, (int)fs.Length); GCHandle gc = GCHandle.Alloc(colors, GCHandleType.Pinned); Marshal.Copy(buffer, 0, gc.AddrOfPinnedObject(), (int)fs.Length); gc.Free(); diff --git a/UoFiddler.Plugin.Compare/Classes/SecondTileData.cs b/UoFiddler.Plugin.Compare/Classes/SecondTileData.cs index 802a1a1b..ad88f43f 100644 --- a/UoFiddler.Plugin.Compare/Classes/SecondTileData.cs +++ b/UoFiddler.Plugin.Compare/Classes/SecondTileData.cs @@ -44,7 +44,7 @@ public unsafe void Initialize(string path, bool useNeWTileDataFormat) long currentPos = 0; try { - fs.Read(buffer, 0, buffer.Length); + fs.ReadExactly(buffer, 0, buffer.Length); for (int i = 0; i < 0x4000; i += 32) { var ptrHeader = new IntPtr((long)gc.AddrOfPinnedObject() + currentPos); From 89ca9883e6d112ca273387ecf22b51262590756b Mon Sep 17 00:00:00 2001 From: AsY!um- <377468+AsYlum-@users.noreply.github.com> Date: Fri, 1 May 2026 15:31:26 +0200 Subject: [PATCH 4/6] Update colors and styling for dark mode. --- UoFiddler.Controls/Classes/Options.cs | 5 + UoFiddler.Controls/Forms/FontTextForm.cs | 2 +- UoFiddler.Controls/Forms/MultisHelpForm.cs | 39 +- UoFiddler.Controls/Forms/TileDataHelpForm.cs | 33 +- .../UserControls/AnimDataControl.Designer.cs | 2 - .../UserControls/AnimDataControl.cs | 18 +- .../UserControls/AnimationListControl.cs | 4 +- .../UserControls/ClilocControl.Designer.cs | 331 ++-- .../UserControls/ClilocControl.resx | 60 + .../UserControls/DressControl.Designer.cs | 2 +- .../UserControls/DressControl.cs | 6 +- .../UserControls/DressControl.resx | 60 + .../UserControls/FontsControl.cs | 9 +- .../UserControls/HuesControl.cs | 2 +- .../UserControls/LightControl.cs | 2 + .../UserControls/MultisControl.cs | 25 + .../UserControls/SkillsControl.Designer.cs | 121 +- .../UserControls/SkillsControl.resx | 60 + .../UserControls/TileDataControl.cs | 50 +- .../UserControls/VerdataControl.Designer.cs | 2 - .../UserControls/CompareAnimDataControl.cs | 6 +- .../UserControls/CompareCliLocControl.cs | 9 +- .../UserControls/CompareGumpControl.cs | 6 +- .../UserControls/CompareHuesControl.cs | 6 +- .../UserControls/CompareItemControl.cs | 4 +- .../UserControls/CompareLandControl.cs | 4 +- .../UserControls/CompareRadarColControl.cs | 6 +- .../UserControls/CompareTextureControl.cs | 4 +- .../UserControls/CompareTileDataControl.cs | 12 +- .../Forms/ShortcutsHelpForm.cs | 69 +- .../MultiEditorControl.Designer.cs | 8 +- .../UserControls/MultiEditorControl.cs | 31 +- .../UserControls/MultiEditorControl.resx | 17 +- .../UserControls/UopPackerControl.cs | 37 + UoFiddler/Classes/AppSettings.cs | 65 + UoFiddler/FiddlerAppContext.cs | 25 + UoFiddler/Forms/MainForm.Designer.cs | 1643 ++++++++--------- UoFiddler/Forms/MainForm.cs | 17 + UoFiddler/Forms/MainForm.resx | 60 + UoFiddler/Forms/OptionsForm.cs | 16 +- UoFiddler/Program.cs | 2 +- UoFiddler/Properties/Resources.Designer.cs | 12 +- UoFiddler/Properties/Resources.resx | 3 + UoFiddler/Resources/UOFiddler-bk.png | Bin 0 -> 189747 bytes 44 files changed, 1686 insertions(+), 1209 deletions(-) create mode 100644 UoFiddler/Classes/AppSettings.cs create mode 100644 UoFiddler/Resources/UOFiddler-bk.png diff --git a/UoFiddler.Controls/Classes/Options.cs b/UoFiddler.Controls/Classes/Options.cs index 96d4e0d2..3403aec2 100644 --- a/UoFiddler.Controls/Classes/Options.cs +++ b/UoFiddler.Controls/Classes/Options.cs @@ -37,6 +37,11 @@ public static class Options /// public static bool PolSoundIdOffset { get; set; } + /// + /// Runtime flag set from AppSettings at startup. Not persisted in profiles. + /// + public static bool DarkMode { get; set; } + /// /// Defines the cmd to Send Client to Loc /// diff --git a/UoFiddler.Controls/Forms/FontTextForm.cs b/UoFiddler.Controls/Forms/FontTextForm.cs index de3b88aa..142505a2 100644 --- a/UoFiddler.Controls/Forms/FontTextForm.cs +++ b/UoFiddler.Controls/Forms/FontTextForm.cs @@ -29,7 +29,7 @@ public FontTextForm(int type, int font) TopMost = true; _type = type; _font = font; - pictureBox1.BackColor = Color.White; + pictureBox1.BackColor = Options.DarkMode ? Color.LightGray : Color.White; Text = _type == 1 ? $"Unicode Font: {font}" : $"ASCII Font: {font}"; diff --git a/UoFiddler.Controls/Forms/MultisHelpForm.cs b/UoFiddler.Controls/Forms/MultisHelpForm.cs index de0ae534..e41f2a2c 100644 --- a/UoFiddler.Controls/Forms/MultisHelpForm.cs +++ b/UoFiddler.Controls/Forms/MultisHelpForm.cs @@ -9,7 +9,9 @@ * ***************************************************************************/ +using System.Drawing; using System.Windows.Forms; +using UoFiddler.Controls.Classes; namespace UoFiddler.Controls.Forms { @@ -23,26 +25,35 @@ public MultisHelpForm() private void PopulateShortcuts() { - _listView.Groups.Add(new ListViewGroup("preview", "Preview")); - _listView.Groups.Add(new ListViewGroup("zoom", "Zoom (100% mode only)")); - _listView.Groups.Add(new ListViewGroup("pan", "Panning (100% mode only)")); + AddHeader("Preview"); + Add("Fit preview to window", "Toggle button on toolbar — scales to fit or shows at 100% with scrollbars"); - Add("Fit preview to window", "Toggle button on toolbar — scales to fit or shows at 100% with scrollbars", "preview"); + AddHeader("Zoom (100% mode only)"); + Add("Ctrl + Mouse Wheel", "Zoom In / Out"); + Add("Shift + = (Plus key)", "Zoom In"); + Add("- (Minus key)", "Zoom Out"); + Add("Numpad +", "Zoom In"); + Add("Numpad -", "Zoom Out"); + Add("Ctrl + 0", "Reset zoom to 100%"); - Add("Ctrl + Mouse Wheel", "Zoom In / Out", "zoom"); - Add("Shift + = (Plus key)", "Zoom In", "zoom"); - Add("- (Minus key)", "Zoom Out", "zoom"); - Add("Numpad +", "Zoom In", "zoom"); - Add("Numpad -", "Zoom Out", "zoom"); - Add("Ctrl + 0", "Reset zoom to 100%", "zoom"); + AddHeader("Panning (100% mode only)"); + Add("Left-click drag", "Pan the view"); + } - Add("Left-click drag", "Pan the view", "pan"); + private void AddHeader(string text) + { + var item = new ListViewItem(text) + { + Font = new Font(_listView.Font, FontStyle.Bold), + ForeColor = Options.DarkMode ? Color.OrangeRed : Color.MediumBlue, + }; + item.SubItems.Add(string.Empty); + _listView.Items.Add(item); } - private void Add(string key, string action, string groupKey) + private void Add(string key, string action) { - var group = _listView.Groups[groupKey]; - var item = new ListViewItem(key, group); + var item = new ListViewItem(key); item.SubItems.Add(action); _listView.Items.Add(item); } diff --git a/UoFiddler.Controls/Forms/TileDataHelpForm.cs b/UoFiddler.Controls/Forms/TileDataHelpForm.cs index 7683c4a6..90f7981e 100644 --- a/UoFiddler.Controls/Forms/TileDataHelpForm.cs +++ b/UoFiddler.Controls/Forms/TileDataHelpForm.cs @@ -9,8 +9,10 @@ * ***************************************************************************/ +using System.Drawing; using System.Text; using System.Windows.Forms; +using UoFiddler.Controls.Classes; namespace UoFiddler.Controls.Forms { @@ -24,10 +26,7 @@ public TileDataHelpForm() private void PopulateFields() { - _listView.Groups.Add(new ListViewGroup("items", "Items")); - _listView.Groups.Add(new ListViewGroup("land", "Land Tiles")); - _listView.Groups.Add(new ListViewGroup("flags", "Flags")); - + AddHeader("Items"); Add("Name", "This field is for the name of the item, which can be a maximum of 20 characters.", "items"); Add("Animation", "This field is for the animation ID associated with the item.", "items"); Add("Weight", "This field is for the weight of the item.", "items"); @@ -75,9 +74,11 @@ private void PopulateFields() Add("Height", "This field is for the height of the item.", "items"); Add("Unknown 3", "This field is for the third unknown value.", "items"); + AddHeader("Land Tiles"); Add("Name", "This field is for the name of the land tile, which can be a maximum of 20 characters.", "land"); Add("Texture ID", "This field is for the texture ID associated with the land tile.", "land"); + AddHeader("Flags"); Add("Background", "Not yet documented.", "flags"); Add("Weapon", "Not yet documented.", "flags"); Add("Transparent", "Not yet documented.", "flags"); @@ -143,13 +144,31 @@ private void PopulateFields() Add("Unused32", "Unused or unknown yet.", "flags"); if (_listView.Items.Count > 0) - _listView.Items[0].Selected = true; + { + foreach (ListViewItem li in _listView.Items) + { + if (li.Tag is string) + { + li.Selected = true; + break; + } + } + } + } + + private void AddHeader(string text) + { + var item = new ListViewItem(text) + { + Font = new Font(_listView.Font, FontStyle.Bold), + ForeColor = Options.DarkMode ? Color.OrangeRed : Color.MediumBlue, + }; + _listView.Items.Add(item); } private void Add(string field, string description, string groupKey) { - var group = _listView.Groups[groupKey]; - var item = new ListViewItem(field, group) { Tag = description }; + var item = new ListViewItem(field) { Tag = description }; _listView.Items.Add(item); } diff --git a/UoFiddler.Controls/UserControls/AnimDataControl.Designer.cs b/UoFiddler.Controls/UserControls/AnimDataControl.Designer.cs index 0efcd3ee..ec292a15 100644 --- a/UoFiddler.Controls/UserControls/AnimDataControl.Designer.cs +++ b/UoFiddler.Controls/UserControls/AnimDataControl.Designer.cs @@ -87,7 +87,6 @@ private void InitializeComponent() splitContainer2.SuspendLayout(); groupBox1.SuspendLayout(); statusStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)MainPictureBox).BeginInit(); contextMenuStripMainPictureBox.SuspendLayout(); groupBox3.SuspendLayout(); groupBox4.SuspendLayout(); @@ -504,7 +503,6 @@ private void InitializeComponent() groupBox1.PerformLayout(); statusStrip1.ResumeLayout(false); statusStrip1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)MainPictureBox).EndInit(); contextMenuStripMainPictureBox.ResumeLayout(false); groupBox3.ResumeLayout(false); groupBox4.ResumeLayout(false); diff --git a/UoFiddler.Controls/UserControls/AnimDataControl.cs b/UoFiddler.Controls/UserControls/AnimDataControl.cs index 3ab18b61..a7d343ec 100644 --- a/UoFiddler.Controls/UserControls/AnimDataControl.cs +++ b/UoFiddler.Controls/UserControls/AnimDataControl.cs @@ -193,11 +193,11 @@ private void OnLoad(object sender, EventArgs e) if (!Art.IsValidStatic(id)) { - node.ForeColor = Color.Red; + node.ForeColor = Options.DarkMode ? Color.OrangeRed : Color.Red; } else if ((TileData.ItemTable[id].Flags & TileFlag.Animation) == 0) { - node.ForeColor = Color.Blue; + node.ForeColor = Options.DarkMode ? Color.CornflowerBlue : Color.Blue; } // TODO: find a better approach to this @@ -441,11 +441,13 @@ private void OnTextChanged(object sender, EventArgs e) if (canDone) { - textBoxAddFrame.ForeColor = !Art.IsValidStatic(index) ? Color.Red : Color.Black; + textBoxAddFrame.ForeColor = !Art.IsValidStatic(index) + ? (Options.DarkMode ? Color.OrangeRed : Color.Red) + : (Options.DarkMode ? Color.White : Color.Black); } else { - textBoxAddFrame.ForeColor = Color.Red; + textBoxAddFrame.ForeColor = Options.DarkMode ? Color.OrangeRed : Color.Red; } } @@ -585,11 +587,13 @@ private void OnTextChangeAdd(object sender, EventArgs e) { if (Utils.ConvertStringToInt(AddTextBox.Text, out int index, 0, Art.GetMaxItemId())) { - AddTextBox.ForeColor = Animdata.GetAnimData(index) != null ? Color.Red : Color.Black; + AddTextBox.ForeColor = Animdata.GetAnimData(index) != null + ? (Options.DarkMode ? Color.OrangeRed : Color.Red) + : (Options.DarkMode ? Color.White : Color.Black); } else { - AddTextBox.ForeColor = Color.Red; + AddTextBox.ForeColor = Options.DarkMode ? Color.OrangeRed : Color.Red; } } @@ -619,7 +623,7 @@ private void OnKeyDownAdd(object sender, KeyEventArgs e) if ((TileData.ItemTable[index].Flags & TileFlag.Animation) == 0) { - node.ForeColor = Color.Blue; + node.ForeColor = Options.DarkMode ? Color.CornflowerBlue : Color.Blue; } treeView1.Nodes.Add(node); diff --git a/UoFiddler.Controls/UserControls/AnimationListControl.cs b/UoFiddler.Controls/UserControls/AnimationListControl.cs index 04f77848..1a3aef19 100644 --- a/UoFiddler.Controls/UserControls/AnimationListControl.cs +++ b/UoFiddler.Controls/UserControls/AnimationListControl.cs @@ -710,9 +710,9 @@ private void Frames_ListView_DrawItem(object sender, DrawListViewItemEventArgs e } e.Graphics.DrawImage(bmp, e.Bounds.X, e.Bounds.Y, width, height); - e.DrawText(TextFormatFlags.Bottom | TextFormatFlags.HorizontalCenter); + TextRenderer.DrawText(e.Graphics, e.Item.Text, listView1.Font, e.Bounds, Color.Black, TextFormatFlags.Bottom | TextFormatFlags.HorizontalCenter); - using (var pen = new Pen(Color.Gray)) + using (var pen = new Pen(Color.Black)) { e.Graphics.DrawRectangle(pen, e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height); } diff --git a/UoFiddler.Controls/UserControls/ClilocControl.Designer.cs b/UoFiddler.Controls/UserControls/ClilocControl.Designer.cs index 821a231e..64132dbd 100644 --- a/UoFiddler.Controls/UserControls/ClilocControl.Designer.cs +++ b/UoFiddler.Controls/UserControls/ClilocControl.Designer.cs @@ -39,251 +39,230 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.dataGridView1 = new System.Windows.Forms.DataGridView(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.copyCliLocNumberToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.copyCliLocTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.addEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStrip1 = new System.Windows.Forms.ToolStrip(); - this.LangComboBox = new System.Windows.Forms.ToolStripComboBox(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.GotoEntry = new System.Windows.Forms.ToolStripTextBox(); - this.GotoButton = new System.Windows.Forms.ToolStripButton(); - this.FindEntry = new System.Windows.Forms.ToolStripTextBox(); - this.FindButton = new System.Windows.Forms.ToolStripButton(); - this.RegexToolStripButton = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); - this.ClilocExportButton = new System.Windows.Forms.ToolStripButton(); - this.toolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton(); - this.cSVToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.tileDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); - this.contextMenuStrip1.SuspendLayout(); - this.toolStrip1.SuspendLayout(); - this.SuspendLayout(); + components = new System.ComponentModel.Container(); + dataGridView1 = new System.Windows.Forms.DataGridView(); + contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(components); + copyCliLocNumberToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + copyCliLocTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + addEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + deleteEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStrip1 = new System.Windows.Forms.ToolStrip(); + LangComboBox = new System.Windows.Forms.ToolStripComboBox(); + toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + GotoEntry = new System.Windows.Forms.ToolStripTextBox(); + GotoButton = new System.Windows.Forms.ToolStripButton(); + FindEntry = new System.Windows.Forms.ToolStripTextBox(); + FindButton = new System.Windows.Forms.ToolStripButton(); + RegexToolStripButton = new System.Windows.Forms.ToolStripButton(); + toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + ClilocExportButton = new System.Windows.Forms.ToolStripButton(); + toolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton(); + cSVToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + tileDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + ((System.ComponentModel.ISupportInitialize)dataGridView1).BeginInit(); + contextMenuStrip1.SuspendLayout(); + toolStrip1.SuspendLayout(); + SuspendLayout(); // // dataGridView1 // - this.dataGridView1.AllowUserToResizeRows = false; - this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; - this.dataGridView1.ContextMenuStrip = this.contextMenuStrip1; - this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; - this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnF2; - this.dataGridView1.Location = new System.Drawing.Point(0, 25); - this.dataGridView1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.dataGridView1.MultiSelect = false; - this.dataGridView1.Name = "dataGridView1"; - this.dataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - this.dataGridView1.RowHeadersWidth = 30; - this.dataGridView1.Size = new System.Drawing.Size(902, 417); - this.dataGridView1.TabIndex = 1; - this.dataGridView1.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.OnCell_dbClick); - this.dataGridView1.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.OnHeaderClicked); + dataGridView1.AllowUserToResizeRows = false; + dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + dataGridView1.ContextMenuStrip = contextMenuStrip1; + dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnF2; + dataGridView1.Location = new System.Drawing.Point(0, 25); + dataGridView1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + dataGridView1.MultiSelect = false; + dataGridView1.Name = "dataGridView1"; + dataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridView1.RowHeadersVisible = false; + dataGridView1.RowHeadersWidth = 30; + dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + dataGridView1.Size = new System.Drawing.Size(902, 417); + dataGridView1.TabIndex = 1; + dataGridView1.CellContentDoubleClick += OnCell_dbClick; + dataGridView1.ColumnHeaderMouseClick += OnHeaderClicked; // // contextMenuStrip1 // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.copyCliLocNumberToolStripMenuItem, - this.copyCliLocTextToolStripMenuItem, - this.toolStripSeparator3, - this.addEntryToolStripMenuItem, - this.deleteEntryToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(186, 98); + contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { copyCliLocNumberToolStripMenuItem, copyCliLocTextToolStripMenuItem, toolStripSeparator3, addEntryToolStripMenuItem, deleteEntryToolStripMenuItem }); + contextMenuStrip1.Name = "contextMenuStrip1"; + contextMenuStrip1.Size = new System.Drawing.Size(186, 98); // // copyCliLocNumberToolStripMenuItem // - this.copyCliLocNumberToolStripMenuItem.Name = "copyCliLocNumberToolStripMenuItem"; - this.copyCliLocNumberToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.copyCliLocNumberToolStripMenuItem.Text = "Copy CliLoc Number"; - this.copyCliLocNumberToolStripMenuItem.Click += new System.EventHandler(this.OnCLick_CopyClilocNumber); + copyCliLocNumberToolStripMenuItem.Name = "copyCliLocNumberToolStripMenuItem"; + copyCliLocNumberToolStripMenuItem.Size = new System.Drawing.Size(185, 22); + copyCliLocNumberToolStripMenuItem.Text = "Copy CliLoc Number"; + copyCliLocNumberToolStripMenuItem.Click += OnCLick_CopyClilocNumber; // // copyCliLocTextToolStripMenuItem // - this.copyCliLocTextToolStripMenuItem.Name = "copyCliLocTextToolStripMenuItem"; - this.copyCliLocTextToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.copyCliLocTextToolStripMenuItem.Text = "Copy CliLoc Text"; - this.copyCliLocTextToolStripMenuItem.Click += new System.EventHandler(this.OnCLick_CopyClilocText); + copyCliLocTextToolStripMenuItem.Name = "copyCliLocTextToolStripMenuItem"; + copyCliLocTextToolStripMenuItem.Size = new System.Drawing.Size(185, 22); + copyCliLocTextToolStripMenuItem.Text = "Copy CliLoc Text"; + copyCliLocTextToolStripMenuItem.Click += OnCLick_CopyClilocText; // // toolStripSeparator3 // - this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(182, 6); + toolStripSeparator3.Name = "toolStripSeparator3"; + toolStripSeparator3.Size = new System.Drawing.Size(182, 6); // // addEntryToolStripMenuItem // - this.addEntryToolStripMenuItem.Name = "addEntryToolStripMenuItem"; - this.addEntryToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.addEntryToolStripMenuItem.Text = "Add Entry"; - this.addEntryToolStripMenuItem.Click += new System.EventHandler(this.OnClick_AddEntry); + addEntryToolStripMenuItem.Name = "addEntryToolStripMenuItem"; + addEntryToolStripMenuItem.Size = new System.Drawing.Size(185, 22); + addEntryToolStripMenuItem.Text = "Add Entry"; + addEntryToolStripMenuItem.Click += OnClick_AddEntry; // // deleteEntryToolStripMenuItem // - this.deleteEntryToolStripMenuItem.Name = "deleteEntryToolStripMenuItem"; - this.deleteEntryToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.deleteEntryToolStripMenuItem.Text = "Delete Entry"; - this.deleteEntryToolStripMenuItem.Click += new System.EventHandler(this.OnClick_DeleteEntry); + deleteEntryToolStripMenuItem.Name = "deleteEntryToolStripMenuItem"; + deleteEntryToolStripMenuItem.Size = new System.Drawing.Size(185, 22); + deleteEntryToolStripMenuItem.Text = "Delete Entry"; + deleteEntryToolStripMenuItem.Click += OnClick_DeleteEntry; // // toolStrip1 // - this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.LangComboBox, - this.toolStripSeparator1, - this.GotoEntry, - this.GotoButton, - this.FindEntry, - this.FindButton, - this.RegexToolStripButton, - this.toolStripSeparator2, - this.toolStripButton1, - this.toolStripSeparator5, - this.ClilocExportButton, - this.toolStripDropDownButton1}); - this.toolStrip1.Location = new System.Drawing.Point(0, 0); - this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; - this.toolStrip1.Size = new System.Drawing.Size(902, 25); - this.toolStrip1.TabIndex = 2; - this.toolStrip1.Text = "toolStrip1"; + toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { LangComboBox, toolStripSeparator1, GotoEntry, GotoButton, FindEntry, FindButton, RegexToolStripButton, toolStripSeparator2, toolStripButton1, toolStripSeparator5, ClilocExportButton, toolStripDropDownButton1 }); + toolStrip1.Location = new System.Drawing.Point(0, 0); + toolStrip1.Name = "toolStrip1"; + toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; + toolStrip1.Size = new System.Drawing.Size(902, 25); + toolStrip1.TabIndex = 2; + toolStrip1.Text = "toolStrip1"; // // LangComboBox // - this.LangComboBox.Items.AddRange(new object[] { - "English", - "German", - "Custom 1", - "Custom 2"}); - this.LangComboBox.Name = "LangComboBox"; - this.LangComboBox.Size = new System.Drawing.Size(140, 25); - this.LangComboBox.SelectedIndexChanged += new System.EventHandler(this.OnLangChange); + LangComboBox.Items.AddRange(new object[] { "English", "German", "Custom 1", "Custom 2" }); + LangComboBox.Name = "LangComboBox"; + LangComboBox.Size = new System.Drawing.Size(140, 25); + LangComboBox.SelectedIndexChanged += OnLangChange; // // toolStripSeparator1 // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + toolStripSeparator1.Name = "toolStripSeparator1"; + toolStripSeparator1.Size = new System.Drawing.Size(6, 25); // // GotoEntry // - this.GotoEntry.MaxLength = 10; - this.GotoEntry.Name = "GotoEntry"; - this.GotoEntry.Size = new System.Drawing.Size(116, 25); - this.GotoEntry.Text = "Enter Number"; - this.GotoEntry.Enter += new System.EventHandler(this.GotoEntry_Enter); - this.GotoEntry.KeyDown += new System.Windows.Forms.KeyEventHandler(this.GotoEntry_KeyDown); + GotoEntry.MaxLength = 10; + GotoEntry.Name = "GotoEntry"; + GotoEntry.Size = new System.Drawing.Size(116, 25); + GotoEntry.Text = "Enter Number"; + GotoEntry.Enter += GotoEntry_Enter; + GotoEntry.KeyDown += GotoEntry_KeyDown; // // GotoButton // - this.GotoButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.GotoButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.GotoButton.Name = "GotoButton"; - this.GotoButton.Size = new System.Drawing.Size(37, 22); - this.GotoButton.Text = "Goto"; - this.GotoButton.Click += new System.EventHandler(this.GotoNr); + GotoButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + GotoButton.ImageTransparentColor = System.Drawing.Color.Magenta; + GotoButton.Name = "GotoButton"; + GotoButton.Size = new System.Drawing.Size(37, 22); + GotoButton.Text = "Goto"; + GotoButton.Click += GotoNr; // // FindEntry // - this.FindEntry.AcceptsTab = true; - this.FindEntry.Name = "FindEntry"; - this.FindEntry.Size = new System.Drawing.Size(163, 25); - this.FindEntry.Text = "Enter Text"; - this.FindEntry.Enter += new System.EventHandler(this.FindEntry_Enter); - this.FindEntry.KeyDown += new System.Windows.Forms.KeyEventHandler(this.FindEntry_KeyDown); + FindEntry.AcceptsTab = true; + FindEntry.Name = "FindEntry"; + FindEntry.Size = new System.Drawing.Size(163, 25); + FindEntry.Text = "Enter Text"; + FindEntry.Enter += FindEntry_Enter; + FindEntry.KeyDown += FindEntry_KeyDown; // // FindButton // - this.FindButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.FindButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.FindButton.Name = "FindButton"; - this.FindButton.Size = new System.Drawing.Size(34, 22); - this.FindButton.Text = "Find"; - this.FindButton.Click += new System.EventHandler(this.FindEntryClick); + FindButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + FindButton.ImageTransparentColor = System.Drawing.Color.Magenta; + FindButton.Name = "FindButton"; + FindButton.Size = new System.Drawing.Size(34, 22); + FindButton.Text = "Find"; + FindButton.Click += FindEntryClick; // // RegexToolStripButton // - this.RegexToolStripButton.CheckOnClick = true; - this.RegexToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.RegexToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.RegexToolStripButton.Name = "RegexToolStripButton"; - this.RegexToolStripButton.Size = new System.Drawing.Size(129, 22); - this.RegexToolStripButton.Text = "Use regular expression"; + RegexToolStripButton.CheckOnClick = true; + RegexToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + RegexToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; + RegexToolStripButton.Name = "RegexToolStripButton"; + RegexToolStripButton.Size = new System.Drawing.Size(129, 22); + RegexToolStripButton.Text = "Use regular expression"; // // toolStripSeparator2 // - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25); + toolStripSeparator2.Name = "toolStripSeparator2"; + toolStripSeparator2.Size = new System.Drawing.Size(6, 25); // // toolStripButton1 // - this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton1.Name = "toolStripButton1"; - this.toolStripButton1.Size = new System.Drawing.Size(35, 22); - this.toolStripButton1.Text = "Save"; - this.toolStripButton1.Click += new System.EventHandler(this.OnClickSave); + toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + toolStripButton1.Name = "toolStripButton1"; + toolStripButton1.Size = new System.Drawing.Size(35, 22); + toolStripButton1.Text = "Save"; + toolStripButton1.Click += OnClickSave; // // toolStripSeparator5 // - this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25); + toolStripSeparator5.Name = "toolStripSeparator5"; + toolStripSeparator5.Size = new System.Drawing.Size(6, 25); // // ClilocExportButton // - this.ClilocExportButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.ClilocExportButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.ClilocExportButton.Name = "ClilocExportButton"; - this.ClilocExportButton.Size = new System.Drawing.Size(45, 22); - this.ClilocExportButton.Text = "Export"; - this.ClilocExportButton.Click += new System.EventHandler(this.OnClickExportCSV); + ClilocExportButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + ClilocExportButton.ImageTransparentColor = System.Drawing.Color.Magenta; + ClilocExportButton.Name = "ClilocExportButton"; + ClilocExportButton.Size = new System.Drawing.Size(45, 22); + ClilocExportButton.Text = "Export"; + ClilocExportButton.Click += OnClickExportCSV; // // toolStripDropDownButton1 // - this.toolStripDropDownButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.toolStripDropDownButton1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.cSVToolStripMenuItem, - this.tileDataToolStripMenuItem}); - this.toolStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripDropDownButton1.Name = "toolStripDropDownButton1"; - this.toolStripDropDownButton1.Size = new System.Drawing.Size(56, 22); - this.toolStripDropDownButton1.Text = "Import"; + toolStripDropDownButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + toolStripDropDownButton1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { cSVToolStripMenuItem, tileDataToolStripMenuItem }); + toolStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + toolStripDropDownButton1.Name = "toolStripDropDownButton1"; + toolStripDropDownButton1.Size = new System.Drawing.Size(56, 22); + toolStripDropDownButton1.Text = "Import"; // // cSVToolStripMenuItem // - this.cSVToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.cSVToolStripMenuItem.Name = "cSVToolStripMenuItem"; - this.cSVToolStripMenuItem.Size = new System.Drawing.Size(116, 22); - this.cSVToolStripMenuItem.Text = "CSV"; - this.cSVToolStripMenuItem.Click += new System.EventHandler(this.OnClickImportCSV); + cSVToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + cSVToolStripMenuItem.Name = "cSVToolStripMenuItem"; + cSVToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + cSVToolStripMenuItem.Text = "CSV"; + cSVToolStripMenuItem.Click += OnClickImportCSV; // // tileDataToolStripMenuItem // - this.tileDataToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.tileDataToolStripMenuItem.Name = "tileDataToolStripMenuItem"; - this.tileDataToolStripMenuItem.Size = new System.Drawing.Size(116, 22); - this.tileDataToolStripMenuItem.Text = "TileData"; - this.tileDataToolStripMenuItem.Click += new System.EventHandler(this.TileDataToolStripMenuItem_Click); + tileDataToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + tileDataToolStripMenuItem.Name = "tileDataToolStripMenuItem"; + tileDataToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + tileDataToolStripMenuItem.Text = "TileData"; + tileDataToolStripMenuItem.Click += TileDataToolStripMenuItem_Click; // // ClilocControl // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.dataGridView1); - this.Controls.Add(this.toolStrip1); - this.DoubleBuffered = true; - this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.Name = "ClilocControl"; - this.Size = new System.Drawing.Size(902, 442); - this.Load += new System.EventHandler(this.OnLoad); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); - this.contextMenuStrip1.ResumeLayout(false); - this.toolStrip1.ResumeLayout(false); - this.toolStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); + AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + Controls.Add(dataGridView1); + Controls.Add(toolStrip1); + DoubleBuffered = true; + Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + Name = "ClilocControl"; + Size = new System.Drawing.Size(902, 442); + Load += OnLoad; + ((System.ComponentModel.ISupportInitialize)dataGridView1).EndInit(); + contextMenuStrip1.ResumeLayout(false); + toolStrip1.ResumeLayout(false); + toolStrip1.PerformLayout(); + ResumeLayout(false); + PerformLayout(); } diff --git a/UoFiddler.Controls/UserControls/ClilocControl.resx b/UoFiddler.Controls/UserControls/ClilocControl.resx index 04c91917..dc837b9a 100644 --- a/UoFiddler.Controls/UserControls/ClilocControl.resx +++ b/UoFiddler.Controls/UserControls/ClilocControl.resx @@ -1,4 +1,64 @@ + + diff --git a/UoFiddler.Controls/UserControls/DressControl.Designer.cs b/UoFiddler.Controls/UserControls/DressControl.Designer.cs index e4664332..ea9cd0a7 100644 --- a/UoFiddler.Controls/UserControls/DressControl.Designer.cs +++ b/UoFiddler.Controls/UserControls/DressControl.Designer.cs @@ -331,7 +331,7 @@ private void InitializeComponent() // // pictureBoxDress // - pictureBoxDress.BackColor = System.Drawing.SystemColors.Control; + pictureBoxDress.BackColor = System.Drawing.Color.Black; pictureBoxDress.Dock = System.Windows.Forms.DockStyle.Fill; pictureBoxDress.Location = new System.Drawing.Point(0, 0); pictureBoxDress.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); diff --git a/UoFiddler.Controls/UserControls/DressControl.cs b/UoFiddler.Controls/UserControls/DressControl.cs index 3ce885cb..57921d22 100644 --- a/UoFiddler.Controls/UserControls/DressControl.cs +++ b/UoFiddler.Controls/UserControls/DressControl.cs @@ -975,15 +975,15 @@ private void BuildDressList() if (Array.IndexOf(_drawOrder, TileData.ItemTable[i].Quality) == -1) { - node.ForeColor = Color.DarkRed; + node.ForeColor = Options.DarkMode ? Color.OrangeRed : Color.DarkRed; } else if (!hasAnimation) { - node.ForeColor = !hasGump ? Color.Red : Color.Orange; + node.ForeColor = !hasGump ? Options.DarkMode ? Color.OrangeRed : Color.Red : Color.Orange; } else if (!hasGump) { - node.ForeColor = Color.Blue; + node.ForeColor = Options.DarkMode ? Color.CornflowerBlue : Color.Blue; } treeViewItems.Nodes.Add(node); diff --git a/UoFiddler.Controls/UserControls/DressControl.resx b/UoFiddler.Controls/UserControls/DressControl.resx index 21ba4645..43150ee7 100644 --- a/UoFiddler.Controls/UserControls/DressControl.resx +++ b/UoFiddler.Controls/UserControls/DressControl.resx @@ -1,4 +1,64 @@ + + diff --git a/UoFiddler.Controls/UserControls/FontsControl.cs b/UoFiddler.Controls/UserControls/FontsControl.cs index 28b34867..dd74e10b 100644 --- a/UoFiddler.Controls/UserControls/FontsControl.cs +++ b/UoFiddler.Controls/UserControls/FontsControl.cs @@ -82,6 +82,8 @@ private void OnLoad(object sender, EventArgs e) return; } + FontsTileView.BackColor = Options.DarkMode ? Color.LightGray : Color.White; + Cursor.Current = Cursors.WaitCursor; Options.LoadedUltimaClass["ASCIIFont"] = true; Options.LoadedUltimaClass["UnicodeFont"] = true; @@ -298,7 +300,7 @@ private void OnClickSave(object sender, EventArgs e) private void OnClickSetOffsets(object sender, EventArgs e) { - if(treeView.SelectedNode == null) + if (treeView.SelectedNode == null) { return; } @@ -354,7 +356,7 @@ private void FontsTileView_DrawItem(object sender, TileView.TileViewControl.Draw c = (char)i; // draw what should be in tile - e.Graphics.DrawString(c.ToString(), DefaultFont, Brushes.Gray, e.Bounds.X + (e.Bounds.Width / 2), e.Bounds.Y + (e.Bounds.Height / 2)); + e.Graphics.DrawString(c.ToString(), DefaultFont, Brushes.DimGray, e.Bounds.X + (e.Bounds.Width / 2), e.Bounds.Y + (e.Bounds.Height / 2)); // draw using font from uo if character exists var bmp = UnicodeFonts.Fonts[(int)treeView.SelectedNode.Tag].Chars[i].GetImage(); @@ -387,7 +389,7 @@ private void FontsTileView_DrawItem(object sender, TileView.TileViewControl.Draw c = (char)(i + AsciiFontOffset); // draw what should be in tile - e.Graphics.DrawString(c.ToString(), DefaultFont, Brushes.Gray, e.Bounds.X + (e.Bounds.Width / 2), e.Bounds.Y + (e.Bounds.Height / 2)); + e.Graphics.DrawString(c.ToString(), DefaultFont, Brushes.DimGray, e.Bounds.X + (e.Bounds.Width / 2), e.Bounds.Y + (e.Bounds.Height / 2)); // draw using font from uo if character exists var font = (int)treeView.SelectedNode.Tag; @@ -464,6 +466,7 @@ public void UpdateTileView() FontsTileView.TileFocusColor = Options.TileFocusColor; FontsTileView.TileHighlightColor = Options.TileSelectionColor; + FontsTileView.Invalidate(); } } diff --git a/UoFiddler.Controls/UserControls/HuesControl.cs b/UoFiddler.Controls/UserControls/HuesControl.cs index c416a872..8cb2f968 100644 --- a/UoFiddler.Controls/UserControls/HuesControl.cs +++ b/UoFiddler.Controls/UserControls/HuesControl.cs @@ -162,7 +162,7 @@ private void OnPaint(object sender, PaintEventArgs e) int hueDisplayIndex = hue.Index + (IndexOffsetButton.Checked ? 1 : 0); e.Graphics.DrawString( - $"{hueDisplayIndex,-5} {$"(0x{hueDisplayIndex:X})",-7} {hue.Name}", Font, Brushes.Black, stringRect); + $"{hueDisplayIndex,-5} {$"(0x{hueDisplayIndex:X})",-7} {hue.Name}", Font, SystemBrushes.ControlText, stringRect); for (int i = 0; i < hue.Colors.Length; ++i) { diff --git a/UoFiddler.Controls/UserControls/LightControl.cs b/UoFiddler.Controls/UserControls/LightControl.cs index 71fddff6..86d11726 100644 --- a/UoFiddler.Controls/UserControls/LightControl.cs +++ b/UoFiddler.Controls/UserControls/LightControl.cs @@ -54,6 +54,8 @@ private void OnLoad(object sender, EventArgs e) return; } + pictureBoxPreview.BackColor = Options.DarkMode ? Color.LightGray : Color.White; + Cursor.Current = Cursors.WaitCursor; Options.LoadedUltimaClass["Light"] = true; diff --git a/UoFiddler.Controls/UserControls/MultisControl.cs b/UoFiddler.Controls/UserControls/MultisControl.cs index 7460ea5a..2fe3c345 100644 --- a/UoFiddler.Controls/UserControls/MultisControl.cs +++ b/UoFiddler.Controls/UserControls/MultisControl.cs @@ -124,6 +124,29 @@ private TreeNode BuildMulNode(int i, MultiComponentList multi) return node; } + private void ApplyDarkModeIfNeeded() + { + if (Options.DarkMode) + { + Color tabBg = Color.FromArgb(32, 32, 32); + TabPage[] tabPages = { tabPage5, tabPage6, tabPageMul, tabPageUop, tabPageUopPreview, tabPageUopComponents }; + foreach (var tp in tabPages) + { + tp.UseVisualStyleBackColor = false; + tp.BackColor = tabBg; + } + } + + ApplyPreviewBackgroundColor(); + ControlEvents.PreviewBackgroundColorChangeEvent += ApplyPreviewBackgroundColor; + } + + private void ApplyPreviewBackgroundColor() + { + MultiPictureBox.BackColor = Options.PreviewBackgroundColor; + UopPictureBox.BackColor = Options.PreviewBackgroundColor; + } + private void OnLoad(object sender, EventArgs e) { if (IsAncestorSiteInDesignMode || FormsDesignerHelper.IsInDesignMode()) @@ -131,6 +154,8 @@ private void OnLoad(object sender, EventArgs e) return; } + ApplyDarkModeIfNeeded(); + Cursor.Current = Cursors.WaitCursor; Options.LoadedUltimaClass["TileData"] = true; diff --git a/UoFiddler.Controls/UserControls/SkillsControl.Designer.cs b/UoFiddler.Controls/UserControls/SkillsControl.Designer.cs index b0ad8f75..947dca98 100644 --- a/UoFiddler.Controls/UserControls/SkillsControl.Designer.cs +++ b/UoFiddler.Controls/UserControls/SkillsControl.Designer.cs @@ -39,83 +39,92 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.dataGridView1 = new System.Windows.Forms.DataGridView(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); - this.contextMenuStrip1.SuspendLayout(); - this.SuspendLayout(); + components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + dataGridView1 = new System.Windows.Forms.DataGridView(); + contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(components); + addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + ((System.ComponentModel.ISupportInitialize)dataGridView1).BeginInit(); + contextMenuStrip1.SuspendLayout(); + SuspendLayout(); // // dataGridView1 // - this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; - this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dataGridView1.ContextMenuStrip = this.contextMenuStrip1; - this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; - this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnF2; - this.dataGridView1.Location = new System.Drawing.Point(0, 0); - this.dataGridView1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.dataGridView1.MultiSelect = false; - this.dataGridView1.Name = "dataGridView1"; - this.dataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; - this.dataGridView1.RowHeadersVisible = false; - this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.dataGridView1.Size = new System.Drawing.Size(733, 386); - this.dataGridView1.TabIndex = 0; + dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridView1.ContextMenuStrip = contextMenuStrip1; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Segoe UI", 9F); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + dataGridView1.DefaultCellStyle = dataGridViewCellStyle1; + dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnF2; + dataGridView1.Location = new System.Drawing.Point(0, 0); + dataGridView1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + dataGridView1.MultiSelect = false; + dataGridView1.Name = "dataGridView1"; + dataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; + dataGridView1.RowHeadersVisible = false; + dataGridView1.RowTemplate.DefaultCellStyle.BackColor = System.Drawing.SystemColors.Control; + dataGridView1.RowTemplate.DefaultCellStyle.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridView1.RowTemplate.DefaultCellStyle.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridView1.RowTemplate.DefaultCellStyle.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + dataGridView1.Size = new System.Drawing.Size(733, 386); + dataGridView1.TabIndex = 0; // // contextMenuStrip1 // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.addToolStripMenuItem, - this.deleteToolStripMenuItem, - this.toolStripSeparator1, - this.saveToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(108, 76); + contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addToolStripMenuItem, deleteToolStripMenuItem, toolStripSeparator1, saveToolStripMenuItem }); + contextMenuStrip1.Name = "contextMenuStrip1"; + contextMenuStrip1.Size = new System.Drawing.Size(108, 76); // // addToolStripMenuItem // - this.addToolStripMenuItem.Name = "addToolStripMenuItem"; - this.addToolStripMenuItem.Size = new System.Drawing.Size(107, 22); - this.addToolStripMenuItem.Text = "Add"; - this.addToolStripMenuItem.Click += new System.EventHandler(this.OnClickAdd); + addToolStripMenuItem.Name = "addToolStripMenuItem"; + addToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + addToolStripMenuItem.Text = "Add"; + addToolStripMenuItem.Click += OnClickAdd; // // deleteToolStripMenuItem // - this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; - this.deleteToolStripMenuItem.Size = new System.Drawing.Size(107, 22); - this.deleteToolStripMenuItem.Text = "Delete"; - this.deleteToolStripMenuItem.Click += new System.EventHandler(this.OnClickDelete); + deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; + deleteToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + deleteToolStripMenuItem.Text = "Delete"; + deleteToolStripMenuItem.Click += OnClickDelete; // // toolStripSeparator1 // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(104, 6); + toolStripSeparator1.Name = "toolStripSeparator1"; + toolStripSeparator1.Size = new System.Drawing.Size(104, 6); // // saveToolStripMenuItem // - this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(107, 22); - this.saveToolStripMenuItem.Text = "Save"; - this.saveToolStripMenuItem.Click += new System.EventHandler(this.OnClickSave); + saveToolStripMenuItem.Name = "saveToolStripMenuItem"; + saveToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + saveToolStripMenuItem.Text = "Save"; + saveToolStripMenuItem.Click += OnClickSave; // // SkillsControl // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.dataGridView1); - this.DoubleBuffered = true; - this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.Name = "SkillsControl"; - this.Size = new System.Drawing.Size(733, 386); - this.Load += new System.EventHandler(this.OnLoad); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); - this.contextMenuStrip1.ResumeLayout(false); - this.ResumeLayout(false); + AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + Controls.Add(dataGridView1); + DoubleBuffered = true; + Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + Name = "SkillsControl"; + Size = new System.Drawing.Size(733, 386); + Load += OnLoad; + ((System.ComponentModel.ISupportInitialize)dataGridView1).EndInit(); + contextMenuStrip1.ResumeLayout(false); + ResumeLayout(false); } diff --git a/UoFiddler.Controls/UserControls/SkillsControl.resx b/UoFiddler.Controls/UserControls/SkillsControl.resx index 16e48413..75b37cab 100644 --- a/UoFiddler.Controls/UserControls/SkillsControl.resx +++ b/UoFiddler.Controls/UserControls/SkillsControl.resx @@ -1,4 +1,64 @@ + + diff --git a/UoFiddler.Controls/UserControls/TileDataControl.cs b/UoFiddler.Controls/UserControls/TileDataControl.cs index 3966f744..37dd4331 100644 --- a/UoFiddler.Controls/UserControls/TileDataControl.cs +++ b/UoFiddler.Controls/UserControls/TileDataControl.cs @@ -665,7 +665,7 @@ private void OnTileDataChangeEvent(object sender, int index) if ((int)treeViewItem.SelectedNode.Tag == index) { - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); AfterSelectTreeViewItem(this, new TreeViewEventArgs(treeViewItem.SelectedNode)); } else @@ -679,7 +679,7 @@ private void OnTileDataChangeEvent(object sender, int index) continue; } - node.ForeColor = Color.Red; + node.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); break; } } @@ -694,7 +694,7 @@ private void OnTileDataChangeEvent(object sender, int index) if ((int)treeViewLand.SelectedNode.Tag == index) { - treeViewLand.SelectedNode.ForeColor = Color.Red; + treeViewLand.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); AfterSelectTreeViewLand(this, new TreeViewEventArgs(treeViewLand.SelectedNode)); } else @@ -706,7 +706,7 @@ private void OnTileDataChangeEvent(object sender, int index) continue; } - node.ForeColor = Color.Red; + node.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); break; } } @@ -899,7 +899,7 @@ private void OnClickSaveChanges(object sender, EventArgs e) } TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); if (memorySaveWarningToolStripMenuItem.Checked) @@ -945,7 +945,7 @@ private void OnClickSaveChanges(object sender, EventArgs e) TileData.LandTable[index] = land; Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index); - treeViewLand.SelectedNode.ForeColor = Color.Red; + treeViewLand.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); if (memorySaveWarningToolStripMenuItem.Checked) { MessageBox.Show( @@ -987,7 +987,7 @@ private void OnTextChangedItemAnim(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.Animation = shortRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1025,7 +1025,7 @@ private void OnTextChangedItemName(object sender, EventArgs e) item.Name = name; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1078,7 +1078,7 @@ private void OnTextChangedItemWeight(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.Weight = byteRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1109,7 +1109,7 @@ private void OnTextChangedItemQuality(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.Quality = byteRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1140,7 +1140,7 @@ private void OnTextChangedItemQuantity(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.Quantity = byteRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1171,7 +1171,7 @@ private void OnTextChangedItemHue(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.Hue = byteRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1202,7 +1202,7 @@ private void OnTextChangedItemStackOff(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.StackingOffset = byteRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1233,7 +1233,7 @@ private void OnTextChangedItemValue(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.Value = byteRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1264,7 +1264,7 @@ private void OnTextChangedItemHeight(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.Height = byteRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1295,7 +1295,7 @@ private void OnTextChangedItemMiscData(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.MiscData = shortRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1326,7 +1326,7 @@ private void OnTextChangedItemUnk2(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.Unk2 = byteRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1357,7 +1357,7 @@ private void OnTextChangedItemUnk3(object sender, EventArgs e) ItemData item = TileData.ItemTable[index]; item.Unk3 = byteRes; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1395,7 +1395,7 @@ private void OnTextChangedLandName(object sender, EventArgs e) land.Name = name; treeViewLand.SelectedNode.Text = string.Format("0x{0:X4} ({0}) {1}", index, name); TileData.LandTable[index] = land; - treeViewLand.SelectedNode.ForeColor = Color.Red; + treeViewLand.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index); } @@ -1426,7 +1426,7 @@ private void OnTextChangedLandTexID(object sender, EventArgs e) LandData land = TileData.LandTable[index]; land.TextureId = shortRes; TileData.LandTable[index] = land; - treeViewLand.SelectedNode.ForeColor = Color.Red; + treeViewLand.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index); } @@ -1468,7 +1468,7 @@ private void OnFlagItemCheckItems(object sender, ItemCheckEventArgs e) item.Flags ^= changeFlag; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1481,7 +1481,7 @@ private void OnFlagItemCheckItems(object sender, ItemCheckEventArgs e) item.Flags |= changeFlag; TileData.ItemTable[index] = item; - treeViewItem.SelectedNode.ForeColor = Color.Red; + treeViewItem.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index + 0x4000); } @@ -1548,7 +1548,7 @@ private void OnFlagItemCheckLandTiles(object sender, ItemCheckEventArgs e) land.Flags ^= changeFlag; TileData.LandTable[index] = land; - treeViewLand.SelectedNode.ForeColor = Color.Red; + treeViewLand.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index); } @@ -1561,7 +1561,7 @@ private void OnFlagItemCheckLandTiles(object sender, ItemCheckEventArgs e) land.Flags |= changeFlag; TileData.LandTable[index] = land; - treeViewLand.SelectedNode.ForeColor = Color.Red; + treeViewLand.SelectedNode.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); Options.ChangedUltimaClass["TileData"] = true; ControlEvents.FireTileDataChangeEvent(this, index); } @@ -1806,7 +1806,7 @@ private void SetTextureMenuItem_Click(object sender, EventArgs e) var node = treeViewLand.Nodes.OfType().FirstOrDefault(x => x.Tag.Equals(i)); if (node != null) { - node.ForeColor = Color.Red; + node.ForeColor = (Options.DarkMode ? Color.OrangeRed : Color.Red); } updated++; diff --git a/UoFiddler.Controls/UserControls/VerdataControl.Designer.cs b/UoFiddler.Controls/UserControls/VerdataControl.Designer.cs index acd65e4c..e804af09 100644 --- a/UoFiddler.Controls/UserControls/VerdataControl.Designer.cs +++ b/UoFiddler.Controls/UserControls/VerdataControl.Designer.cs @@ -86,7 +86,6 @@ private void InitializeComponent() splitContainerAnim.Panel2.SuspendLayout(); splitContainerAnim.SuspendLayout(); panelActionList.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)animatedPictureBox).BeginInit(); panelAnimControls.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)trackBarDirection).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureBoxPreview).BeginInit(); @@ -610,7 +609,6 @@ private void InitializeComponent() splitContainerAnim.ResumeLayout(false); panelActionList.ResumeLayout(false); panelActionList.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)animatedPictureBox).EndInit(); panelAnimControls.ResumeLayout(false); panelAnimControls.PerformLayout(); ((System.ComponentModel.ISupportInitialize)trackBarDirection).EndInit(); diff --git a/UoFiddler.Plugin.Compare/UserControls/CompareAnimDataControl.cs b/UoFiddler.Plugin.Compare/UserControls/CompareAnimDataControl.cs index 31aff792..6b383c1c 100644 --- a/UoFiddler.Plugin.Compare/UserControls/CompareAnimDataControl.cs +++ b/UoFiddler.Plugin.Compare/UserControls/CompareAnimDataControl.cs @@ -23,6 +23,10 @@ public CompareAnimDataControl() private void OnLoad(object sender, EventArgs e) { + if (Options.DarkMode) + { + legendSwatchDifferent.BackColor = Color.CornflowerBlue; + } PopulateOrgList(); ControlEvents.FilePathChangeEvent += OnFilePathChangeEvent; } @@ -101,7 +105,7 @@ private Brush GetEntryBrush(int id) if (inOrg && inSec && !Compare(id)) { - return Brushes.Blue; + return Options.DarkMode ? Brushes.CornflowerBlue : Brushes.Blue; } } diff --git a/UoFiddler.Plugin.Compare/UserControls/CompareCliLocControl.cs b/UoFiddler.Plugin.Compare/UserControls/CompareCliLocControl.cs index 9a17e597..21d50bc0 100644 --- a/UoFiddler.Plugin.Compare/UserControls/CompareCliLocControl.cs +++ b/UoFiddler.Plugin.Compare/UserControls/CompareCliLocControl.cs @@ -15,6 +15,7 @@ using System.IO; using System.Windows.Forms; using Ultima; +using UoFiddler.Controls.Classes; namespace UoFiddler.Plugin.Compare.UserControls { @@ -182,10 +183,10 @@ private void CellFormatting(object sender, DataGridViewCellFormattingEventArgs e switch (entry.CompareResult) { case CompareEntry.CompareRes.Diff: - e.CellStyle.ForeColor = Color.Red; + e.CellStyle.ForeColor = Options.DarkMode ? Color.OrangeRed : Color.Red; break; case CompareEntry.CompareRes.NewIn1: - e.CellStyle.ForeColor = Color.Blue; + e.CellStyle.ForeColor = Options.DarkMode ? Color.CornflowerBlue : Color.Blue; break; case CompareEntry.CompareRes.NewIn2: e.CellStyle.ForeColor = Color.Orange; @@ -310,10 +311,10 @@ private void ShowWordDiff(string text1, string text2) AppendWord(diffRichTextBox2, word, SystemColors.Window, ref first2); break; case WordDiffOp.Delete: - AppendWord(diffRichTextBox1, word, Color.FromArgb(255, 200, 200), ref first1); + AppendWord(diffRichTextBox1, word, Options.DarkMode ? Color.FromArgb(140, 30, 30) : Color.FromArgb(255, 200, 200), ref first1); break; case WordDiffOp.Insert: - AppendWord(diffRichTextBox2, word, Color.FromArgb(200, 255, 200), ref first2); + AppendWord(diffRichTextBox2, word, Options.DarkMode ? Color.FromArgb(30, 100, 40) : Color.FromArgb(200, 255, 200), ref first2); break; } } diff --git a/UoFiddler.Plugin.Compare/UserControls/CompareGumpControl.cs b/UoFiddler.Plugin.Compare/UserControls/CompareGumpControl.cs index 7708e66b..3c74b870 100644 --- a/UoFiddler.Plugin.Compare/UserControls/CompareGumpControl.cs +++ b/UoFiddler.Plugin.Compare/UserControls/CompareGumpControl.cs @@ -119,7 +119,7 @@ private void DrawGumpItem(DrawItemEventArgs e, int i, bool isSecondary) { if (tileView2.VirtualListSize > 0 && !Compare(i)) { - fontBrush = Brushes.Blue; + fontBrush = Options.DarkMode ? Brushes.CornflowerBlue : Brushes.Blue; } int width = bmp.Width > 80 ? 80 : bmp.Width; @@ -128,12 +128,12 @@ private void DrawGumpItem(DrawItemEventArgs e, int i, bool isSecondary) } else { - fontBrush = Brushes.Red; + fontBrush = Options.DarkMode ? Brushes.OrangeRed : Brushes.Red; } } else { - fontBrush = Brushes.Red; + fontBrush = Options.DarkMode ? Brushes.OrangeRed : Brushes.Red; } string label = $"0x{i:X}"; diff --git a/UoFiddler.Plugin.Compare/UserControls/CompareHuesControl.cs b/UoFiddler.Plugin.Compare/UserControls/CompareHuesControl.cs index 2f3a545b..e77dcf02 100644 --- a/UoFiddler.Plugin.Compare/UserControls/CompareHuesControl.cs +++ b/UoFiddler.Plugin.Compare/UserControls/CompareHuesControl.cs @@ -87,7 +87,7 @@ private void PaintBox1() } else if (!Compare(index)) { - g.FillRectangle(Brushes.Red, rect); + g.FillRectangle(Options.DarkMode ? Brushes.OrangeRed : Brushes.Red, rect); } else { @@ -97,7 +97,7 @@ private void PaintBox1() float size = (float)(pictureBox1.Width - 200) / 32; Hue hue = Hues.List[index]; Rectangle stringRect = new Rectangle(3, y * _itemHeight, pictureBox1.Width, _itemHeight); - g.DrawString($"{hue.Index + 1,-5} {$"(0x{hue.Index + 1:X})",-7} {hue.Name}", Font, Brushes.Black, stringRect); + g.DrawString($"{hue.Index + 1,-5} {$"(0x{hue.Index + 1:X})",-7} {hue.Name}", Font, SystemBrushes.ControlText, stringRect); for (int i = 0; i < hue.Colors.Length; i++) { @@ -134,7 +134,7 @@ private void PaintBox2() } else if (!Compare(index)) { - g.FillRectangle(Brushes.Red, rect); + g.FillRectangle(Options.DarkMode ? Brushes.OrangeRed : Brushes.Red, rect); } else { diff --git a/UoFiddler.Plugin.Compare/UserControls/CompareItemControl.cs b/UoFiddler.Plugin.Compare/UserControls/CompareItemControl.cs index 45bdc16f..9d2761af 100644 --- a/UoFiddler.Plugin.Compare/UserControls/CompareItemControl.cs +++ b/UoFiddler.Plugin.Compare/UserControls/CompareItemControl.cs @@ -109,11 +109,11 @@ private void DrawListItem(DrawItemEventArgs e, int i, bool isSecondary) if (!valid) { - fontBrush = Brushes.Red; + fontBrush = Options.DarkMode ? Brushes.OrangeRed : Brushes.Red; } else if (tileViewSec.VirtualListSize > 0 && !Compare(i)) { - fontBrush = Brushes.Blue; + fontBrush = Options.DarkMode ? Brushes.CornflowerBlue : Brushes.Blue; } string label = $"0x{i:X}"; diff --git a/UoFiddler.Plugin.Compare/UserControls/CompareLandControl.cs b/UoFiddler.Plugin.Compare/UserControls/CompareLandControl.cs index f3cd8c73..504b5196 100644 --- a/UoFiddler.Plugin.Compare/UserControls/CompareLandControl.cs +++ b/UoFiddler.Plugin.Compare/UserControls/CompareLandControl.cs @@ -108,11 +108,11 @@ private void DrawListItem(DrawItemEventArgs e, int i, bool isSecondary) if (!valid) { - fontBrush = Brushes.Red; + fontBrush = Options.DarkMode ? Brushes.OrangeRed : Brushes.Red; } else if (tileViewSec.VirtualListSize > 0 && !Compare(i)) { - fontBrush = Brushes.Blue; + fontBrush = Options.DarkMode ? Brushes.CornflowerBlue : Brushes.Blue; } string label = $"0x{i:X}"; diff --git a/UoFiddler.Plugin.Compare/UserControls/CompareRadarColControl.cs b/UoFiddler.Plugin.Compare/UserControls/CompareRadarColControl.cs index dbaaf87e..c142bd7e 100644 --- a/UoFiddler.Plugin.Compare/UserControls/CompareRadarColControl.cs +++ b/UoFiddler.Plugin.Compare/UserControls/CompareRadarColControl.cs @@ -29,6 +29,10 @@ public CompareRadarColControl() private void OnLoad(object sender, EventArgs e) { + if (Options.DarkMode) + { + legendSwatchDifferent.BackColor = Color.CornflowerBlue; + } PopulateOrgOnly(isLand: true); ControlEvents.FilePathChangeEvent += OnFilePathChangeEvent; } @@ -156,7 +160,7 @@ private void DrawListItem(DrawItemEventArgs e, int idx) } Brush fontBrush = SecondRadarCol.IsLoaded && IsDifferent(idx) - ? Brushes.Blue + ? (Options.DarkMode ? Brushes.CornflowerBlue : Brushes.Blue) : Brushes.Gray; string section = idx < 0x4000 ? "Land" : "Item"; diff --git a/UoFiddler.Plugin.Compare/UserControls/CompareTextureControl.cs b/UoFiddler.Plugin.Compare/UserControls/CompareTextureControl.cs index 922493fb..b01241b1 100644 --- a/UoFiddler.Plugin.Compare/UserControls/CompareTextureControl.cs +++ b/UoFiddler.Plugin.Compare/UserControls/CompareTextureControl.cs @@ -95,11 +95,11 @@ private void DrawListItem(DrawItemEventArgs e, int i, bool isSecondary) if (!valid) { - fontBrush = Brushes.Red; + fontBrush = Options.DarkMode ? Brushes.OrangeRed : Brushes.Red; } else if (tileViewSec.VirtualListSize > 0 && !Compare(i)) { - fontBrush = Brushes.Blue; + fontBrush = Options.DarkMode ? Brushes.CornflowerBlue : Brushes.Blue; } string label = $"0x{i:X}"; diff --git a/UoFiddler.Plugin.Compare/UserControls/CompareTileDataControl.cs b/UoFiddler.Plugin.Compare/UserControls/CompareTileDataControl.cs index 29dce967..f1064e1b 100644 --- a/UoFiddler.Plugin.Compare/UserControls/CompareTileDataControl.cs +++ b/UoFiddler.Plugin.Compare/UserControls/CompareTileDataControl.cs @@ -256,7 +256,9 @@ private void UpdateFlagRows( finally { flagTlp.ResumeLayout(true); - scrollPanel?.ResumeLayout(false); + scrollPanel?.ResumeLayout(true); + flagTlp.PerformLayout(); + scrollPanel?.PerformLayout(); } } @@ -668,7 +670,7 @@ private Brush GetLandBrush(int i, bool isSecondary) if (!CompareLand(i)) { - return Brushes.Blue; + return Options.DarkMode ? Brushes.CornflowerBlue : Brushes.Blue; } } @@ -749,12 +751,12 @@ private Brush GetItemBrush(int i) if (!CompareItem(i)) { - return Brushes.Blue; + return Options.DarkMode ? Brushes.CornflowerBlue : Brushes.Blue; } } else if (!inOrg) { - return Brushes.Red; + return Options.DarkMode ? Brushes.OrangeRed : Brushes.Red; } return Brushes.Gray; @@ -861,7 +863,7 @@ private void OnFocusChangedItemSec(object sender, TileViewControl.ListViewFocuse // ── Detail panel population ─────────────────────────────────────────────── - private static readonly Color DiffColor = Color.LightYellow; + private static Color DiffColor => Options.DarkMode ? Color.FromArgb(96, 76, 0) : Color.LightYellow; private void ResetLandDetailHighlights() { diff --git a/UoFiddler.Plugin.MultiEditor/Forms/ShortcutsHelpForm.cs b/UoFiddler.Plugin.MultiEditor/Forms/ShortcutsHelpForm.cs index 9d75fe9e..91277ccb 100644 --- a/UoFiddler.Plugin.MultiEditor/Forms/ShortcutsHelpForm.cs +++ b/UoFiddler.Plugin.MultiEditor/Forms/ShortcutsHelpForm.cs @@ -9,7 +9,9 @@ * ***************************************************************************/ +using System.Drawing; using System.Windows.Forms; +using UoFiddler.Controls.Classes; namespace UoFiddler.Plugin.MultiEditor.Forms { @@ -23,42 +25,51 @@ public ShortcutsHelpForm() private void PopulateShortcuts() { - _listView.Groups.Add(new ListViewGroup("tool-switches", "Tool Switches")); - _listView.Groups.Add(new ListViewGroup("editing", "Editing")); - _listView.Groups.Add(new ListViewGroup("navigation", "Navigation")); - _listView.Groups.Add(new ListViewGroup("zoom", "Zoom")); + AddHeader("Tool Switches"); + Add("S", "Select Tool"); + Add("D", "Draw Tool"); + Add("R", "Remove Tool"); + Add("E", "Apply Z Level Tool"); + Add("F", "Toggle Virtual Floor"); + Add("P", "Pipette (Pick Tile)"); + Add("T", "Switch Transparent"); + Add("B", "Rectangle Fill Tool"); + Add("L", "Line Draw Tool"); - Add("S", "Select Tool", "tool-switches"); - Add("D", "Draw Tool", "tool-switches"); - Add("R", "Remove Tool", "tool-switches"); - Add("E", "Apply Z Level Tool", "tool-switches"); - Add("F", "Toggle Virtual Floor", "tool-switches"); - Add("P", "Pipette (Pick Tile)", "tool-switches"); - Add("T", "Switch Transparent", "tool-switches"); - Add("B", "Rectangle Fill Tool", "tool-switches"); - Add("L", "Line Draw Tool", "tool-switches"); + AddHeader("Editing"); + Add("Ctrl+Z", "Undo"); + Add("Ctrl+Y / Ctrl+Shift+Z", "Redo"); + Add("Ctrl+C", "Copy Selection"); + Add("Ctrl+V", "Paste"); + Add("Escape", "Cancel Paste"); + Add("[", "Z Level -1"); + Add("]", "Z Level +1"); - Add("Ctrl+Z", "Undo", "editing"); - Add("Ctrl+Y / Ctrl+Shift+Z", "Redo", "editing"); - Add("Ctrl+C", "Copy Selection", "editing"); - Add("Ctrl+V", "Paste", "editing"); - Add("Escape", "Cancel Paste", "editing"); - Add("[", "Z Level -1", "editing"); - Add("]", "Z Level +1", "editing"); + AddHeader("Navigation"); + Add("Arrow Keys", "Pan View"); + Add("Page Up", "Floor Z +5"); + Add("Page Down", "Floor Z -5"); - Add("Arrow Keys", "Pan View", "navigation"); - Add("Page Up", "Floor Z +5", "navigation"); - Add("Page Down", "Floor Z -5", "navigation"); + AddHeader("Zoom"); + Add("+ / Shift+=", "Zoom In"); + Add("-", "Zoom Out"); + Add("Ctrl+0", "Reset Zoom to 100%"); + } - Add("+ / Shift+=", "Zoom In", "zoom"); - Add("-", "Zoom Out", "zoom"); - Add("Ctrl+0", "Reset Zoom to 100%", "zoom"); + private void AddHeader(string text) + { + var item = new ListViewItem(text) + { + Font = new Font(_listView.Font, FontStyle.Bold), + ForeColor = Options.DarkMode ? Color.OrangeRed : Color.MediumBlue, + }; + item.SubItems.Add(string.Empty); + _listView.Items.Add(item); } - private void Add(string key, string action, string groupKey) + private void Add(string key, string action) { - var group = _listView.Groups[groupKey]; - var item = new ListViewItem(key, group); + var item = new ListViewItem(key); item.SubItems.Add(action); _listView.Items.Add(item); } diff --git a/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.Designer.cs b/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.Designer.cs index 487334a9..77b5b8a1 100644 --- a/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.Designer.cs +++ b/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.Designer.cs @@ -921,7 +921,7 @@ private void InitializeComponent() pictureBoxMinimap.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; pictureBoxMinimap.BackColor = System.Drawing.Color.DimGray; pictureBoxMinimap.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - pictureBoxMinimap.Location = new System.Drawing.Point(342, 277); + pictureBoxMinimap.Location = new System.Drawing.Point(342, 276); pictureBoxMinimap.Name = "pictureBoxMinimap"; pictureBoxMinimap.Size = new System.Drawing.Size(155, 100); pictureBoxMinimap.TabIndex = 10; @@ -1066,10 +1066,10 @@ private void InitializeComponent() // toolStripBtnHelp // toolStripBtnHelp.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; - toolStripBtnHelp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - toolStripBtnHelp.Image = (System.Drawing.Image)resources.GetObject("toolStripBtnHelp.Image"); + toolStripBtnHelp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; toolStripBtnHelp.Name = "toolStripBtnHelp"; - toolStripBtnHelp.Size = new System.Drawing.Size(23, 22); + toolStripBtnHelp.Size = new System.Drawing.Size(36, 22); + toolStripBtnHelp.Text = "Help"; toolStripBtnHelp.ToolTipText = "Keyboard Shortcuts"; toolStripBtnHelp.Click += ToolStripBtnHelp_Click; // diff --git a/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.cs b/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.cs index 01bfc8d0..313bb098 100644 --- a/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.cs +++ b/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.cs @@ -670,8 +670,35 @@ private void OnFilePathChangeEvent() /// /// Load of UserControl /// + private void ApplyDarkModeIfNeeded() + { + if (Options.DarkMode) + { + Color tabBg = Color.FromArgb(32, 32, 32); + TabPage[] tabPages = { tileTab, designTab, importTab, Save }; + foreach (var tp in tabPages) + { + tp.UseVisualStyleBackColor = false; + tp.BackColor = tabBg; + } + + pictureBoxDrawTiles.BackColor = Color.LightGray; + } + + ApplyPreviewBackgroundColor(); + ControlEvents.PreviewBackgroundColorChangeEvent += ApplyPreviewBackgroundColor; + } + + private void ApplyPreviewBackgroundColor() + { + pictureBoxMulti.BackColor = Options.PreviewBackgroundColor; + pictureBoxMulti.Invalidate(); + } + private void OnLoad(object sender, EventArgs e) { + ApplyDarkModeIfNeeded(); + Options.LoadedUltimaClass["TileData"] = true; Options.LoadedUltimaClass["Art"] = true; Options.LoadedUltimaClass["Multis"] = true; @@ -1277,7 +1304,7 @@ private void SetToolStripText(string text) /// private void PictureBoxMultiOnPaint(object sender, PaintEventArgs e) { - e.Graphics.Clear(Color.White); + e.Graphics.Clear(pictureBoxMulti.BackColor); if (_compList == null) { @@ -1983,7 +2010,7 @@ private void PictureBoxDrawTilesMouseLeave(object sender, EventArgs e) private void PictureBoxDrawTiles_OnPaint(object sender, PaintEventArgs e) { - e.Graphics.Clear(Color.White); + e.Graphics.Clear(pictureBoxDrawTiles.BackColor); for (int y = 0; y < _pictureBoxDrawTilesRow; ++y) { diff --git a/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.resx b/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.resx index 3cb50133..28b60d2b 100644 --- a/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.resx +++ b/UoFiddler.Plugin.MultiEditor/UserControls/MultiEditorControl.resx @@ -131,7 +131,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAARKoAAAJNU0Z0AUkBTAIBARIB - AAEkAQEBJAEBARIBAAESAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABSAMAAVoDAAEBAQABIAUAAUAB + AAEsAQEBLAEBARIBAAESAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABSAMAAVoDAAEBAQABIAUAAUAB ZRIAAcgB0AHUAf8ByAHQAdQB/wHIAdAB1AH/AcgB0AHUAf8ByAHQAdQB/wHIAdAB1AH/AcgB0AHUAf8B yAHQAdQB/wHIAdAB1AH/AcgB0AHUAf8ByAHQAdQB/wHIAdAB1AH/AckB0AHUAf8BywHTAdYB/wHLAdMB 1gH/AcoB0gHWAf8BxwHPAdQB/wHIAdAB1AH/ATkBOwE8Af8BOQE7ATwB/wE5ATsBPAH/ATkBOwE8Af8B @@ -860,24 +860,9 @@ BBYAA///AP8A/wD/AD0ACw== - - 261, 17 - 162, 17 - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAEPSURBVDhPxZK7SgNBFEC3MNporOx8oHVKm6D5GlGxEvwU - EWJl56NOEYKNH2CRH9BEUL9ABK2Sc2YybLK7io3kwGHuLDuz97HZf9DCO3zHb3zDW9zDX1nANj7jIa5j - bbIe4QAv0Pcq8XAXl8OujM976CUlTPsJ0+FFvMJP7GMDZQWHWCrHmk07cYodXMUDfMTEMd7EMMeGWWti - F7djmK3hRwwDm2hjZ7Dbpl1kBx/wMuwiS/gVwxwz2IjhDC94htOd38LXGOY4Z0f1F07wOoY5++j87fI0 - o8maqKNZNcOugPN1zsVLEh6+x/Owq8A6vcQ5Oyp7YmPtumn7ZQ//+Ccm/Emcs41yOq7WXJn2vMmyMZYp - L1AlAbCnAAAAAElFTkSuQmCC - - 52 diff --git a/UoFiddler.Plugin.UopPacker/UserControls/UopPackerControl.cs b/UoFiddler.Plugin.UopPacker/UserControls/UopPackerControl.cs index 4dd39000..25d8a928 100644 --- a/UoFiddler.Plugin.UopPacker/UserControls/UopPackerControl.cs +++ b/UoFiddler.Plugin.UopPacker/UserControls/UopPackerControl.cs @@ -10,6 +10,7 @@ ***************************************************************************/ using System; +using System.Drawing; using System.IO; using System.Windows.Forms; using Microsoft.Extensions.Logging; @@ -54,9 +55,45 @@ private UopPackerControl() RefreshMulTypeUi(); RefreshUopTypeUi(); + ApplyDarkModeIfNeeded(); + Dock = DockStyle.Fill; } + private void ApplyDarkModeIfNeeded() + { + if (!Options.DarkMode) + { + return; + } + + Color tabBg = Color.FromArgb(32, 32, 32); + ExtractAllFilesTabPage.UseVisualStyleBackColor = false; + ExtractAllFilesTabPage.BackColor = tabBg; + ExtractSingleFileTabPage.UseVisualStyleBackColor = false; + ExtractSingleFileTabPage.BackColor = tabBg; + + // Reset hardcoded white BackColors so dark mode visual styles apply. + TextBox[] whiteTextBoxes = + { + inmul, inidx, inhousingbin, outuopfolder, inuop, outfolder, inputfolder + }; + foreach (var tb in whiteTextBoxes) + { + tb.BackColor = SystemColors.Window; + } + + multype.BackColor = SystemColors.Window; + uoptype.BackColor = SystemColors.Window; + mulMapIndex.BackColor = SystemColors.Window; + uopMapIndex.BackColor = SystemColors.Window; + packAllGumpCompressionBox.BackColor = SystemColors.Window; + packAllHousingBin.BackColor = SystemColors.Window; + compressionBox.BackColor = SystemColors.Window; + + statustext.ForeColor = Color.OrangeRed; + } + private void OnPackAllModeChanged(object sender, EventArgs e) => UpdatePackAllCompressionVisibility(); private void UpdatePackAllCompressionVisibility() diff --git a/UoFiddler/Classes/AppSettings.cs b/UoFiddler/Classes/AppSettings.cs new file mode 100644 index 00000000..22dc4681 --- /dev/null +++ b/UoFiddler/Classes/AppSettings.cs @@ -0,0 +1,65 @@ +/*************************************************************************** + * + * $Author: Turley + * + * "THE BEER-WARE LICENSE" + * As long as you retain this notice you can do whatever you want with + * this stuff. If we meet some day, and you think this stuff is worth it, + * you can buy me a beer in return. + * + ***************************************************************************/ + +using System.IO; +using System.Xml; +using UoFiddler.Controls.Classes; + +namespace UoFiddler.Classes +{ + /// + /// Profile-agnostic application settings stored separately from profiles. + /// + public static class AppSettings + { + private static string FilePath => Path.Combine(Options.AppDataPath, "app_settings.xml"); + + public static bool DarkMode { get; set; } = false; + + public static void Load() + { + if (!File.Exists(FilePath)) + { + return; + } + + XmlDocument dom = new XmlDocument(); + dom.Load(FilePath); + XmlElement root = dom["AppSettings"]; + + XmlElement elem = (XmlElement)root?.SelectSingleNode("DarkMode"); + if (elem != null) + { + DarkMode = bool.Parse(elem.GetAttribute("active")); + } + } + + public static void Save() + { + if (!Directory.Exists(Options.AppDataPath)) + { + Directory.CreateDirectory(Options.AppDataPath); + } + + XmlDocument dom = new XmlDocument(); + XmlDeclaration decl = dom.CreateXmlDeclaration("1.0", "utf-8", null); + dom.AppendChild(decl); + XmlElement root = dom.CreateElement("AppSettings"); + + XmlElement elem = dom.CreateElement("DarkMode"); + elem.SetAttribute("active", DarkMode.ToString()); + root.AppendChild(elem); + + dom.AppendChild(root); + dom.Save(FilePath); + } + } +} diff --git a/UoFiddler/FiddlerAppContext.cs b/UoFiddler/FiddlerAppContext.cs index adb6ca3b..02f98012 100644 --- a/UoFiddler/FiddlerAppContext.cs +++ b/UoFiddler/FiddlerAppContext.cs @@ -32,6 +32,12 @@ internal FiddlerAppContext(IServiceProvider services) Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); + AppSettings.Load(); + Options.DarkMode = AppSettings.DarkMode; + if (AppSettings.DarkMode) + { + Application.SetColorMode(SystemColorMode.Dark); + } Application.ApplicationExit += OnApplicationExit; FiddlerOptions.Startup(); @@ -45,6 +51,25 @@ internal FiddlerAppContext(IServiceProvider services) return; } + if (AppSettings.DarkMode) + { + if (Options.TileFocusColor.ToArgb() == System.Drawing.Color.DarkRed.ToArgb()) + Options.TileFocusColor = System.Drawing.Color.Red; + if (Options.TileSelectionColor.ToArgb() == System.Drawing.Color.DodgerBlue.ToArgb()) + Options.TileSelectionColor = System.Drawing.Color.MediumTurquoise; + if (Options.PreviewBackgroundColor.ToArgb() == System.Drawing.Color.White.ToArgb()) + Options.PreviewBackgroundColor = System.Drawing.Color.FromArgb(32, 32, 32); + } + else + { + if (Options.TileFocusColor.ToArgb() == System.Drawing.Color.Red.ToArgb()) + Options.TileFocusColor = System.Drawing.Color.DarkRed; + if (Options.TileSelectionColor.ToArgb() == System.Drawing.Color.MediumTurquoise.ToArgb()) + Options.TileSelectionColor = System.Drawing.Color.DodgerBlue; + if (Options.PreviewBackgroundColor.ToArgb() == System.Drawing.Color.FromArgb(32, 32, 32).ToArgb()) + Options.PreviewBackgroundColor = System.Drawing.Color.White; + } + if (FiddlerOptions.UpdateCheckOnStart) { _logger.LogInformation("Update check. Current version is {Version}", FiddlerOptions.AppVersion); diff --git a/UoFiddler/Forms/MainForm.Designer.cs b/UoFiddler/Forms/MainForm.Designer.cs index c25d28dd..39dfee6b 100644 --- a/UoFiddler/Forms/MainForm.Designer.cs +++ b/UoFiddler/Forms/MainForm.Designer.cs @@ -41,1088 +41,1068 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.TabPanel = new System.Windows.Forms.TabControl(); - this.contextMenuStripMainForm = new System.Windows.Forms.ContextMenuStrip(this.components); - this.unDockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.StartTab = new System.Windows.Forms.TabPage(); - this.Versionlabel = new System.Windows.Forms.Label(); - this.MultisTab = new System.Windows.Forms.TabPage(); - this.multisControl = new UoFiddler.Controls.UserControls.MultisControl(); - this.AnimationTab = new System.Windows.Forms.TabPage(); - this.animationsControl = new UoFiddler.Controls.UserControls.AnimationListControl(); - this.ItemsTab = new System.Windows.Forms.TabPage(); - this.itemShowControl = new UoFiddler.Controls.UserControls.ItemsControl(); - this.LandTilesTab = new System.Windows.Forms.TabPage(); - this.landTilesControl = new UoFiddler.Controls.UserControls.LandTilesControl(); - this.TextureTab = new System.Windows.Forms.TabPage(); - this.textureControl = new UoFiddler.Controls.UserControls.TexturesControl(); - this.GumpsTab = new System.Windows.Forms.TabPage(); - this.gumpsControl = new UoFiddler.Controls.UserControls.GumpControl(); - this.SoundsTab = new System.Windows.Forms.TabPage(); - this.soundControl = new UoFiddler.Controls.UserControls.SoundsControl(); - this.HuesTab = new System.Windows.Forms.TabPage(); - this.hueControl = new UoFiddler.Controls.UserControls.HuesControl(); - this.FontsTab = new System.Windows.Forms.TabPage(); - this.fontsControl = new UoFiddler.Controls.UserControls.FontsControl(); - this.ClilocTab = new System.Windows.Forms.TabPage(); - this.clilocControl = new UoFiddler.Controls.UserControls.ClilocControl(); - this.MapTab = new System.Windows.Forms.TabPage(); - this.mapControl = new UoFiddler.Controls.UserControls.MapControl(); - this.LightTab = new System.Windows.Forms.TabPage(); - this.lightControl = new UoFiddler.Controls.UserControls.LightControl(); - this.SpeechTab = new System.Windows.Forms.TabPage(); - this.speechControl = new UoFiddler.Controls.UserControls.SpeechControl(); - this.SkillsTab = new System.Windows.Forms.TabPage(); - this.skillsControl = new UoFiddler.Controls.UserControls.SkillsControl(); - this.AnimDataTab = new System.Windows.Forms.TabPage(); - this.animdataControl = new UoFiddler.Controls.UserControls.AnimDataControl(); - this.MultiMapTab = new System.Windows.Forms.TabPage(); - this.multimapControl = new UoFiddler.Controls.UserControls.MultiMapControl(); - this.DressTab = new System.Windows.Forms.TabPage(); - this.dressControl = new UoFiddler.Controls.UserControls.DressControl(); - this.TileDataTab = new System.Windows.Forms.TabPage(); - this.tileDataControl = new UoFiddler.Controls.UserControls.TileDataControl(); - this.RadarColTab = new System.Windows.Forms.TabPage(); - this.radarColControl = new UoFiddler.Controls.UserControls.RadarColorControl(); - this.SkillGrpTab = new System.Windows.Forms.TabPage(); - this.skillGroupControl = new UoFiddler.Controls.UserControls.SkillGroupControl(); - this.VerdataTab = new System.Windows.Forms.TabPage(); - this.verdataControl = new UoFiddler.Controls.UserControls.VerdataControl(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.tsMainMenu = new System.Windows.Forms.ToolStrip(); - this.SettingsMenu = new System.Windows.Forms.ToolStripDropDownButton(); - this.AlwaysOnTopMenuitem = new System.Windows.Forms.ToolStripMenuItem(); - this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pathSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.tsSettingsSeparator = new System.Windows.Forms.ToolStripSeparator(); - this.reloadFilesMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripDropDownButtonView = new System.Windows.Forms.ToolStripDropDownButton(); - this.ToggleViewStart = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewMulti = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewAnimations = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewItems = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewLandTiles = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewTexture = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewGumps = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewSounds = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewHue = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewFonts = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewCliloc = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewMap = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewLight = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewSpeech = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewSkills = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewAnimData = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewMultiMap = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewDress = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewTileData = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewRadarColor = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewSkillGrp = new System.Windows.Forms.ToolStripMenuItem(); - this.ToggleViewVerdata = new System.Windows.Forms.ToolStripMenuItem(); - this.ExternToolsDropDown = new System.Windows.Forms.ToolStripDropDownButton(); - this.manageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripDropDownButtonPlugins = new System.Windows.Forms.ToolStripDropDownButton(); - this.manageToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.tsPluginsSeparator = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripDropDownButtonHelp = new System.Windows.Forms.ToolStripDropDownButton(); - this.toolStripMenuItemHelp = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItemAbout = new System.Windows.Forms.ToolStripMenuItem(); - this.TabPanel.SuspendLayout(); - this.contextMenuStripMainForm.SuspendLayout(); - this.StartTab.SuspendLayout(); - this.MultisTab.SuspendLayout(); - this.AnimationTab.SuspendLayout(); - this.ItemsTab.SuspendLayout(); - this.LandTilesTab.SuspendLayout(); - this.TextureTab.SuspendLayout(); - this.GumpsTab.SuspendLayout(); - this.SoundsTab.SuspendLayout(); - this.HuesTab.SuspendLayout(); - this.FontsTab.SuspendLayout(); - this.ClilocTab.SuspendLayout(); - this.MapTab.SuspendLayout(); - this.LightTab.SuspendLayout(); - this.SpeechTab.SuspendLayout(); - this.SkillsTab.SuspendLayout(); - this.AnimDataTab.SuspendLayout(); - this.MultiMapTab.SuspendLayout(); - this.DressTab.SuspendLayout(); - this.TileDataTab.SuspendLayout(); - this.RadarColTab.SuspendLayout(); - this.SkillGrpTab.SuspendLayout(); - this.VerdataTab.SuspendLayout(); - this.tsMainMenu.SuspendLayout(); - this.SuspendLayout(); + components = new System.ComponentModel.Container(); + TabPanel = new System.Windows.Forms.TabControl(); + contextMenuStripMainForm = new System.Windows.Forms.ContextMenuStrip(components); + unDockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + StartTab = new System.Windows.Forms.TabPage(); + Versionlabel = new System.Windows.Forms.Label(); + MultisTab = new System.Windows.Forms.TabPage(); + multisControl = new MultisControl(); + AnimationTab = new System.Windows.Forms.TabPage(); + animationsControl = new AnimationListControl(); + ItemsTab = new System.Windows.Forms.TabPage(); + itemShowControl = new ItemsControl(); + LandTilesTab = new System.Windows.Forms.TabPage(); + landTilesControl = new LandTilesControl(); + TextureTab = new System.Windows.Forms.TabPage(); + textureControl = new TexturesControl(); + GumpsTab = new System.Windows.Forms.TabPage(); + gumpsControl = new GumpControl(); + SoundsTab = new System.Windows.Forms.TabPage(); + soundControl = new SoundsControl(); + HuesTab = new System.Windows.Forms.TabPage(); + hueControl = new HuesControl(); + FontsTab = new System.Windows.Forms.TabPage(); + fontsControl = new FontsControl(); + ClilocTab = new System.Windows.Forms.TabPage(); + clilocControl = new ClilocControl(); + MapTab = new System.Windows.Forms.TabPage(); + mapControl = new MapControl(); + LightTab = new System.Windows.Forms.TabPage(); + lightControl = new LightControl(); + SpeechTab = new System.Windows.Forms.TabPage(); + speechControl = new SpeechControl(); + SkillsTab = new System.Windows.Forms.TabPage(); + skillsControl = new SkillsControl(); + AnimDataTab = new System.Windows.Forms.TabPage(); + animdataControl = new AnimDataControl(); + MultiMapTab = new System.Windows.Forms.TabPage(); + multimapControl = new MultiMapControl(); + DressTab = new System.Windows.Forms.TabPage(); + dressControl = new DressControl(); + TileDataTab = new System.Windows.Forms.TabPage(); + tileDataControl = new TileDataControl(); + RadarColTab = new System.Windows.Forms.TabPage(); + radarColControl = new RadarColorControl(); + SkillGrpTab = new System.Windows.Forms.TabPage(); + skillGroupControl = new SkillGroupControl(); + VerdataTab = new System.Windows.Forms.TabPage(); + verdataControl = new VerdataControl(); + toolTip = new System.Windows.Forms.ToolTip(components); + tsMainMenu = new System.Windows.Forms.ToolStrip(); + SettingsMenu = new System.Windows.Forms.ToolStripDropDownButton(); + AlwaysOnTopMenuitem = new System.Windows.Forms.ToolStripMenuItem(); + darkModeMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + pathSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + tsSettingsSeparator = new System.Windows.Forms.ToolStripSeparator(); + reloadFilesMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripDropDownButtonView = new System.Windows.Forms.ToolStripDropDownButton(); + ToggleViewStart = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewMulti = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewAnimations = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewItems = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewLandTiles = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewTexture = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewGumps = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewSounds = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewHue = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewFonts = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewCliloc = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewMap = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewLight = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewSpeech = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewSkills = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewAnimData = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewMultiMap = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewDress = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewTileData = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewRadarColor = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewSkillGrp = new System.Windows.Forms.ToolStripMenuItem(); + ToggleViewVerdata = new System.Windows.Forms.ToolStripMenuItem(); + ExternToolsDropDown = new System.Windows.Forms.ToolStripDropDownButton(); + manageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripDropDownButtonPlugins = new System.Windows.Forms.ToolStripDropDownButton(); + manageToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + tsPluginsSeparator = new System.Windows.Forms.ToolStripSeparator(); + toolStripDropDownButtonHelp = new System.Windows.Forms.ToolStripDropDownButton(); + toolStripMenuItemHelp = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + toolStripMenuItemAbout = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + TabPanel.SuspendLayout(); + contextMenuStripMainForm.SuspendLayout(); + StartTab.SuspendLayout(); + MultisTab.SuspendLayout(); + AnimationTab.SuspendLayout(); + ItemsTab.SuspendLayout(); + LandTilesTab.SuspendLayout(); + TextureTab.SuspendLayout(); + GumpsTab.SuspendLayout(); + SoundsTab.SuspendLayout(); + HuesTab.SuspendLayout(); + FontsTab.SuspendLayout(); + ClilocTab.SuspendLayout(); + MapTab.SuspendLayout(); + LightTab.SuspendLayout(); + SpeechTab.SuspendLayout(); + SkillsTab.SuspendLayout(); + AnimDataTab.SuspendLayout(); + MultiMapTab.SuspendLayout(); + DressTab.SuspendLayout(); + TileDataTab.SuspendLayout(); + RadarColTab.SuspendLayout(); + SkillGrpTab.SuspendLayout(); + VerdataTab.SuspendLayout(); + tsMainMenu.SuspendLayout(); + SuspendLayout(); // // TabPanel // - this.TabPanel.ContextMenuStrip = this.contextMenuStripMainForm; - this.TabPanel.Controls.Add(this.StartTab); - this.TabPanel.Controls.Add(this.MultisTab); - this.TabPanel.Controls.Add(this.AnimationTab); - this.TabPanel.Controls.Add(this.ItemsTab); - this.TabPanel.Controls.Add(this.LandTilesTab); - this.TabPanel.Controls.Add(this.TextureTab); - this.TabPanel.Controls.Add(this.GumpsTab); - this.TabPanel.Controls.Add(this.SoundsTab); - this.TabPanel.Controls.Add(this.HuesTab); - this.TabPanel.Controls.Add(this.FontsTab); - this.TabPanel.Controls.Add(this.ClilocTab); - this.TabPanel.Controls.Add(this.MapTab); - this.TabPanel.Controls.Add(this.LightTab); - this.TabPanel.Controls.Add(this.SpeechTab); - this.TabPanel.Controls.Add(this.SkillsTab); - this.TabPanel.Controls.Add(this.AnimDataTab); - this.TabPanel.Controls.Add(this.MultiMapTab); - this.TabPanel.Controls.Add(this.DressTab); - this.TabPanel.Controls.Add(this.TileDataTab); - this.TabPanel.Controls.Add(this.RadarColTab); - this.TabPanel.Controls.Add(this.SkillGrpTab); - this.TabPanel.Controls.Add(this.VerdataTab); - this.TabPanel.Dock = System.Windows.Forms.DockStyle.Fill; - this.TabPanel.Location = new System.Drawing.Point(0, 25); - this.TabPanel.Margin = new System.Windows.Forms.Padding(0); - this.TabPanel.Name = "TabPanel"; - this.TabPanel.SelectedIndex = 0; - this.TabPanel.Size = new System.Drawing.Size(914, 626); - this.TabPanel.TabIndex = 1; - this.TabPanel.Tag = "20"; + TabPanel.ContextMenuStrip = contextMenuStripMainForm; + TabPanel.Controls.Add(StartTab); + TabPanel.Controls.Add(MultisTab); + TabPanel.Controls.Add(AnimationTab); + TabPanel.Controls.Add(ItemsTab); + TabPanel.Controls.Add(LandTilesTab); + TabPanel.Controls.Add(TextureTab); + TabPanel.Controls.Add(GumpsTab); + TabPanel.Controls.Add(SoundsTab); + TabPanel.Controls.Add(HuesTab); + TabPanel.Controls.Add(FontsTab); + TabPanel.Controls.Add(ClilocTab); + TabPanel.Controls.Add(MapTab); + TabPanel.Controls.Add(LightTab); + TabPanel.Controls.Add(SpeechTab); + TabPanel.Controls.Add(SkillsTab); + TabPanel.Controls.Add(AnimDataTab); + TabPanel.Controls.Add(MultiMapTab); + TabPanel.Controls.Add(DressTab); + TabPanel.Controls.Add(TileDataTab); + TabPanel.Controls.Add(RadarColTab); + TabPanel.Controls.Add(SkillGrpTab); + TabPanel.Controls.Add(VerdataTab); + TabPanel.Dock = System.Windows.Forms.DockStyle.Fill; + TabPanel.Location = new System.Drawing.Point(0, 25); + TabPanel.Margin = new System.Windows.Forms.Padding(0); + TabPanel.Name = "TabPanel"; + TabPanel.SelectedIndex = 0; + TabPanel.Size = new System.Drawing.Size(914, 626); + TabPanel.TabIndex = 1; + TabPanel.Tag = "20"; // // contextMenuStripMainForm // - this.contextMenuStripMainForm.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.unDockToolStripMenuItem}); - this.contextMenuStripMainForm.Name = "contextMenuStrip1"; - this.contextMenuStripMainForm.Size = new System.Drawing.Size(117, 26); + contextMenuStripMainForm.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { unDockToolStripMenuItem }); + contextMenuStripMainForm.Name = "contextMenuStrip1"; + contextMenuStripMainForm.Size = new System.Drawing.Size(117, 26); // // unDockToolStripMenuItem // - this.unDockToolStripMenuItem.Name = "unDockToolStripMenuItem"; - this.unDockToolStripMenuItem.Size = new System.Drawing.Size(116, 22); - this.unDockToolStripMenuItem.Text = "UnDock"; - this.unDockToolStripMenuItem.Click += new System.EventHandler(this.OnClickUnDock); + unDockToolStripMenuItem.Name = "unDockToolStripMenuItem"; + unDockToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + unDockToolStripMenuItem.Text = "UnDock"; + unDockToolStripMenuItem.Click += OnClickUnDock; // // StartTab // - this.StartTab.BackColor = System.Drawing.Color.White; - this.StartTab.BackgroundImage = global::UoFiddler.Properties.Resources.UOFiddler; - this.StartTab.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.StartTab.Controls.Add(this.Versionlabel); - this.StartTab.Location = new System.Drawing.Point(4, 24); - this.StartTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.StartTab.Name = "StartTab"; - this.StartTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.StartTab.Size = new System.Drawing.Size(906, 598); - this.StartTab.TabIndex = 10; - this.StartTab.Tag = 0; - this.StartTab.Text = "Start"; + StartTab.BackColor = System.Drawing.Color.White; + StartTab.BackgroundImage = Properties.Resources.UOFiddler; + StartTab.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + StartTab.Controls.Add(Versionlabel); + StartTab.Location = new System.Drawing.Point(4, 24); + StartTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + StartTab.Name = "StartTab"; + StartTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + StartTab.Size = new System.Drawing.Size(906, 598); + StartTab.TabIndex = 10; + StartTab.Tag = 0; + StartTab.Text = "Start"; // // Versionlabel // - this.Versionlabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.Versionlabel.AutoSize = true; - this.Versionlabel.Location = new System.Drawing.Point(846, 576); - this.Versionlabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.Versionlabel.Name = "Versionlabel"; - this.Versionlabel.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.Versionlabel.Size = new System.Drawing.Size(45, 15); - this.Versionlabel.TabIndex = 1; - this.Versionlabel.Text = "Version"; - this.Versionlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + Versionlabel.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; + Versionlabel.AutoSize = true; + Versionlabel.Location = new System.Drawing.Point(846, 576); + Versionlabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + Versionlabel.Name = "Versionlabel"; + Versionlabel.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + Versionlabel.Size = new System.Drawing.Size(45, 15); + Versionlabel.TabIndex = 1; + Versionlabel.Text = "Version"; + Versionlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // MultisTab // - this.MultisTab.Controls.Add(this.multisControl); - this.MultisTab.Location = new System.Drawing.Point(4, 24); - this.MultisTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.MultisTab.Name = "MultisTab"; - this.MultisTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.MultisTab.Size = new System.Drawing.Size(907, 590); - this.MultisTab.TabIndex = 1; - this.MultisTab.Tag = 1; - this.MultisTab.Text = "Multis"; - this.MultisTab.UseVisualStyleBackColor = true; + MultisTab.Controls.Add(multisControl); + MultisTab.Location = new System.Drawing.Point(4, 24); + MultisTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + MultisTab.Name = "MultisTab"; + MultisTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + MultisTab.Size = new System.Drawing.Size(906, 598); + MultisTab.TabIndex = 1; + MultisTab.Tag = 1; + MultisTab.Text = "Multis"; + MultisTab.UseVisualStyleBackColor = true; // // multisControl // - this.multisControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.multisControl.Location = new System.Drawing.Point(4, 3); - this.multisControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.multisControl.Name = "multisControl"; - this.multisControl.Size = new System.Drawing.Size(899, 584); - this.multisControl.TabIndex = 0; + multisControl.Dock = System.Windows.Forms.DockStyle.Fill; + multisControl.Location = new System.Drawing.Point(4, 3); + multisControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + multisControl.Name = "multisControl"; + multisControl.Size = new System.Drawing.Size(898, 592); + multisControl.TabIndex = 0; // // AnimationTab // - this.AnimationTab.Controls.Add(this.animationsControl); - this.AnimationTab.Location = new System.Drawing.Point(4, 24); - this.AnimationTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.AnimationTab.Name = "AnimationTab"; - this.AnimationTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.AnimationTab.Size = new System.Drawing.Size(907, 590); - this.AnimationTab.TabIndex = 0; - this.AnimationTab.Tag = 2; - this.AnimationTab.Text = "Animations"; - this.AnimationTab.UseVisualStyleBackColor = true; + AnimationTab.Controls.Add(animationsControl); + AnimationTab.Location = new System.Drawing.Point(4, 24); + AnimationTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + AnimationTab.Name = "AnimationTab"; + AnimationTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + AnimationTab.Size = new System.Drawing.Size(906, 598); + AnimationTab.TabIndex = 0; + AnimationTab.Tag = 2; + AnimationTab.Text = "Animations"; + AnimationTab.UseVisualStyleBackColor = true; // // animationsControl // - this.animationsControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.animationsControl.Location = new System.Drawing.Point(4, 3); - this.animationsControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.animationsControl.Name = "animationsControl"; - this.animationsControl.Size = new System.Drawing.Size(899, 584); - this.animationsControl.TabIndex = 0; + animationsControl.Dock = System.Windows.Forms.DockStyle.Fill; + animationsControl.Location = new System.Drawing.Point(4, 3); + animationsControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + animationsControl.Name = "animationsControl"; + animationsControl.Size = new System.Drawing.Size(898, 592); + animationsControl.TabIndex = 0; // // ItemsTab // - this.ItemsTab.Controls.Add(this.itemShowControl); - this.ItemsTab.Location = new System.Drawing.Point(4, 24); - this.ItemsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.ItemsTab.Name = "ItemsTab"; - this.ItemsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.ItemsTab.Size = new System.Drawing.Size(907, 590); - this.ItemsTab.TabIndex = 2; - this.ItemsTab.Tag = 3; - this.ItemsTab.Text = "Items"; - this.ItemsTab.UseVisualStyleBackColor = true; + ItemsTab.Controls.Add(itemShowControl); + ItemsTab.Location = new System.Drawing.Point(4, 24); + ItemsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + ItemsTab.Name = "ItemsTab"; + ItemsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + ItemsTab.Size = new System.Drawing.Size(906, 598); + ItemsTab.TabIndex = 2; + ItemsTab.Tag = 3; + ItemsTab.Text = "Items"; + ItemsTab.UseVisualStyleBackColor = true; // // itemShowControl // - this.itemShowControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.itemShowControl.Location = new System.Drawing.Point(4, 3); - this.itemShowControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.itemShowControl.Name = "itemShowControl"; - this.itemShowControl.SelectedGraphicId = 0; - this.itemShowControl.Size = new System.Drawing.Size(899, 584); - this.itemShowControl.TabIndex = 0; + itemShowControl.Dock = System.Windows.Forms.DockStyle.Fill; + itemShowControl.Location = new System.Drawing.Point(4, 3); + itemShowControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + itemShowControl.Name = "itemShowControl"; + itemShowControl.Size = new System.Drawing.Size(898, 592); + itemShowControl.TabIndex = 0; // // LandTilesTab // - this.LandTilesTab.Controls.Add(this.landTilesControl); - this.LandTilesTab.Location = new System.Drawing.Point(4, 24); - this.LandTilesTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.LandTilesTab.Name = "LandTilesTab"; - this.LandTilesTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.LandTilesTab.Size = new System.Drawing.Size(907, 590); - this.LandTilesTab.TabIndex = 3; - this.LandTilesTab.Tag = 4; - this.LandTilesTab.Text = "Land Tiles"; - this.LandTilesTab.UseVisualStyleBackColor = true; + LandTilesTab.Controls.Add(landTilesControl); + LandTilesTab.Location = new System.Drawing.Point(4, 24); + LandTilesTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + LandTilesTab.Name = "LandTilesTab"; + LandTilesTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + LandTilesTab.Size = new System.Drawing.Size(906, 598); + LandTilesTab.TabIndex = 3; + LandTilesTab.Tag = 4; + LandTilesTab.Text = "Land Tiles"; + LandTilesTab.UseVisualStyleBackColor = true; // // landTilesControl // - this.landTilesControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.landTilesControl.Location = new System.Drawing.Point(4, 3); - this.landTilesControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.landTilesControl.Name = "landTilesControl"; - this.landTilesControl.SelectedGraphicId = 0; - this.landTilesControl.Size = new System.Drawing.Size(899, 584); - this.landTilesControl.TabIndex = 0; + landTilesControl.Dock = System.Windows.Forms.DockStyle.Fill; + landTilesControl.Location = new System.Drawing.Point(4, 3); + landTilesControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + landTilesControl.Name = "landTilesControl"; + landTilesControl.Size = new System.Drawing.Size(898, 592); + landTilesControl.TabIndex = 0; // // TextureTab // - this.TextureTab.Controls.Add(this.textureControl); - this.TextureTab.Location = new System.Drawing.Point(4, 24); - this.TextureTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.TextureTab.Name = "TextureTab"; - this.TextureTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.TextureTab.Size = new System.Drawing.Size(907, 590); - this.TextureTab.TabIndex = 11; - this.TextureTab.Tag = 5; - this.TextureTab.Text = "Textures"; - this.TextureTab.UseVisualStyleBackColor = true; + TextureTab.Controls.Add(textureControl); + TextureTab.Location = new System.Drawing.Point(4, 24); + TextureTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + TextureTab.Name = "TextureTab"; + TextureTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + TextureTab.Size = new System.Drawing.Size(906, 598); + TextureTab.TabIndex = 11; + TextureTab.Tag = 5; + TextureTab.Text = "Textures"; + TextureTab.UseVisualStyleBackColor = true; // // textureControl // - this.textureControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.textureControl.Location = new System.Drawing.Point(4, 3); - this.textureControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.textureControl.Name = "textureControl"; - this.textureControl.SelectedTextureId = 0; - this.textureControl.Size = new System.Drawing.Size(899, 584); - this.textureControl.TabIndex = 0; + textureControl.Dock = System.Windows.Forms.DockStyle.Fill; + textureControl.Location = new System.Drawing.Point(4, 3); + textureControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + textureControl.Name = "textureControl"; + textureControl.Size = new System.Drawing.Size(898, 592); + textureControl.TabIndex = 0; // // GumpsTab // - this.GumpsTab.Controls.Add(this.gumpsControl); - this.GumpsTab.Location = new System.Drawing.Point(4, 24); - this.GumpsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.GumpsTab.Name = "GumpsTab"; - this.GumpsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.GumpsTab.Size = new System.Drawing.Size(907, 590); - this.GumpsTab.TabIndex = 4; - this.GumpsTab.Tag = 6; - this.GumpsTab.Text = "Gumps"; - this.GumpsTab.UseVisualStyleBackColor = true; + GumpsTab.Controls.Add(gumpsControl); + GumpsTab.Location = new System.Drawing.Point(4, 24); + GumpsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + GumpsTab.Name = "GumpsTab"; + GumpsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + GumpsTab.Size = new System.Drawing.Size(906, 598); + GumpsTab.TabIndex = 4; + GumpsTab.Tag = 6; + GumpsTab.Text = "Gumps"; + GumpsTab.UseVisualStyleBackColor = true; // // gumpsControl // - this.gumpsControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.gumpsControl.Location = new System.Drawing.Point(4, 3); - this.gumpsControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.gumpsControl.Name = "gumpsControl"; - this.gumpsControl.Size = new System.Drawing.Size(899, 584); - this.gumpsControl.TabIndex = 0; + gumpsControl.Dock = System.Windows.Forms.DockStyle.Fill; + gumpsControl.Location = new System.Drawing.Point(4, 3); + gumpsControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + gumpsControl.Name = "gumpsControl"; + gumpsControl.Size = new System.Drawing.Size(898, 592); + gumpsControl.TabIndex = 0; // // SoundsTab // - this.SoundsTab.Controls.Add(this.soundControl); - this.SoundsTab.Location = new System.Drawing.Point(4, 24); - this.SoundsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.SoundsTab.Name = "SoundsTab"; - this.SoundsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.SoundsTab.Size = new System.Drawing.Size(907, 590); - this.SoundsTab.TabIndex = 5; - this.SoundsTab.Tag = 7; - this.SoundsTab.Text = "Sounds"; - this.SoundsTab.UseVisualStyleBackColor = true; + SoundsTab.Controls.Add(soundControl); + SoundsTab.Location = new System.Drawing.Point(4, 24); + SoundsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + SoundsTab.Name = "SoundsTab"; + SoundsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + SoundsTab.Size = new System.Drawing.Size(906, 598); + SoundsTab.TabIndex = 5; + SoundsTab.Tag = 7; + SoundsTab.Text = "Sounds"; + SoundsTab.UseVisualStyleBackColor = true; // // soundControl // - this.soundControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.soundControl.Location = new System.Drawing.Point(4, 3); - this.soundControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.soundControl.Name = "soundControl"; - this.soundControl.Size = new System.Drawing.Size(899, 584); - this.soundControl.TabIndex = 0; + soundControl.Dock = System.Windows.Forms.DockStyle.Fill; + soundControl.Location = new System.Drawing.Point(4, 3); + soundControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + soundControl.Name = "soundControl"; + soundControl.Size = new System.Drawing.Size(898, 592); + soundControl.TabIndex = 0; // // HuesTab // - this.HuesTab.Controls.Add(this.hueControl); - this.HuesTab.Location = new System.Drawing.Point(4, 24); - this.HuesTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.HuesTab.Name = "HuesTab"; - this.HuesTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.HuesTab.Size = new System.Drawing.Size(907, 590); - this.HuesTab.TabIndex = 6; - this.HuesTab.Tag = 8; - this.HuesTab.Text = "Hues"; - this.HuesTab.UseVisualStyleBackColor = true; + HuesTab.Controls.Add(hueControl); + HuesTab.Location = new System.Drawing.Point(4, 24); + HuesTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + HuesTab.Name = "HuesTab"; + HuesTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + HuesTab.Size = new System.Drawing.Size(906, 598); + HuesTab.TabIndex = 6; + HuesTab.Tag = 8; + HuesTab.Text = "Hues"; + HuesTab.UseVisualStyleBackColor = true; // // hueControl // - this.hueControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.hueControl.ForeColor = System.Drawing.SystemColors.ControlText; - this.hueControl.Location = new System.Drawing.Point(4, 3); - this.hueControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.hueControl.Name = "hueControl"; - this.hueControl.Padding = new System.Windows.Forms.Padding(1); - this.hueControl.Size = new System.Drawing.Size(899, 584); - this.hueControl.TabIndex = 0; + hueControl.Dock = System.Windows.Forms.DockStyle.Fill; + hueControl.ForeColor = System.Drawing.SystemColors.ControlText; + hueControl.Location = new System.Drawing.Point(4, 3); + hueControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + hueControl.Name = "hueControl"; + hueControl.Padding = new System.Windows.Forms.Padding(1); + hueControl.Size = new System.Drawing.Size(898, 592); + hueControl.TabIndex = 0; // // FontsTab // - this.FontsTab.Controls.Add(this.fontsControl); - this.FontsTab.Location = new System.Drawing.Point(4, 24); - this.FontsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.FontsTab.Name = "FontsTab"; - this.FontsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.FontsTab.Size = new System.Drawing.Size(907, 590); - this.FontsTab.TabIndex = 7; - this.FontsTab.Tag = 9; - this.FontsTab.Text = "Fonts"; - this.FontsTab.UseVisualStyleBackColor = true; + FontsTab.Controls.Add(fontsControl); + FontsTab.Location = new System.Drawing.Point(4, 24); + FontsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + FontsTab.Name = "FontsTab"; + FontsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + FontsTab.Size = new System.Drawing.Size(906, 598); + FontsTab.TabIndex = 7; + FontsTab.Tag = 9; + FontsTab.Text = "Fonts"; + FontsTab.UseVisualStyleBackColor = true; // // fontsControl // - this.fontsControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.fontsControl.Location = new System.Drawing.Point(4, 3); - this.fontsControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.fontsControl.Name = "fontsControl"; - this.fontsControl.Size = new System.Drawing.Size(899, 584); - this.fontsControl.TabIndex = 0; + fontsControl.Dock = System.Windows.Forms.DockStyle.Fill; + fontsControl.Location = new System.Drawing.Point(4, 3); + fontsControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + fontsControl.Name = "fontsControl"; + fontsControl.Size = new System.Drawing.Size(898, 592); + fontsControl.TabIndex = 0; // // ClilocTab // - this.ClilocTab.Controls.Add(this.clilocControl); - this.ClilocTab.Location = new System.Drawing.Point(4, 24); - this.ClilocTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.ClilocTab.Name = "ClilocTab"; - this.ClilocTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.ClilocTab.Size = new System.Drawing.Size(907, 590); - this.ClilocTab.TabIndex = 8; - this.ClilocTab.Tag = 10; - this.ClilocTab.Text = "CliLoc"; - this.ClilocTab.UseVisualStyleBackColor = true; + ClilocTab.Controls.Add(clilocControl); + ClilocTab.Location = new System.Drawing.Point(4, 24); + ClilocTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + ClilocTab.Name = "ClilocTab"; + ClilocTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + ClilocTab.Size = new System.Drawing.Size(906, 598); + ClilocTab.TabIndex = 8; + ClilocTab.Tag = 10; + ClilocTab.Text = "CliLoc"; + ClilocTab.UseVisualStyleBackColor = true; // // clilocControl // - this.clilocControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.clilocControl.Location = new System.Drawing.Point(4, 3); - this.clilocControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.clilocControl.Name = "clilocControl"; - this.clilocControl.Size = new System.Drawing.Size(899, 584); - this.clilocControl.TabIndex = 0; + clilocControl.Dock = System.Windows.Forms.DockStyle.Fill; + clilocControl.Location = new System.Drawing.Point(4, 3); + clilocControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + clilocControl.Name = "clilocControl"; + clilocControl.Size = new System.Drawing.Size(898, 592); + clilocControl.TabIndex = 0; // // MapTab // - this.MapTab.Controls.Add(this.mapControl); - this.MapTab.Location = new System.Drawing.Point(4, 24); - this.MapTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.MapTab.Name = "MapTab"; - this.MapTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.MapTab.Size = new System.Drawing.Size(907, 590); - this.MapTab.TabIndex = 9; - this.MapTab.Tag = 11; - this.MapTab.Text = "Map"; - this.MapTab.UseVisualStyleBackColor = true; + MapTab.Controls.Add(mapControl); + MapTab.Location = new System.Drawing.Point(4, 24); + MapTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + MapTab.Name = "MapTab"; + MapTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + MapTab.Size = new System.Drawing.Size(906, 598); + MapTab.TabIndex = 9; + MapTab.Tag = 11; + MapTab.Text = "Map"; + MapTab.UseVisualStyleBackColor = true; // // mapControl // - this.mapControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.mapControl.Location = new System.Drawing.Point(4, 3); - this.mapControl.Margin = new System.Windows.Forms.Padding(0); - this.mapControl.Name = "mapControl"; - this.mapControl.Size = new System.Drawing.Size(899, 584); - this.mapControl.TabIndex = 0; + mapControl.Dock = System.Windows.Forms.DockStyle.Fill; + mapControl.Location = new System.Drawing.Point(4, 3); + mapControl.Margin = new System.Windows.Forms.Padding(0); + mapControl.Name = "mapControl"; + mapControl.Size = new System.Drawing.Size(898, 592); + mapControl.TabIndex = 0; // // LightTab // - this.LightTab.Controls.Add(this.lightControl); - this.LightTab.Location = new System.Drawing.Point(4, 24); - this.LightTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.LightTab.Name = "LightTab"; - this.LightTab.Size = new System.Drawing.Size(907, 590); - this.LightTab.TabIndex = 12; - this.LightTab.Tag = 12; - this.LightTab.Text = "Light"; - this.LightTab.UseVisualStyleBackColor = true; + LightTab.Controls.Add(lightControl); + LightTab.Location = new System.Drawing.Point(4, 24); + LightTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + LightTab.Name = "LightTab"; + LightTab.Size = new System.Drawing.Size(906, 598); + LightTab.TabIndex = 12; + LightTab.Tag = 12; + LightTab.Text = "Light"; + LightTab.UseVisualStyleBackColor = true; // // lightControl // - this.lightControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.lightControl.Location = new System.Drawing.Point(0, 0); - this.lightControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.lightControl.Name = "lightControl"; - this.lightControl.Size = new System.Drawing.Size(907, 590); - this.lightControl.TabIndex = 0; + lightControl.Dock = System.Windows.Forms.DockStyle.Fill; + lightControl.Location = new System.Drawing.Point(0, 0); + lightControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + lightControl.Name = "lightControl"; + lightControl.Size = new System.Drawing.Size(906, 598); + lightControl.TabIndex = 0; // // SpeechTab // - this.SpeechTab.Controls.Add(this.speechControl); - this.SpeechTab.Location = new System.Drawing.Point(4, 24); - this.SpeechTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.SpeechTab.Name = "SpeechTab"; - this.SpeechTab.Size = new System.Drawing.Size(907, 590); - this.SpeechTab.TabIndex = 17; - this.SpeechTab.Tag = 13; - this.SpeechTab.Text = "Speech"; - this.SpeechTab.UseVisualStyleBackColor = true; + SpeechTab.Controls.Add(speechControl); + SpeechTab.Location = new System.Drawing.Point(4, 24); + SpeechTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + SpeechTab.Name = "SpeechTab"; + SpeechTab.Size = new System.Drawing.Size(906, 598); + SpeechTab.TabIndex = 17; + SpeechTab.Tag = 13; + SpeechTab.Text = "Speech"; + SpeechTab.UseVisualStyleBackColor = true; // // speechControl // - this.speechControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.speechControl.Location = new System.Drawing.Point(0, 0); - this.speechControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.speechControl.Name = "speechControl"; - this.speechControl.Size = new System.Drawing.Size(907, 590); - this.speechControl.TabIndex = 0; + speechControl.Dock = System.Windows.Forms.DockStyle.Fill; + speechControl.Location = new System.Drawing.Point(0, 0); + speechControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + speechControl.Name = "speechControl"; + speechControl.Size = new System.Drawing.Size(906, 598); + speechControl.TabIndex = 0; // // SkillsTab // - this.SkillsTab.Controls.Add(this.skillsControl); - this.SkillsTab.Location = new System.Drawing.Point(4, 24); - this.SkillsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.SkillsTab.Name = "SkillsTab"; - this.SkillsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.SkillsTab.Size = new System.Drawing.Size(907, 590); - this.SkillsTab.TabIndex = 15; - this.SkillsTab.Tag = 14; - this.SkillsTab.Text = "Skills"; - this.SkillsTab.UseVisualStyleBackColor = true; + SkillsTab.Controls.Add(skillsControl); + SkillsTab.Location = new System.Drawing.Point(4, 24); + SkillsTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + SkillsTab.Name = "SkillsTab"; + SkillsTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + SkillsTab.Size = new System.Drawing.Size(906, 598); + SkillsTab.TabIndex = 15; + SkillsTab.Tag = 14; + SkillsTab.Text = "Skills"; + SkillsTab.UseVisualStyleBackColor = true; // // skillsControl // - this.skillsControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.skillsControl.Location = new System.Drawing.Point(4, 3); - this.skillsControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.skillsControl.Name = "skillsControl"; - this.skillsControl.Size = new System.Drawing.Size(899, 584); - this.skillsControl.TabIndex = 0; + skillsControl.Dock = System.Windows.Forms.DockStyle.Fill; + skillsControl.Location = new System.Drawing.Point(4, 3); + skillsControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + skillsControl.Name = "skillsControl"; + skillsControl.Size = new System.Drawing.Size(898, 592); + skillsControl.TabIndex = 0; // // AnimDataTab // - this.AnimDataTab.Controls.Add(this.animdataControl); - this.AnimDataTab.Location = new System.Drawing.Point(4, 24); - this.AnimDataTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.AnimDataTab.Name = "AnimDataTab"; - this.AnimDataTab.Size = new System.Drawing.Size(907, 590); - this.AnimDataTab.TabIndex = 18; - this.AnimDataTab.Tag = 15; - this.AnimDataTab.Text = "AnimData"; - this.AnimDataTab.UseVisualStyleBackColor = true; + AnimDataTab.Controls.Add(animdataControl); + AnimDataTab.Location = new System.Drawing.Point(4, 24); + AnimDataTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + AnimDataTab.Name = "AnimDataTab"; + AnimDataTab.Size = new System.Drawing.Size(906, 598); + AnimDataTab.TabIndex = 18; + AnimDataTab.Tag = 15; + AnimDataTab.Text = "AnimData"; + AnimDataTab.UseVisualStyleBackColor = true; // // animdataControl // - this.animdataControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.animdataControl.Location = new System.Drawing.Point(0, 0); - this.animdataControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.animdataControl.Name = "animdataControl"; - this.animdataControl.Size = new System.Drawing.Size(907, 590); - this.animdataControl.TabIndex = 0; + animdataControl.Dock = System.Windows.Forms.DockStyle.Fill; + animdataControl.Location = new System.Drawing.Point(0, 0); + animdataControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + animdataControl.Name = "animdataControl"; + animdataControl.Size = new System.Drawing.Size(906, 598); + animdataControl.TabIndex = 0; // // MultiMapTab // - this.MultiMapTab.Controls.Add(this.multimapControl); - this.MultiMapTab.Location = new System.Drawing.Point(4, 24); - this.MultiMapTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.MultiMapTab.Name = "MultiMapTab"; - this.MultiMapTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.MultiMapTab.Size = new System.Drawing.Size(907, 590); - this.MultiMapTab.TabIndex = 14; - this.MultiMapTab.Tag = 16; - this.MultiMapTab.Text = "MultiMap/Facets"; - this.MultiMapTab.UseVisualStyleBackColor = true; + MultiMapTab.Controls.Add(multimapControl); + MultiMapTab.Location = new System.Drawing.Point(4, 24); + MultiMapTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + MultiMapTab.Name = "MultiMapTab"; + MultiMapTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + MultiMapTab.Size = new System.Drawing.Size(906, 598); + MultiMapTab.TabIndex = 14; + MultiMapTab.Tag = 16; + MultiMapTab.Text = "MultiMap/Facets"; + MultiMapTab.UseVisualStyleBackColor = true; // // multimapControl // - this.multimapControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.multimapControl.Location = new System.Drawing.Point(4, 3); - this.multimapControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.multimapControl.Name = "multimapControl"; - this.multimapControl.Size = new System.Drawing.Size(899, 584); - this.multimapControl.TabIndex = 0; + multimapControl.Dock = System.Windows.Forms.DockStyle.Fill; + multimapControl.Location = new System.Drawing.Point(4, 3); + multimapControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + multimapControl.Name = "multimapControl"; + multimapControl.Size = new System.Drawing.Size(898, 592); + multimapControl.TabIndex = 0; // // DressTab // - this.DressTab.Controls.Add(this.dressControl); - this.DressTab.Location = new System.Drawing.Point(4, 24); - this.DressTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.DressTab.Name = "DressTab"; - this.DressTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.DressTab.Size = new System.Drawing.Size(907, 590); - this.DressTab.TabIndex = 13; - this.DressTab.Tag = 17; - this.DressTab.Text = "Dress"; - this.DressTab.UseVisualStyleBackColor = true; + DressTab.Controls.Add(dressControl); + DressTab.Location = new System.Drawing.Point(4, 24); + DressTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + DressTab.Name = "DressTab"; + DressTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + DressTab.Size = new System.Drawing.Size(906, 598); + DressTab.TabIndex = 13; + DressTab.Tag = 17; + DressTab.Text = "Dress"; + DressTab.UseVisualStyleBackColor = true; // // dressControl // - this.dressControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.dressControl.Location = new System.Drawing.Point(4, 3); - this.dressControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.dressControl.Name = "dressControl"; - this.dressControl.Size = new System.Drawing.Size(899, 584); - this.dressControl.TabIndex = 0; + dressControl.Dock = System.Windows.Forms.DockStyle.Fill; + dressControl.Location = new System.Drawing.Point(4, 3); + dressControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + dressControl.Name = "dressControl"; + dressControl.Size = new System.Drawing.Size(898, 592); + dressControl.TabIndex = 0; // // TileDataTab // - this.TileDataTab.Controls.Add(this.tileDataControl); - this.TileDataTab.Location = new System.Drawing.Point(4, 24); - this.TileDataTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.TileDataTab.Name = "TileDataTab"; - this.TileDataTab.Size = new System.Drawing.Size(907, 590); - this.TileDataTab.TabIndex = 16; - this.TileDataTab.Tag = 18; - this.TileDataTab.Text = "TileData"; - this.TileDataTab.UseVisualStyleBackColor = true; + TileDataTab.Controls.Add(tileDataControl); + TileDataTab.Location = new System.Drawing.Point(4, 24); + TileDataTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + TileDataTab.Name = "TileDataTab"; + TileDataTab.Size = new System.Drawing.Size(906, 598); + TileDataTab.TabIndex = 16; + TileDataTab.Tag = 18; + TileDataTab.Text = "TileData"; + TileDataTab.UseVisualStyleBackColor = true; // // tileDataControl // - this.tileDataControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.tileDataControl.Location = new System.Drawing.Point(0, 0); - this.tileDataControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.tileDataControl.Name = "tileDataControl"; - this.tileDataControl.Size = new System.Drawing.Size(907, 590); - this.tileDataControl.TabIndex = 0; + tileDataControl.Dock = System.Windows.Forms.DockStyle.Fill; + tileDataControl.Location = new System.Drawing.Point(0, 0); + tileDataControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + tileDataControl.Name = "tileDataControl"; + tileDataControl.Size = new System.Drawing.Size(906, 598); + tileDataControl.TabIndex = 0; // // RadarColTab // - this.RadarColTab.Controls.Add(this.radarColControl); - this.RadarColTab.Location = new System.Drawing.Point(4, 24); - this.RadarColTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.RadarColTab.Name = "RadarColTab"; - this.RadarColTab.Size = new System.Drawing.Size(907, 590); - this.RadarColTab.TabIndex = 19; - this.RadarColTab.Tag = 19; - this.RadarColTab.Text = "RadarColor"; - this.RadarColTab.UseVisualStyleBackColor = true; + RadarColTab.Controls.Add(radarColControl); + RadarColTab.Location = new System.Drawing.Point(4, 24); + RadarColTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + RadarColTab.Name = "RadarColTab"; + RadarColTab.Size = new System.Drawing.Size(906, 598); + RadarColTab.TabIndex = 19; + RadarColTab.Tag = 19; + RadarColTab.Text = "RadarColor"; + RadarColTab.UseVisualStyleBackColor = true; // // radarColControl // - this.radarColControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.radarColControl.Location = new System.Drawing.Point(0, 0); - this.radarColControl.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); - this.radarColControl.Name = "radarColControl"; - this.radarColControl.Size = new System.Drawing.Size(907, 590); - this.radarColControl.TabIndex = 0; + radarColControl.Dock = System.Windows.Forms.DockStyle.Fill; + radarColControl.Location = new System.Drawing.Point(0, 0); + radarColControl.Margin = new System.Windows.Forms.Padding(5); + radarColControl.Name = "radarColControl"; + radarColControl.Size = new System.Drawing.Size(906, 598); + radarColControl.TabIndex = 0; // // SkillGrpTab // - this.SkillGrpTab.Controls.Add(this.skillGroupControl); - this.SkillGrpTab.Location = new System.Drawing.Point(4, 24); - this.SkillGrpTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.SkillGrpTab.Name = "SkillGrpTab"; - this.SkillGrpTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.SkillGrpTab.Size = new System.Drawing.Size(907, 590); - this.SkillGrpTab.TabIndex = 20; - this.SkillGrpTab.Tag = 20; - this.SkillGrpTab.Text = "SkillGrp"; - this.SkillGrpTab.UseVisualStyleBackColor = true; + SkillGrpTab.Controls.Add(skillGroupControl); + SkillGrpTab.Location = new System.Drawing.Point(4, 24); + SkillGrpTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + SkillGrpTab.Name = "SkillGrpTab"; + SkillGrpTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + SkillGrpTab.Size = new System.Drawing.Size(906, 598); + SkillGrpTab.TabIndex = 20; + SkillGrpTab.Tag = 20; + SkillGrpTab.Text = "SkillGrp"; + SkillGrpTab.UseVisualStyleBackColor = true; // // skillGroupControl // - this.skillGroupControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.skillGroupControl.Location = new System.Drawing.Point(4, 3); - this.skillGroupControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.skillGroupControl.Name = "skillGroupControl"; - this.skillGroupControl.Size = new System.Drawing.Size(899, 584); - this.skillGroupControl.TabIndex = 0; - // + skillGroupControl.Dock = System.Windows.Forms.DockStyle.Fill; + skillGroupControl.Location = new System.Drawing.Point(4, 3); + skillGroupControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + skillGroupControl.Name = "skillGroupControl"; + skillGroupControl.Size = new System.Drawing.Size(898, 592); + skillGroupControl.TabIndex = 0; + // // VerdataTab - // - this.VerdataTab.Controls.Add(this.verdataControl); - this.VerdataTab.Location = new System.Drawing.Point(4, 24); - this.VerdataTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.VerdataTab.Name = "VerdataTab"; - this.VerdataTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.VerdataTab.Size = new System.Drawing.Size(907, 590); - this.VerdataTab.TabIndex = 21; - this.VerdataTab.Tag = 21; - this.VerdataTab.Text = "Verdata"; - this.VerdataTab.UseVisualStyleBackColor = true; - // + // + VerdataTab.Controls.Add(verdataControl); + VerdataTab.Location = new System.Drawing.Point(4, 24); + VerdataTab.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + VerdataTab.Name = "VerdataTab"; + VerdataTab.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + VerdataTab.Size = new System.Drawing.Size(906, 598); + VerdataTab.TabIndex = 21; + VerdataTab.Tag = 21; + VerdataTab.Text = "Verdata"; + VerdataTab.UseVisualStyleBackColor = true; + // // verdataControl - // - this.verdataControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.verdataControl.Location = new System.Drawing.Point(4, 3); - this.verdataControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); - this.verdataControl.Name = "verdataControl"; - this.verdataControl.Size = new System.Drawing.Size(899, 584); - this.verdataControl.TabIndex = 0; - // + // + verdataControl.Dock = System.Windows.Forms.DockStyle.Fill; + verdataControl.Location = new System.Drawing.Point(4, 3); + verdataControl.Margin = new System.Windows.Forms.Padding(5, 3, 5, 3); + verdataControl.Name = "verdataControl"; + verdataControl.Size = new System.Drawing.Size(898, 592); + verdataControl.TabIndex = 0; + // // tsMainMenu - // - this.tsMainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.SettingsMenu, - this.toolStripDropDownButtonView, - this.ExternToolsDropDown, - this.toolStripDropDownButtonPlugins, - this.toolStripDropDownButtonHelp}); - this.tsMainMenu.Location = new System.Drawing.Point(0, 0); - this.tsMainMenu.Name = "tsMainMenu"; - this.tsMainMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; - this.tsMainMenu.Size = new System.Drawing.Size(914, 25); - this.tsMainMenu.TabIndex = 2; - this.tsMainMenu.Text = "toolStrip1"; + // + tsMainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { SettingsMenu, toolStripDropDownButtonView, ExternToolsDropDown, toolStripDropDownButtonPlugins, toolStripDropDownButtonHelp }); + tsMainMenu.Location = new System.Drawing.Point(0, 0); + tsMainMenu.Name = "tsMainMenu"; + tsMainMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; + tsMainMenu.Size = new System.Drawing.Size(914, 25); + tsMainMenu.TabIndex = 2; + tsMainMenu.Text = "toolStrip1"; + toolTip.SetToolTip(tsMainMenu, "Dark mode is experimental. Changes require an application restart."); // // SettingsMenu // - this.SettingsMenu.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.SettingsMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.AlwaysOnTopMenuitem, - this.optionsToolStripMenuItem, - this.pathSettingsMenuItem, - this.tsSettingsSeparator, - this.reloadFilesMenuItem}); - this.SettingsMenu.ImageTransparentColor = System.Drawing.Color.Magenta; - this.SettingsMenu.Name = "SettingsMenu"; - this.SettingsMenu.Size = new System.Drawing.Size(62, 22); - this.SettingsMenu.Text = "Settings"; + SettingsMenu.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + SettingsMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { AlwaysOnTopMenuitem, toolStripSeparator3, darkModeMenuItem, toolStripSeparator2, optionsToolStripMenuItem, pathSettingsMenuItem, tsSettingsSeparator, reloadFilesMenuItem }); + SettingsMenu.ImageTransparentColor = System.Drawing.Color.Magenta; + SettingsMenu.Name = "SettingsMenu"; + SettingsMenu.Size = new System.Drawing.Size(62, 22); + SettingsMenu.Text = "Settings"; // // AlwaysOnTopMenuitem // - this.AlwaysOnTopMenuitem.CheckOnClick = true; - this.AlwaysOnTopMenuitem.Name = "AlwaysOnTopMenuitem"; - this.AlwaysOnTopMenuitem.Size = new System.Drawing.Size(152, 22); - this.AlwaysOnTopMenuitem.Text = "Always On Top"; - this.AlwaysOnTopMenuitem.Click += new System.EventHandler(this.OnClickAlwaysTop); + AlwaysOnTopMenuitem.CheckOnClick = true; + AlwaysOnTopMenuitem.Name = "AlwaysOnTopMenuitem"; + AlwaysOnTopMenuitem.Size = new System.Drawing.Size(212, 22); + AlwaysOnTopMenuitem.Text = "Always On Top"; + AlwaysOnTopMenuitem.Click += OnClickAlwaysTop; + // + // darkModeMenuItem + // + darkModeMenuItem.CheckOnClick = true; + darkModeMenuItem.Name = "darkModeMenuItem"; + darkModeMenuItem.Size = new System.Drawing.Size(212, 22); + darkModeMenuItem.Text = "Dark Mode (Experimental)"; + darkModeMenuItem.Click += OnClickDarkMode; // // optionsToolStripMenuItem // - this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; - this.optionsToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.optionsToolStripMenuItem.Text = "Options.."; - this.optionsToolStripMenuItem.Click += new System.EventHandler(this.OnClickOptions); + optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; + optionsToolStripMenuItem.Size = new System.Drawing.Size(212, 22); + optionsToolStripMenuItem.Text = "Options.."; + optionsToolStripMenuItem.Click += OnClickOptions; // // pathSettingsMenuItem // - this.pathSettingsMenuItem.Name = "pathSettingsMenuItem"; - this.pathSettingsMenuItem.Size = new System.Drawing.Size(152, 22); - this.pathSettingsMenuItem.Text = "Path Settings.."; - this.pathSettingsMenuItem.Click += new System.EventHandler(this.Click_path); + pathSettingsMenuItem.Name = "pathSettingsMenuItem"; + pathSettingsMenuItem.Size = new System.Drawing.Size(212, 22); + pathSettingsMenuItem.Text = "Path Settings.."; + pathSettingsMenuItem.Click += Click_path; // // tsSettingsSeparator // - this.tsSettingsSeparator.Name = "tsSettingsSeparator"; - this.tsSettingsSeparator.Size = new System.Drawing.Size(149, 6); + tsSettingsSeparator.Name = "tsSettingsSeparator"; + tsSettingsSeparator.Size = new System.Drawing.Size(209, 6); // // reloadFilesMenuItem // - this.reloadFilesMenuItem.ForeColor = System.Drawing.Color.DarkRed; - this.reloadFilesMenuItem.Name = "reloadFilesMenuItem"; - this.reloadFilesMenuItem.Size = new System.Drawing.Size(152, 22); - this.reloadFilesMenuItem.Text = "Reload Files"; - this.reloadFilesMenuItem.Click += new System.EventHandler(this.ReloadFiles); + reloadFilesMenuItem.ForeColor = System.Drawing.Color.DarkRed; + reloadFilesMenuItem.Name = "reloadFilesMenuItem"; + reloadFilesMenuItem.Size = new System.Drawing.Size(212, 22); + reloadFilesMenuItem.Text = "Reload Files"; + reloadFilesMenuItem.Click += ReloadFiles; // // toolStripDropDownButtonView // - this.toolStripDropDownButtonView.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.toolStripDropDownButtonView.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.ToggleViewStart, - this.ToggleViewMulti, - this.ToggleViewAnimations, - this.ToggleViewItems, - this.ToggleViewLandTiles, - this.ToggleViewTexture, - this.ToggleViewGumps, - this.ToggleViewSounds, - this.ToggleViewHue, - this.ToggleViewFonts, - this.ToggleViewCliloc, - this.ToggleViewMap, - this.ToggleViewLight, - this.ToggleViewSpeech, - this.ToggleViewSkills, - this.ToggleViewAnimData, - this.ToggleViewMultiMap, - this.ToggleViewDress, - this.ToggleViewTileData, - this.ToggleViewRadarColor, - this.ToggleViewSkillGrp, - this.ToggleViewVerdata}); - this.toolStripDropDownButtonView.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripDropDownButtonView.Name = "toolStripDropDownButtonView"; - this.toolStripDropDownButtonView.Size = new System.Drawing.Size(45, 22); - this.toolStripDropDownButtonView.Text = "View"; + toolStripDropDownButtonView.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + toolStripDropDownButtonView.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { ToggleViewStart, ToggleViewMulti, ToggleViewAnimations, ToggleViewItems, ToggleViewLandTiles, ToggleViewTexture, ToggleViewGumps, ToggleViewSounds, ToggleViewHue, ToggleViewFonts, ToggleViewCliloc, ToggleViewMap, ToggleViewLight, ToggleViewSpeech, ToggleViewSkills, ToggleViewAnimData, ToggleViewMultiMap, ToggleViewDress, ToggleViewTileData, ToggleViewRadarColor, ToggleViewSkillGrp, ToggleViewVerdata }); + toolStripDropDownButtonView.ImageTransparentColor = System.Drawing.Color.Magenta; + toolStripDropDownButtonView.Name = "toolStripDropDownButtonView"; + toolStripDropDownButtonView.Size = new System.Drawing.Size(45, 22); + toolStripDropDownButtonView.Text = "View"; // // ToggleViewStart // - this.ToggleViewStart.Checked = true; - this.ToggleViewStart.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewStart.Name = "ToggleViewStart"; - this.ToggleViewStart.Size = new System.Drawing.Size(164, 22); - this.ToggleViewStart.Tag = 0; - this.ToggleViewStart.Text = "Start"; - this.ToggleViewStart.Click += new System.EventHandler(this.ToggleView); + ToggleViewStart.Checked = true; + ToggleViewStart.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewStart.Name = "ToggleViewStart"; + ToggleViewStart.Size = new System.Drawing.Size(164, 22); + ToggleViewStart.Tag = 0; + ToggleViewStart.Text = "Start"; + ToggleViewStart.Click += ToggleView; // // ToggleViewMulti // - this.ToggleViewMulti.Checked = true; - this.ToggleViewMulti.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewMulti.Name = "ToggleViewMulti"; - this.ToggleViewMulti.Size = new System.Drawing.Size(164, 22); - this.ToggleViewMulti.Tag = 1; - this.ToggleViewMulti.Text = "Multi"; - this.ToggleViewMulti.Click += new System.EventHandler(this.ToggleView); + ToggleViewMulti.Checked = true; + ToggleViewMulti.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewMulti.Name = "ToggleViewMulti"; + ToggleViewMulti.Size = new System.Drawing.Size(164, 22); + ToggleViewMulti.Tag = 1; + ToggleViewMulti.Text = "Multi"; + ToggleViewMulti.Click += ToggleView; // // ToggleViewAnimations // - this.ToggleViewAnimations.Checked = true; - this.ToggleViewAnimations.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewAnimations.Name = "ToggleViewAnimations"; - this.ToggleViewAnimations.Size = new System.Drawing.Size(164, 22); - this.ToggleViewAnimations.Tag = 2; - this.ToggleViewAnimations.Text = "Animations"; - this.ToggleViewAnimations.Click += new System.EventHandler(this.ToggleView); + ToggleViewAnimations.Checked = true; + ToggleViewAnimations.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewAnimations.Name = "ToggleViewAnimations"; + ToggleViewAnimations.Size = new System.Drawing.Size(164, 22); + ToggleViewAnimations.Tag = 2; + ToggleViewAnimations.Text = "Animations"; + ToggleViewAnimations.Click += ToggleView; // // ToggleViewItems // - this.ToggleViewItems.Checked = true; - this.ToggleViewItems.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewItems.Name = "ToggleViewItems"; - this.ToggleViewItems.Size = new System.Drawing.Size(164, 22); - this.ToggleViewItems.Tag = 3; - this.ToggleViewItems.Text = "Items"; - this.ToggleViewItems.Click += new System.EventHandler(this.ToggleView); + ToggleViewItems.Checked = true; + ToggleViewItems.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewItems.Name = "ToggleViewItems"; + ToggleViewItems.Size = new System.Drawing.Size(164, 22); + ToggleViewItems.Tag = 3; + ToggleViewItems.Text = "Items"; + ToggleViewItems.Click += ToggleView; // // ToggleViewLandTiles // - this.ToggleViewLandTiles.Checked = true; - this.ToggleViewLandTiles.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewLandTiles.Name = "ToggleViewLandTiles"; - this.ToggleViewLandTiles.Size = new System.Drawing.Size(164, 22); - this.ToggleViewLandTiles.Tag = 4; - this.ToggleViewLandTiles.Text = "LandTiles"; - this.ToggleViewLandTiles.Click += new System.EventHandler(this.ToggleView); + ToggleViewLandTiles.Checked = true; + ToggleViewLandTiles.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewLandTiles.Name = "ToggleViewLandTiles"; + ToggleViewLandTiles.Size = new System.Drawing.Size(164, 22); + ToggleViewLandTiles.Tag = 4; + ToggleViewLandTiles.Text = "LandTiles"; + ToggleViewLandTiles.Click += ToggleView; // // ToggleViewTexture // - this.ToggleViewTexture.Checked = true; - this.ToggleViewTexture.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewTexture.Name = "ToggleViewTexture"; - this.ToggleViewTexture.Size = new System.Drawing.Size(164, 22); - this.ToggleViewTexture.Tag = 5; - this.ToggleViewTexture.Text = "Texture"; - this.ToggleViewTexture.Click += new System.EventHandler(this.ToggleView); + ToggleViewTexture.Checked = true; + ToggleViewTexture.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewTexture.Name = "ToggleViewTexture"; + ToggleViewTexture.Size = new System.Drawing.Size(164, 22); + ToggleViewTexture.Tag = 5; + ToggleViewTexture.Text = "Texture"; + ToggleViewTexture.Click += ToggleView; // // ToggleViewGumps // - this.ToggleViewGumps.Checked = true; - this.ToggleViewGumps.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewGumps.Name = "ToggleViewGumps"; - this.ToggleViewGumps.Size = new System.Drawing.Size(164, 22); - this.ToggleViewGumps.Tag = 6; - this.ToggleViewGumps.Text = "Gumps"; - this.ToggleViewGumps.Click += new System.EventHandler(this.ToggleView); + ToggleViewGumps.Checked = true; + ToggleViewGumps.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewGumps.Name = "ToggleViewGumps"; + ToggleViewGumps.Size = new System.Drawing.Size(164, 22); + ToggleViewGumps.Tag = 6; + ToggleViewGumps.Text = "Gumps"; + ToggleViewGumps.Click += ToggleView; // // ToggleViewSounds // - this.ToggleViewSounds.Checked = true; - this.ToggleViewSounds.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewSounds.Name = "ToggleViewSounds"; - this.ToggleViewSounds.Size = new System.Drawing.Size(164, 22); - this.ToggleViewSounds.Tag = 7; - this.ToggleViewSounds.Text = "Sounds"; - this.ToggleViewSounds.Click += new System.EventHandler(this.ToggleView); + ToggleViewSounds.Checked = true; + ToggleViewSounds.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewSounds.Name = "ToggleViewSounds"; + ToggleViewSounds.Size = new System.Drawing.Size(164, 22); + ToggleViewSounds.Tag = 7; + ToggleViewSounds.Text = "Sounds"; + ToggleViewSounds.Click += ToggleView; // // ToggleViewHue // - this.ToggleViewHue.Checked = true; - this.ToggleViewHue.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewHue.Name = "ToggleViewHue"; - this.ToggleViewHue.Size = new System.Drawing.Size(164, 22); - this.ToggleViewHue.Tag = 8; - this.ToggleViewHue.Text = "Hue"; - this.ToggleViewHue.Click += new System.EventHandler(this.ToggleView); + ToggleViewHue.Checked = true; + ToggleViewHue.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewHue.Name = "ToggleViewHue"; + ToggleViewHue.Size = new System.Drawing.Size(164, 22); + ToggleViewHue.Tag = 8; + ToggleViewHue.Text = "Hue"; + ToggleViewHue.Click += ToggleView; // // ToggleViewFonts // - this.ToggleViewFonts.Checked = true; - this.ToggleViewFonts.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewFonts.Name = "ToggleViewFonts"; - this.ToggleViewFonts.Size = new System.Drawing.Size(164, 22); - this.ToggleViewFonts.Tag = 9; - this.ToggleViewFonts.Text = "Fonts"; - this.ToggleViewFonts.Click += new System.EventHandler(this.ToggleView); + ToggleViewFonts.Checked = true; + ToggleViewFonts.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewFonts.Name = "ToggleViewFonts"; + ToggleViewFonts.Size = new System.Drawing.Size(164, 22); + ToggleViewFonts.Tag = 9; + ToggleViewFonts.Text = "Fonts"; + ToggleViewFonts.Click += ToggleView; // // ToggleViewCliloc // - this.ToggleViewCliloc.Checked = true; - this.ToggleViewCliloc.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewCliloc.Name = "ToggleViewCliloc"; - this.ToggleViewCliloc.Size = new System.Drawing.Size(164, 22); - this.ToggleViewCliloc.Tag = 10; - this.ToggleViewCliloc.Text = "Cliloc"; - this.ToggleViewCliloc.Click += new System.EventHandler(this.ToggleView); + ToggleViewCliloc.Checked = true; + ToggleViewCliloc.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewCliloc.Name = "ToggleViewCliloc"; + ToggleViewCliloc.Size = new System.Drawing.Size(164, 22); + ToggleViewCliloc.Tag = 10; + ToggleViewCliloc.Text = "Cliloc"; + ToggleViewCliloc.Click += ToggleView; // // ToggleViewMap // - this.ToggleViewMap.Checked = true; - this.ToggleViewMap.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewMap.Name = "ToggleViewMap"; - this.ToggleViewMap.Size = new System.Drawing.Size(164, 22); - this.ToggleViewMap.Tag = 11; - this.ToggleViewMap.Text = "Map"; - this.ToggleViewMap.Click += new System.EventHandler(this.ToggleView); + ToggleViewMap.Checked = true; + ToggleViewMap.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewMap.Name = "ToggleViewMap"; + ToggleViewMap.Size = new System.Drawing.Size(164, 22); + ToggleViewMap.Tag = 11; + ToggleViewMap.Text = "Map"; + ToggleViewMap.Click += ToggleView; // // ToggleViewLight // - this.ToggleViewLight.Checked = true; - this.ToggleViewLight.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewLight.Name = "ToggleViewLight"; - this.ToggleViewLight.Size = new System.Drawing.Size(164, 22); - this.ToggleViewLight.Tag = 12; - this.ToggleViewLight.Text = "Light"; - this.ToggleViewLight.Click += new System.EventHandler(this.ToggleView); + ToggleViewLight.Checked = true; + ToggleViewLight.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewLight.Name = "ToggleViewLight"; + ToggleViewLight.Size = new System.Drawing.Size(164, 22); + ToggleViewLight.Tag = 12; + ToggleViewLight.Text = "Light"; + ToggleViewLight.Click += ToggleView; // // ToggleViewSpeech // - this.ToggleViewSpeech.Checked = true; - this.ToggleViewSpeech.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewSpeech.Name = "ToggleViewSpeech"; - this.ToggleViewSpeech.Size = new System.Drawing.Size(164, 22); - this.ToggleViewSpeech.Tag = 13; - this.ToggleViewSpeech.Text = "Speech"; - this.ToggleViewSpeech.Click += new System.EventHandler(this.ToggleView); + ToggleViewSpeech.Checked = true; + ToggleViewSpeech.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewSpeech.Name = "ToggleViewSpeech"; + ToggleViewSpeech.Size = new System.Drawing.Size(164, 22); + ToggleViewSpeech.Tag = 13; + ToggleViewSpeech.Text = "Speech"; + ToggleViewSpeech.Click += ToggleView; // // ToggleViewSkills // - this.ToggleViewSkills.Checked = true; - this.ToggleViewSkills.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewSkills.Name = "ToggleViewSkills"; - this.ToggleViewSkills.Size = new System.Drawing.Size(164, 22); - this.ToggleViewSkills.Tag = 14; - this.ToggleViewSkills.Text = "Skills"; - this.ToggleViewSkills.Click += new System.EventHandler(this.ToggleView); + ToggleViewSkills.Checked = true; + ToggleViewSkills.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewSkills.Name = "ToggleViewSkills"; + ToggleViewSkills.Size = new System.Drawing.Size(164, 22); + ToggleViewSkills.Tag = 14; + ToggleViewSkills.Text = "Skills"; + ToggleViewSkills.Click += ToggleView; // // ToggleViewAnimData // - this.ToggleViewAnimData.Checked = true; - this.ToggleViewAnimData.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewAnimData.Name = "ToggleViewAnimData"; - this.ToggleViewAnimData.Size = new System.Drawing.Size(164, 22); - this.ToggleViewAnimData.Tag = 15; - this.ToggleViewAnimData.Text = "AnimData"; - this.ToggleViewAnimData.Click += new System.EventHandler(this.ToggleView); + ToggleViewAnimData.Checked = true; + ToggleViewAnimData.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewAnimData.Name = "ToggleViewAnimData"; + ToggleViewAnimData.Size = new System.Drawing.Size(164, 22); + ToggleViewAnimData.Tag = 15; + ToggleViewAnimData.Text = "AnimData"; + ToggleViewAnimData.Click += ToggleView; // // ToggleViewMultiMap // - this.ToggleViewMultiMap.Checked = true; - this.ToggleViewMultiMap.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewMultiMap.Name = "ToggleViewMultiMap"; - this.ToggleViewMultiMap.Size = new System.Drawing.Size(164, 22); - this.ToggleViewMultiMap.Tag = 16; - this.ToggleViewMultiMap.Text = "MultiMap/Facets"; - this.ToggleViewMultiMap.Click += new System.EventHandler(this.ToggleView); + ToggleViewMultiMap.Checked = true; + ToggleViewMultiMap.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewMultiMap.Name = "ToggleViewMultiMap"; + ToggleViewMultiMap.Size = new System.Drawing.Size(164, 22); + ToggleViewMultiMap.Tag = 16; + ToggleViewMultiMap.Text = "MultiMap/Facets"; + ToggleViewMultiMap.Click += ToggleView; // // ToggleViewDress // - this.ToggleViewDress.Checked = true; - this.ToggleViewDress.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewDress.Name = "ToggleViewDress"; - this.ToggleViewDress.Size = new System.Drawing.Size(164, 22); - this.ToggleViewDress.Tag = 17; - this.ToggleViewDress.Text = "Dress"; - this.ToggleViewDress.Click += new System.EventHandler(this.ToggleView); + ToggleViewDress.Checked = true; + ToggleViewDress.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewDress.Name = "ToggleViewDress"; + ToggleViewDress.Size = new System.Drawing.Size(164, 22); + ToggleViewDress.Tag = 17; + ToggleViewDress.Text = "Dress"; + ToggleViewDress.Click += ToggleView; // // ToggleViewTileData // - this.ToggleViewTileData.Checked = true; - this.ToggleViewTileData.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewTileData.Name = "ToggleViewTileData"; - this.ToggleViewTileData.Size = new System.Drawing.Size(164, 22); - this.ToggleViewTileData.Tag = 18; - this.ToggleViewTileData.Text = "TileData"; - this.ToggleViewTileData.Click += new System.EventHandler(this.ToggleView); + ToggleViewTileData.Checked = true; + ToggleViewTileData.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewTileData.Name = "ToggleViewTileData"; + ToggleViewTileData.Size = new System.Drawing.Size(164, 22); + ToggleViewTileData.Tag = 18; + ToggleViewTileData.Text = "TileData"; + ToggleViewTileData.Click += ToggleView; // // ToggleViewRadarColor // - this.ToggleViewRadarColor.Checked = true; - this.ToggleViewRadarColor.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewRadarColor.Name = "ToggleViewRadarColor"; - this.ToggleViewRadarColor.Size = new System.Drawing.Size(164, 22); - this.ToggleViewRadarColor.Tag = 19; - this.ToggleViewRadarColor.Text = "RadarColor"; - this.ToggleViewRadarColor.Click += new System.EventHandler(this.ToggleView); + ToggleViewRadarColor.Checked = true; + ToggleViewRadarColor.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewRadarColor.Name = "ToggleViewRadarColor"; + ToggleViewRadarColor.Size = new System.Drawing.Size(164, 22); + ToggleViewRadarColor.Tag = 19; + ToggleViewRadarColor.Text = "RadarColor"; + ToggleViewRadarColor.Click += ToggleView; // // ToggleViewSkillGrp // - this.ToggleViewSkillGrp.Checked = true; - this.ToggleViewSkillGrp.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewSkillGrp.Name = "ToggleViewSkillGrp"; - this.ToggleViewSkillGrp.Size = new System.Drawing.Size(164, 22); - this.ToggleViewSkillGrp.Tag = 20; - this.ToggleViewSkillGrp.Text = "SkillGrp"; - this.ToggleViewSkillGrp.Click += new System.EventHandler(this.ToggleView); - // + ToggleViewSkillGrp.Checked = true; + ToggleViewSkillGrp.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewSkillGrp.Name = "ToggleViewSkillGrp"; + ToggleViewSkillGrp.Size = new System.Drawing.Size(164, 22); + ToggleViewSkillGrp.Tag = 20; + ToggleViewSkillGrp.Text = "SkillGrp"; + ToggleViewSkillGrp.Click += ToggleView; + // // ToggleViewVerdata - // - this.ToggleViewVerdata.Checked = true; - this.ToggleViewVerdata.CheckState = System.Windows.Forms.CheckState.Checked; - this.ToggleViewVerdata.Name = "ToggleViewVerdata"; - this.ToggleViewVerdata.Size = new System.Drawing.Size(164, 22); - this.ToggleViewVerdata.Tag = 21; - this.ToggleViewVerdata.Text = "Verdata"; - this.ToggleViewVerdata.Click += new System.EventHandler(this.ToggleView); - // + // + ToggleViewVerdata.Checked = true; + ToggleViewVerdata.CheckState = System.Windows.Forms.CheckState.Checked; + ToggleViewVerdata.Name = "ToggleViewVerdata"; + ToggleViewVerdata.Size = new System.Drawing.Size(164, 22); + ToggleViewVerdata.Tag = 21; + ToggleViewVerdata.Text = "Verdata"; + ToggleViewVerdata.Click += ToggleView; + // // ExternToolsDropDown // - this.ExternToolsDropDown.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.ExternToolsDropDown.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.manageToolStripMenuItem}); - this.ExternToolsDropDown.ImageTransparentColor = System.Drawing.Color.Magenta; - this.ExternToolsDropDown.Name = "ExternToolsDropDown"; - this.ExternToolsDropDown.Size = new System.Drawing.Size(83, 22); - this.ExternToolsDropDown.Text = "Extern Tools"; + ExternToolsDropDown.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + ExternToolsDropDown.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { manageToolStripMenuItem }); + ExternToolsDropDown.ImageTransparentColor = System.Drawing.Color.Magenta; + ExternToolsDropDown.Name = "ExternToolsDropDown"; + ExternToolsDropDown.Size = new System.Drawing.Size(83, 22); + ExternToolsDropDown.Text = "Extern Tools"; // // manageToolStripMenuItem // - this.manageToolStripMenuItem.Name = "manageToolStripMenuItem"; - this.manageToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.manageToolStripMenuItem.Text = "Manage.."; - this.manageToolStripMenuItem.Click += new System.EventHandler(this.OnClickToolManage); + manageToolStripMenuItem.Name = "manageToolStripMenuItem"; + manageToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + manageToolStripMenuItem.Text = "Manage.."; + manageToolStripMenuItem.Click += OnClickToolManage; // // toolStripDropDownButtonPlugins // - this.toolStripDropDownButtonPlugins.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.toolStripDropDownButtonPlugins.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.manageToolStripMenuItem1, - this.tsPluginsSeparator}); - this.toolStripDropDownButtonPlugins.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripDropDownButtonPlugins.Name = "toolStripDropDownButtonPlugins"; - this.toolStripDropDownButtonPlugins.Size = new System.Drawing.Size(59, 22); - this.toolStripDropDownButtonPlugins.Text = "Plugins"; + toolStripDropDownButtonPlugins.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + toolStripDropDownButtonPlugins.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { manageToolStripMenuItem1, tsPluginsSeparator }); + toolStripDropDownButtonPlugins.ImageTransparentColor = System.Drawing.Color.Magenta; + toolStripDropDownButtonPlugins.Name = "toolStripDropDownButtonPlugins"; + toolStripDropDownButtonPlugins.Size = new System.Drawing.Size(59, 22); + toolStripDropDownButtonPlugins.Text = "Plugins"; // // manageToolStripMenuItem1 // - this.manageToolStripMenuItem1.Name = "manageToolStripMenuItem1"; - this.manageToolStripMenuItem1.Size = new System.Drawing.Size(123, 22); - this.manageToolStripMenuItem1.Text = "Manage.."; - this.manageToolStripMenuItem1.Click += new System.EventHandler(this.OnClickManagePlugins); + manageToolStripMenuItem1.Name = "manageToolStripMenuItem1"; + manageToolStripMenuItem1.Size = new System.Drawing.Size(123, 22); + manageToolStripMenuItem1.Text = "Manage.."; + manageToolStripMenuItem1.Click += OnClickManagePlugins; // // tsPluginsSeparator // - this.tsPluginsSeparator.Name = "tsPluginsSeparator"; - this.tsPluginsSeparator.Size = new System.Drawing.Size(120, 6); + tsPluginsSeparator.Name = "tsPluginsSeparator"; + tsPluginsSeparator.Size = new System.Drawing.Size(120, 6); // // toolStripDropDownButtonHelp // - this.toolStripDropDownButtonHelp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.toolStripDropDownButtonHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItemHelp, - this.toolStripSeparator1, - this.toolStripMenuItemAbout}); - this.toolStripDropDownButtonHelp.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripDropDownButtonHelp.Name = "toolStripDropDownButtonHelp"; - this.toolStripDropDownButtonHelp.Size = new System.Drawing.Size(45, 22); - this.toolStripDropDownButtonHelp.Text = "Help"; - this.toolStripDropDownButtonHelp.ToolTipText = "Help"; + toolStripDropDownButtonHelp.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + toolStripDropDownButtonHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItemHelp, toolStripSeparator1, toolStripMenuItemAbout }); + toolStripDropDownButtonHelp.ImageTransparentColor = System.Drawing.Color.Magenta; + toolStripDropDownButtonHelp.Name = "toolStripDropDownButtonHelp"; + toolStripDropDownButtonHelp.Size = new System.Drawing.Size(45, 22); + toolStripDropDownButtonHelp.Text = "Help"; + toolStripDropDownButtonHelp.ToolTipText = "Help"; // // toolStripMenuItemHelp // - this.toolStripMenuItemHelp.Name = "toolStripMenuItemHelp"; - this.toolStripMenuItemHelp.Size = new System.Drawing.Size(107, 22); - this.toolStripMenuItemHelp.Text = "Help"; - this.toolStripMenuItemHelp.Click += new System.EventHandler(this.ToolStripMenuItemHelp_Click); + toolStripMenuItemHelp.Name = "toolStripMenuItemHelp"; + toolStripMenuItemHelp.Size = new System.Drawing.Size(107, 22); + toolStripMenuItemHelp.Text = "Help"; + toolStripMenuItemHelp.Click += ToolStripMenuItemHelp_Click; // // toolStripSeparator1 // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(104, 6); + toolStripSeparator1.Name = "toolStripSeparator1"; + toolStripSeparator1.Size = new System.Drawing.Size(104, 6); // // toolStripMenuItemAbout // - this.toolStripMenuItemAbout.Name = "toolStripMenuItemAbout"; - this.toolStripMenuItemAbout.Size = new System.Drawing.Size(107, 22); - this.toolStripMenuItemAbout.Text = "About"; - this.toolStripMenuItemAbout.Click += new System.EventHandler(this.ToolStripMenuItemAbout_Click); + toolStripMenuItemAbout.Name = "toolStripMenuItemAbout"; + toolStripMenuItemAbout.Size = new System.Drawing.Size(107, 22); + toolStripMenuItemAbout.Text = "About"; + toolStripMenuItemAbout.Click += ToolStripMenuItemAbout_Click; + // + // toolStripSeparator2 + // + toolStripSeparator2.Name = "toolStripSeparator2"; + toolStripSeparator2.Size = new System.Drawing.Size(209, 6); + // + // toolStripSeparator3 + // + toolStripSeparator3.Name = "toolStripSeparator3"; + toolStripSeparator3.Size = new System.Drawing.Size(209, 6); // // MainForm // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(914, 651); - this.Controls.Add(this.TabPanel); - this.Controls.Add(this.tsMainMenu); - this.DoubleBuffered = true; - this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.MinimumSize = new System.Drawing.Size(750, 550); - this.Name = "MainForm"; - this.Text = "UOFiddler"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnClosing); - this.TabPanel.ResumeLayout(false); - this.contextMenuStripMainForm.ResumeLayout(false); - this.StartTab.ResumeLayout(false); - this.StartTab.PerformLayout(); - this.MultisTab.ResumeLayout(false); - this.AnimationTab.ResumeLayout(false); - this.ItemsTab.ResumeLayout(false); - this.LandTilesTab.ResumeLayout(false); - this.TextureTab.ResumeLayout(false); - this.GumpsTab.ResumeLayout(false); - this.SoundsTab.ResumeLayout(false); - this.HuesTab.ResumeLayout(false); - this.FontsTab.ResumeLayout(false); - this.ClilocTab.ResumeLayout(false); - this.MapTab.ResumeLayout(false); - this.LightTab.ResumeLayout(false); - this.SpeechTab.ResumeLayout(false); - this.SkillsTab.ResumeLayout(false); - this.AnimDataTab.ResumeLayout(false); - this.MultiMapTab.ResumeLayout(false); - this.DressTab.ResumeLayout(false); - this.TileDataTab.ResumeLayout(false); - this.RadarColTab.ResumeLayout(false); - this.SkillGrpTab.ResumeLayout(false); - this.VerdataTab.ResumeLayout(false); - this.tsMainMenu.ResumeLayout(false); - this.tsMainMenu.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); + AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + ClientSize = new System.Drawing.Size(914, 651); + Controls.Add(TabPanel); + Controls.Add(tsMainMenu); + DoubleBuffered = true; + Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + MinimumSize = new System.Drawing.Size(750, 550); + Name = "MainForm"; + Text = "UOFiddler"; + FormClosing += OnClosing; + TabPanel.ResumeLayout(false); + contextMenuStripMainForm.ResumeLayout(false); + StartTab.ResumeLayout(false); + StartTab.PerformLayout(); + MultisTab.ResumeLayout(false); + AnimationTab.ResumeLayout(false); + ItemsTab.ResumeLayout(false); + LandTilesTab.ResumeLayout(false); + TextureTab.ResumeLayout(false); + GumpsTab.ResumeLayout(false); + SoundsTab.ResumeLayout(false); + HuesTab.ResumeLayout(false); + FontsTab.ResumeLayout(false); + ClilocTab.ResumeLayout(false); + MapTab.ResumeLayout(false); + LightTab.ResumeLayout(false); + SpeechTab.ResumeLayout(false); + SkillsTab.ResumeLayout(false); + AnimDataTab.ResumeLayout(false); + MultiMapTab.ResumeLayout(false); + DressTab.ResumeLayout(false); + TileDataTab.ResumeLayout(false); + RadarColTab.ResumeLayout(false); + SkillGrpTab.ResumeLayout(false); + VerdataTab.ResumeLayout(false); + tsMainMenu.ResumeLayout(false); + tsMainMenu.PerformLayout(); + ResumeLayout(false); + PerformLayout(); } @@ -1161,6 +1141,7 @@ private void InitializeComponent() private DressControl dressControl; private System.Windows.Forms.ToolStripDropDownButton SettingsMenu; private System.Windows.Forms.ToolStripMenuItem AlwaysOnTopMenuitem; + private System.Windows.Forms.ToolStripMenuItem darkModeMenuItem; private System.Windows.Forms.ToolStripMenuItem pathSettingsMenuItem; private System.Windows.Forms.ToolStripSeparator tsSettingsSeparator; private System.Windows.Forms.ToolStripMenuItem reloadFilesMenuItem; @@ -1215,6 +1196,8 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemHelp; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemAbout; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; } } diff --git a/UoFiddler/Forms/MainForm.cs b/UoFiddler/Forms/MainForm.cs index 93388790..0ed44a6f 100644 --- a/UoFiddler/Forms/MainForm.cs +++ b/UoFiddler/Forms/MainForm.cs @@ -20,6 +20,7 @@ using Ultima.Helpers; using UoFiddler.Classes; using UoFiddler.Controls.Classes; +using UoFiddler.Properties; using UoFiddler.Controls.Plugin; namespace UoFiddler.Forms @@ -51,6 +52,15 @@ public MainForm(ILogger logger) _log = logger; InitializeComponent(); + darkModeMenuItem.Checked = AppSettings.DarkMode; + + if (AppSettings.DarkMode) + { + StartTab.BackColor = Color.FromArgb(32, 32, 32); + StartTab.BackgroundImage = Resources.UOFiddler_bk; + reloadFilesMenuItem.ForeColor = Color.OrangeRed; + } + if (FiddlerOptions.StoreFormState) { if (FiddlerOptions.MaximisedForm) @@ -128,6 +138,13 @@ private void OnClickAlwaysTop(object sender, EventArgs e) ControlEvents.FireAlwaysOnTopChangeEvent(TopMost); } + private void OnClickDarkMode(object sender, EventArgs e) + { + AppSettings.DarkMode = darkModeMenuItem.Checked; + AppSettings.Save(); + MessageBox.Show("Dark mode setting will take effect after restarting the application.", "Restart Required", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + private void ReloadFiles(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; diff --git a/UoFiddler/Forms/MainForm.resx b/UoFiddler/Forms/MainForm.resx index 8e38f4b4..c11306e9 100644 --- a/UoFiddler/Forms/MainForm.resx +++ b/UoFiddler/Forms/MainForm.resx @@ -1,4 +1,64 @@ + + diff --git a/UoFiddler/Forms/OptionsForm.cs b/UoFiddler/Forms/OptionsForm.cs index d9f441c4..93471269 100644 --- a/UoFiddler/Forms/OptionsForm.cs +++ b/UoFiddler/Forms/OptionsForm.cs @@ -15,6 +15,7 @@ using System.Linq; using System.Windows.Forms; using Ultima; +using UoFiddler.Classes; using UoFiddler.Controls.Classes; namespace UoFiddler.Forms @@ -265,9 +266,18 @@ private void RestoreDefaultsButton_Click(object sender, EventArgs e) checkboxRemoveTileBorder.Checked = false; - TileFocusColorComboBox.SelectedItem = Color.DarkRed; - TileSelectionColorComboBox.SelectedItem = Color.DodgerBlue; - PreviewBackgroundColorButton.BackColor = Color.White; + if (AppSettings.DarkMode) + { + TileFocusColorComboBox.SelectedItem = Color.Red; + TileSelectionColorComboBox.SelectedItem = Color.MediumTurquoise; + PreviewBackgroundColorButton.BackColor = Color.FromArgb(32, 32, 32); + } + else + { + TileFocusColorComboBox.SelectedItem = Color.DarkRed; + TileSelectionColorComboBox.SelectedItem = Color.DodgerBlue; + PreviewBackgroundColorButton.BackColor = Color.White; + } } private void PreviewBackgroundColorButton_Click(object sender, EventArgs e) diff --git a/UoFiddler/Program.cs b/UoFiddler/Program.cs index fc8b7b48..fafec141 100644 --- a/UoFiddler/Program.cs +++ b/UoFiddler/Program.cs @@ -48,7 +48,7 @@ private static void Main() try { - FiddlerAppContext fiddlerAppContext = new FiddlerAppContext(serviceProvider); + FiddlerAppContext fiddlerAppContext = new(serviceProvider); Application.Run(fiddlerAppContext); } catch (Exception err) diff --git a/UoFiddler/Properties/Resources.Designer.cs b/UoFiddler/Properties/Resources.Designer.cs index 9101caf8..40d37de1 100644 --- a/UoFiddler/Properties/Resources.Designer.cs +++ b/UoFiddler/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace UoFiddler.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class Resources { @@ -70,6 +70,16 @@ public static System.Drawing.Bitmap UOFiddler { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap UOFiddler_bk { + get { + object obj = ResourceManager.GetObject("UOFiddler-bk", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// diff --git a/UoFiddler/Properties/Resources.resx b/UoFiddler/Properties/Resources.resx index 533362e3..6b9cbeb8 100644 --- a/UoFiddler/Properties/Resources.resx +++ b/UoFiddler/Properties/Resources.resx @@ -124,4 +124,7 @@ ..\Resources\UOFiddlerIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\UOFiddler-bk.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/UoFiddler/Resources/UOFiddler-bk.png b/UoFiddler/Resources/UOFiddler-bk.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b6dc04a7cf121e34de985037ad611f8db84212 GIT binary patch literal 189747 zcmV)OK(@b$P)00009a7bBm003M@ z003M@0Th%&K>z?C07*naRCt`^y?3xC$8jf^S>65l=goLO17HTg0EG7*q)332sErGr zD4r-!aTO=+>UKBcLKmmq)9xRN+lY(1y->u;@U&cVNf9*SQZNMJ2@Eg*NR9rWFqyQ-2lqf5o6CRxdIC|Idk2Q`naoLhh9mw3sUWP3C$(;EWB z)-Tt9m^jH#F6DfAwaTu(Mjpf^iwLMnGovfWFp?Z*v{|sy%=h~ylQ}Zx7ptf4y}QZJ zQqNkM0aZC4h0;qv1{qeGAB1sHz%Yiab!{z@e%2_OsVBVv$dW_=E|y{362%(T#saZq z)6pb->CG`gV-)8Bkx?EPv$4bwk&z0iM#^e31b{M(0dFqIn5~5MD2nB1i(1dNz*&YlNrQi6~-9tOAjC;3N|U{43uTTsnGP{3&&4%Ba;CdXS@7I;T{Yp5~g~win~>8dqgmxv4R$ zy0VI?WNVz1AFNo%x)Qw6bhy+h$RGNn0EAa1rO-<6vp``ozl+thdUru-8-iVupq;lg ztxR}Ch8!ff98_x*L=t+40=YzgISw&(y2N#nHB}%oOz;)}6R#16;G`FYRg!h8p}62E z0szhTzh0cLRGBp} zO09SB%P&?7$XCAAOr?E@Ad)ne$MHW!!#dkp z^U{kT6vnI#t}d2j4UwhN{IyL1@2a5GQlpT6fRgWSdMBbCTnQcP>h7I~UfOeG!=sn( z)@1^qrh&%phyX%mTQ!D84fd>~i``TN;K;;EPCBO$D;NPpW?fQ9y3jf?qOukQcuKeuQN{YBjt4Bg4iYHE$o2rY8a-mUj(=}|D%`|zay;8%~ zx={N0Q6bH5bc-M%SnpHP)dgr%Vr_=DbQ3aXC6Ae2!Z)p`dQPb(Ke-yL5r#MklR?K_ z3vrWSvr>}_qEsa+THP>K0S>e}F-IELqy_rLq@lKbNBU9BUgC zJAO-&SM^ab9e`xhQ?wyNKx&yOAjPm3*N}RPagz275o4fAuq?@9xu9TKn}S&+D4#6w z_>^2zj4|u#mQIL5fYd?8N>nh+bYgPQ{8J|7>=AnkxpIAbK7uCmr8yb8?=6i%#!?K; z^s$HKVRcNgMyMa;Mtjrq=1ZPVkIlEr9w{*7vW>Q+84XvfDWpd_ODUY_CSBz6CuG|J zWsDkxSfH3LY%vlg3#pZ;I~(z0AT3Qiurj9U!HQnyPuiE3bQe8C^X3(V{AkbQKPU17 zV*iR6_dLZP2DF$wECc*{bV*s2SF7Y8R?gY3G<%O+vx0KkChI4FbZ$BYiEk=n3YyBw z{2}62ZNJg)`Dyx8?BMskEB$oO_Qh-GKT5KWP=Y%Qwr?j=4W8Rue0o#y?}js z2s74V66Cf$1nW=hLX{?(Z(FjxHPn#Vq?BH1CR#`fp!yd)P__W1D&!DkX3n{hSs$bn~ViCTFu=h19-CAf0snAFwR_cBl~Q_y=^Hs)oGp0!xAMmJZ7 zHrM$BQ6j2KQPLyR7gM0p#ndsH;+{LK8=mn({!E zsVRhFWQMGEYLIQHTD`_nRxb@ftVXD<_xuUf=+jY5=cbl)ju3%S*0X%Nm6kR!)O>Rm zgK~;OuRfMOCaJX1TjUhnwQ48=Aly4G|7qXCfO`!p&5FPwrR7jg{x_(m4ScYlFvzx zFlO~WS5mHAEgDPaasKEzYp}G^D$O2$d~5=on#4Fh=Me_VDkfsG!U7H+ly zo1*en$4RP6q4!o?#oA|3(&U}z-i zCYL7Dy{sb4{i#x;sb`vFQF)|gDLf=RqiJerjF>JA8E()_3jlIwQCs#zW7c}5GGCW%pl(UyCi17CW1gXd*Q~O zE?qi23HOD=A$-zxNB*h{#{k6~&P~vbBIRaU?W|TWd9(G18)WIg!j;xva~D~H=;+;B zu_}jBPU)-Bkm>rQSJc83tqJGi#-g0HVJ;O^AI*`Pl8(&UUbLk1BwHp|=}@^FO3nNb z0Ws2|1KCulfWn%oL5;lxuwzFb|5oWEDW>35|DYBF*mTI@M$)5oq-~@{Bh?@QN;nQ0+jn*AT?uB<>00Q-Q6H)~ zs9vVSd|=;Po;e(<%N%USapbCa3<+{H+oN+N=dSBCb>+&&r-D^fhw&{)HXySPZZ4T# zm^4+PaiVeCBQ?s5HbjaYvX^CMIalwm24e?8x?*N>7U$ZUm**KV5&apPAa&N7e4z5l zISCs9A$8nfv2x@Q=Oh!=TshUO8Vclbr7c?0QRtxCB~>|Y z%0{A+B$E>YrZP^^u|jf=Tq>J(_puCY(E4VvWW^pTtjU|^H+$zn21!-NKoTWq@q^iMjB0^k9t-EDB`vhOqC+}UT*XmsHbJ#LO#_s9 zByl)nOx~<(S_SEd>RHPiA-V6@3KnL2>#vYXr5%k*Xp9KxC*s!6Y5O z@R=zCOyi8J;i`!Q8jC#{eF_07N1$m(x>sF7jsg_(HOP5-12`A3f2(;SfYGlvJT8OHKTK9PJZ z%z}J#I_P${Y;S#8igj^WwIpw)mX*}z^9AVzakEN}U$%x6<|#VS)Qss6)=@OLT6#%d z!k`KwsVTEeb)`*^26a?4Q$SlUxzg=og1{aPz_f*9vLPEt=*rR+@j^U@4LO|IM#G@2 zfy}jRo}!Qam?nhey%_+QdSB6iQC)Q1&7k#~43slnzcS%~1W;*&!)3~-5ag7i)&(-c zlNd`VWXdB=m5Aw;QOPhjHYDlVqc)*JgD$l^u&z%{W3;g*pw}dm_Ra6_MXQT#z2F0XCV<{!5&OT+HoHJJpt;urPn1Ot9>NVE` z>SXC7b~}~h8no$_m725ASkl^S_LkMgT%n*uEvevC4_bi?t?F~F9%PBBF|(x7RqbX2 z4Q5P_obS-AbhOHDJg0{mYijnX^Ug_}YLe9u)XI`JiE^cLa-kFqwNPzv&Ov`eFF_R> zdz#f*jU-3srbJo;tBW@Eqjj+ovH1jvR3HzGWt2{&GdMVy#i&-FV_TXoOnH(9a@8>g z>NHzm6+yVoRG=I~*Z5HuyxG|5g;l#j6-_l)0>HJmRwB}*Gm~M=PqWl;UJ=A5pp}2H z&7(397x_K8_edn5Qp|`Bm{P`cs~j>e?&?ZNH3&eSZH&Maj50=!rqk^ zbCj;*T7v+sdsqEn@&cpu;)@VpZzk4?zGVf5xmt}=p0(a*XDrh^(XW5~6eKcAla3id1JNBCIHc)I`)T?PFlNP!SqPmNSx{@KabjwWYQT&frB9~xQll(p2X)@bIP z8NDskXnXU;X_RNHP3HWhy{tPQABCc=^dKfw$uVE8S<=`BwA6znbcD;4zFs4)O{$i9Y6P0v2L;aMMsBjwVsMRrD{)WE zGZB*tOH`tCBAKNSGj)YhQgzk) zn~L(8wEEQ^>0~vdI@I);ABUNub>qh#qS3k2bAL^Evook>l%-j%OZtimdA*a1J2qnq zoTJ>zmk3ItA(OrwLW`$Bgi&Zt?oT*=`#pbk+8P8*zgR2QC(eyb$GfTSe|=L-PFt@#=c z+JSl2WJW#(tI1+6ORcYFuM{}YNFy{j1fp0Ca;&0h@M)D)kqZ-iN}pg-#n+})Hqa<@ zaoI9~%P2V~Bc8M+Sc=siXnO(5nr^vZIvI)!kQOK|@ft)7kmlQ#v9eLn%Ck0Qy{tgf z9b8=pVJ%#Z3(=TCYBt)jDWhiRvH|^R6;SIdZ-CH7p=|dko%WXwO<6U$vWmIXvb`^>ANVNiReW5UJO_lKWc`W!}jJ19U{IwNY1+r5%lV zO%SUm(s0hy2Gtmfga{F6vTNmps!oGRQ(e+_B?T>NNm=C_lHeoB_~H(6rM4IV)a!_X z9_PlKrl)v1JBD}D)Trq;Rjm3qxfMu0{hOF0${|7a6+txNDN#5g##u2Kd-z=o)x3@<~%G;o&tEaEV(8Slc)tHQne0vBAigFbhlc(SrPyPvjK_RA$l*sha zdu0XpiYi1=ZcU=BYR6fNTiQnD2~eUvA_CR-Id!iL2x(jW-(IX7Nw^LJyk3jK?jkE%Q&AP5^9+ z)LbmRj1H;-d3F||S%o}Cb+Kg8M`KOp@T0ZSw5{2L#wwj(>(bChp)~0W;yLFu%FJT2 z_tML1vUa(`LYKDY%uU|NTwCHNVgmr$jYT;!=<5nBFYxWsE2)yGW6veI7E$r(Doy*!OZ$YLrM35Nm})4N_}N!~O>q_Z)HaXO3X z57iG6Z)Lg_t6b?iM@$$X&!-BhG0l^?2m(YnWzfVVS+xcDaXrrf0F5!Z8)?42$69hG zPV)}RR2s*cMOj^Q7T2Hv9uQ-(cm$nK`kEnw&#pwIZOEudvjpuxA3eu5vU_RWO}$Yb zD21*BP5KnKPz@O=4~AO0dl<<%Cy$hv&ARH%WG1VUowSR=CA}siq8Tpxpd>)047OJbW$$n zY4J6v6CgJa>%e4KWnLj_vO(D9V81wMSBoTQ#+b6iK_AMY>7A}I9ZHQRqiP&2 z`JgOuk&h;*Oz#m$c}_cOPF9sZjc`c=uGLsIfB=Y$rt(R&OX8}CbBUmW0@Zek%0PtD zxV74_=69$Uwuou;?HYQURtKteX%>YU$qkSdl1>=_V(j1~W&7y)>?OH{sNrJgAH;N6 z31Ykf2n4!&h#P3VMol}F?^3O6mR6cewHF_4HkJoD8JNk5Ih?UN(t&z3HghaAHa2>Z z(R8QXoqSe!N@iAH*BM9;HnWG`W=CHUxe-QJf?XTXp|iT1X3w~>fMoyzsvc7gQctVL z9mL>J{)=5CakL;ko@|V$ycbZFM8PTp2m#bN(~OT!9tB{n7yV#?91M*vs-mfwX@sH~ zpT-YupnX>_^}izBKyraOd2In>jJ_&KctAO__)ntaRIUV;0A-9rXG>ik07Mp5T`63N zjw%_&)VP}D>2sM*JXtN$KH{3xTqt{_F^L$c>a}I8DcQQhb5<-GXJcAa72Q1}acAie z8GHf_8AP1Kl~K}|l^B~6s?ya?MUX?L4NTppXH)j+f%#QPO5dUlBbv1K%_*h}=0;jz z9XbmIH4mm0sy&T3UF=$etf9@uJw{_@rRl!RHp*NRK_msu7ipw&pgJq6$QQv>X4jJ6 z*hJ;tOE1BP$$)16@@KN0t4Wv@K*?9b5a_cALDCpv(_$%8%JGH3q@}vfxkx^U-%kCb z!WEOgNU>A2Ag<-19~5uZk*7szyP9bfBn~tDw_0a&6G^y(2;`GVU3H=ifS6p!C2^2c0ty68ex!S?f&@{hoH($p zTOx$Tq|ug)rkdBJ)+W((va0dOv&moEdtqdxC{j$jQ_unz@=N|qZa5&7oOAKCulTFc zlndEZf+m`UC3Puj3Z%`X2gsq;bt#@SwFI#zuyVOk1`NAw||KL!Kh$!weQu#mPl&rEZaz>%(Rd z>7}N}qS3b=XXOxD9ANU0g_`t~=AgT}=`2Xj5wL6HUbLrWLRMj|$L3f$%}leu61eJ7 zMOnoRgO5Ot~F(XR5M(EayAkG2^rew#$#k@02u!tlPyQ!95`?uF&1w>Qr{W@ z04N)ZfS9C&fOK<-OX7rvxVu5~cX0zmh(8pXaQ(?&TU)7CDLWTMYa?sS zukD}|O4KH)B|~Hh({UhyBI`_2a{!QU929~H(h%PW1c1Pi0~h(KfFOZ_j3Z*aMa-yn zL`Vb-kpVD>PbY&$93ze#kRwJhKKG!C)I!uYQr+ov6P%>UE(vLPI*pj_g(}b(pXSOv z-iYZJekfNK2c*t*8a-G_Di@UwAT?pl5v#yyp{lJ_J*-NxGnG#XbJgal>k+h4e#lyu zL(54?TB;#YzKhWgD9s){9c6}!lLdYz8}h((d^sI82d%B#9yyOqnl1!uGb<E0a2*`yW zNkISsN$}1XaE>f_+dPk=B=3oM#KeU^&ZA^0#;p+K?P5`aMrr;9$!#ggi|gd)VmOa| zzT#JV0#2x%U{5g8yxQOG$& zQG~#m!x%cqz+ukN;PATj8%o6jA}%Z}T)a3jJv-fQb>thTVn78%&-GTUSTVL@yi%tjilPuXIF7T}Z1E_Jxe$!&L6#l-vey#L+OzblQMMHI zOzivO1sJ1Xty;bF?mNMC;w`{9w(uOcR;%{+_qm?OkU0(m#QFJ!+1c4J2pMx6#!98K zSMb8n=TUh0$l>$n&xcV6kw6~KIgdCxBKb!E9)=O;JPd<4?12!%kUOq3G%{4H^_7aA zXy$6-rbXx}AGup;%U>#JRia{&OPApOR^A18@iV`L&FbBBufb< zhgL1+L$918c@#scf{EK148A|OSO>rhX{BWMJT?#j=&H(05}c+4><_^0YiW&j5AA@B}$2+ zC<=oxig?5$*Ky+)&vT9;4?T}{T8($#+V#N)`>(%d^LM`Y_mk6e@mwUpCZ73K$2~WzJ!jF{xX)tNhuK;TgdJlXuZW~0jwFk=36yocJ)e>juVa)NvsN+Xb7;zpk#vI4-JXS81tF?;jdH|8{2T>SCoQFZU z*l0u%L;wiL7)!PxkpY0inBzFE%a{wU>o~6Kx-Mf50(X!(3?0NU3??Th_y6pj-Me1d zyYJwci!)KgN!BH2fw(Y3l_`iWI{>p06e&g?$#@r*bG~xr*x1N$tJ%2czWeUH=iW`5 zwp1!r*DW;LZN?n0;2}cC4?;g|cRE2B_?;jOc@RWl2yq-z@L0Lx_0`G+&t-s);~=mo z3|-Gdr@%RHHXFb>B6x1m^E^Z(Std5?^RK=7;y1qbpX$>WSB?&}Bj?P-^vpuj55aMS ziQ0fm_gRV5K#iIU@T1A1)Onf@W-I}jXi|VoMiERUWVk}b5_f|=4nXDVqdG@q2wF+p zx&%Lvsi8_-@#C~3MSPl8(sW$5RMLy&<(ed5lxhb>O*H2>_aUW1l=v^>XO>)6w+?DC zm5?=@s7!VRB*Q(fP7P~&#Qt82Mm8SEdi!BMs#zJf4y0O(J=V!ep)`iGhStRCh2bR? zlZULhO0x~ksCws3!_+L%w5UjfPfIiqgQ%7eSgB|rDiM^9?sz?}^#v;yxC;>&sbr>S&LEJwK!yt@;AcQDn%;B6f<~Uxl?T10g!w4M5 zWxyTR@jTCQ9oKOS1;_Q!bzSB#Ky)0p;2`jDc53qQp$~ri%47l4Nj07Eu3JhEZSb*omdT5QzkXJ;8YzzR_q1wjx5L95+%n8P`~{K9kl_q;nc zP+7lfxY2Cw`QT(bVhuk+$72i=eR4%cYe8y}R*edP1rUi8=pIB-vcw0=(6mCy+T#9T zTdP9<`m)mT7!)weK@I}IrXxsslW?oK2@%Htsex2xDxeG_B-+#bUdAOvmP9R_gSo(| z9&>?T)?_(8DvQawm!AcxV+F@wSMdBm16}bDwRu~R|q*U$Kf1;&@UAWK^S)0ZN{+EZnheW zE@O>mGmQ9_EnC-Y*fuz}t~R{dD^!XeD->PN^UCF7u~hUtCklfw3OPWj;6V@^J#t{z zuGfCDd)I{%r_o2RfEzcgE>+9>51l$Yxe!F$ahSuHd>BA_9uOgXPU)IynTnRG(J3hZ zNxP^75dav&(Xr9fCr@r%Iau|af``bEF|XNSYc^f;na}={Tkg1ndG6w3hl5ip6)KgI z>pC6ZZ!|jdbB)=#g=TZ{$ibhSdjH+#)LBHBug?SLwPKO;$YC%%IyN>wcJ9K&kt4^v zVtMVxt%xiP!+N7}=InXE!nt!3qeJ~;gXPF?S8CORM^4SQ!gdIV%yk$zj^j9qrx#aR zO%2GTGpV;Jnuwoxd6|n7Rnv6QxQ`bIG+ET2{6Iu*%$;^+j@r9s_*}U&*5VCSAH+#7 zGsjKiE7E{lp<339mYmj0YA7E5OLJK@O-_-R0IkYTmqZyV><)ZJaP=Q0A(_ zt-z^A!`7k=ZFQZ?PPw{*C>>X}$wEF8&b6f09KvKEKWfQ}7_y8xN8T$eRvXih4>C+n zlZf(`HJi(r;;zCbFI%7kTRWsduFg|ZjQ|LUQRD|T;M^wS}C7AabmFQ ztRFA5=gyQ^%Z=s>tX1-&zKT;RL{&GaI&JLCcwxP-z^hK!=S5W~=*(X{xNq+dUwq|; zowu&rxXE*IV6eZ|SM`d;P7o|MTCH}gSnx_N9yz%0Z~o%X|MOS={QSue#`{X82%HGY zm6B5|9y@(ua<f@_*j#!3^^B=OcbvK8|Ct`M?oM?h{?Y_LC8INQ@ zn+sDXIr3`AnkAss8nfiG4yV*?+_*7ozG=NYNJJ7Dfi&PGt>a;YPQ;<$awlv(aLbMY z1T)if({(@agWGStW^kxdEEfDAjF6RUL%^KH#d>3Qrd6MxxqKOzG-{^EWvcdl9n$iC0OXt4zwg2?)uGhIA0<;E)s@&H@ist{h*zdR1S4|JhR~ zzWa@@zWw7D>T|Qjg40(jG9HZdSBsuAP%8}%_1F6P<`)*`X6K9Lvg0}oS)IH=uGt!o+c4!i<6XDYA zWRziLi4%85^`j+ER;0}ODJ!`MF1eTsGtY=Q%vl|R0U$cDtR@LgCRdtY&dQigC0Lm; z-G$jWhe8fwS-Yc=w3!6WOt;5k?Q#{fPdSQ4Su-kAI!!38fwArsI?#iXyXwkH!5J7B z$e&l*2W0>(OcP`@9Y?nekR`)JfQT^IUmY76=(O4wCMGXWO|RX!VQ6IBD_2UjKIWAe za{#c}>dekJLRN6AgAL#L>HeeBi=DBJ+wc2@|KZcW^2Ph_zYln4&rjdkvuE##ljr9a z8lG2JwQ^+j*x);_zw{se>|ZZlJT*QvICXh)q1p1hf)CEgi_>Q(=NA2FuHFbCzH$dh zJ-#8U_Jfn6owEMRBbQaIlf|_|4iJBb6`Gx3uHKxTUz}N3sMe}OL$$`@?257e(Sgd| zpS<(htFK;v;|-fOZ*H}Ni1TB|j_lw2)7@{r_TGU#>({OM^k+VO*L@ELSUhm}#9}A< z{eS+yOf57gW*6t%(a@?jAuG%^gHso#FU_@P>zxSPMzeE%;*#I)Y~HkXXl&&8g{fob zr{)%Y0LB2__^WLWOLoU?;Q`7c0FbxwW@umUp6RMUqBViX1U4v^03yA$S2%01T7cpm zk}*;;M5c5!L$k;!F-rYWWP9l$X@qLU6-| z4OwDHqVZK0`GCAl^@*p7U)qN}gfI#Kfb)_5;*Hm=A0Hii{f*u0*RR>IXJ zIDD+p?1W+H`(dXOTzl;`pZw&f9(wfAMx*^#fAN>&E7sn2_r2>kte>B`wCA0-e)#M& z;1;&;ylZsTmUZjbu3IxUI#~MVSHJSYfBnV{TUOQzg@f;(zBt>A81qWS6X!3qxf^oV zL12tI@f+J&{A33T?`F-K^eQuc$x^XBv84^N0vzfibOeq2#qTxHO3~f6 zaeU24-(X*Gx@Whz16BuPhOs=&(Ch(vE#`n ze{tQqEe8(1|NL{$IgH(R|2@9n`FDT%Z<_5EL+q>8&Yn3PhEd6L*R5XBUnvg{4NOi< zl&h8F=gwcAYt`GK!yJc0vLntII*iG;9f6XGYS5F&PTV+E3vmqq>8p|@PEe{+E20Y1 z*E)i@-l-+FHXKwg-=^mUK&g&hMv4k>tMi=JSnWinO%xyvI+_u2V+f?p;uV)*3{S_U z8c1Q*9D_h9rAsxg&Q5aEzim;(4#bjlY8pr@NtR4uHHCb6OsM83Lo{}wJeWD9Jl4`0 z+68S%UXKWBo}~n{8f#sshL>8Fnl)11tm?Xwl7lSPT?&({oIE@0Cy-TD5iEhHWE5 z<(0#wKmWh~Z13(@@4R7S>UB>n z*wFBf+HN)W zA2={IIpwlAMncBWbr?ipe_t(VcbLN(%}yf-Bf$76BIYp097OSsM#6C>ZW)G~r3r$g zHa$s$d67*bD|--*(R%gsSQk^x?0$oRkU~_2M)C;$I3sD@XmTxtAvcWB#Vu% zY6RfvS6s5ww`?yCjBVa}eScqh-HL&K z|8M{J;9D;~a`*M4!^IH5?H@fq(>i(f5=S<-*oZKGfW~p+CtBjPiM|fsUb=%QT91XK zn9-|yvGoxuOsFO~Ts%(*3?K@lb|;*#w;GN1`gLo0*zT`+eHHhaXP;fWcHOPF-a0>D zhmapWeE6MrescNJ)Xtl3ZZ+F`_U`vP{@wT9{pcf)P0!4H@WBVa`03A#jEtT+bDBpS z5IH~?@sMMy;|D?1?u336AtG~-Iq^q#7>b?olzFZ*uN@&NR$n8bA|GPYq+RBn7Tqb| z1CxkByK6SA{8c3&v!NegdarC!Y2DnG2nxyapjehNB7rad7w1(Xu1!)ss*3n6Ua~?m zMeIb;kAz|_&MO>Bbuc7NG67N?r)nfwsmvtP>82gipg`Pa70W^!(1{iesERZNgUYNr zT=F^=1hAxo8FHlviY948fwZw!laq&OEv=`_pI3e=zwuQ>P^;{5jl4Z2C-Ttj$0TSr zFbC3V%;B<-&Ya>5&0q?mIa@JGJpdRtP{rd3OO2bwi*|=*ZFU{{8d2-aT;REq6Zh z@h8fa%EmQg|Nc+^^#||1`oJC6tQhO-AL#EmwZHq}uEVD$+95RkC`87Y%b4RhvAaiy ze5fnC*ru?@4rr^)EoLB{GYpC=XUf;!00EJs(`W_FPFSpz)^AwDgXZu+X|S*I+;cB& zxn}#08+M}WL_zfZ?|;A1Y#lmuq}6V(U$^e^rHk*r`|jBI*uxJ$a@QSqxt_an#mXoO zec!Jy*5jE=9$XQ_Gbb)glw7RSq%+#l>Cj9_rE0DLq85@`g2szMFv-${8%=Ub%1>%IRx?#v;)FeWsNfhnIk}MyHyG{kg1cTEAH?C%Bq91z-pc}3fA!OW2jz8D9#|*HoF=eE zEvD6JqsaE!&zzkqQ>X+)wHDYz0A*oRhM>Y7h$Za+u!!^cA;&0+JlCmI%1=J|#Ms!l zS15e`^S`=o-MYm_{plZk@7R&|c@*qBaNw2KUT?O;a~Ce(dG`aq@jJig6^rXukACax zUw!SFzkT@b?XDY^`Ul_KcXHq1i4Trn@Iwa3kTHgi!yHF^NG5ia(&uTSkbjn9k2s4s5bvUZ^2)k;O+{FT?=eDIOS`v(Rb*G0t3 z7cYPAbDw+ZrI+4%>rFsdwQ|Lgqesu5JGXhumhIcGFBFP1Gc&7Kttu9Z7cX9neLf-} zbC5CSFifs3JLFXr-6hV4(xh6r59*rb5OIa7WlRrMI!JMkZ1vDaDeS7`kmf;T02?}| zoCp{I6(iGQvZmxva;p-B`;Y|FOccpQSyVPSQ46Ms_>@ylaFcBO#-z3QTGu7l4z)|GW*)%=FQ0oO(t%B)SQ^MgO}wr zwQXuCh}mmNTcf7OMutd+6HZz zu`@V0NCneog7(*v2HGW^U|q}gUXAj+Z z?a-jpH!}RA*Y~~t)03ypPKTU1$UJ0>F_*<}eP!Y!U(2zZOk6eFU5&B?3{U+ii@&H6 z{|h;rt+$#je{6iTuTmW7D^E{PA3b&M@lSlB(+NgKMt1LhtI=qD>WL>VPF&csW%FyV zy*4&B$^Z}S-(M(rH{Ni==FM9xmC7x*-rCCGZJTfyg``xFWI{d-=Vc@^>?mI94c-I$y^LNU% zzKxqUf9Jd3ef;B3KK=_&0B{yI{==XB$&L*J=%q^+Z`!$YY;3&U>TKV>qtk95 zJ$!^?{8>}^rbGopdPGo*9Qnb4#7I#oa#S%8=ZV8jFvGG7WaR-<$`t&>j;@4Op1x@p z6vP7YQt;PRT)lo+*4s?eg z8*5>Nl4R4oA->`%bK{sEMM~l>q$<*xv3XdO0IV{jTR|5rF&v!~UrTYcv9)Fz5&F|Q zdY-M?Sdy{;v3W_~dRbR16c4mCF00E`FPg@zLuVmtzGzw-ZTfPU!3_MS1l6TynH_yQ zmvWHPO_SEP!a;h8n8%1mg+lSh8*aM(hU+(M-2C~^e_{Lf>-PQZXW#zT-?o~Kvu94f z`s&Nmv$KOE<6rpVuTM-|{EPqi7aKNg{@vgGea^g9D@VTi7ynOZ=HzwTRt%1goVZYb z_T{}7CKmyaF^umZLKfdOD!>2zVIrsrBUeD&w#a&=D7;T{(XZ7B7V3-Jwrwc5Sge(1 z7o+Xh-&81;5!vj_^s6tw@++VJ)s?GPPfbpK<};t!vv<$lJ$p89+Hm3g`ThG2UVp>& ztJbWUpIf+a?);gvXM&C&#h>T_&g3;hRdDS(-Vy}QhEgq$F&AFihO7kH*h-VCO9d^E z*Wcs?I-|Q*A(OY{IwfHNt=H}1Y)3m~UD|XR363P>C^@=pFDPn`Rdz&SAxHo_rL2uj zX{CKqDP$9U0g&O8)KJ122hcUI>QkKMGCAbrWx_T^r91XQMyYDr(xzyVfNCx~-}Bly z>FL3h?kr`T(rS9=t(VKROJe(~6pewbt!Ypt&6=IKo_@#81Szm74M{wqjY~@}d2pJE zW*I9OR$>Z9Dzzb#UkJdFuNWVH@`+CuOXWu&ee{us9~&PVeg4^J-uUq=%|`u=H(ozK zaqbWQ@DFz0e9N|Lx35^e>g{)SpF4N{OTYV1*KgcfuGP+*IQ;at|7N5T)CP)y)Bnxy zzcw-1;NT#D<2v!z){rsAn6`pqu8bOcS;{)-a-Ng1kyKi{8ne_p9{`DoB%y=v`;$|1 z({uH0JFaW{;n3JR*Q=~sw|;hRZe(QSz=8eDaUOi&q4(Z@Z}qB`58VIY_=@rGeET~C z1AQgW-L>n@^&2)`d+jyrH*UJ_x*Y}2o47dPcYG9sq?}!q03sVlyCNC!?Mg4}1}o6H z5KdfXIm+g)di9VHOR+)lh5+P!O=-5KMU&bVkcqEp<8&uBl}LUsL2)0NhE%+y`mo$B zD3@x2Taa8KWZEdwC6Q}>EWP=dbM=+BR3e2R0_sEsikDDTpR|#ADiMpuB2u)x`&tD{ z9LTIoMM!p$Brck+tk$TNl)o!Z?6Qz=Nw+CcuB2Qak=Of8m8%weqL`$G^FFX>xRY1t6Q5nR@>D=Wn^?)=z%w(;r?{psNompUObM0C(`+~h{wB<1aDDA{3Px1M=Tx%S^Ky)`egTt3t; z960bOf>tMR3nj<%fE7l^))Y%6uTbpxJ~H;o%P()cW?QXR`@8S`U8CJtxoY(-w|?xK z-}ol*Xyy3G-k^i^`i)&++3(C0$Eqk)5mbKaKx<$U z$;v^k!0!wV4QT@8h^@`5#<~pnywu! zrlzNU@b^!TjgNlzpM3U5FT8l+!o<;ICvLv!rXxp>y#4k&zx$;xkBp3$tNm@i-KLkEsey!hHr+dg-g<2tUmVKjNpAdW4ed+Cm&mWwbw5$Ls`agaS&Zv^AC0yqG+ zeSgcgYgVmZIWcj0)8=b^KO7xjIX62uzH-IBy?dr6CpT}}`0hJz&o9h51!sD4`s~>= z7cNZ9&dgl5{hDLPPBdE08*jRiBW&8dxlkxwxG+(#*W-_<>tJAEgkCJ{F8(q#*#ofZ zPCR=onocFi1em-_0(JY>7Blhh)+tT>KBjx`DW#n4CQa3#q+bdmXct^51931Q$a5*6 zrYQ=@9Dp0wg!6qLjhj)w(}!pzUZ0$kcozXg2QEXG^sccqR5hAbVLzBgx|)BM>ZxPC;EQOH1a>-9l;7Y@D5X{LjeY%j{m zG3hKQ%o@lU7#Og&$YLnRZq&;7KQJ^jw0ZNE6)RWVd(ZtlZ@OuAZtkgXeXCxdKYixR z>#y&+`@Va_FxtCs->zM|r)TCq^W>AwR^ypxpZnM?w?FvsW1Y4?Ha33t!r4y!;^`v? zIw3y&!rRlci^$ML<}!ydC%MpNRYqp%;@`7yIMeknB@LAXY$*OGiW{Q%q~cSe(>=xni`%&w6@}IWF`nLCSy{ zEohry*`Y)HSKPQoJ-#j~A^?altZD8^taDmN#8ljfypc(=tl=%^@!QbMFobTj8>+HA zvkscm%uUElWbNf*SdS&F_%fa+1J;HqM<+hY%8dH9^-VwAX4wk`V;--*e)M_^y z&F05$zGdsyYm4Pt1TZ)_xVX63*VlLA__0=Fv9DHp?BkF7zW=ZO)&Dv+aaTz1?o_xc<6#cE24&L1S@|T%)sc&?SMloLGjK-3Adi zEt8YR8nKhGUQ@MmDB5SVu`UZp<2@@;`$cmVjbe{rA40nxNnBF0BtfogaVqP{4GZ^Z zGM_{V#+2B@ZUnK{8oLfEn&e8bOYxZ|Sf5N^ta9yrf0J8o|No6&xkXZSyQqp3i66( zl4EHdZR4n)@6YRP~?MHd!|obtT?o z`MD!#R_aCT6+p?(5m9``C#xAH*fq87I<9$2Lbx47P0Pr#Gu;YBmNGsz{`oKb>eek= zw_kt5`VAY9;rG7#?I>vfCEO z`sqW5Ke%z{O^wFlk6(M^+_?)oZ{B(0MTN{Yp|}VGR?{D`PekLgDru8417u<{q|k@3p{a?ZCJ}ly&TOE){X8G2 zx-tW{oLDwk9;SXo5>PE4(@+!Dlrb(=+@S{=RB1Me#*S%>d`sdst44B__Zkkm?<}vK zm?ME=861E+jx#hg82J9W4I77shx_`f&ph+A-)H+j0o}5vz)WJ*|`G;_V@SoxvmogL9tk@RQrHAk3RN^T7Un= zins;7`lhR5shc6fnNWtU zzQ7#2+pVMNYULcFh)Uf(ZsD8@b)_v)IzF2y0P#EjBH7wXWh%t%dJ>G#66Rz3;{3Tn_GMWcVM zdcz(rAZFndr7vOIR6EtSHZCpJ5Q=l2hsl%!S_8uD)f_w#!Ev17(c$%*Ht)Fc=1Q%9 z)#}yn{^Te1h518A4*%?Dd;a%7`IF!K(wA1O7=P^Jk5_8t)oWJo*s=Z6rHOXCg@CJ9 zuf6rw+ruC#l}hDuxxTRAIBuiS{OO*(Q?qlNb6{}_kH9r~t`2-&O+r__XnrNL#B;&` zaB*?*r5AoQIN0wvPW)QoLa|t?)CPw}Z@BR$02mk;n4FwiF+SdEHamW2VPU~@y`4Ah z{L_E?r$fU-uf6hWwOoGl&9{QUXO25KH2k^$@$&;iL%=zYLP%c4uv`eWN@pOQy>f{q z%lV@iA-^{bozuP~>*V78QlbleL~VsavQKLtJl_%LxJ2q8#0|zInviE~MLR8j>Z4mG zoNFv6!H3uepy>izQx8!?m2$!$TQFU{r~rszlkFMw|@IKj~_es_U^Y!rQ+Vbd#lx2z0umR z<(gmr&EF|ks=y@^bTTrswq=wn2F{$K`#$5mns;$X%p1g4T`iYDrV-Te9+Z@7+IDi$Aq^pQq=4jlK?=~E|8oGO>g<11F&|G-1d zX0u!!s8p(*cB@z@FvbrbI@D@4Igc1PG3WW%|6!MG9c!Cr+&GJ7(_Dg#*PWZ6Ke+$E{SVyt!jGQczGFui!OYaunl)=qpE|v5+xFYlv0>jE=kEQ|7cLtEYyJM zaTG1eZ;ZqMj z{8*t_;Q(8=ZaH!6_}SB^fB4)p7tWsfeL8XI<9`qu{kyUpjW=P!I+VOO~mAGsqIk&)q1m z0t5MJR8oz}$%sdd#m2*rJ{E*w7zV{+Aq@Ha!eXiDU79$5^2D(N`}R*xO=545Kg%tvzLOMj6Z;MST`! zN&H*0BAOghmgJtQ!yMOh9me!Yz$!WtrB>wcxg(c(WL2%*_XQ1EZ-_` zRH3~nOQyRwMbH?yLip?v27X?}s`IWjNR%7@S3Z5KHP%8CdQ7Qlv5qx%(eRb>FT3cO zs7?Evi`NwrdlGJ1=Fy0K{r%%BR-xnh0bjLpC6A&Lr%oL|e*DchcQNEY_`wfCKPZ-p z9B^o8*zdGG&sl7B3dQoeb(^lecE=re+}&z-IJlnYc3MqD@I1HOnt$i*w*tSzSRB8C z8pA6n{@+Qlr?jZI0RWB=1>wZRL=d#Y2*N0unVudVT@{1qZ-42_zx3H(dhg)DOBXK& zVX(NkIC1H+-|;)0PT>0|Pn?{do>{$S)u|IF&YwMf?>+Z6n~lN2{&p(}{P5AoKehYq z-Hk>)ibBV6IYb%x_lF~L7yqE3n0}6|1iJ$T?s;CdR_&|xxt^OWNI(v};1$9!@_j!H zL$u%5qK}&8%aYK8XXLaQ)0#t2bVJ)QI*wDV)=H&fyWL(`Sn$JesbQ#iEf^(_uIrXc zrBbO_DwSNv6=#xn5+#ZgY!-MtuoWp=QaO~JozugMM z4s!}9b}2ss3FXhZbXNff0A!3s5CQT|yIrc)T+f}lbZNte4XaiRtz0qQYBd4b){tGh zV`rsWEfl;`v0U)HFbo3U4}3og!)9ag^qEtSJ@)v>=2rmGbJyMX z{MQSoJDqm?MnEyJ8P;5#$y)BLXNFnCy{p&B03F9I7K*Otrcj3*0GPvyg@WgKVHjRv zv=DD`raVfnQ2kWuGR5Y!bCN0c)fjVpKZq~aE}1G%b%}_M=M)OXIMH+*Ck`^?$UM3F ziSY$xWC$D>V}(M&^}MLvR<_h)@WnpfPMF32u&lE?O-D7iFbcbs{!Ti18#nEffmXYK3#|cRF0Oio*s37eHT_7mlK1qOI0|GQyUvRw zBKx|O7Ntn0F#f5Nig$DwN6vvcc=!&(g*Q_g) zsv{#SR;^lHC{;>@0%I)j+ffjNshi`#xbL^;C+j~x^nStPg@V&)woacp-PhlL?)*8% z9fagAqooTWm|ec)OD|aoDgpq6VbE$d3x(uc?;XF>ZncZ0VzF3qT&GwpwOXw(3We`q z3i)MQ?-E2#2X{TUR;$%w1Z}tG7v|gTR&F91_e~ol$vJQYa2&_;ymGl*DwPU_B8y{o z0J&R5ll%C09BL=wHs_Ax^ws(t$61(P==hx|B6lq#00)Lvb*h@Mxw+*fZCNEN2hBpk ztnEHfccE#04!35`Wb*cpsc66^iyD7Kn$cRbc8OW!@;b(bCqLn0&GpR*GHdA2^rvf{ zkOoAMU)k5?x$geLf&P`9v&dppne{OQ}vfpV3?Z#kVad@cOUn}%g3fot&9&nlyrw+aN!pp~x z9`%FJbv@6KU)%m@UI_j9FlBLvDi;x=AA~Rb@VNqO2km*NpWC@<$lEeJGdI`qFU=l1 zeP(a#%$dnn2iB}!UvKz+#68a$9;}X!j#R4ET3?L;GDJV{8_k88$*JQfPTzdJ}KLcXPr%B&!8u6m(UIo!SlRorCO`i9LCz6_QJwKtJMmF zP$OkCT$J^ka|B=xD|m%Mu~4a03Wb8h9G=}dEnJ1wc=0kUm&*W9uh%;rKZ>GcFF*re zx`~(jqz6T#4;x^tW973)OOGwH;PW3}v8JK&lsqPik{3SHn{oj35Q-;n{z@l^-hxE! ziuToNda zYpcFHd!pSA=G)Cqvp#qE;?(5}<&ql&5o4^cSn&GV6+hzKV>sY>Es$U{(MR{_{1-Hi8#kQ?|kr;SAW{5Us}=U^3kDn zD@TV1ha7~3#rphwecPJx#l=p&-f9-2jvs`)35~hd_s;`K_oRIXMlMc3)8Mm4~} z;>z_a`&kqmI(+O8|M?$&``h0;bLJc}Hwc56mv~}Tip#dI2!T2Go zI6hNaYVb@oyi|21Q@MWqdYJ-)xL_;BQ|>C_-*MAB zZ@=^0v)}LcI$Kwd`ptT?-dJ30Im|_eHyU*pp;U0gC;&tNXR+D#eIMMCS1eU3Rj=Ur zVc2N-vvc*S=~=+=njP2u%CCN*&AmVV<9~PI;;iGK<8WXu>T5oGSMI~P!=+ovccoo; zShg$9O7s{;H(!6vUw-8;!!UgBz?)zF%2)OsIKD7nuNJ)xtA@wM2F6DEE2Ro@;1K|0 z)mqJQoyOu~W3d_d0q0TR2ae}8+buvIa+scLPF$WncX8(Y<+=OszkBBm*N=~nzxMi@ zdk=gN24V90Qwz$W%GZ+Q$ZeXLhx zS;mrEu(5H8gTW9mV6Y+ZqmxhqAt8YTh$-Ql5KICXgE1Iv1zaUtvSk%ZR`|Qrn&U|+E^ZvA%DFN!G=-iF999vu>nkxcm zsE{6d@c%J7G1%W03dMy`V|z#Mvrj&G=-|<=vxBL$ZrL0F1QBKssERC#gmb_+XOuC< zs7(QYre#q^ZOSO);fT^aXXaH`UUt>G)o;1_dN~wpJKlEZT^~rKO$0H>Mn(hVbh(|F zO6h<*JQy{7BM~7KjYeb97=TdI(xz#J!(l-XIOpkfdUSNeGOa*F^gk~cM_&UFC4{IU zH53X9f`A~jZF_WVG?`2lI-hgCEpM|Cga{*yu_QSFst}BwEX2IS3k1PvVMB@;`5+6T z002$XMn*>s!^l+}XfA-sFvbnKWwGh}QD95XV`GXz^`9pBK@?=z!gKR5fh&F2KQ=s` z+gzDxt7zPlo$IQ)pin`9Y_ml{h{qyVU3Db}eD<6f1ASdDZ2q67<^{_xURqsMSy9uN zOdFw4L=A@pL1fHkl-jlhF%m_QabTGi1RO%v+1~b@fB9x(w0drHnJv5dyZOR$TxlRy*1YuRd zmGMw4Dlc5HV9AmNYcE|fcXm@MokYOUlS4H%@$0Tzzwr;78E2Sa&H;qpM1V5rd@+ib z{5b_;jG3loT9zn^f*@v;2*LpX0wIDRTBZd+$r+<%H1qt7%d8N=7>R<2F?Mzw%dBsZ znb!gfo(6NR;MwJDA;wsgL|Kw0SrSDtlhX*YzO#TH1opjDpSY7<$vCAHaGt9n(C1lB zSTtYr>yD#-hjTf8TK~P}&;{a^&mKFvp9s?7me!M} zx@?;&vO)w5ARq){!a1grC`pne3KD??A$;4dw|wXRf2ysG#iB|m5(~u|IFJA&fF%by z4!55?i3m0swIRd+V$K1AWk|&f%k%RZkq52=tRDzD!WGpuDT9d&g{qc_N)>>FbGl$f z#k{2#U#%z8X(O${v2i_-)Dx+6T1zKVY16hb763#!anAO&kCSOw-VHjSwslLPgQE zOoS03gb0G7D5hy<76Qz+zTA;FRR?pK1tAnfQIe!=niq!<5rPp$lrje=dEr972<7(o zgrX>^sv=1eAwp(tBX`2ZbebMalv2|$Q|XjtS=k;2c-1@xXt6GP4*nM@&?XM_>J_V@ zL{>|IFCgf-ZvraABFxVjao^(jYyl{6V`P1~`Qu`WnkR5DC4Q3JTlYt3-A-fx++Q*m zMY441VoRSmb?l(X?UBCrimG_s%vsAL8+Mk}jpXEn!S@i;`7Qkzo8cmWs!f*8RJaNRO(i*m}brI|(|)qCo|o*g?e z#AkZ?#p5SxYbv|C2RWqxVQ;Esxl|CCEBB7`FF+i(Bj=pkw(VpXNs^2ZG7N)K8V-jE z#*!onf?(S=_r3D+eG%t8UNaBOe60u)Odx^)IYR&tLc-xNA;h+Ao>7AHEQ8Lfb(sVr z;uzcz0tlTwGTqo&^ssoVyoVs;AmOHIC6WnU*ICefgWON|jpexAE|7SkA4)yq)YDBr z;_^baO!~xWTelY`1$tS1x`@{SRJ!khs2La&ooZ`I?jFz9vH%oVs1QOYVB)x67~^|h z-Z5}GYNy5#=NBz(MnoDLOCH$0S5_k&iV#Vn6p>_^V2lX{08-nYm>4%KgEMa1mZ@7^ zr#p2cl};r_M}|`Aq+!^GVKc^MRh0z7Y;C01UseDBAOJ~3K~zRV^*i5jN5kyKr3;#0 zIdItKzAtlX{e7K>*A#s<<=x;f!+qy75DK6wi+A2}%i2{dfBwMFe*fD?&z?E^$gduw zHst_Nn*q)tMgVev2|xs4Qc)SZ_~OMJ!gNYwjAM)d=NM3ep(qk16doN&GdB; zv``)d9+nPD`$NGTaMLi8$%Llq&Jt??cyXoRsbz<(iow$V7P*ZZzcHE<;(pVo7cF6j&CMMG*kTI9FuJvZ!g9&Zo^7;{Y0_MIaFfM+k;g z2|;90o;GZYLCd0wB+4SjkjoN@R#u-pGd!yEw9PPt7$X-8@{KL0v**I8*MW)wWZS;+v}|tM z3<6qP5r&v4ih?oVj57wDY$MyIHUoxf1AqV~7Dr5s_7042NHEDw8l5(XmKTtiLfPp( zojZ_?)6(g*B*~FT7(!%O=E&%%rfHd=VMg2JrxE2nQ|Vwu?q=?;pzMRBeJ0a4E)zkF~R+!ab$GMP*!5;nDSuC`27zC>KV zSe#VeT_6bRkVi(BXxNm3a9P)7fyFi{zPf9eVn1F#nv@TI%yZ?)Wu}n0W`%Ob3c{bI zxiLL7C4rdi@i{=4K~SfO2tqxrOM*B$mYf(L3X4KbEUXF)0m?<7$cliFEE16*NyHdo z${9w82-voHZ~strWo0B985tcjOiGz;S(YS99B_oNVcU!W(_qP@W|~$k9)$!6ghK=< zWt1_DQ4p8k3cEz7bjOB6(b2q86O zTeg*%Kr%^Wm$${U_uZC5TLq-xd=im;`*jpP#_2*W;2WlMBKJb zYU_$f6j8PedgNHE4UrIzobDa67-O7eyir+0{sNmecHXFb^JP*7P|hL3sbtco=>^S= zbq(=FOXkm*-IPx0nqldhnMfJ~{R4)n+tg+@=NwQHwHO#l+JK{3bD9N$1cIV5MNvh> zO~NdUAcU}gaA0_N)E>8(1(3}}jH~1Eo`it_v~7wopKeUF%&xlw^hHXPZV*BcLXsp&l0+$Glur7*NnWo1RM}kQfI)yb2hNh3ga}?d z;m%~t%))xSpgjSu+JgT}549qOa^X9Il-j9ODw#@Iwv|iB_1)ve$Ut{xpy&3&LGVB?r z900~3WRwUTVMIB{L=1&gQIr)`jzyK)nn-0#R4d~3^=eH+&EV*e1(;5)u|4fbj6q;S z0DTDh2E$TMw5&9h27=PB9Rg^W7Q&={-kc@PYijCaayT+HmU?E}!4vIgx_btPh7*i( zi~#3c6a-ns2t$z&!(Q+ol#I`^BfxwSeC76x-2V%2%;crx@H)Hq9}wA zMNur%G&9Sm7v1vOLtX|IYfe!cmKXNl`A(T_+mzD$Ro{&z15KU+Q$kP}@U-l2MwzDT z>2%u6F0D}FLvRcI5h+>l~uLTSY2IRObvwuQ6Pkfl91N4WFi@hsF0f$H8f2h8%r66H8eIc zbf$Y`WYn@P2tjQ{bWT&lnpI0LU$aCOZKY=36EB`j>L9;Kp^Fveb@M_QBCzn_wZng> ze%oeA3VKuYmNi%I*}Y@y)=ljleVT5Ik~DYr%u83#udA!AZ>SXrk`+-DF+c*7S7J&{M+$y<;Pz?H%1OAKu5gHFHMIRqK{tedCSQ)%#9%o}o(h;m#vS zQaJ~lGr;jVa{cvvXT?0Hu2yhvS*B?kL?wbK8m4Jm7MCQ1u`ElvF4?wCIrU5+DgDUF ziMtMhanxHAV~jJ#IY)4c&j>`&668|>p!ZTntWZjIO-rRyhG|afLGpu#x4F5iK7UjW zR?n}$?zJF4l)A|;@!cnLNub3r*!>8Q<%UNKaYOhynqsdV74wh!%eYzO89&8tcPkm^ z(tS94_Uyna{O)xKov8`G;-LwDrp(7osv|U?OTTxj#ckcWJ zix$nAGgp*kXJ>m+mIO%@Bv}yz0YZo{1_(ol03;kj#<*!R)37L|hG9%h zjExNTrY6QlhK5H*hEAS5IWjVK^w`mcs?a-cy(SzBKl+C)$2!MMn_`F{f(T)RP#InH zqZcgruLKuzxKivPWxIrfY6-9sA%Y<_6pzOtLWZGJo2sfx1i~3lrPE`hqo!r$#CkbB zFLjOkcvIduAecm>(MTkMaNv#r#d}=G?}c`az#I6A!!Z~!3SfU_A5jSu|Sf6rgIV0>hB zY-CsoDWOORVQd)Y*u=!dMA9%V$Pwqzv<(C?ArglOAw(HtltE|GJ>(+61Od*NB8!ql zIOoqlx8)Z<{n=n|M^$aSZ(!V{*hvs|w%#n`lMM96`tB>I|I@+IJX-sZqev4VB!t9b z(NHJ^A+#)u5aMiUV%yflL}FrM!pUnWX4sb7v}xVoAQ=%zEE)@iLkOaBpAi@bol48H zcBuO=V3b<6t?NcQoziukXXk{v8&v{CvsL?WC7Y6jAY?@>4EK$JRb7DO_qh6xJ!jme zj>paG92CP*x6Hrr9pDZXi*C9L1iHbU1J8}_E}sj6g4{e&KW@7VxiW?!&(7DLNE=5^ zp4AWQODm(3;hkbaiwrTe|q~zy9}s{|{d~)zJoS{NCMA`?ta zYof1bq^qNq0T7Qz7B9KDzG3db@Py6r+O_MCA8TcHb_zi`O8%ROV89UoU~(pK002Zp zR_}P{T`AKX9vh2=L(e?*#J)W{RYk0fN2{WOtVj^!iLt@n(QXbQ7DY8w0inPlq8tK< zA;btGK@j2<;eJaWOlp-?wUMy2bNlwMeff(zjQp$3`EwlkNhcV$cXmen=jlWX1(jXqe^>JT|MJEf+YB=C;%ZF8#m_ zRURF}-)rFGu*do8zEpzz1&F)4;)bou*ykKTh!LWkB7hRf)Yj*o4~bZkgqD_;;nDGr zf97whYwIIwsO{LHiNpjJv2EKUqZDvX2qqXY+hUYr%(V1GI-QVZDWryKtE**6k_1Q) zI@5miiH(on`|;0L)y)|h9NTd9^?%s-_~>x|g`Fr+HcfAQ`tS0)LVbQogiu{=-Q{c7 z>AGn%uxZn#M}GO>wHq$)>FR3l?Y3-c+H`1alv2hi6(v!SB>+VL2m`>Tlu-^55{VeE zsEkBo^A{|B&wKCEG(%B@2Y>oAZG5aYDlu*{&K&GSD2q=8W=Z*d#ais zA%K)o&bV#csdU;j32QdL#gbWPW$*70*Aw|Xl| zlA@>tll(Q$OYpsuDI(}3O1foRx^5VTVHi5#JQNOx!(j*^A=)^lrfKo~Jk_$OKo;f4 zRRI8Gg;;=qy8!WEs#MIK>-SFv{&Yi*-}mb`ST9T*4MaN+YL;-!dd^SVa~nv+;|g~n zc7CLKtp1E%4no!nRZgaj{kwM_Kl19uD=$wcG(ix4`ri+vwKQ{xa||JL zCWAA|IfsyAghHyK$TH_lRn-}dwU@10fibA9srmJ^5O4slz5aUUEM836A2$9DacyLH@ND1Up1p_0#*^`? zsvB;+DH@AC^w7gyU7egW03iSnBZLW&C0UYW&e`bLs33}8`pVx!01+meo_*%np_Vxf zby{-RG%d~%hZ!w6*ezSK#ZGVwKqv}=EK8y&2?D{G5R5tC2qC}$fJhXvAP9^x1~^6; z%!U96MBtorz#V@tr8Z@pQRXxTA|wz(1mf%|O$fycml^s5&wQPc<##eso-&gq5? z*ARjgMHwF(Ioor#x2G?eNK(c^q0o&t-}qM_{iv#{4?XnIk01E2!$;b7?>TtWP1iNe zoYCLWef(%kbzRd$V&by3>$Yy$M5*aK-`Ani(&&PqU3eRYm+1uMc zZ~naP+n!I1^)}X39y-?c$EUVwhJ_Hm_Qspv@vgfTE?Tns@^zp6%x6xY?wr>=Z~gl9 zRW;RB)zz_RY|flHXM4_m>C0cPsi~X4Xz^GgVWiU!{^WtWSVTlnsi`~Eeg+a5SQJ47 zGe$va700I-K!7lkWhE2}$+GO=W5z$}%$9MSyp9V5V+1+mka3PNR#Zh%6lY8_Ms3PW z)1WqWqNflcK_G%4ijMV(P*wxXGe2X-a1Ieb5J{3GilS{<(A5dQEk`L$r8PkmRW;=7 zRPTHv7-L0|H7%XpMtg@MIFohz3lsEX%5*O0t9zhH!E%GuUH2NkhG79bn^( zo0g^Nny%@Fp#u&$-~Ey`??r)$86zNPsVXw&-{lKY9{@wn&lIrm5oK|%JN zxhlw<;{aNgEh-|Vw5Q`tEF2me8)sNpv~0Oy7+t4NjgE}G`#taZ+b{p^ZMWaHe*OA8 z@4WLZZ+S~?O-)Bf$E~;A@~v-wOP1yDeCInmckLb=94t9TS6sQ)G>xI5q2()A zj*d-KRaPHqIXE^p#5sooE#oBdO zT;9;w@Rs#&ff)Yl{r8{h==lFW@yYoM77-#n^5D-pTU#2cBOz5X034i1B+>?QmM=#R z{1t07%=O9rH6w^Zp-?m$l_Uvc>|h#n5ENv!jokQy0CJc;k@3emW+}#4AVd%ZK@cTL zmSkCxWl5GrLBIrO6KyO%-= z)^C~bwEs^DD(9v13lGQ9$b*@3WWBYK9T$BF93XcgQt&^cD7gn&N+_9;~s6rqml$Z z$#JVd03bv*qsdef*tP_LfC(*6NR)tmNg%`G->F%zst6g}}MZbLb*AG4P z%i)nxRaH6XAN}Zkm6cUr{Nk6InwnOwT+wl=BaxWkfKN;$X3w4(i$#tcJ+gfHN)EAY zGf^b39ymZL&1`*`oh&+;M7kix0rdZv%nbF}Yf~W3IRIQB!u8kR5RF&X)z@`(p4_=@ zOLOy_wo_;K?mNN(udA*4*hlaC+pm1JuCDff{^#+w6DJleUfkb5@YDbP>F<8~=$5U| z*VWh8)z$s{=Re)}_+#~Tb?>|T1EL%r?Ct%@55C=06GG6cs*H8@^p8xW7{mx6#{hB$ zMQI*n8IUpER5cWhL_|rWnbc<4)j50Rzz64G5fRpjui>rBjw=XIKLfAtVwBtBQg# z&fP~TP3s!XZofL!!40!|ldI*KcN>%nSuk_d13Yg6@GVW%1UXSY?II%P6Y`komRMYgzikN^wOcsDP zvGF$#*Hp!pE?c(Y+H1SJySKlz{n<^MHf*>$nNI)mp{&ICyHRSBT{=Kni*tD!gi!QFLtmPcJECjb?$#)6_ zAHRO&7BrKEI?1e2`4PCqC?Qf5S zqSX}@PyPPU+Ayk)VpT@Ep`~=qvK`Th@`Af~N+`^i;20B86vN?2I1&~_5oDdfJeMAn z0c4)_&t(K?p0_TeBeP6TCP)V$00?HBz~u#aG9#QZjxm-bSymKTmStIyBv}$AQ4}3d zFCl~wj1Wc;a=JBAX6j=0Dz((hQpCqEFKPrMN!Or zo&fM5C-l@2G~d>e&B%O-q9m%S8V-jPRh2|ZmZeBI914XAA-NhDXSQW=RuFqC+0Set zPYPw;8DCPu7nh;HCCAC1`P9+yEyy%^Gy>o1AwB^vD(b2KF&2#3? zZEiVqcKP@#npB&z-wXma?3-e3OaLSL~m9}Xd6jB(BsS$@x7 z-mR+f`uh5jq5e%zKe2k%>eiDTFKycq4u`+-Pycw^?YIB({JabIUC^GfuZ`eg43{{k!+sk9_o#6%{qRx9@y@pqf_G)0$ zKv3_{g+YJv?STXnNy@NFl4VsLEDZh5|~wG|_9;^?tg_wRqp zx+~s)_xmrq^wOrL8JAqL%(m@~k8Rw)fB%vtOW*a*cO5uzptGYhF+OqKwbu>~4nj;dC)uzd2&u)7B zu}3gqO|$1b^s8SdlgWEO{GkuuckjP^>s$Zz-#=ZvblKm1_3u9O*-yXwFW+;;x+}&; zM}GU8Uw3w#+P`n_-o5)?etEYns-OJy=awv4(cN+SKkxt6MKi-yVOrl<*`F{E9Pdt> z93t#Y56wzUk1_y#{{a9XMo3YWNH{_S0&-cT&Qwl_fV1=ghX_IDtZ$&}hG8(qoIKvV zeaC@i+nS~&lgU&nWm+a<3_7Vk&=VYkg-2OuNdFh#(N>A1BHxh#8VZDI0NB z6h#!BtR(~h$i##p1Q23`n6oKaHroY4n3+$L_2Gbg1E-+#K>!6&3`Zi8Bs%@bBeJiK zva^Rk!O#oF%Tl)@2r)rRB)sL+Mm99*vwibNcL= zGn~`9y83ljT=D0(-@a_w#Tz$nJbwK6nl)=Kz3kGbo_eakf1tLucIlGE2U}W}U2+M8 z1R^Ah;{F5sIio0NB40?3nW^DliIUSDw-5kFj{n6S@8BHQ*4B-T^uM@u^Ri_Z@7}xj z<=uNOzIe$$e&e6E@7VscpFcQv-n?&o;~Ul06&)wr|M))}AN&39x4rlxguLU_spGA! zXU?1j0Q|)}-t`xE{-v&KKl$PJ=tNIM)T1FjnlewEO`PdZaNsOofHM~$LZ=ZBIkQetHnA!v z;T`K#Ac7=GlC!>%B+IfSNixBN1Hc&rz>TAze8_?@yXaCDpFR1mLEl8_{M$lZXX@nY z2P|w3r#4L_lg=KZSx2n<(Ua9&C>--~@Z3l$EDU`UUEV-O)%ha7(%?5P10A030&gI` z`8$<6@3A;b*x$wKob=K8#3IkLi`k>z5G&`$JEge0TXCnjYjJmbi@Ox};_mM5w%503{!E6+5eLay z>%N~$D}QKet9m_NZuJBJubzn+U7t4}pN@{u&qPZNCwo3G_e6Z2atq^Ud~Wx*w~&DL zw=;Wt9`{S}lW<_GzdKoojfq~2n#k!=;))uH7^$AgqM+!FQgyMj$9aCwq)4vPe!)l6 zQO3hGv5-n=Hte0NSkNgxnO|L!SA4&63>2ope?GG(k*891>%7UL|6chx75nbIvEC7x z%CP=+JrNx%_`JF=4_r>@!!G*z7gxsAk^_>k%DG8Zx?WGzf=^FBB=#w;5e}9BZ_NPbL!; zA<8s?Lt?lt_Ksz`o5Eb=^8aLhgRQFwTxV({^$deFs5ZhZ*VHb%yD`S2IO%!JZlQzL z4<%+%fue*cx8~3rbV9k{zE0n0LGx=D=6`VGSU0PDXIt@(2Z6bSnv;~Jv~aQX+em$j}>uh)iG6GN!kSmx4(-_L~@oP)8f2Gf(2 zl-@x~>F0l;LX}6)UwyCQs;%iYs@r$&S3Z;2EOnS~yqvc@q*v5f+X}3&tk5GulZm>z zj_dnv*{3jQx41o=M|XJ|csQHN{Yf{Q>zL+ssH9Jmvcl!HJ~SMR*5njp?ZPu|lqWKZ zN-r+6JW}JWI!U)(iekx7F`t7Tpcx{?a8uw#+WuYaJom!G-8M)c!2k}dfl_^!k=bv0 z?ut0|0J9SEh$rcgHYISJ1ag7mAT;GLZ!>)#lR{ze3rK|T;-5DN7hkn}V9)unTLw1k zvhh2EE#M|tato%}TP@^IlauV-u586MGSmN%+PLg9wO@ins^8waxMlPHVyU%l%da)s zD^HHZX7t=HD**})?$_Hc-Zupv+FwVqdl^Fq2M2*r%PznG7Je1}{@#g2pNarIYp#c>Ig*hedT%|7-D_5(cn7bZs9`X=SzN^)NMXP5InA=X^}3cCrKGq;yY7h6~_`CNCDRrela! zRLj_d!Q{Y<_c?4_xj4Kac#6I7Gq=M^*R4?-*mESfuqDF7oq-tOqQOhD2~G%yz_`${ z0l0h=i)5LpW_n&)t0jI2p#5{jV$E{m{1{g6=Q+rnlB&L zlqu|iGUk)QnI=6=GUEo^D zCuA?K!zG|(NQNBPA4X$W&iVP^4{ZT)2NsKK|2EGRBpWw_+xrxzdph}qYb=vx$3a&1 zLs-aI4wJcL-*rLH`PyVKB^FvJ<{`7}9qBMewG zX}|P%3CiKAVeM^J)SNEAi?U;{y}r(O29TN0C}q^55O8|Gk#quveJ&C{-`8;JY;VVv zdw_N%B5U?KxKE^Bk(+^r=(w%jj>u^bzGI zP9f@{CYoe1d%Eo&oi{wT&AH6CnKU%<=3fpnRe(L;5;wit+LAF##@cdx7<%-1k*(?R zbt94UYwwqjvcL2(WtvLbocuYKR^igVeky7Jxof77dvkMVy+;rScyX>%wh3XL)7P-b z`k)Llp~0?+c*Oz*)#bdztST5_e_K9%yG)*wV-x}aGCf~wn>k9#R+zM@Oa!-|HLh?8 zJ?L0lXB3~@HE`H>UD>*=Iu1tRMJHb&GA0uf;Smwys$uTsOGJi*emj^*6Qfm6R-(kV zwYOiGwgfrxkai1{kb!6fN&<81!R;v$Gf>KI>3#JG(A`il|NY6^Qq6g9ry22g?jFne zc=$BOpm@h=(cA)mByH^Un-I5yB$* zW6Z#UCA!d}YvjVgU`+znNv~6s1`(Z%(k} zLVJ z+*TzJC&bK`t87(ASy6gt*%`AG_~I>f7vyGYZC1jy`Sy^+os}i!9B<8W8iqD<9v1ib z6Y*AIa!G3_wR>`uOfX^Y78nQC21-B54>nQ0)l9bC2hupyMIAK$9^Gf2n1NpwbS zyE1Wn{M48gNt($ik0&1aoDCeo*lse-DKjah7j&H8zR+t}rmz3|@p7B!cPKbB4Dx(Q)@Yt8y#vBMl6a&oH8*!-PW%fBk>P3 zHV>07>tlWwQyAeCg1Cq{cn@7uw@Db}Z-_T+qO#x$fYgXF7frua-DJ46_Af`>cj{(1 zAi=>9WeD)R&0I5sNXB@KKvDfbDJ#$4*9f5t=KJBV74T#4UG+ybZdjmB<7Y1UnX4Hy zwyx>c;-e7570w3Bfs@Zq?WrI>K3aO{;sQHgg=<`-ODf%+>b*ZJsnp>L&#`cj2R$E4ef%4mYOF?C z&;#g!evBQUc!4D2w^SI+xJ9YZe;?fud-U(uJ{K!M3>uIcqXp!OE%{!%0Q6yNtJ~^R z3=k@R>SL;Za5MvC#++Q7WbnDg&$#e@B^0ju9GkZ- zw+{~mLiS1IIgVK=EViG7+#K9yi%DcraY4Chr8;>D+D!CL3shP8yJbacPpeX{?R{X1 zp0w)=x-EZHV>#K9ne+i39C4A9-PLys(h|u zi_@qSekL_Hq|?yI3}VHQe4njULB(=D@Fd*y8)2Xebzs0A^$>F+Gu@m%LG(4Vr)QQz zs+w7S<;`I2H43rhobRKwnVb7g#OycQjzPa=d!T9U_Hn1{;^>?hkEnHPAY;BtyXk02e#h7t344Nsm^gc76&Z~z zu-RmIyEpW+d=zk0?2D^?#=Lz)D7@hvWS8ovdC}a9R&k4?#jxDgNhy*|sd@Y-@L)tv z6G5m_WS--T&ic}CyJ9x>`)P9H9XJ`H3ca4dlX#bw9Got6z25D!<1y`>_4Z1S)lM@8R;%rc=AMs}Y1zxPS3i zF*j@k)t{Ib|G5)k;xw@w2bd0U2MZ5X3Fgovlll8Q7N4|Q;(|cZNhX>Tigb(`e^YG| z4~AYSVsrHT#1+tl!4%?PG+2PLqLB_H&8>v;B>rZ{VmvEQ0T1nu;7HX@7m-gFQ66HV zIXqyRB|nL2u24w|#>JRu*;&ZqgzaP1)#f&J4!QnWLV}=!@e8T^S9SfI5C`F%qGQ0X zMA|iY&?`xxf`SL+?)Uu{Z&Kz|m0eT&M$9pqeC(YRSTqy)XsigB3i|Dg#&$}?k>`pU zO&}h??cu2Lej;XKCSPj4QU^P-yhA|1N6Z+2n2tN#HnL=5KK8j{tLzt{RRSg^bXZLzI+o!0Pcmi#|EGrsVw)q>HoTR6W~Q^{BhNLk3M5)!&xn++EXxRaxbyr$6~*;{LYJcq)AvUw%fNgD|o`mYC1(Hx*1;RUQ%^8|+Ux9{4Wt zE!K0|A^P;~wjhX1!s06bMYUUp`Fy2EW^a1>G0{pBfIsZcmZ?q(b?u!4kG~Q6n%5pw zpq`~z-lxN-p`qcy`!HJofUU1b)`i;MTTy*4Kk4eOP1<-mlBcDp-y!KgUw;$2)`*(+ z`{;Sl^W8eKuK7WZ&Zon6vPASv-?xFH>{B3fAOvmqbabnIyPG(fxl0cNQHCuLBnvOO{6>K~y}ew1#i2{f4ECzzBOl%LEZ1M5zKjV&VF8n!no16+@3tFBCAzIdX* zZ+wT})`Vl8qiCXlM~Pk2E~~3dRk9Mt-lfsZsQX=4;~jbX_9YK!(D7^>3S$c#bju4&7yvD5Zoc@vCd98fjPRUBB7t z?(A8A)pwba5a* z6Oy;H0!Dc4?=^aJYisJNx>$%3G^Vb1cXehQM0`J2*{3IdhIr(4BL!Ho@_yYZ3Wjkt zmJ`;C$MMr4pR$E_1d&qWPNs7l%;Y@jh=~=D%BZU+f4%T7+nak^TU*QEv_<@uum9Fo zBX~E)27os&04?ypGSuVpa$rpYI0PRHhs&FskJq8g|Lm3klnGn>h=Sy4(OmEbPi*Gn z&1+-jd2GP70%ume+=-_3On9)zSilm)AeaRdY!Ih?$28QAn!V-M*(u_7#{c0Pi6#lG z5)qY{kCt^5=_=*ct+twAa?SWJ$|DM!3~M@W6b5$HLJZzQxtELj#{cRwx50>OJKZl) z-TMky-y{7?&4ZmLdF<`k2+Yho{Z?u@bW1d4U3mX}t~;R=M)mYERa07)oT{9iwsx_h0@es6Q!OkwonXXWz zx7$&7|Au?cw&2#LtR z%c)UH)F7AtUZd!bJ=evv0~VD?IhfRcOq=xWEN=a-JnJB}R_8T1RlrC@bfzfO77n>O zMmeczc3SK0^8KM`z41QL1b{R*hXq|{Cr4+er_EO(CkJEMEq)vHlLAfZTv4%puNWjR zkArgZFHJ8Oe)q$J$MjgxV})jfJWFnyi%Us%JbF6f%wts*N(0^8lia*TIG>N)T~n2;^@Og!T|mglc7%TT8)AE&Qe@eS}A;#TeB+<9q@7 z=G1hxo@j|nk*_Zr ze_JQx%yYE4c(E`iH1qxW+R(*@a22fwE~NsMt&MDGC=udrQuUVgR+x?F(nr5n>CCOn z+-yg#hzGh-Fp@4hH?~z&jQ*QZ6nZl;A1s?U9;ArB1VHH$RZFpjFUoe7Jd6DHc77k- zmBj#-HpU$*o=>k)1*F;$9$qvtj1EJ_2#S8?lRM~SehP$x(T&u!?6v-wNQ&Ph$QWCf2anG%)YPjpWGS6PCciKCCXg?5eKHxBxdw&cSy1&28wh(x~ zRaK;|B?p&UN`4BkvB-5BO~HAAgZtP=()a#&xhQVD1G3}1R#ME%chHTCrI&_hKI!@l zPX%w;WQJ$L?xO`lxZ_)Z62#VAOUHGrj4v=`m=Y|Qh-d-3Fy7}v=7lRMwpvsL$QTR} zMwePbB8SNyqSgMRfs6qK5-Y?O#@P1ZP0bs}$f9rP_ZDS}e;0mighR`Pk{YwK4on{< zS!%sw$&BVP5O^s3c27|q${uFG()lZkr}L39h0ch*KZfPt)kyR(Rv2=W;m=rf)Lxjp z^@CymUAJ<;2-O+N%uWQ(%~xZe1e`bCJRV=YQeG}efrgxyA}8>$EnAMR=k-5^&mNZ$ z-}Cs$98^$FK1wd=aw*JDtm!-4f3wdnoBta(2M7vkvDBIrcvwAMa*iS9@oc|)l!(N3 z%{i;CF0U@F+y+V2*829&`QJ>$d>&=RGY1Kqf0?U9Q%UKg$$;Kb{oGp~3FORce zuUfE@s_KjYFi$4!nw8^bfAC8(Z!|b-50*8i{ zw#>zDK9YAc-6Qw2IyC4D@jgPXS%}B`9j3MtqSFN9$TarMbVz;(m@LHdcgWr9JPu@F z6aa8fYe%O&pNC7bE%_Yt$%$*KD(V=l4IJW}A<^Q4lHbw~CJ2b}G~M=+0kz)NRvz$} z%d`*>tSGbe_C^-@xA>1Vg52L>c>4=LB;EFfH=3~a;C}Ki7^B-v!w#qoo-6z_JB(I8 zyJYm`rZvYfEcB_lsA+k9(fRQS$VD@wWMVQX}O2 ze2aSiF&`kXlERP~p7#qjKy=S#(*0r+7X~8o`)ZFoa}A-cK25#6W(I1CHtZrW0#-yx zjEweRl+m5W#fETn?2(|Z;xp?+Kpltys9{-Ytc&rN&+@Z4Cy~tBPMWf*cG25Fu$tJ_ zrC&~*Rx^{%!6MN4wz((GD7_GxF!h}W=oVgJ=k2c~KeTBks+X`hm#$`(-{*70bOU9g zv3uAcqdXIj-T9+VF^8R$G?W4QL zxXLz2tQR6G#-*5P0YFW3S+nvL1$D+}%cJ%!XFwrd_2Jo(hvCV*JHG-9D=)8>x@H;O zh&Xu<-r|4nR`Nh0<#Vb0ni2cTc#*Uj|uuz?#GoKC*%XE}0C`f>x4&3gFF&Rm zS?YXyd3lCwZQ~7vhbJH)01}{Mfa*(u>yvL(1A|u9^H!tC+W! zqDlx76HBq=)sEin7{{BXGtW(8Vk7#*-W@g?fjVd(0qMh~uf0xj)d03{67L7yi|QI{ z5JX*FBPKSw{c`)}%}1b@LM)d5+Jc7geV?n#<7s*H{(R-3_v4|r>TA2h>EqS>JOINO z*O||MQ*+#sh+MzFU-@~l29Miy(TVE!M6aL4V?2Nn`|-Zfd4m#%uhr7L#9E*IK6M@- ze(@hCd-~>5k&ZGaw$>|#&sp?TEv*JmkGQ(JgfgqD5K_eMEr!L)?2;J_2n;fhT7flL zN-IavHoD1EgfJ_GJf&0RcV1#dg-YxUSB)(+d*OI|rdgk!w? zq0B-Dnv#ajSz^rv`_)}g7pS&6A2><>{QU{!Z|My82S1`TK}i=c{=X$PUFX})c%rtS zliChba|?P+F2mDx=530uF6^@lUBJ1us-`NhQQG#Ty8=GVcFpyG@BVDXYj2qB9pw&^}gI+SlihA<2V~jW1ITnBDsT{F>onb7$xKvUPRGNtT<>We|x@qc;yIjO{a; z_g?avt?i&{SzmRko9*gj=+n)?$0fWF_srbYO%9O!Ptm36b5sPt*Wc)p`B&B$4O|wo zniziz31LQloaTjoQGRZ#@x23}Et-VDhuyWMSlqvm`q!R|OQ4{qkHGd8t{CvxWIwoIU8K% zCyOv!nyA31%q~1ZWH7$^)qG9uHHI$#rv;!1P3K{&|L?~HP73@Gx+?eTpuJB0kSnu; zpdt$f+a(>1-G1lO&}6l@6_UHaoWSW8_C~YiidS-`t9v6vh!6P$HABwRTz=Dr3zL8WEzOQs?)*q?M65KFQcWbqf@z?Q1D`slMD{i4~Gk% z2PUm{WD29hVj7v`WGqWYkH?|->KUTUx_OMj{{@zxpVuMne|?<$>ifreA?APod$|7R z@bw;mUIFsYaeL3npVZVL_UERzfE#qbqS6PMwn}WdTSnT-RI|*k|Vmc|1)< zZ?wNjhB6PVt(gOAYoO$UPWJlmFC5$E{npe*+fSfXmzi;l;l8x$>h<*ifJPuBA}Xs4 zGlmHX356jq-3qhR`T^0X(sDhqZDQzfFJl<>4^ksfdorsVVf-o;m7XAp+VO$4e!Tvg z#Eg4^PV;s4 zQp{&`g9~|pIy>$dJ^pzr&g5t_*g^RxQPwHdx@A$}Veee!qKz`OO^x~w zizKOdOs^W!DYrkaokG~4fPQEg+NE%3-&zp^w`B#7uBQ$Uwn#L0)tR~H=SbrM3g8_2 zva#k?)i7@KCp;ejiee|TRo`AV-hSHIo>9d5Nh1FlL?ua($ZIQku$pPux3+yjC2BG; z^VyR1``ArX#NIRQay#tq5`3BKws_c1SE-A?bk196u|L>^p~nzmvPq-_i|WE;v3r&f zRt?jU{dq1fskwvhD^7!O=%6D99S2k=`nGuXe}a@}i{OS#vD>oaN5N4@CmbvDfyw6N zxim$n-;yC9$R@XfGN$|ti~=RC20o6fOge+x_+HW-HzQ0|D>Lu7KPDv@dbCy~1xo^f zHj#RjYCnC^8zHtpcOYAhEKyul_ILgSYwNxY3jG{tSf9a$(kq`pG2WvGLn{ikAa*Gu{6+^c)yL@KNAW_9A8J+q~Lz3##|%Q_K(c z-ySA?-w$_UpS(MbFNg&E-gP8A09`NF{vP(fC|Y_xYCdXs;V{F02JE=F0|!?+tu9An zM>8)E7Y|R~$JGv+-$BAw%EsQEXqxjgaec5@k5x9QXrtGWEwN zzs-C+`$b|i?FPQ%=zF74fYUkM2jI+-vF5n+tZk0suz2XH%?BqkNPxQ3R*xHgjOvZ| zNk!C)6}A$7^Y5BH!J{0KIc#Ev}Q+DY`m07)np{`ZBm-4C7?@#`gVZ0Lc9!0A+D!}5V6As2o$Rbsf| z?@P&4hv*|s?pqCDp1w$f*tfLlAX&@a`~nkbQK>be+!$8m-uzFDWOjsp9RYA1585g#MKcIFyu$f8Qy;V~3eLag|A3EM zY>HG{9G%lHbr1%aEJ3*n24v!ieq?cEeeTkRV$;E2Etqky>)33Pl1vM9DT1gKvjz}6 zw-WY7H7X}2N3$FhZ&8tTJC<$gw0!g~<_1Qk;%juR$s9HxJP-(l{I2q85R>hJsJ;L7he6ZwDlthg z2)H!3p|{5U=~BeItSVE%!eCMn2%3B@U66FqCn#a1wR~u)gl&(`*4F)=P-5TRKh*QK zi|jRaopV-P+Lhlk<}BDZxtV097k^jO)fIG{X?a=8`uW*gTaT^_*z4K00u2rG@WkGS zR;o9b{{WrCitN`8ogZqKz@hBQd&q#D;kOXirsGw+%kiseGTA}A81T4o2$|gof!&U{zBL4KraYM2SQ0V)ZQ?M>H-MuS z#*iI<+>A|(4L3wS`V$D`V=!;V!C_XcySEUTi{Lm56#zn)2;XTICdEbkWuiGfhCZ$M zQ_GVt-T(^s#!nP?Ei66qh#)}7UHXim2qA6E&p9tU?W&cul_%~`AV748AJ9J)~t#4*TBsw$I}XbQ78JW(LxX)>aO&2LH3GOJkJG4KuEux^KLX-`Y|N zyYuKc4@U^qq|J2KuV_UHfCPd zpJknYoPOSw2tEy;@ip>gPQ(YSbA8;7Y`Hz~GOBgX7;vEDO^luQgjd)WEO_dQhzpP3d4dt=mUDko3& zV9CsOe4*uoA);YBxFQgC`3yO;^nB9bKNaiv>)|fdM}pEif(U*Ix(jMe=lC|ONd^&S zGMY?aQfMhlpSsbNdJFLb1rC@rNO@Va+q@E#g}xn>2zA#(1w*MGplcGGFGID z%6|`c3Z?K4w?v+^nMkA&ryLm~Y-3BIbh(`J4F!6-WcP}MvmPrpD46j-m(d`Kf}jd% zz@)T%y;{5MjHN>Z{iF#n5r!ch?U58Iwu?Vcs@vFzCZ3-|xHi0%UhJxw2*-6wv}s;;hg`4X};1CMEgB$Gc))V`S$(u*?xK;_PtdViCsA{MkTBg@;qhemWn}w%EjE@1EzvDTjs>|HC@5*-w=1q zdrxo%s&v9%<}fi_^hd{qQgb60BX9oA2M(^L+xxq*sxn6t-p_>mi*rkNGdb@Idm#fF zdLDcG8E#D4oqtd62?f2I+e+H<>q~PmZHZEu^ciVr+8?sL02cvAMfo%b@9V@m z7iz~#BjI%twmF*c7LSlZ+zwQy_0R$r;id!(sVHQdJLa2Q^YFa(^lUT3ioREYZP*De4QuWVO?m`(IRg{;4K&Ok2qirv!iwyG|C-c$B zC?C&UT`4Aia+#Y-o0+M(7UI(+rX(u_D1eVP4Ft%NAb%RE0N|Mj_|H`^)5xxBrvv}= zR0HW0IG_T8jEpAxb$&O!7Pm_Mq(!gu4|b6Rk(#Cwx63tP#N~AIZ{5H6ti!s_MPkpd z`5x#N_V`vA`{PKYlcON_;^KmpNO3Pce1O5d^8Dk%LjEvq|oeyEZupNu^{pL6}`h$DE^X7+j zMN{(wn0AcNhqJY}(2ZxRkder`x>G7?bhJLI*Sz`csQ`p|95qZ>>fFE`DYz|+H>wqh zCZCxjX-B_xKapb?6k!kxVFAsE2|FHg$mNQdA+O|^J2Czf1eR>*58+_h3%dhhuVWyP zwMQz=dg_j~_Ku-yZuKyKEhk`=4u><>?X{ZB?!c}|OOA$~C`DSA_>sQ=0Y&781rGfZ zB^;DVC>)aUX6V>H5mJ+@O!GgaM2S|_zdG8Mu@{!Jh$eE}4-2r;^J&+UzOKfx?5R;Sh+A8a7TO z7W4NQuy-~X9LZ<~tO*E&ekSI3*j!7oX4I=e4a&9ijb@wqi%ijV*?F=;X< z7IZSY+AgwQsA6Pd5_Ej+cz#AouA_qw4WU$?m>3=(9&cE-p^D_7VEbgm4RTLmS&bv=oFsm&vcAX`n%J`Fl+w1BoD(ZR#SeUN)MZ-|wUY@gq+|kh3YOO1olufjE#`fwpJE; z&j98(+vOkMwV*No#XnSN;j4};O;m>ce*2nBs4296+KKS^!kN{Yhv z=0Q8&i3eiZLuJ4P2A;qu>mJIE!AqcF4mt#qT7+=oN3n}xa96jkDX7b=$trhLmJ%4i zh^S%W4LT-}A|!M>lDD5xi#nr4cwIK9m8Liy2OK7GR6wW; z(Sf00X(1qB2S@9_3|Gh}m8nH8h^@3{o%h4;_^SXfZWu)szU;&S_n%1;DK>ZFQR_)x zApsLDzrYN<)>#fOBnTaE>ybR(0%5>7!EbyahsKRyl-sYF0RK1iY`KorAa zytXyEVjos#jdI&Gz}#cKccg=9eV3-$a>aI3!=4>?93b7P6|?z$j@49elGoP-BbRjI za;H@5o@FX-`nyVU#btM3knI$AX;KVAG&)8+^Rn%)b*e_*hv*Rbhf1Y-}(^ zH}Q!QO-x-(D$80VFvTOttgTM$I_@wCIBi{cS z*u+Bnm+kL;Kiz=Fb+7}Ymq6wZ)5lEM>kwx6qi>L&cPFj9Dsg!i-EZ|rxXW+w762_% zgG0=4L-H)~sU5~e;CZR0Z`Jss{?h@)e*ui7M)Za_g3QCfBq}{OT^@wvr~d6P6MxU|4nhluuY%CX9>>JrbfU8yo9=XTyQh zTTxyf6ldSXqQ_0ixz|6FT3N)Q`lSJQzV}NZA<_W%ss_fH__Nd@q4w(mx6UUykIt>) zDr;iD$Isk_}7o@gN*cQ zd|WXNHykApuxuSVn9R?Pwd|#6H=ZxXCnnO%UJn`Qzdfl&AH-&a{mYCXr1&*37$Rl^ zMw8q4acFd7V16;woVxc#0uDDAH^4C1s;fV@HIce4se_z1D zuD(b+i$u^;y8B6Acs!5uC}k1=@pC09jPX8X7~3OJNKTXmO_cY7a^BNSoD3qVhecQr zsK$g;uptta9RQJZYqv;IE7%ai%(s5}L`y=3M-uJ(5qVwld^zG8U=cx|h*#=H&2>g5 z-$u<&DK6EoR7i?P21}L((>-Fa_k?$nGEVD|&RiOn4{}`I!Qu7#292)E<94(>zA{Qz z5k*xux@XnwRCHyvvp94J^r30jG{EsNVQxDTrlh8hm6!i#zPM%=>-85NWXGBTc*(s5 z6~|Z8yGEWUotkd+Ui^B7Fc=t z4MvBX4m5m@wa(RT)w-mNMI4>{H^ctPhGm9a1qhCvsh&vt=B;Z;I8*;2OPKGA| zUx*HI49YK%KgbAV1Q|pi3}tSO{?e$d!u6!)V>er_-VVCRudST2yEWOaEV(2N8Bgx6|utL0|q=-tX+RE(DmG2l52zi&8 zoajF;0#x{gy%E#}@nX=7`=g%{l5izbGO2A_NW-rtrLX+| z@WU4>+sO0!DaSsgek~JbzZ;Nc%`dk83dlg+(HO za4Qio<}b3%)d=WMyVhnnlXT;%FhY~H$i~9l9L(68Xo>1SGPSuYoX-CSZmZxKKms5H zxWxE`xVX&@TizOqiZgQ+da*$MoHRN@LZeotLW%MFE3EZGH7x@ZvO|IpB*8Q(_3W}4 zPVa3k_CSNjEZNlK^^m&D^9AEU(05_Y&G+Tx!~KKW{_NP|ZR^3;DFPG?ticJDbv z{sj95o!7m!$mspLB*&|{)8*nK)aS%{UD zmz7;bSx-gt`^2y2#{2sUd6X>OEE`gq(TJXIZbG0?BfqxxIzOL0vOmHYMqRZk~;#Xulw<$5gJgEql{TZP7|9(;7XKGRtxpO;vtiBa8=+W^A~pJaZ
oEW2au;}uNn?Ve;8Bv`O1 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
  • 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

    }_Jof`8+f4V1qp6Fr)MXES< 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 P00000NkvXXu0mjfL6T2X literal 0 HcmV?d00001 From 4270d34d2a4943813d9fc8dee46c5e68227f55b6 Mon Sep 17 00:00:00 2001 From: AsY!um- <377468+AsYlum-@users.noreply.github.com> Date: Fri, 1 May 2026 18:28:09 +0200 Subject: [PATCH 5/6] Update README.md. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dce433cf..657366d0 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,13 @@ We have dedicated channel on POL Discord: https://discord.gg/4JbC8hA ## Requirements -Starting from version 4.18.0: +Starting from version 4.20.0: - Requires .NET Desktop Runtime 10.0.x (or SDK) installed to run the application. - You can download .NET 10.0 at: - Minimum supported Windows version is Windows 10. -Starting from version 4.11.0: +Versions between version 4.11.0 and 4.19.4: - Requires .NET Desktop Runtime 8.0.x (or SDK) installed to run the application. - You can download .NET 8.0 at: @@ -30,7 +30,7 @@ Older versions, 4.9.28 and lower use .Net Framework 4.8 ## Building -You'll need Visual Studio 2022 v17.10 or newer, .NET 8.0 and .NET desktop development workload. +You'll need Visual Studio 2026 v18.0 or newer, .NET 10.0 SDK and .NET desktop development workload. ## Reporting bugs and issues From b0cfcf938fafaacc87d932357f4bd99f84ba303b Mon Sep 17 00:00:00 2001 From: AsY!um- <377468+AsYlum-@users.noreply.github.com> Date: Fri, 1 May 2026 18:28:16 +0200 Subject: [PATCH 6/6] Update change log and version. --- UoFiddler/Forms/AboutBoxForm.resx | 6 +++++- UoFiddler/UoFiddler.csproj | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/UoFiddler/Forms/AboutBoxForm.resx b/UoFiddler/Forms/AboutBoxForm.resx index 38fdc8f5..9147be7a 100644 --- a/UoFiddler/Forms/AboutBoxForm.resx +++ b/UoFiddler/Forms/AboutBoxForm.resx @@ -118,7 +118,11 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Version 4.19.4 + Version 4.20.0 +- Migrate to .NET 10.0 +- Add dark mode (experimental). + +Version 4.19.4 - Fix dynamic flag when importing from WSC - value was flipped after recent changes. Version 4.19.3 diff --git a/UoFiddler/UoFiddler.csproj b/UoFiddler/UoFiddler.csproj index 093a2b37..45c928cd 100644 --- a/UoFiddler/UoFiddler.csproj +++ b/UoFiddler/UoFiddler.csproj @@ -9,9 +9,9 @@ UoFiddler UoFiddler Copyright © 2026 - 4.19.4 - 4.19.4 - 4.19.4 + 4.20.0 + 4.20.0 + 4.20.0 true