Rewrite layout code
The layout reader and renderer share responsibilities in positioning objects on the widget. This makes the design difficult to analyze and some silly but hard to find bugs.
-
the original XML layout format specifies too many things. The hacked up version ignores a lot, and the fields should go
-
it's hard to process the layout with callbacks/iterators in a type-safe way. This is a candidate for Rusting. Done in !140 (merged) -
without explicit positioning, constraint propagation needs to be clear. It's currently difficult to do right due to sections and keys meant to be positioned directly, and C iteration. Done in !140 (merged) -
need to enforce keyboard shaping in layout, and positioning and scaling in renderer, in order to deal with different display sizes properly
-
view should be detached from model: EekKeyboard
andEekKey
mix it up. Partially addressed in !132 (merged) -
adding spaces, and having different button classes would be good
Optional:
- why XML? if XML, then the Android format offers better interoperability