From BlenderWiki

Jump to: navigation, search

Technical Todo

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.

RNA

  • 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.

Context

  • 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.

Operators

  • Implement API system.
  • Maybe: add a way to specify which operators properties are registered.

UI

  • 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.

WM

  • Redo/repeat mechanism review.
  • Macro creation/editing/saving.
  • Keymaps editing.
  • Keymaps for modal operators.
  • Special characters, keycodes, .. review.

Screen

  • More screen edit dragging operations.
  • Region editing inside areas.
  • Multi-window matching.

Data Integrity

  • 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.

Python

  • 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, ...