47 lines
891 B
GDScript
47 lines
891 B
GDScript
class_name Track
|
|
extends Button
|
|
|
|
signal on_deleted(idx: int)
|
|
signal on_renamed
|
|
signal on_duplicated
|
|
|
|
func _ready():
|
|
var menu: PopupMenu = $PopupMenu
|
|
menu.add_item("Rename", 0)
|
|
menu.add_item("Duplicate", 2)
|
|
menu.add_item("Delete", 1)
|
|
|
|
menu.add_separator()
|
|
menu.add_item("Properties")
|
|
|
|
menu.id_pressed.connect(_on_menu_option)
|
|
|
|
func _on_menu_option(id: int):
|
|
match id:
|
|
0:
|
|
rename()
|
|
1:
|
|
delete()
|
|
2:
|
|
duplicate_track()
|
|
pass
|
|
|
|
func delete():
|
|
on_deleted.emit(get_index())
|
|
pass
|
|
|
|
func rename():
|
|
%TrackName.grab_focus()
|
|
pass
|
|
|
|
func duplicate_track():
|
|
pass
|
|
|
|
func _gui_input(event):
|
|
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_RIGHT and event.pressed:
|
|
var popup = %PopupMenu
|
|
#%PopupMenu.popup(get_global_mouse_position())
|
|
var pos = get_global_mouse_position()
|
|
var rect = Rect2i(pos, popup.get_contents_minimum_size())
|
|
popup.popup(rect)
|