[Tool] public partial class ModifierToggleButton : Button { [Export] public Texture2D OnTexture { get; set; } [Export] public Texture2D OffTexture { get; set; } [Export] public Key ModifierKey { get; set; } public override void _Ready() => Toggled += (on) => Icon = on ? OnTexture : OffTexture; public override void _Input(InputEvent ev) { if ((ev is InputEventKey { Keycode: var key }) && (key == ModifierKey)) ButtonPressed = !ButtonPressed; } }