GRAW(10.1)                                             GRAW(10.1)

     NAME
          graw - gnot graphic editor

     SYNOPSIS
          graw [ -f fontfile ] [ -g ] [ file ... ]

     DESCRIPTION
          Graw is a multi-file graphic editing program specialized for
          schematic entry.  Graw drawings consist of lines, boxes,
          text objects, and instantiations of previously defined draw-
          ings called masters. The graw user interface differs from
          that of most 5620/gnot programs in that button 1 controls
          all graphical entry.

          The -g flag invokes an experimental mode in which graw
          attempts to render in grey scale.  The -f flag allows the
          user to specify a font for displaying text objects.

          By default, pressing button 1 will create a line with one
          end fixed and the other end attached to the cursor as long
          as button 1 is held down.  Objects other than lines can be
          drawn by prefacing a drawing operation with a button 2
          onesies-> selection.  Button 1 is also used for grabbing
          objects.  Grabbing takes precedence over drawing, and graw
          evaluates every button 1 hit to see if there is something to
          grab.

          Grabbing rules vary by object.  For example, a box can be
          grabbed by pointing to its interior.  A grabbed box will
          cause all objects inside or touching it to be grabbed also.
          Grabbing a box's corner will also grab objects touching the
          two sides of that corner.  An object inside a box may be
          grabbed without grabbing the box.  Graw's grabbing rules are
          meant to be intuitively obvious.  The author apologizes for
          cases in which this is not true.

          Graw keeps a "text point" at the last location of a button 1
          hit.  Typing to graw creates a text object at the current
          text point.  A text object orients itself based on its sur-
          roundings each time it is typed at or moved.  Typing a car-
          riage return causes graw to move the current text point down
          one or two ticks, depending on the surroundings.

          Buttons 2 and 3 contain editing and file oriented menus,
          respectively.  The button 2 menu entries are onesies-> (box,
          dots, macro), inst-> (master list), sweep, slash, cut,
          paste, and scroll.

               onesies->
                    selects a non-line object to be drawn with button

     Page 1                       Plan 9             (printed 12/2/22)

     GRAW(10.1)                                             GRAW(10.1)

                    1.  You get at most one non-line object per one-
                    sie.

               inst->
                    selects a master to be instantiated and attached
                    to the cursor until any button is pressed.

               sweep
                    uses a rectangle input with button 1 (N.B.) to
                    grab a set of objects and drag them until any but-
                    ton is pressed.

               slash
                    differs from sweep only in that rectilinear lines
                    are first cut by the input rectangle.

               cut  undraws and moves the object(s) last drawn or
                    moved to the cut/paste buffer.

               paste
                    attaches a copy of the cut/paste buffer to the
                    cursor until any button is pressed.

               snarf
                    is a cut without the undraw.

               scroll
                    attaches the entire drawing to the cursor until
                    any button is pressed.

          The button 3 menu entries are edit, read, write, exit, and
          new, followed by the list of filenames currently being
          edited.

               edit prompts for a file name and reads in the file for
                    editing.  Backspace and control-W may be used to
                    edit the name; a null file name aborts the opera-
                    tion.

               read prompts for the name of a master file, reads it
                    in, and plants a reference to it in the current
                    file.  The names of the masters in the file are
                    added to those in the inst-> menu for the current
                    file, overwriting older definitions if necessary.

               write
                    prompts for a file name (starting with the current
                    file name).  The non-null result becomes the new
                    file name and the file is written.

               exit terminates the program.  It may be necessary to
                    type a character and/or move the mouse after graw

     Page 2                       Plan 9             (printed 12/2/22)

     GRAW(10.1)                                             GRAW(10.1)

                    exits to really exit.

               new  creates a new, unnamed drawing for editing.

               Selecting a file name selects the current file.

          Gnet(10.1) produces cdl_format(10.6) files from graw_format
          files.

     FILES
          /lib/graw/gates.g   the standard gate file
          /lib/graw/analog.g  analog parts file
          /sys/font/1/7/PA    default font file

     SEE ALSO
          gnet(10.1), graw_format(10.6), cdmglob(10.1), grawp(10.1),
          annotate(10.1)

     BUGS
          Doesn't handle parse errors well.
          Crashes when it reads two 'e' (end of master) lines in suc-
          cession.

     Page 3                       Plan 9             (printed 12/2/22)