extends Control

var children={}

func _ready():
	for child in get_children(true): children[child]={'hover':false,'active':false}
	for child in children.keys():
		child.pressed.connect(focused.bind(child))
		child.mouse_entered.connect(hover.bind(child,true))
		child.mouse_exited.connect(hover.bind(child,false))

func _draw():
	var colour=''
	var childs=children.keys()
	for i in range(len(children)):
		for j in range(i,len(children)):
			if darken([i,j],childs): colour='#444444'
			else: colour='#aaaaaa'
			draw_line(childs[i].position+(childs[i].size/2),childs[j].position+(childs[i].size/2),colour)

func focused(this):
	children[this]['active']=!children[this]['active']
	queue_redraw()

func hover(this,now):
	children[this]['hover']=now
	queue_redraw()

func darken(nums,keys):
	for num in nums:
		if children[keys[num]]['active'] or children[keys[num]]['hover']: return true
	return false
