extends Control

@onready var _items = $Items

signal item_clicked(idx, text)

func _process(delta):
	_process_items_font_size()

func _process_items_font_size():
	var default_font_size = _items.get_theme_default_font_size()
	var font_size = _items.get_theme_font_size("font_size")
	var new_font_size = get_viewport_rect().size.y/25
	if font_size != new_font_size:
		_items.add_theme_font_size_override("font_size", new_font_size)

func _ready():
	_connect_signals()

func _connect_signals():
	_items.item_clicked.connect(_on_item_clicked)

func add_item(text: String):
	_items.add_item(text)

func clear():
	_items.clear()

func select(idx):
	_items.select(idx)

func deselect_all():
	_items.deselect_all()

func _on_item_clicked(index, at_position, mouse_button_index):
	var text = _items.get_item_text(index)
	item_clicked.emit(index, text)