TODO list on control flow view by Mathieu Desnoyers

- Make "before hook" update process's info : it creates an inconsistency
  between state.c process table and process list. Waiting to see if
  state.c will take first event time as creation time or first schedule.


- Split in process view and CPU ciew :
  - remove process 0 from the process list
  - add a new viewer to the module :
    - cfv.c -> new cpuctl.c : core of the view
    - eventhooks.c -> cpuhooks.c : draw cpu states
    - processlist.c -> cpulist.c

- Check cfv for stability, modules load/unload, viewer start (many:3+), stop,
  memory leaks; standardize module unloading : in all cases they should call
  main window's API for viewer widget removal, and only then the memory should
  be released (from the call of the main window).

- Add viewer selected signal (call main window's API function)
- When viewing a big trace, use the fact that the drawing cannot be more
  precise than the amount of horizontal pixels it has : "jump" from one event
  to another, converting pixels to time in the trace. It will use efficiently
  the "saved state" functionnality of underlying state.c.

- Modify widgets'organization so the time bar is not affected by scrolling :
  it may need to separate process list from the drawing area (not in a
  scrolled window anymore). The idea would be to use a scrolled window for
  the drawing area, put it in the right side of a hbox, put the tree view
  in the left side and then connect the tree view's adjustment to the
  scrolled window's scroll bar.

- Modify icon, text and arc drawing so they are drawn only on top of the
  background. They will have to be drawn from the following event or from 
  closure function in order to respect the priorities.

Wish list

- Tool bar for the viewer so many actions can be done on the screen.

- Ability to select events with the mouse : in a "event selection mode", the
  mouse click would "redraw" the image virtually and select an event.
  (just like selectionGL in OpenGL).

- Shown more events if wanted.

- Use filter to show additionnal events. (do not filter schedule events! 
  The filtering should be applied to the additionnal events only). Note that it
  require no change to filter : just do not make the filter apply on every
  incoming events in the viewer's hooks.

- Add vertical lines showing control flow between processes : it may become
  confusing when working on multiple cpu.

- Add a horizontal line showing the currently selected process. May be a
  light dotted line, similar to the current time line, but with a different
  color/pattern.

- Add events customization window : make the user able to select the
  text/icon/line color/background color/dots linked with any kind of
  event. The framework is there, it must be completed. (the use of
  Attributes to call hooks for every event type comes from there)


