From 1e485a103ca3172a2101ce8f3d46ceba8aa3e8da Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 13 Mar 2021 17:09:16 +0100 Subject: [PATCH] drop .NET Framework support for TextInputWrapper.DesktopGl --- MLEM/Misc/TextInputWrapper.cs | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/MLEM/Misc/TextInputWrapper.cs b/MLEM/Misc/TextInputWrapper.cs index e3fb4a8..d3905b8 100644 --- a/MLEM/Misc/TextInputWrapper.cs +++ b/MLEM/Misc/TextInputWrapper.cs @@ -64,8 +64,8 @@ namespace MLEM.Misc { /// public class DesktopGl : TextInputWrapper { - private MemberInfo key; - private MemberInfo character; + private FieldInfo key; + private FieldInfo character; private readonly Action> addListener; /// @@ -84,33 +84,14 @@ namespace MLEM.Misc { /// public override void AddListener(GameWindow window, TextInputCallback callback) { this.addListener(window, (sender, args) => { - // the old versions of DesktopGL use a property here, while the - // core version uses a field. So much for "no breaking changes" if (this.key == null) - this.key = GetMember(args, "Key"); + this.key = args.GetType().GetField("Key"); if (this.character == null) - this.character = GetMember(args, "Character"); - callback.Invoke(sender, GetValue(this.key, args), GetValue(this.character, args)); + this.character = args.GetType().GetField("Character"); + callback.Invoke(sender, (Keys) this.key.GetValue(args), (char) this.character.GetValue(args)); }); } - private static MemberInfo GetMember(object args, string name) { - var ret = args.GetType().GetProperty(name); - if (ret != null) - return ret; - return args.GetType().GetField(name); - } - - private static U GetValue(MemberInfo member, object args) { - switch (member) { - case PropertyInfo p: - return (U) p.GetValue(args); - case FieldInfo f: - return (U) f.GetValue(args); - } - throw new ArgumentException(); - } - } ///