extends HBoxContainer

func set_label(l : String) -> void:
	$Name.set_text(l)

func set_type(t : String) -> void:
	$Type.selected = mm_io_types.type_names.find(t)

func update_up_down_button() -> void:
	var parent = get_parent()
	if parent == null:
		return
	$Up.disabled = (get_index() == 0)
	$Down.disabled = (get_index() == get_parent().get_child_count()-2)

func _on_Name_label_changed(new_label) -> void:
	get_parent().generator.set_port_name(get_index(), new_label)

func _on_Type_item_selected(ID) -> void:
	get_parent().generator.set_port_type(get_index(), mm_io_types.type_names[ID])

func _on_Delete_pressed() -> void:
	get_parent().generator.delete_port(get_index())

func _on_Up_pressed() -> void:
	get_parent().generator.swap_ports(get_index(), get_index()-1)

func _on_Down_pressed() -> void:
	get_parent().generator.swap_ports(get_index(), get_index()+1)
