online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/gridmenu/GridMenuButton.gd')
| -rw-r--r-- | ui/gridmenu/GridMenuButton.gd | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ui/gridmenu/GridMenuButton.gd b/ui/gridmenu/GridMenuButton.gd new file mode 100644 index 0000000..6df463f --- /dev/null +++ b/ui/gridmenu/GridMenuButton.gd @@ -0,0 +1,30 @@ +extends Button +class_name GridMenuButton + +onready var popup :Popup = $Popup +onready var gridmenu :GridMenu= $Popup/GridMenu + +signal selected(index) + +var selected := 0 setget set_selected +var items := [] + +func add_item(icon, tooltip := "", size:=Vector2(40, 30)): + items.append(icon) + gridmenu.add_item(icon, tooltip, size) + +func _on_GridMenu_pressed(index:int): + set_selected(index) + emit_signal("selected", index) + popup.hide() + +func set_selected(index:int): + selected = index + icon = items[index] + +func _pressed() -> void: + popup.rect_size=Vector2.ZERO + var rect := popup.get_global_rect() + rect.position = rect_global_position - Vector2(50, 50) + popup.popup(rect) + gridmenu.open()
\ No newline at end of file |