mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-11-01 02:53:02 +01:00
Compare commits
1 Commits
1.25
...
1c1aa5ea44
| Author | SHA1 | Date | |
|---|---|---|---|
|
1c1aa5ea44
|
@@ -45,6 +45,7 @@ namespace TweetDuck {
|
||||
internal static void SetupWinForms() {
|
||||
Win.Application.EnableVisualStyles();
|
||||
Win.Application.SetCompatibleTextRenderingDefault(false);
|
||||
Win.LegacyWinForms.EnsureValid();
|
||||
}
|
||||
|
||||
[STAThread]
|
||||
|
||||
@@ -4,9 +4,15 @@ using System.Reflection;
|
||||
namespace System.Windows.Forms {
|
||||
internal sealed class Command2 {
|
||||
private static readonly Type Type = typeof(Form).Assembly.GetType("System.Windows.Forms.Command");
|
||||
private static readonly ConstructorInfo Constructor = Type.GetConstructor(new Type[] { typeof(ICommandExecutor) }) ?? throw new NullReferenceException();
|
||||
private static readonly MethodInfo DisposeMethod = Type.GetMethod("Dispose", BindingFlags.Instance | BindingFlags.Public) ?? throw new NullReferenceException();
|
||||
private static readonly PropertyInfo IDProperty = Type.GetProperty("ID") ?? throw new NullReferenceException();
|
||||
private static readonly ConstructorInfo Constructor = Type.GetConstructor(new Type[] { typeof(ICommandExecutor) });
|
||||
private static readonly MethodInfo DisposeMethod = Type.GetMethod("Dispose", BindingFlags.Instance | BindingFlags.Public);
|
||||
private static readonly PropertyInfo IDProperty = Type.GetProperty("ID");
|
||||
|
||||
internal static void EnsureValid() {
|
||||
if (Constructor == null || DisposeMethod == null || IDProperty == null) {
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
public int ID { get; }
|
||||
|
||||
|
||||
@@ -7,7 +7,13 @@ using System.Runtime.InteropServices;
|
||||
|
||||
namespace System.Windows.Forms {
|
||||
public sealed class ContextMenu : Menu {
|
||||
private static readonly FieldInfo NotifyIconWindowField = typeof(NotifyIcon).GetField("window", BindingFlags.Instance | BindingFlags.NonPublic) ?? throw new InvalidOperationException();
|
||||
private static readonly FieldInfo NotifyIconWindowField = typeof(NotifyIcon).GetField("_window", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
|
||||
internal static void EnsureValid() {
|
||||
if (NotifyIconWindowField == null) {
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler Popup;
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace System.Windows.Forms;
|
||||
|
||||
public static class LegacyWinForms {
|
||||
public static void EnsureValid() {
|
||||
Command2.EnsureValid();
|
||||
ContextMenu.EnsureValid();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user