http://people.gnome.org/~gjc/htmltextview.py

* We have to create a simple widget that understand few tags:

StyleShit:
*:f mono,s 8
b:s 1024,c red

code.set_style ("*:f mono,s 8");
code.reset_style ();

Aliases:
(a:b,c blue/>

<a>..</a>          link
<a /call/foo>..</a>  link
<b>..</b>          bold
<i>..</i>          italic
<u>..</u>          underline
<s 8>..</s>        size 8
<c red>..</c>      foreground color
<c ? red>..</c>    background color
<c blue red>..</c> foreground and background color
<f courier>..</f>  change font

// why this tag needs body? we need to support <i wl.png/>
<i wl.png>..</i>   insert image

<u,a /call/foo,i>Hello world</u>

Replacements:
&lt;  <
&gt;  >

Signals:

 link_clicked
 menu_spawned
 load_image // add api to handle a cache of pixmaps
    image_load()
    image_free() // free all unreferenced images

Fields:
  public selected_text { get; };

Methods:

 insert_text ()
 set_text ()
 set_tags ()
 set_text_with_tags ()
 void get_cursor ()
 string get_cursor_text ()
 string get_selected_text ()
 string get_text_range (int from, int to)
 bool set_selection_range (int from, int to)

hook clicked on widget
  after set cursor check if there's a link under the cursor. how?
