drawtool v0.23b : Copyright (C) 1999 Toby Jaffey April 7th 1999 Portions: (Gtk stuff) Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald (Getopt) Copyright (C) 1989-1994 Free Software Foundation, Inc. This program is free software; you can distribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. DESCRIPTION: Drawtool is a simple application that reads in simple vector geometry from stdin and displays it in a gtk window. Similarly, it will write data onto stdout as generated by click-drag mouse movements. NOTE: Features are not documented well in this document. Read the changelog to get an idea of what drawtool can do. REQUIREMENTS: X11 Gtk 1.0.6 A pointing device QUICKSTART: cd src make cd .. src/drawtool -r ./sample.drawtoolrc USES: When used in conjunction with netcat drawtool can be used a a networked whiteboard. (see utils/whiteboard for a quick script) eg. nc -l -p 1234 -u | drawtool | nc -p -u first.host.com 1235 nc -l -p 1235 -u | drawtool | nc -p -u second.host.com 1234 or, if you're all on the same machine On one end: create a couple of fifos cat infifo | drawtool > outfifo On the other:cat outfifo | drawtool > infifo The program can be used to quickly prototype graphical ideas. For example, by only using the standard C libraries and a pipe, it is possible to plot pictures into drawtool (see rainbow/swap/stretch/tree/logo) eg. echo "gogogogogo" | ./rainbow | drawtool drawtool | ./swap | drawtool echo go | ./rainbow | ./stretch 0.5 | swap | ./drawtool echo -e "FD 50\nRT 90\nFD 50\nRT 90\nFD 50\nRT 90\nFD 50" | logo | drawtool Drawtool can be used as a notepad, to quickly scribble down ideas eg. In: drawtool | compress -c > MyGreatIdea.Z Out: cat MyGreatIdea.Z | uncompress -d | drawtool BUILDING: edit Makefile. "make" INSTALLING: cp drawtool /usr/local/bin edit sample.drawtoolrc cp sample.drawtoolrc ~/.drawtoolrc USAGE: drawtool -h, will show the online help. The options are: -h: Less help than you're getting here. -g Geometry: drawtool -g 17x42+69+666 will put a window 17 by 42 pixels at 69,666 -t: The -t flag sends all data coming through stdin into stdout, this can be useful for connecting more than one drawtool. eg. cat Borg.rawpict | drawtool -t | drawtool -t | nc bill.msn.com 666 would show the picture in one of two, then two of two before piping it into nc. The receiver could then bounce the data through netcat, making it possible to have a point to point link. -b: Omit the buttons, ideal for using as a display window. -o: File to output to (default is stdout) -i: File to take input from (default is stdin) -d: Die on EOF from input, the program will exit when it receives an End Of File marker from stdin or the file specified with -o -r file: Use file as config file instead of ~/.drawtoolrc DATA FORMAT: where: (x1,y2) or (x2,y2) are integer coordinates, (r,g,b) are integer red, green and blue colour values. point: 0,x1,y1,r,g,b line: 1,x1,y1,x2,y2,r,g,b empty rectangle: 2,x1,y1,x2,y2,r,g,b filled rectangle: 3,x1,y1,x2,y2,r,g,b empty circle: 4,x1,y1,radius,r,g,b filled circle: 5,x1,y1,radius,r,g,b empty ellipse: 6,x1,y1,x2,y2,r,g,b filled ellipse: 7,x1,y1,x2,y2,r,g,b RCFILE FORMAT: The drawtoolrc file consists of lines of the format: "menuAlias pathname type" Where, menuAlias is the name that appears on the macro menu, pathname is the *full* pathname of the script to be called, type is either 1 or 2. 1 will pass an x,y coordinate pair to the macro script. 2 will allow the user to draw a box, then it will pass two sets of x,y coordinates which specify a bounding box. ADDRESSES: Please contact me with bug reports, suggestions and graphical hacks to include in the distribution. email: <psystrj@granby.nottingham.ac.uk> homepage: http://www.nottingham.ac.uk/~psystrj