lui-0.0.1: TODO
* Restructure it as a library and upload to hackage.
Export lists everywhere!
* Mention its HaskGame based (it uses its Vector2 type/etc)
* Abstract away SDL keyboard keys, events, flip and delay
* Implement a GLUT-based version
* Grid with delete row/column, Box with delete item?
* Animations:
* Draw -> Animate?
* Can use ID's on all drawings, and have it animate stuff moving around
Questions:
* After chat with conal:
* type FontMap = Map String Font
* type Draw = FontMap -> Image
* render :: Font -> (Image, Size)
* unsafePerformIO all font renderings?
* Have Size be an opaque type usable only for Image manipulations?
* Is the "Clipboard" a good idea?
* Maybe have a "Clipring" instead?
* Clipring is a list of N items, and showing it shows one line per item
with the "summary" of each.
* When whole content fits in line it is shown, otherwise, it is
"summarized". Each model needs to be associated with
* Bottom line of the screen can show summary of top clipring item
* Clipring accessible with some key, animating all the contents up,
allowing to move item to the top
* What do widget actions do, besides updating the model?
1. Read and write from the clipboard (Clipboard monad?)
2. "Signal"? Probably not, as it implies a side-effect.
* Consider removing the accessor arg and using adapter always
This means child containers have to be parameterized on the child
rather than on the generic model, so Grid is not Widget model
but Widget (Mutable, Map Cursor childModel)?
Then, you can adapt the real model to that tuple.
This is probably less convenient than what I have now
* Can I create a generic newDelegate method in FocusDelegator instead
of copying it into each widget? Its probably possible by using ugly
accessors/adapters, but less important at the moment.