<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>Editor Canvas as Output Port</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>The following short piece of code creates an output port to write text onto an editor canvas.&nbsp; The attached file has a short example.&nbsp; It works, but I'm not sure it's an adequate implementation for general usage.&nbsp; For one thing, it only works for text, while, for example, DrScheme lets me write graphic elements (e.g., an image snip) using print (or printf even).&nbsp; Am I correct in that I need to supply an optional-write-special-proc to handle these?&nbsp; It's hard to tell from the documentation I've look at so far.<BR>
<BR>
(define (make-editor-canvas-port editor-canvas)<BR>
&nbsp; (let ((text (send editor-canvas get-editor)))<BR>
&nbsp;&nbsp;&nbsp; (if text<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (make-output-port<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'canvas-port<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; always-evt<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (lambda (s start end non-block? breakable?)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (send text insert<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (bytes-&gt;string/latin-1 s #f start end))<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (- end start))<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #f)))<BR>
<BR>
Is there a similar set of procedures that already exist somewhere I can use?<BR>
<BR>
There seem to be similar things in the Application Framework, but I've only skimmed over them so far.&nbsp; They seem to be overkill for simple MrEd applications, but that may well be a learning curve issue more than anything.<BR>
<BR>
Thanks,<BR>
Doug<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>