summaryrefslogtreecommitdiff
path: root/addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd
diff options
context:
space:
mode:
authorradiohotline <radoihotline@disroot.rg>2026-08-25 16:33:56 +0300
committerradiohotline <radoihotline@disroot.rg>2026-08-25 16:33:56 +0300
commita89e744ed0e8c759caf041a580112365bbfe4303 (patch)
treedd61e320904176995727e86a857d00c90d4933ba /addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd
parent6d53d8cac78250dc888aa49d5f9d4175c6652feb (diff)
escoria updateHEADmain
Diffstat (limited to 'addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd')
-rw-r--r--addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd45
1 files changed, 45 insertions, 0 deletions
diff --git a/addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd b/addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd
new file mode 100644
index 0000000..3849e31
--- /dev/null
+++ b/addons/gdUnit4/src/ui/menu/GdUnitContextMenuItem.gd
@@ -0,0 +1,45 @@
+class_name GdUnitContextMenuItem
+
+
+var command_id: String:
+ set(value):
+ command_id = value
+ get:
+ return command_id
+
+var name: StringName:
+ set(value):
+ name = value
+ get:
+ return name
+
+var visible: Callable:
+ set(value):
+ visible = value
+ get:
+ return visible
+
+var icon: Texture2D:
+ get:
+ return GdUnitCommandHandler.instance().command_icon(command_id)
+
+
+func _init(p_command_id: String, p_name: StringName, p_is_visible: Callable) -> void:
+ assert(p_command_id != null and not p_command_id.is_empty(), "(%s) missing command id " % p_command_id)
+ assert(p_is_visible != null, "(%s) missing parameter 'GdUnitCommand'" % p_name)
+
+ self.command_id = p_command_id
+ self.name = p_name
+ self.visible = p_is_visible
+
+
+func shortcut() -> Shortcut:
+ return GdUnitCommandHandler.instance().command_shortcut(command_id)
+
+
+func is_visible(...args: Array) -> bool:
+ return visible.callv(args)
+
+
+func execute(...args: Array) -> void:
+ GdUnitCommandHandler.instance().command_execute(command_id, args)