For info:
% man ezd

To start up on SUN3 console only
% ezd

use the -i option to use within scheme->c       
sci to scart scheme->c


TO START UP
-----------
(window blah 10 10 400 400)
(set-drawing test)
(overlay blah test)

      (set-drawing drawing)
      (save-drawing)            pushes the name of the current drawing
      (restore-drawing)         pops the name of a drawing off the stack

Graphical objects are drawn into drawings that are displayed
     by  mapping  them into windows.  If no drawings are defined,
     then the default drawing ezd is used.
If the application doesn't initially explicitly  create  any
     windows  or  drawings, then the current drawing is named ezd
     and it is displayed in a window named ezd.Colors are specified by their X color name.  One  additional
     color,  clear,  is defined that allows the creation of tran-
     sparent objects.  This is typically used to  make  invisible
     objects  that  are  sensitive to events.
A few stipple pat-
     terns have been defined:  s0, s1, s2,  ...  s16,  where  the
     number  is  the  number of pixels that are drawn in a 4-by-4
     pattern.

MISC
----
      (bell)
      (pause [milliseconds])
      (quit)
      (scheme scheme-expression ...)

SOME DRAWING COMMANDS
---------------------
      (clear)
      (point x y [color])
      (line x1 y1 x2 y2 [line-width] [color] [dash])
      (rectangle x y width height [line-width] [color] [dash])
      (fill-rectangle x y width height [color] [stipple])
      (fill-polygon x1 y1 x2 y2 ... xn yn [color] [stipple])
      (text x y [width height center-x center-y]  "text"  [color]
                                                            [stipple] ["font"])
     (define-stipple stipple row-bit-value ...)


OBJECTS
-------
      (object object [drawing-command ...])
      (float object)            object to the top of the current drawing
      (sink object)
      (draw-now)
      (clear)                   clears the current drawing and deletes the
                                ordering and event actions associated
                                with named objects

WINDOW COMMANDS
---------------
      (window  name  [right  down]  width   height   [fixed-size]
                                [points] ["title"] [foreground [background]])
      (delete-window window)
      (overlay window drawing [right down width height [points]])
      (underlay window drawing [right down width height [points]])
      (delete-view window drawing)              deletes the drawing from the window
               X_x = drawing_x * scale_x + origin_x
               X_y = drawing_y * scale_y + origin_y
               X_line_width = drawing_line_width * scale_linewidth            

     (origin window drawing x y [points])
     (scale window drawing scale-x scale-y scale-width [points])

INTERACTIVE COMMANDS
--------------------
     In order to simplify application writing, ezd provides  com-
     mands for creating a modest number of interface objects such
     as buttons, sliders, menus and text drawings.

      (when object event action)
      (when object [keyboard-modifier ...] buttonbdown action)
      (when object * #f)

 *  to denote all objects in the drawing
 event types are:
 enter          mouse entered the object
 exit           mouse exited the object
 motion         mouse moved within the object
 buttonbup      mouse button number b came up. Buttons are numbered 1-5.
 buttonbdown    mouse button number b went down. This event may be
                preceeded by any combination of the keywords shift, meta,
                ctrl, and lock indicating that those keys must be down
                for the event to occur.
 keypress       keyboard key pressed
 keyrelease     keyboard key released
 resize         a window containing the drawing was resized.
 expose         a window containing the drawing was exposed.
 overlay        the drawing was overlayed or underlayed on a window.
 visible        a change was made to the portion of the drawing that is visible.
 get-attributes a message was sent to the object via the get-attributes command.

 *user-event-window*    name of window where event occurred
 *user-event-drawing*   name of drawing where event occurred
 *user-event-object*    name of object (or *) where the event occurred
 *user-event-x*         mouse position in drawing coordinates
 *user-event-y*
 *user-event-type*      type of event
 *user-event-xevent*    X event structure or #f
 *user-event-misc*      list of event specific information
 *mouse-window-x*       mouse position in window in X coordinates
 *mouse-window-y*
 *mouse-button1*        boolean indicating state of button 1

     The action is either a Scheme expression to  evaluate  or  a
     Scheme  procedure  (that  takes  no arguments) to be called.
     Once defined, event handlers remain until they  are  deleted
     by  supplying #f as the action, or the drawing is cleared by
     the clear command.  All event  actions  associated  with  an
     object  may  be deleted by supplying * as the event type and
     #f as the action.

      (click object [keyboard-modifier ...] button-number action)
      (get-attributes drawing object tag attribute ...)
      (get-attributes object drawing  attributes...)
      (get-attribute object drawing attribute)
      (set-attributes object drawing attributes...)
      (set-attributes buttons b1 (radio-button-set b1 b2 b3))

WIDGETS
-------
      (push-button name x y width height "text" ... action [fore-
                                     ground [background]] ["font"])
      (check-button name x y width  height  "text"  value  action
                                     [foreground [background]] ["font"])
      (set-attributes buttons b1 (radio-button-set b1 b2 b3))
      (define-popup popup-name menu-entry menu-action ...  [fore-
                                     ground background] ["font"])
      (slider name x  y  width  height  indicator-size  min-value
                   max-value  value  jump-size action [foreground [background]]
                   [stipple]  )

INVOCATION FROM SCHEME
----------------------
     While C programs typically send their  commands  to  an  ezd
     server  via  a  pipe,  Scheme programmers have the option of
     running their application in the ezd process.  When the  ezd
     command is executed with the option -i, it provides a Scheme
     interpreter with Xlib support and access  to  ezd.   Drawing
     commands are issued by calling the procedure ezd with one or
     more commands, where each command is a list.  One big advan-
     tage  of using ezd this way is that Scheme procedures may be
     supplied as actions for the when command.
