Randoloot/scripts/ui/item_tooltip_frame.gd
2026-10-13 21:50:09 +02:00

31 lines
1.2 KiB
GDScript

extends PanelContainer
var accent := Color("91dbea")
func _ready() -> void:
mouse_filter = Control.MOUSE_FILTER_IGNORE
z_index = 1
resized.connect(queue_redraw)
minimum_size_changed.connect(func() -> void: _fit_popup.call_deferred())
_fit_popup.call_deferred()
func _fit_popup() -> void:
reset_size()
var shell := get_parent()
if shell is Control and shell.get_parent() is Window:
shell.reset_size()
shell = shell.get_parent()
if shell is Window:
# The engine popup otherwise retains its first, unwrapped text height.
shell.size = Vector2i(get_combined_minimum_size().ceil()) + Vector2i(4, 4)
func _draw() -> void:
# Crisp etched corner brackets and a top accent; no blurred shadow.
var inset := 5.0
var length := 12.0
for corner in [Vector2(inset, inset), Vector2(size.x - inset, inset), Vector2(inset, size.y - inset), Vector2(size.x - inset, size.y - inset)]:
var inward := Vector2(1 if corner.x < size.x * 0.5 else -1, 1 if corner.y < size.y * 0.5 else -1)
draw_line(corner, corner + Vector2(inward.x * length, 0), accent, 1.5, true)
draw_line(corner, corner + Vector2(0, inward.y * length), accent, 1.5, true)
draw_line(Vector2(22, 1), Vector2(minf(size.x - 22, 112), 1), accent, 2, true)