Next to UI level discussion, at wintercamp we reviewed the 2.5 technical design too. Changes are especially needed to build user interfaces and improve python access. So here is a list of todo's, related to the general design, not specific editors.
Support setting pointers. This will allow them to be editable in generated user interfaces.
- Maybe: "add" for structs, "add", "remove", "swap", operations for collections, to generate buttons. Alternatively operators can be written instead.
- Groups to make generating UI easier and avoid using strings in UI code.
- Document the data flow through RNA, since it will get more complicated.
- Document the internals.
This should become a general "map" to allow python to also push data into the context.
It should become python wrapped, most likely using RNA.
- How to keep context lookups fast and avoid too complex layering?
- Move specific context get functions to the respective editors, to avoid context becoming too much of a G global replacement.
- Implement API system.
- Maybe: add a way to specify which operators properties are registered.
Implement layout API.
- Implement layout templates.
- Panel/Menu/Toolbar registration mechanism, similar to regions/spaces?
- Storage of closed/open state for panels, etc. Where does it go?
- Partial redraw on highlight and other local button operations.
- Use blenfont.
- Keyframe and other options from button menu.
- Buttons adapted to RNA property types like angle, percentage, pointer.
- Redo/repeat mechanism review.
- Macro creation/editing/saving.
- Keymaps editing.
- Keymaps for modal operators.
- Special characters, keycodes, .. review.
- More screen edit dragging operations.
- Region editing inside areas.
- Multi-window matching.
- Python needs to know when something is deleted so it can NULL any references to it.
- ID's can get general call.
- Non ID data like modifiers need a method too.
- Animato RNA paths also need updates on delete.
- But also on rename, move in collection.
- Future selection groups will be able to hook into the same system.
- Implement subclassing mechanism for operators/spaces/...
- RNA struct and property defining.
- UI API.
- Script registration mechanism.
- Storing and calling built-in python scripts for UI, ...