ASMR/src/main/kotlin/net/shadowfacts/shadowui/Window.kt

34 lines
530 B
Kotlin

package net.shadowfacts.shadowui
import net.shadowfacts.shadowui.geometry.Point
import net.shadowfacts.shadowui.view.View
import no.birkett.kiwi.Solver
/**
* @author shadowfacts
*/
class Window {
var solver = Solver()
val views = mutableListOf<View>()
fun <T: View> addView(view: T): T {
views.add(view)
view.solver = solver
view.wasAdded()
return view
}
fun layout() {
solver.updateVariables()
views.forEach(View::didLayout)
}
fun draw(mouse: Point, delta: Float) {
views.forEach(View::draw)
}
}