Redraw:

	 ,-------------.   ,---------. ,-----------------. ,-------------.
	 |DiaCanvasView|   |DiaCanvas| |DiaCanvasViewItem| |DiaCanvasItem|
	 `-------------'   `---------' `-----------------' `-------------'
		|		|		|		|
  update()	|		|		|		|
--------------->|dirty_region()	|		|		|
		|-------------->|  update()	|		|
		|---------------+-------------->|  update()	|
		|		|		|-------------->|
		|		|		|		|
		:		:		:		:
  draw()	|		|		|		|
--------------->|		|  draw()	|		|
		|---------------+-------------->|  render()	|
		|		|		|-------------->|

Add a new DiaCanvasItem:

		|		|		|  add()	|
		|  new_item()	|<--------------+---------------+-------
		|<--------------|  create()	|		|
		|---------------+-------------->|		|
		|		|		|		|

Remove an item:

		|		|		|  unparent()	|
		|		|---------------+-------------->|
		|		|		|  destroy	|
		|  remove()	|		|<--------------|
		|<--------------+---------------|		|

Event scenario 2 (uses the item finder of GnomeCanvas):

NOTE: Before the event is send to the DiaCanvasViewItem, the coordinates
  are converted to coordinates relative to the DiaCanvas(View)Item. This
  is standard GnomeCanvas behaviour.

  event()	|		|		|		|
--------------->|  find_item()	|		|		|
		|------------.	|		|		|
		|<-----------'	|  event()	|		|
		|---------------+-------------->|  event()	|
		|		|		|-------------->|
