2019-06-21 23:02:08 +00:00
|
|
|
package net.shadowfacts.shadowui
|
|
|
|
|
|
|
|
import net.shadowfacts.shadowui.geometry.Point
|
|
|
|
import no.birkett.kiwi.Solver
|
|
|
|
|
2019-06-22 14:59:18 +00:00
|
|
|
/**
|
|
|
|
* @author shadowfacts
|
|
|
|
*/
|
2019-06-21 23:02:08 +00:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|