1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-03-18 01:03:15 +00:00
Pixelorama/src/UI/ReferenceImages/ReferenceImageButton.gd
Emmanouil Papadeas 572fabbe66 Remove Global.reference_panel
Slowly trying to remove nodes from Global
2024-03-23 02:52:27 +02:00

64 lines
1.6 KiB
GDScript

extends Button
var references_panel: ReferencesPanel
func _get_drag_data(_at_position: Vector2) -> Variant:
var index := get_index() - 1
# If the index < 0 then that means this button is the "reset button"
if index < 0:
return null
set_drag_preview(self.duplicate())
var data := ["ReferenceImage", index]
return data
func _can_drop_data(_at_position: Vector2, data: Variant) -> bool:
if typeof(data) != TYPE_ARRAY:
references_panel.drag_highlight.visible = false
return false
if data[0] != "ReferenceImage":
references_panel.drag_highlight.visible = false
return false
var index := get_index() - 1
var from_index: int = data[1]
# If the index < 0 then that means this button is the "reset button"
# Or we are trying to drop on the same button
if index < 0 or index == from_index:
references_panel.drag_highlight.visible = false
return false
var side: int = -1
if get_local_mouse_position().x > size.x / 2:
side = 1
var region := Rect2(global_position + Vector2(3, 0), Vector2(6, size.y))
# Get the side
if side == 1:
region.position.x = (size.x + global_position.x) - 3
references_panel.drag_highlight.visible = true
references_panel.drag_highlight.position = region.position
references_panel.drag_highlight.size = region.size
return true
func _drop_data(_at_position: Vector2, data: Variant) -> void:
var from_index: int = data[1]
var to_index := get_index()
if get_local_mouse_position().x > size.x / 2:
if from_index > to_index:
to_index += 1
print("Help mee")
else:
if from_index < to_index:
to_index -= 1
references_panel.reorder_reference_image(from_index, to_index - 1, false)