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/21/24) 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/21/24) 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/21/24)