mirror of
https://github.com/Relintai/pandemonium_engine_easy_charts.git
synced 2024-12-21 13:47:18 +01:00
27 lines
681 B
GDScript3
27 lines
681 B
GDScript3
|
tool
|
||
|
extends Tree
|
||
|
|
||
|
signal moved(item, to_item, shift)
|
||
|
|
||
|
|
||
|
func get_drag_data(position): # begin drag
|
||
|
set_drop_mode_flags(DROP_MODE_INBETWEEN | DROP_MODE_ON_ITEM)
|
||
|
|
||
|
var preview = Label.new()
|
||
|
preview.text = get_selected().get_text(0)
|
||
|
set_drag_preview(preview) # not necessary
|
||
|
|
||
|
return get_selected() # TreeItem
|
||
|
|
||
|
|
||
|
func can_drop_data(position, data):
|
||
|
return data is TreeItem # you shall not pass!
|
||
|
|
||
|
|
||
|
func drop_data(position, item): # end drag
|
||
|
var to_item = get_item_at_position(position)
|
||
|
var shift = get_drop_section_at_position(position)
|
||
|
# shift == 0 if dropping on item, -1, +1 if in between
|
||
|
|
||
|
emit_signal('moved', item, to_item, shift)
|