Hi, <br><br>Here is a simple example;<br><br>let me know how you go<br><br>Cheers, <br><br>Stephen<br><br><br><br>;; <br>(module graph-demo mzscheme<br>&nbsp; (require <br>&nbsp;&nbsp; (lib &quot;mred.ss&quot; &quot;mred&quot;)<br>&nbsp;&nbsp; (lib &quot;
graph.ss&quot; &quot;mrlib&quot;)<br>&nbsp;&nbsp; (lib &quot;class.ss&quot;)<br>&nbsp;&nbsp; )<br><br>&nbsp; (define the-frame<br>&nbsp;&nbsp;&nbsp; (new frame% ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (label &quot;graph-demo&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (width 600)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (height 600)))<br><br>
&nbsp; ;; add the matching descriptions list box<br>&nbsp; (define the-editor-canvas (instantiate editor-canvas% (the-frame)))<br>&nbsp; (define draw-lines-pasteboard% (class (graph-pasteboard-mixin pasteboard%) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (super-new)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (define/public (add-issue issue)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (let* ((issue-snip (make-object my-graph-snip% issue))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (send this insert issue-snip)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; issue-snip))))<br>&nbsp; <br>&nbsp; (define the-graph-pasteboard (instantiate draw-lines-pasteboard% ()))<br>&nbsp; (send the-editor-canvas set-editor the-graph-pasteboard)<br>&nbsp; <br>&nbsp; (define my-graph-snip% (graph-snip-mixin string-snip%)) ;; use string-snip%
<br>&nbsp; ; I&#39;m playing with a decorated editor snip at the moment so I can edit the text <br>&nbsp; ; of a snip in-place, and have a cute little icon, all in a nice box.<br>&nbsp; <br>&nbsp; ;; does what it says on the can.<br>&nbsp; (define (connect parent child)
<br>&nbsp;&nbsp;&nbsp; (define dark-pen (send the-pen-list find-or-create-pen &quot;blue&quot; 1 &#39;solid))<br>&nbsp;&nbsp;&nbsp; (define dark-brush (send the-brush-list find-or-create-brush &quot;blue&quot; &#39;solid))<br>&nbsp;&nbsp;&nbsp; (define light-pen (send the-pen-list find-or-create-pen &quot;light blue&quot; 1 &#39;solid))
<br>&nbsp;&nbsp;&nbsp; (define light-brush (send the-brush-list find-or-create-brush &quot;light blue&quot; &#39;solid))<br>&nbsp;&nbsp;&nbsp; (add-links parent child<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dark-pen light-pen<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dark-brush light-brush&nbsp; &quot;--&gt;to--&gt;&quot; ))
<br>&nbsp; <br>&nbsp; (define aaa (send the-graph-pasteboard add-issue &quot;aaa&quot;))<br>&nbsp; (define bbb (send the-graph-pasteboard add-issue &quot;bbb&quot;))<br>&nbsp; (define ccc (send the-graph-pasteboard add-issue &quot;ccc&quot;))
<br>&nbsp; (define ddd (send the-graph-pasteboard add-issue &quot;ddd&quot;))<br>&nbsp; <br>&nbsp; (connect aaa bbb)<br>&nbsp; (connect ccc bbb)<br>&nbsp; (connect ddd bbb)<br>&nbsp; (connect aaa ddd)<br>&nbsp; <br>&nbsp; (send the-frame show #t) <br>&nbsp; <br>&nbsp; (define-values (width height) (send the-editor-canvas get-client-size))
<br><br>&nbsp; (printf &quot;width:~a height:~a&quot; width height)<br>&nbsp; (define (random-position extent)<br>&nbsp;&nbsp;&nbsp; (+ 30 (random&nbsp;(- extent 60)))<br>&nbsp;&nbsp;&nbsp; )<br>&nbsp; (send the-graph-pasteboard move-to aaa (random-position width) (random-position height) )
<br>&nbsp; (send the-graph-pasteboard move-to bbb (random-position width) (random-position height))<br>&nbsp; (send the-graph-pasteboard move-to ccc (random-position width) (random-position height))<br>&nbsp; (send the-graph-pasteboard move-to ddd (random-position width) (random-position height))
<br>&nbsp; <br>&nbsp; <br>&nbsp; )<br><br><br><br clear="all"><br>-- <br>Cheers,<br><br>Stephen<br><br><br><br>--<br>Stephen De Gabrielle<br><a href="mailto:s.degabrielle@ucl.ac.uk">s.degabrielle@ucl.ac.uk</a><br>Telephone +44 (0)20 7679 5242 (x45242)
<br>Mobile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;079 851 890 45<br><a href="http://www.uclic.ucl.ac.uk/annb/MaSI.html">http://www.uclic.ucl.ac.uk/annb/MaSI.html</a><br>University College London Interaction Centre<br>Remax House - 31/32 Alfred Place
<br>London - WC1E 7DP