DLP/Libraries/librevenge

TODO for release
This is a rough list of what I think needs to be done before we can release librevenge. The names associated with tasks are based on my feeble memory: it is just the person that I think is/was somehow related to the task. It does not mean that the task is assigned to that person. (But if someone decides to handle something from the list, please, change the name to yourself.)

Note: There is no need to implement newly added functions in generators (especially in libodfgen) immediately (except as empty functions). That can be done when they are actually used by a library. So we can release librevenge even if no existing generator actually completely supports all the interfaces.

Must

 * all interfaces
 * support embedded fonts [David] [DONE]
 * support alternate representation of content [David] [DONE]
 * e.g., allow a generator to use alternate text instead of an image, if the generator cannot process that
 * support connectors [David] [DONE]


 * Drawing
 * support master pages [David] [DONE]
 * support groups [David] [DONE]


 * Presentation
 * support animations [David] [DONE]
 * support slide transitions [David] [DONE]
 * support charts [David] [DONE]
 * support master pages [David] [DONE]

Should

 * all interfaces
 * decide whether to keep setDocumentMetaData or fold it into startDocument [DONE]
 * we decided to keep it
 * allow to pass document settings [Laurent]
 * IIRC Laurent wanted something like that?
 * decide whether to drop define(Un)orderedListLevel [DONE]
 * we already dropped them
 * improve API documentation
 * create a tutorial on use of the library [David] [IN PROGRESS]

Ideas

 * support forms
 * buttons, lists, etc.
 * I would rather avoid that, at least now. Forms are quite complicated...
 * offer a way to track progress
 * e.g., function void addProgressListener(RVNGProgressListener *), where RVNGProgressListener interface contains function virtual void notifyProgress(int/double) (either int 0..100 or double 0.0..1.0)
 * does not imply that libraries actually have to handle it
 * an interface for bitmaps
 * to allow insertion, not just opening as a drawing document
 * can be done anytime, as it does not require changes to existing interfaces
 * an interface for databases
 * does anyone want/need it?
 * can be done anytime, as it does not require changes to existing interfaces
 * interface converters [Fridrich]
 * e.g., from Text to Drawing
 * can be done anytime, as it does not require changes to existing interfaces
 * Is it better if we make all interface inherit from a basic generic interface ?
 * Do we need to add some numbering styles interfaces in text, … (i.e. functions which allows to define a number/date/time format ) ? Idem for formula
 * If the interface for presentation need also chart, do we need to add a RVNGChartInterface and some mechanism to obtain access to this interface in RVNGPresentation/SpreadsheetInterface