
// Legend

* = URGENT
+ = SHORT TERM
- = LONG TERM

// MathML

BUGS

* when index == length in a glyph area the caret is drawn
  at the right end of the focus' bounding box. It would be
  more appropriate to draw it just after the glyph, especially
  for mo elements
? no indentifiers for the custom frontend? In particular, the widget
  API never handles this (modelElementOfElement and converse method)
? selecting the root <math> element does not show selection
- add space in munderover between base and script
- enable percentage in minsize/maxsize stretchable operators
- install header files in subdirectories:
  backenddir = $(includedir)/$(PACKAGE)/backend
  backend_HEADERS = ...
  endinedir = $(includedir)/$(PACKAGE)/engine
  engine_HEADERS = ...

ARCH IMPROVEMENTS

+ Gtk_PangoLayoutLineArea shares constructor with GtkPangoLayoutArea
  which computes bounding box as well
? make GlyphStringArea a leaf-like area?
- in TemplateBuilder exploit MathMLInferredRowElement instead of
  creating it each time
- make the dummy elements have some content (or an attribute)
  and parameterize their rendering with that content
- change the clone method for areas so that it checks if the
  content is unchanged, and possibly implement the replace this
  way
- implement auxiliary methods for searching into the area model
- it seems like the choice of having that the first child of a
  vertical area is the bottommost is a bit weird. Think of the cursor:
  intuitively at increasing indices the cursor should go forward (that
  is right or down depending on the container)
- It may be feasible to generalize searching functions
  over areas by implementing a visitor
- fix Configuration/Globals files 
  create a class for them and refer them from the View
- remove cast in gmetadom_Model::documentFromBuffer when gdome API is OK

PERFORMANCE IMPROVEMENTS

- share Gtk_MathGraphicDevice along with all the shapers.
  Unfortunately these need the widget.
- implement caching mechanism for pango shaper
- in TemplateBuilder do not use the hash map for retrieving old
  elements, but use accessor methods instead. Much faster 
- GetOperatorForm in mrow is linear in the length of the row

MISSING

? make setSelected virtual in Gtk_WrapperArea and implement
  an open Wrapper area that selects all its children. Use the
  open wrapper for groups
- implement AreaCanvas for drawing lines
- implement table formatting
- implement PS area model (using pslib?)
- implement T1lib area model (using pslib instead?)
- implement MGD for TeX fonts
- implement shaper for TeX fonts (this should be usable with
  both the T1lib and PS area models)
- implement shaper for Mathematica fonts
- runtime selection of backend
- mmultiscripts
- mpadded

// BoxML

BUGS

ARCH IMPROVEMENTS

+ The BoxML/MathML embedding mechanism is still ad-hoc and works
  only for MathML inside BoxML

MISSING

- implement overstrike and underline for box text ?
- add documentation for boxml

