Xcircuit v2.0 beta
----------------------------------------------------------------------

Changes from v2.0a to 2.0b (October 1999 to ---)
----------------------------------------------------------------------
148) v2.0b1 (beta)     11/2/99
     Changes to the Imakefile from Monte Bateman fix the reported
     problems with both the RPM creation, and with the make process
     not generating the proper subdirectories/installing files.
     Changes to the RPM spec file go along with these fixes.

Changes from v1.7 (July 1998 to November 1999)
----------------------------------------------------------------------
147) v2.0a11 (alpha)   11/19/99
     Thanks to Mathieu Clar (mclar@ulg.ac.be) for finding that fix
     #144 can be overridden if environment variable LANG is set
     (e.g., to "french") and results in the same kind of program
     crash.  Now xcircuit sets LANG to "POSIX" internally.

146) v2.0a11 (alpha)   10/26/99
     After a number of partial fixes, and with the help of Raymond
     Burns (rayburns@eskimo.com), I fixed the keyboard input focus
     problem which plagued, especially, the WindowMaker window
     manager.  Neverthess, this problem refuses to go away, and
     this appears not yet to be the end of the story.

145) v2.0a10 (alpha)	6/25/99
     Changed behavior of wire drawing so that mouse button 3 deletes
     only the last segment of the line rather than deleting the
     whole line.  Added key macro "." to place a dot object or draw
     a dot at the cursor position.

144) v2.0a10 (alpha)    6/16/99
     Fixed a problem under non-US UNIX versions in which LC_NUMERIC
     is set to use a comma character as a numeric decimal point.
     Thanks to Lars Pettersson <larsp@oso.chalmers.se> and Paulo
     Mario dos Santos Dias de Moraes <paulo.mario@omninet.com.br>
     for helping to track down the problem  (6/24/99---changed from
     LC_NUMERIC to LC_ALL because there are apparently other things
     which also screw up file loads if not set to US or equivalent).

143) v2.0a10 (alpha)    6/14/99
     Added ISO-Latin5 (Turkish) on request from Recai Oktas at
     Ondokuz Mayis University <roktas@samsun.omu.edu.tr>.  Rewrote
     source to allow future inclusion of all ISO-LatinX encodings.

142) v2.0a10 (alpha)    5/25/99
     Finally got around to instantiating edit mode for paths.

141) v2.0a10 (alpha)	5/24/99
     In text edit modes, the backslash character brings up a
     page containing the font encoding, allowing entry of non-
     printing characters by simple point-and-click.  Use of
     backslash escape sequences is deprecated.  Also, fixed a
     bug which prevented compilation if MAKE_LGF was not defined
     in the Imakefile;  thanks to Zhengdao Wang for the bug fix
     <zhengdao@aphrodite.ee.umn.edu>.

140) v2.0a9 (alpha)	5/20/99
     Finally fixed the "actions not found" bug, which seems to
     be due to conflicting names of widget classes between Xaw
     and Xw, and changed the popup menu behavior to place the
     popup menu such that the cursor is initially on the title,
     not on the top button.   Also, added a README.ISOLatin2 file
     giving instructions on how to setup xcircuit for Latin2
     encoded output.

139) v2.0a9 (alpha)	5/17/99
     Changed menu button calling to the style adopted for
     the abandoned attempt at using Motif;  this style calls
     each menubutton by its Widget address rather than explicitly
     referring to the path created by panes, managers, etc., which
     can be toolkit-dependent.
     
138) v2.0a9 (alpha)	5/12/99
     Added font vectors for ISO-Latin2 encoding.  Also, reparied
     two fatal bugs (one involving the backslash character in
     text, the other involving large user library files), and
     reintroduced fix number 117 which somehow got lost.

137) v2.0a9 (alpha)	5/1/99
     Font-drawing mechanism completely overhauled and replaced
     with object-encoded fonts.  Added font encoding selection
     and a better interface for choosing font family, shape,
     and encoding.  Added PostScript output for generating
     ISOLatin1 encodings of standard PostScript fonts.  Fonts
     extended and heavily revised;  Courier, Helvetica, Times,
     and Symbol all have unique font vectors.

136) v2.0a8 (alpha)     5/6/99
     Zoltan Csahok <csahok@phase4.ujf-grenoble.fr> sent a bug fix
     for the problem in which some objects would be made "hidden"
     without being declared hidden in the library.

135) v2.0a8 (alpha)	4/14/99
     Paul Ortyl <ortylp@key.net.pl> sent a fix to allow keyboard
     entry of 8-bit characters (e.g., ISO-Latin1 or ISO-Latin2
     encoding).  Text vectors still reflect Adobe Standard
     encoding but hopefully this will be extended in the near
     future.  Added "W" key macro for popping up Write-Xcircuit
     dialog, at Paul's request.

134) v2.0a8 (alpha)	2/25/99
     Possibly just fixed the problematic window manager hints
     (WMHints) bug which has been plaguing the system.

133) v2.0a7 (alpha)     1/26/99
     Fixed a bug which was introduced into version 2.0a7 which
     prevents landscape-oriented files from being loaded back into
     xcircuit.

132) v2.0a7 (alpha)	12/18/98
     Fixed a problem wherein the FileList and Help widgets set
     their own fonts directly rather than getting them from the
     X Resource manager.  This causes XCircuit to crash when the
     computer does not have that particular font preinstalled, as
     noted by Niitsu Yoichiro <niitsu@amc.toshiba.co.jp>.

131) v2.0a7 (alpha)	11/20/98
     Fixed a long-standing bug by making gridspace and snapspace
     per-page variables, and permitting loading and saving these
     values in the output file.  At the same time, made these
     values type float for better resolution (preliminary to
     making all internal point values type float).

130) v2.0a7 (alpha)	11/19/98
     Added the "zoom-out" box suggested by ():
     the current area of the drawing window is made to fit into
     the area bounded by the box.  Added a button to the little
     square at the intersection of the horizontal and vertical
     scrollbars which acts like the "zoom view" function or "v"
     key macro.

129) v2.0a7 (alpha)	11/17/98
     Changed the behavior of the horizontal and vertical scrollbars
     so that some smooth scrolling is possible (that which can be
     accomplished by copying from the existing pixmap onto the
     window, without redrawing the whole window).

128) v2.0a6 (alpha)	11/16/98
     Made some fixes for Dale Scheetz <dwarf@polaris.net> to correct
     some odd behavior under Linux:  The help page has been shortened
     by 30 pixels to clear the Windows-95-like menu bar in fvwm95, and
     the "done" button has been moved to the top of the help window.
     Also, reduced argv[0] (the command from the command line) to its
     root before comparing to "xschema" and loading Xdefaults so that
     the program isn't confused by an appended pathname.

127) v2.0a6 (alpha)	11/12/98
     Added code suggested by Alireza Moini <moini@eleceng.adelaide.edu.au>
     to use environment variable "XCIRCUIT_LIB_DIR" for searching for
     libraries before trying the hard-coded BUILTINS_DIR as a last
     resort.

126) v2.0a6 (alpha)	10/4/98
     Cleaned up the code a little;  moved most of the menu button
     callbacks into a single file "menucalls.c", moved the file
     list widget code into "filelist.c", and moved the help window
     code into "help.c".

125) v2.0a6 (alpha)	10/4/98
     Fixed a long-standing problem with the simple help window in
     which it could not be repositioned.  In addition, I prevented
     the window from exceeding the computer screen boundary; when
     it does, the help window is truncated but can be "scrolled"
     in a simple sense by clicking the mouse in the help text
     window.

124) v2.0a5 (alpha)	9/27/98
     Fixed a problem apparently due to the above pixmap icon code
     which caused window managers to lose input focus for the whole
     xcircuit window.  This appears to be fixed at least for "i386"
     Linux systems.

123) v2.0a4 (alpha)	9/1/98
     Upon urging of Michael Le, I generated a built-in pixmap icon. 
     Also fixed what was apparently a long-standing bug in resizearea().

122) v2.0a3 (alpha)	8/23/98
     Fixed a bug pointed out by Geert Jordaens which limited library
     object names to 20 characters on file input.  Added flip-invariant
     text.  Added pad space to pin labels.  Began preliminary work on
     support for parameterized objects (beginning with some example
     code and a postscript prolog).  Added missing definitions for
     quarter and half space to xcircps2.pro.  Changed library files
     to take advantage of flip invariant text.
     
121) v2.0a2 (alpha)     8/11/98
     More "load file" fixing:  Modified the file loading routine so that
     library files can be loaded with "Read Xcircuit PS"; i.e., they are
     read like normal postscript files, and so can be read on the command
     line.  Only restriction is that they go into the user library, as
     they would if read as part of a regular xcircuit postscript file.

120) v2.0a2 (alpha)	8/10/98
     Fixed three LGF-related errors:  1) LGF files were imported whether
     "read" or "import" was selected, 2) labels needed to set property
     "pin", and 3) one of the connections in the definition for "TO"
     in lgf.lps needed to be moved.

119) v2.0a1 (alpha)	7/17/98
     Fixed some errors in setting filename and object name when loading
     or attempting to load files.  Fixed netlist error for connecting
     multiple instances of the same label on a page.  Got rid of
     string-sharing behavior for labels and malloc'd each copy instead.

118) v2.0a0 (alpha)	7/10/98
     Replaced Xcircuit version 1.7 with version 2.0, schematic capture
     system included.  Instantiating better management for version
     numbers, starting right here!

Changes from v1.6
----------------------------------------------------------------------
May 1998

117) A few bugfixes and additions courtesy of Jo"rg Wunsch, including
     the addition of handling WM_DELETE_WINDOW client messages to
     allow the program to be closed by window manager controls.

116) Bug fixes from Paul Slootman for the 64-bit Alpha platform.

115) David DiGiacomo pointed out that the problem with the "make"
     halting under Solaris is the indeterminate exit status returned
     by the menudep program.  This has been fixed.

April 1998

114) Backspace can no longer be typed from the keyboard; instead,
     the keyboard Backspace acts like Delete, and a Backspace
     character can be inserted from the "Text" menu.

March 1998

113) Fixed a bug found by Cliff Koch <koch@cig.mot.com> in which
     xcircuit did not check if an object name consists entirely of
     numerals, which screws up the PostScript interpreter, which
     tries to treat it as an integer.
112) Fixed a bug found by Dale Scheetz <dwarf@polaris.net> in which
     a divide by zero would occur if a directory list was longer than
     the pixel height of the file read window.
111) Fixed the colormap problem by figuring out how to get XCircuit
     to gracefully install its own colormap on startup if the default
     map is full.

February 1998

110) Cleaned up the last typecasting problems in both the toplevel
     directory and Xw;  now should compile cleanly on all platforms
     without specifically setting CCOPTIONS and CDEBUGFLAGS in the
     Imakefile.
109) Changed the file loading routine so that Xcircuit automatically
     figures out whether the file is a PostScript or LGF file, so  
     that there are no longer two separate "load" commands in the
     File menu.
108) Added a number of "diglog" gates to the lgf.lps library;  fixed
     a bug reported by Jean-Luc Margot in which Imakefile refuses
     to create the lib directory.
107) Fixed more problems with the inch/cm conversion, bugs reported
     by Uwe Steinmann.  Made all displays report in cm when in cm
     gridstyle mode.  Also made the full page switch from letter
     size to A4 size when switching between inch and cm grids.

January 1998

106) Cleaned up typecasting problems which produced compile-time
    warnings.  Added "integral" sign to the alphabet vectors and
    revised the signal.lps library to include it.
105) Fixed longstanding bug in which the library (M)ove command would
    overwrite an object with another.
104) Fixed another bug found by Monte Bateman in which the system
    crashed when one tried to delete an object which had a dependency
    somewhere.
103) Fixed a bug found by Monte Bateman which was that the alternate
    color scheme flag did not toggle if the alternate color set was
    chosen from the .xcircuitrc file, and in which the catalog objects
    did not invert color and so became black-on-black or white-on-white.
    All catalog objects now have color DEFAULTCOLOR instead of color
    FOREGROUND, which makes more sense anyway.

Changes from v1.5
----------------------------------------------------------------------

December 1997

102) Added a copyright "artistic license".  Changed filename
    of distribution tarfile to contain the version number
    (xcircuit-6.1.tar.gz).  Began posting xcircuit to
    sunsite.unc.edu.

November 1997

101) Fixed a bug found by Mark Cohen in which xcircuit loses track of
    the drawing area-to-window coordinate transformation whenever the
    window is resized.

October 1997

100) Fixed a long-standing problem with rhomboid-edit style for
    polygons.  The edit points can no longer spontaneously change
    during editing; they are fixed when the editing begins.  Added
    a "Rhomboid-A" style, which is similar to Manhattan style.
99) Used a global variable to keep track of which element is being
    edited so that it is unnecessary to swap elements to the end of
    the list in order to edit them.
98) Fixed "bug" to make RHOMBOID edit like NORMAL edit when there are
    only 2 points in the line (otherwise the second point gets dragged
    along with the first).
97) Added capability to "hide" objects if the name of the object ends
    with an ampersand ('&').
96) Added override of default colors and addition of new colors to the
    .xcircuitrc file definition.
95) Changed all color entries from type "short" to type "int" to allow
    xcircuit to run on 16- and 24-bit TrueColor visuals.

August 1997

94) Added "setmiterlimit" command to xcircps.pro to supress odd glitches
    in some renderers (gs and certain printers) when drawing paths.  Do
    these devices not have the (stated) default value of 10?
93) Finished adding color.  Added "scb" and "sce" (select-color-begin
    and -end) to PS profile.  "Opaque-stipple" style no longer selects
    "setgray" in postscript;  gray is selected by choosing the color
    gray.  Added "Inherited" color to list & based color scheme on the
    idea of "color inheritence".
92) Began adding color; separated definitions for color and stipple
    patterns, and set default color scheme to black-on-white.  Added
    stippled and colored rectangles to the Xw MenuBtn options for
    menu buttons.

July 1997:

91) Added path horizontal and vertical flipping;  fixed a long-standing
    bug to let user cancel a "make object" command during the object
    name popup prompt.
90) Stopped linking the filename to the page (object) name.
89) Enabled creation of paths through the use of the "join" function,
    and the ability to deconstruct the path into its constituent parts
    with the "unjoin" (keystroke "J") function.
88) Implemented paths (currently no editing capability).
87) Redesigned the edit and element creation modes to be consistent
    between polygons, arcs, and splines.  Arcs and splines can be
    edited when created by using mouse button 1 to cycle between
    control points.
86) Finished implementation of the revised "attach" command, including
    attachment to ellipses and to the chord on a closed arc.
85) Finished implementation of ellipses.
84) Implemented a dual color scheme which is switchable from the menu;
    no longer need XCircuit.ad.alt.  This is preliminary to adding full
    color.


May 1997:

83) Preliminary implementation of ellipses.  On the top level, ellipses
    are constrained to the x-y axes, but can be rotated as part of an
    object.
82) Changed the "attach" command to operate on *all* elements, so,
    e.g., a polygon end can be forcibly attached to a circle perimeter,
    and so forth.  Needs a little refining, plus effects should be
    duplicated for edit mode in "trackpoly", "trackarc", and
    "trackspline".
81) Finished implementing rotate and flip for all element types.
80) Implemented optional graphics double-buffering for very clean and
    quick refreshing of graphics.
79) Changed lists of elements from separate list for each element to
    one list of type (genericptr *), which is re-typecast to each
    element type.  Makes a number of things much cleaner
78) Got rid of type WIRE altogether; only has polygons.  No more "J"
    command for unjoin, but "j" joins polygons together and the
    algorithm is much cleaner than before and shouldn't be error-prone.
77) Gave arcs a line-segment representation, thus fixing the problem
    of filled arcs and paving the way for the "path" aggregate element.

Changes from v1.4
----------------------------------------------------------------------

March 1997:

76) Made the scaling slightly more restrictive, to prevent xcircuit
    from exceeding bounds of type short int either in the window or
    in the page coordinate system.
75) Prevented drawing objects and labels outside of the window area
    in order to speed up rendering at close scales.
74) Better precision for Bezier curve rendering and object attachment.
73) Changed rendering to a stacked transformation matrix model.
    Speeds up rendering, makes rendering more accurate, and cuts
    down on code complexity.
72) Added Fixed-Width (Courier) font, made proper widths for both
    Times and Helvetica fonts;  implemented some different
    characters for each font.
71) Allow change of font, style, and justification for one or more
    selected labels.  Now deselects labels and arc/poly/spline after
    a style change.
70) Menu entries for text font, style and arc/poly/spline style change
    to reflect the status of the currently selected element.
69) Colormap allocation problem fixed by new CvtStringToPixel() routine
    which searches colormap for best approximation to color on a failed
    color allocation.
68) Wrote program to automatically generate the pathnames for button
    and cascade widgets in the pulldown menus.
67) Added polygon flip capability.

February 1997:

66) Expanded file selection widget to select and load multiple files,
    also to load (single or multiple) library .lps and analog .lgf files.
65) Added a file selection widget to the popup prompt when selecting
    a file to read.
64) Changed structure "select" to "selection" in order to get around
    problem compiling under Solaris.

January 1997:

63) Added an output page width and height per xcircuit page instead
    of the default 8.5" x 11" page that existed previously.  Output
    continues to be centered on the page.
62) Separated file names and page names.  These are linked by default,
    but can be separated by supplying a different page name, or by
    having a multi-page output.

December 1996:

61) Added inch/cm reporting for keyboard-adjusted snap spacing.

November 1996:

60) Fixed minor bugs in the DSC-PostScript: %%PageTrailer statement
    is not needed, and %%Trailer *must* come after all page commands
    including the "showpage".  Only the XCIRCsave restore statement
    should be between %%Trailer and %%EOF.
59) Output scale changed to default of 1.0, with the arbitrary
    pixel-to-PostScript-units constants bansished to the
    PostScript prologue.
58) Changed grid and snap spacing routines to display inches/cm
    instead of pixel coordinates.  Pixel coordinates are now
    entirely hidden from the user, who only sees things in
    inches or centimeters (with a default of inches, reported
    in fractions).
57) Position display now gives length of simple wires in addition
    to the cursor position.
56) Modified routine to print coordinates in fractional inches,
    to be able to generate a fraction from an arbitrary float.

October 1996:

55) Added code to prevent infinite recursion by attempting
    to place an object within itself.
54) Revised .lgf-file reading for an exact 1:1 correspondence
    of lgf names to the xcircuit library object names; made
    a library "lgf.lps" to cover the main analog gates, with
    some stylistic changes to the look of some of the gates.
53) Added capability to move objects around inside the
    libraries.
52) Added capability to make a copy of an object from
    either library page into the user library.
51) Added capability to delete objects from the library.

September 1996:

50) Cleaned up the Xw code so that it will compile on
    not-so-forgiving compilers;  also pruned out a
    few things that are not used by Xcircuit.
49) Finally wrote the routine to compare objects and
    avoid name conflicts.
48) Made PostScript output DSC-compliant, made file
    reading more robust to errors in the input file.
47) Started implementing library manipulation routines
    with library object rename; also added keystroke
    "c" from library mode for "copy".
46) Fixed some problems with catalog organization of
    objects.
45) Added multiple page loads and saves:  pages with
    the same name will be grouped together into one
    file.  EPS is not an option for multiple pages.
44) Made pages reallocatable, and added "Goto Page"
    option in menu for accessing page numbers > 10.
    New pages are automatically added to the pull-down
    menu.  Page names are the same as the object name.
43) Changed format of file ".xcircuitrc" and added
    ability to load libraries, override the default
    library load, load extra fonts, and set certain
    variables.
42) Added ability to load an arbitrary number of
    user-defined fonts.  New fonts are automatically
    added to the pull-down Font menu.
41) Changed embedded commands in text string to two bytes
    each, allowing future extension of embedded commands.
40) Added handling of Ctrl-A and Ctrl-E for moving
    to beginning and end of text, respectively

August 1996:

39) Added reading of ".xcircuitrc" in user's home
    directory as an additional library file (file
    takes same form as xcircuit or library files).
38) String text appears in message window immediately
    upon starting or editing a label, and disappears
    when done.
37) Fixed bugs in labels:  Rewrote routines so all
    labels start with a font-change specifier;
    removed "fontset" command from PostScript profile.

February 1996:

36) Differentiate between Writing and Overwriting
    a file (to prevent disasters!) and warn user
    when file is about to be overwritten.
35) Made all spline routines relative to SPLINESEGS
    and increased default SPLINESEGS to 20

January 1996:

34) Allow push and pop while an object or objects
    are selected and being dragged.
33) Added Rhomboid box editing in addition to
    Manhattan box edit.
32) Added arrow-attachment routine to align arrows
    with an underlying wire/polygon/spline/arc while
    dragging.
31) Changed selection mechanism (again) to a simple
    cartesian measure of distance from a line to
    the cursor position.
30) Added capability to flip, rotate, and snap-to 
    while an object is selected and being dragged.

August 1995:

29) Added vertical flipping capability using macro "F".
28) Added extended character set capability;
    both octal codes and LaTeX-like symbol names
    can be entered at the text prompt after a
    backslash.
27) Added lines to show spline control points and
    arc center during creation and editing.
26) Moved to PostScript prologue version 1.5, for
    which the order of parameters for polygon, arc,
    and spline are rearranged and made similar to
    each other.  Reading of v1.4 files is kept for
    backward compatibility.
25) Added rudimentary opaque-fill style for polygons,
    arcs, and splines.  "Vertical" alignment can only
    be controlled on the object level, using the X
    command (exchange).
24) Added "Manhattan Box Edit" style (default: ON)
    such that right angles in polygons are maintained
    during editing.

Changes from v1.3
----------------------------------------------------------------------

May/June 1995:

23) Added backspace character handling in text.
22) One-step keystroke for dotted/dashed/solid line.
21) Allowed "join wires" to join wires and polygons.
20) Allowed "styles" options to operate on wires
    by automatically converting them to polygons.
19) Fixed bug in which Xw copy buffer overflowed
    string in sprintf() [solution: restrict
    "precision" of string thus: "%.149s"].
18) Added "edit (e)" command to menu.
17) Added capability to read Caltech tools' "analog"
    .lgf format files.

March 1995:

16) Added feature to report non-printing characters
    in a label, when editing.
15) Added Zoom Box function.
14) Changed copy behavior to allow multiple copies
    when button1 is used, and a single copy when
    button2 is used.
13) Fixed problems with pixel trash left behind by
    text editing.
12) Beeps when it doesn't write file due to filename
    problem.
11) Added countdown for multiple selections.
10) Added new cursor for edit mode.
9) Xcircuit *only* does auto delete/addition of the
   extension if extension is ".ps".  All other
   filename extensions are left alone.
8) Changed behavior so that request to load a file
   which does not exist will change the current
   file name, provided that current page is empty.
7) Changed library pages to be actual objects, made
   routine "composelib" to arrange the library objects
   based on height and width of each object, changed
   names of objects to xcircuit labels.
6) Fixed numerous malloc() bugs.
5) Added function to import xcircuit files into the
   current file as well as loading them into a page
   with page reset.
4) Added ability to change coordinate grid and
   report coordinates in inches (decimal and
   fractional) and centimeters as well as the usual
   pixel grid.
3) Added (simple) help screen
2) Added simple scrollbars on side and bottom, allowing
   click-to-pan.  Added global variables to save current
   GC state and foreground color.
1) Added 2 message widgets, one for name of file
   to edit, one for coordinates, one for information

----------------------------------------------------------------------
Bugs to fix ASAP:

1) Strings with multiple parts do not have width measured correctly
  in the Postscript file.

2) Colormap installation may be incomplete if xcircuit runs out
  of colors in the middle of running the program.

3) Color and Page menus run off the top and bottom of the screen
  if the lists get to be too long.

4) An object should not be allowed to be copied directly on top
  of itself (this can be a common occurrence and is confusing
  to the user and difficult to detect).

5) Due to object definitions being outside the page descriptions,
  Ghostview can't change between pages arbitrarily (only forward
  or backward by consecutive pages).

----------------------------------------------------------------------
Features to add or change (schematic-capture-specific):

1) Make gate I/O pins translate to chip pin numbers for PCB netlists.

2) New element type: array (especially for schematic drawing)
    /xyarray { begingate /arrayproc exch def /dy exch def /dx exch def
      /ny exch def /nx exch def
      1 1 nx {
        1 1 ny { arrayproc exec 0 dy translate } for
        dx dy ny mul neg translate } for endgate } def

----------------------------------------------------------------------
Features to add or change (general):

1) Attach should work in many more modes than it does.

2) Use heuristics to improve selection mechanism

3) Some better handling of over/under arrangements of elements

4) Vectored font output in PostScript.

5) Completely duplicate program functions between menu buttons and
   keyboard macros.

6) Proper cornering on dot/dashed boxes (maybe easier to
   do in xcircuit and enforce WYSIWYG in PostScript?)

7) Read other graphics formats (Matlab 5.x, OrCAD, CIF, xfig, gnuplot, ...)

8) Switch to all-floating-point internal units?

9) Multiple library pages

10) Comprehensive "Undo" function.

11) Comprehensive dependency list for allowing/disallowing
   menu and keyboard functions.

12) Edit-in-place for objects (not so difficult using InvTransformPoints())

13) Make transparent stipple patterns faster by using character encoding
    (a la pplot) (not possible?)

----------------------------------------------------------------------
