mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-04-21 15:15:48 +02:00
parent
da54af221c
commit
1c1aa5ea44
windows
@ -45,6 +45,7 @@ static class Program {
|
||||
internal static void SetupWinForms() {
|
||||
Win.Application.EnableVisualStyles();
|
||||
Win.Application.SetCompatibleTextRenderingDefault(false);
|
||||
Win.LegacyWinForms.EnsureValid();
|
||||
}
|
||||
|
||||
[STAThread]
|
||||
|
@ -4,10 +4,16 @@
|
||||
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; }
|
||||
|
||||
private readonly object cmd;
|
||||
|
@ -7,8 +7,14 @@
|
||||
|
||||
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;
|
||||
|
||||
public void Show(Control control, Point pos) {
|
||||
|
@ -0,0 +1,8 @@
|
||||
namespace System.Windows.Forms;
|
||||
|
||||
public static class LegacyWinForms {
|
||||
public static void EnsureValid() {
|
||||
Command2.EnsureValid();
|
||||
ContextMenu.EnsureValid();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user