using System.Drawing; namespace Shigure; public sealed class MainForm : Form, IMessageFilter { private enum MainWindowLayout { Horizontal, Vertical } private enum CloseButtonBehavior { MinimizeToTray, Exit } private const int ResizeGripSize = 8; private const int RoundedCornerResizeDebounceMs = 80; private const string HeaderIconResourcePath = "Assets.arasaka-icon-transparent.png"; private const string ModuleWebsiteUrl = "https://www.shigure.club"; private static readonly Color DefaultHeaderIconColor = Color.White; private static readonly IReadOnlyDictionary ClassIconColors = new Dictionary { [1] = ColorTranslator.FromHtml("#C79C6E"), [2] = ColorTranslator.FromHtml("#F58CBA"), [3] = ColorTranslator.FromHtml("#ABD473"), [4] = ColorTranslator.FromHtml("#FFF569"), [5] = ColorTranslator.FromHtml("#FFFFFF"), [6] = ColorTranslator.FromHtml("#C41F3B"), [7] = ColorTranslator.FromHtml("#0070DE"), [8] = ColorTranslator.FromHtml("#69CCF0"), [9] = ColorTranslator.FromHtml("#9482C9"), [10] = ColorTranslator.FromHtml("#00FF96"), [11] = ColorTranslator.FromHtml("#FF7D0A"), [12] = ColorTranslator.FromHtml("#A330C9"), [13] = ColorTranslator.FromHtml("#33937F") }; private Button _toggleKeyButton = null!; private ComboBox _modeComboBox = null!; private ComboBox _moduleComboBox = null!; private Label _moduleFilterLabel = null!; private Label _moduleCountLabel = null!; private Label _configSourceLabel = null!; private Button _updateConfigButton = null!; private readonly ToolTip _settingsToolTip = new(); private Button _horizontalLayoutButton = null!; private Button _verticalLayoutButton = null!; private Button _minimizeToTrayButton = null!; private Button _exitOnCloseButton = null!; private NotifyIcon _trayIcon = null!; private ContextMenuStrip _trayMenu = null!; private ToolStripMenuItem _trayToggleMenuItem = null!; private Icon? _trayDefaultIcon; private Icon? _trayEnabledIcon; private bool? _trayIconShowsEnabled; private string _toggleKeyName = "XBUTTON2"; private string? _selectedModuleId; private bool _isCapturingToggleKey; private bool _suppressModuleSelectionChanged; private string? _lastModuleSelectorSignature; private bool _usesDwmRoundedCorners = true; private readonly List