@tool
extends Container
# Custom style normal, focus

var selected: = false:
	set = set_selected


func _init():
	
	focus_mode = FOCUS_NONE # Let FlowChart has the focus to handle gui_input
	mouse_filter = MOUSE_FILTER_PASS

func _draw():
	if selected:
		draw_style_box(get_theme_stylebox("focus", "FlowChartNode"), Rect2(Vector2.ZERO, size))
	else:
		draw_style_box(get_theme_stylebox("normal", "FlowChartNode"), Rect2(Vector2.ZERO, size))

func _notification(what):
	match what:
		NOTIFICATION_SORT_CHILDREN:
			for child in get_children():
				if child is Control:
					fit_child_in_rect(child, Rect2(Vector2.ZERO, size))

func _get_minimum_size():
	return Vector2(50, 50)

func set_selected(v):
	if selected != v:
		selected = v
		queue_redraw()