调整了模板
This commit is contained in:
46
BITKit/Scripts/UX/UXContextMenu.cs
Normal file
46
BITKit/Scripts/UX/UXContextMenu.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using Godot;
|
||||
|
||||
namespace BITKit;
|
||||
|
||||
public class UXContextMenuBuilder
|
||||
{
|
||||
public void Build()
|
||||
{
|
||||
UXContextMenu.Singleton.Position = UXContextMenu.MousePosition;
|
||||
UXContextMenu.Singleton.Show();
|
||||
}
|
||||
}
|
||||
|
||||
public static class UXContextMenuExtensions
|
||||
{
|
||||
public static UXContextMenuBuilder AddAction(this UXContextMenuBuilder self,string name,Action action)
|
||||
{
|
||||
UXContextMenu.Singleton.AddItem(name);
|
||||
return self;
|
||||
}
|
||||
}
|
||||
[GlobalClass]
|
||||
public partial class UXContextMenu:PopupMenu
|
||||
{
|
||||
public static UXContextMenu Singleton { get; private set; }
|
||||
public static Vector2I MousePosition { get; private set; }
|
||||
public override void _Ready()
|
||||
{
|
||||
Singleton = this;
|
||||
}
|
||||
|
||||
public static UXContextMenuBuilder Create()
|
||||
{
|
||||
Singleton.Clear();
|
||||
return new UXContextMenuBuilder();
|
||||
}
|
||||
|
||||
public override void _Input(InputEvent @event)
|
||||
{
|
||||
if (@event is InputEventMouseMotion motion)
|
||||
{
|
||||
MousePosition = (Vector2I)motion.Position;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user