package ui

import (
	"opslag.de/schobers/geom"
)

type Control interface {
	Arrange(Context, geom.RectangleF32, geom.PointF32, Control)
	DesiredSize(Context, geom.PointF32) geom.PointF32
	Handle(Context, Event) bool
	Render(Context)

	Bounds() geom.RectangleF32
	Disable()
	Enable()
	IsDisabled() bool
	IsInBounds(p geom.PointF32) bool
	IsOver() bool
	Offset() geom.PointF32

	Parent() Control
}

type RootControl interface {
	Control

	Init(Context) error
}