Version 5.0, May 2010

Changed the executable from MrEd to GRacket

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

Version 4.2.5, March 2010

Changed radio-box% to allow #f as a selection so that no buttons are
 selected
Added accept-tab-focus method to canvas<%> and editor-canvas%

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

Version 4.2.4, January 2010

Minor bug fixes

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

Version 4.2.3, November 2009

Minor bug fixes

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

Version 4.2.2, September 2009

Minor bug fixes

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

Version 4.2.1, July 2009

Minor bug fixes

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

Version 4.2, May 2009

Ported the editor classes (text%, snip%, editor-canvas%, etc.) from
 C++ to Scheme

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

Version 4.1.5, March 2009

Minor bug fixes

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

Version 4.1.4, January 2009

Changed image-snip% to implement equal<%>

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

Version 4.1.3, November 2008

Minor bug fixes

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

Version 4.1.2, October 2008

Changed -z/--text-repl to a configuration option

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

Version 4.1.1, October 2008

Minor bug fixes

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

Version 4.1, August 2008

Added auto-resize init argument and method to message%
Added scroll-editor-to method to editor<%>
Added on-reflow method to text%

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

Version 4.0, June 2008

Mac OS X and Windows: adjusted window refresh to draw only
 in update regiion
Minor bug fixes

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

Version 372, December 2007

Minor bug fixes

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

Version 371, August 2007

Fixed (get-face-list 'mono) for Mac OS X and X11
Changed begin-container-sequence to delay making windows visible
Added 'no-focus style for canvas%

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

Version 370, May 2007

WXME file format changed to include a #reader() prefix
Added is-maximized? method to frame% (Windows, Mac OS X)
Improved the disabled appearance of some controls under Mac OS X
Added use-style-background and style-background-used? methods
 to editor-snip%; changes the editor-snip WXME format
Mac OS X printer-dc% uses scaling specified by the current ps-setup%

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

Version 360, November 2006

Added get-other-altgr-key-code and get-other-shift-altgr-key-code
 to key-event%, and adjusted Ctl- (Windows, X) and Cmd- (Mac OS X)
 mappings to preserve Shift (and Option), moving the unshifted
 version to the "other" fields; adjusted keymap% matching to use
 new "other" fields and to more precisely weight matches
Mac OS X: fixed event handling to support CJK input and input from 
 the character palette 
Removed on-scroll from canvas<%> and editor-canvas%

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

Version 352, July 2006

Minor bug fixes

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

Version 351, July 2006

Changed the shortcut type for selectable-menu-item<%> to allow
 key-code symbols
Added get-shortcut-prefix and set-shortcut-prefix to menu-item
 to selectable-menu-item<%>, along with corresponding initialization
 argument to menu-item% and checkable-menu-item%
Added get-default-shortcut-prefix
Removed get-x-shortcut-prefix and set-x-shortcut-prefix from
 selectable-menu-item<%>
Added get-other-shift-key-code to key-event%
Added support for "?:" modifier to keymap state strings
Changed internal handling of keyboard events

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

Version 350, June 2006

Default max undo history for an editor<%> is 0; use
 set-max-undo-history to enable undo
Disabled menu-item shortcuts stay effective (to just beep)
When no location is given for a dialog%, it is centered when
 shown
Added 'no-sheet dialog% style
Added |MrEd:emacsUndo| low-level preference

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

Version 301, Decmber 2005

Fixed a bug in reading non-text files whose encoding contains
 a byte string longer than 64 bytes

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

Version 300, Decmber 2005

Changed editor file format to an ASCII encoding
Changed measurement of text for post-script-dc%
Changed label->plain-label to strip parenthesized mneumonics
Added 'package and 'enter-package flags to put-file, and
 changed Mac OS X put-file to use extension and filters args
Added on-mdi-activate to frame%

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

Version 299.400, September 2005

No MrEd-specific changes

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

Version 299.200, August 2005

Added get-handle to window<%>
Added open-output-text-editor
Changed application-file-handler so that handler's result is
 used; #f tells Windows that the application won't quit

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

Version 299.100, March 2005

General:
 Added support for smoothed (i.e., anti-aliased) shape drawing,
  including support for spline-based paths; under X, smoothed
  drawing requires Cairo
 Mac OS X: switched to composite Carbon layer for widgets, added
  support for full keyboard access
 X: modernized GUI look, added support for X clipboard (as opposed
  to the X selection)
 Changed some methods to augmentable instead of overrideable (see
  MzScheme_300.txt about augmentable methods):
      top-level-window<%>: can-close?
                           on-close
      editor<%>:           on-change
                           on-snip-modified
                           can-save-file?
                           on-save-file
                           after-save-file
                           can-load-file?
                           on-load-file
                           after-load-file
                           on-edit-sequence
                           after-edit-sequence
      text%:               can-insert?
                           on-insert
                           after-insert
                           can-delete?
                           on-delete
                           after-delete
                           can-change-style?
                           on-change-style
                           after-change-style
                           after-set-position
                           can-set-size-constraint?
                           on-set-size-constraint
                           after-set-size-constraint
      pasteboard%:         can-insert?
                           on-insert
                           after-insert
                           can-delete?
                           on-delete
                           after-delete
                           can-move-to?
                           on-move-to
                           after-move-to
                           can-resize?
                           on-resize
                           after-resize
                           can-reorder?
                           on-reorder
                           after-reorder
                           can-select?
                           on-select
                           after-select
                           can-interactive-move?
                           on-interactive-move
                           after-interactive-move
                           can-interactive-resize?
                           on-interactive-resize
                           after-interactive-resize
Widgets and Widget Features:
 Added a default callback procedure for every control<%> class
  that has a callback
 Added combo-field%
 Added 'float and 'metal styles to frame%
 Added 'combo, 'transparent, and 'resize-corner styles to canvas%
  and editor-canvas%; added 'no-border, 'auto-vscroll, and
  'auto-hscroll flags to editor-canvas%; added set-resize-corner
  to canvas<%>; added  show-scrollbars and method to canvas%
 Added set-min-width function to popup-menu%
 Added set-canvas-background and get-canvas-background to
  canvas<%>
 Added get-item-label, set-item-label, and set to tab-panel%
 Added 'blank cursor%
 Added hide-cursor-until-moved, called by text%'s on-char
 Added message+check-box and message+check-box/custom
 Added a font intialization argument for control<%> classes
  and popup-menu%, and added get-font method
 Removed get-label-font, get-control-font, set-label-font, 
  set-control-front, get-label-position, and set-label-position
  from area-container<%> and implementing classes
 Added normal-control-font, small-control-font, tiny-control-font,
  view-control-font, and menu-control-font constants
Drawing:
 Added set-smoothing and get-smoothing to dc<%>
 Added dc-path% class and added draw-path to dc<%>
 Added set-path to region%
 Added in-region? to region%
 Added draw-bitmap-section-smooth to bitmap-dc% (not dc<%>)
 Added variants of dc<%>'s set-{pen,brush} that accept arguments
  like the-{pen,brush}-list's find-or-create-{pen,brush}
 Changed default of radius argument of set-rounded-rectangle 
  in region% to -0.25 (consistent with dc<%> method)
 Changed the font% constructor so that weight and style
  arguments are optional
 Added screen-glyph-exists? to font% and glyph-exists to dc<%>
 Removed get-afm-path and set-afm-path from ps-setup%;
  use the PLTAFMDIR environment variable or the
  current-ps-afm-file-paths parameter, instead
 Added can-show-native? and show-native to ps-setup%
 Changed default 'default PostScript font to Helvetica
 Changed default 'decorative PostScript font to Helvetica
 Changed gl-context% swap-buffers to use the call-as-current lock,
  and changed the lock to be re-entrant
 Added gl-config%, a gl-config init argument to canvas%, and
  set-gl-config and get-gl-config methods to bitmap%
 X: improved performance of bitmap scaling when RENDER is 
  available
 Improved performance of get-argb-pixels, set-argb-pixels,
  and loading of PNG and JPG files on some platforms
Misc:
 Added the-x-selection-clipboard
 Added paste-x-selection and do-paste-x-selection to editor<%>
 Added "paste-x-selection" to add-editor-keymap-functions
 Changed "middlebutton" mapping in the default text keymap
  initializer's map to use paste-x-selection
 Dropped question marks for interactive and use-paper-bbox
  initialization arguments of post-script-dc%; added
  as-eps initialization argument
 Added an as-eps argument to editor<%>'s print method
 Flattened text from an editor<%> always uses #\newline,
  not a platform-specific line separator
 Added background-color argument to editor<%>'s refresh
 Added on-split-snip, on-merge-snips, and get-revision-number
  to text%
 Changed read-one-special in readable-snip<%> to read-special
 Added get-unterminated-bytes to editor-stream-in%
 Removed >> and << from the editor-stream classes, and changed
  "string" to "bytes" in class and method names

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

Version 209, December 2004

No significant changes.

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

Version 208, August 2004

No significant changes.

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

Version 207, May 2004

Changed Windows launching behavior to bring an existing window
 to the front and to use `application-file-handler' to deliver
 comamnd-line arguments

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

Version 206p1, February 2004

 Fixed printing scale for Windows NT/2000/XP


Version 206, Janurary 2004

Drawing:
 Changed get-argb-pixels and set-argb-pixels to row-major order:
  left to right then top to bottom
 Added get-bitmap and get-bitmap-mask to image-snip%
 PostScript `draw-bitmap' now uses a supplied mask
 Changed the default radius for dc<%>'s draw-rounded-rectangle
  to -0.25, and added checking and a mismatch exception
  when the radius is out of range
Text and fonts:
 Added optional argument to draw-text in dc<%> for rotation
 Changed text scaling to support independent X and Y scale
  (except Windows 95/98/Me)
 Added argument to font%, etc., to make size in pixels
 Added size-in-pixels to style<%> and style-delta%
 X with fontconfig/Xft: Added remapping for the 'symbol family
  to match Adobe symbols (like Mac OS X)
 X with fontconfig/Xft: Added substitution support via
  comma-separated font names
 X with fontconfig/Xft: Changed default 'symbol face mapping
  to " Standard Symbols L,Nimbus Sans L"
 Added optional 'mono argument to get-face-list
Frames:
 X, Mac OS: minimum size and non-stretchiness of a frame
  or dialog is enforced by the window manager
 Added optional argument to get-display-size to get the entire
  screen's size under Windows and Mac OS
 Added get-display-left-top-inset
 Added 'hide-menu-bar frame style
 Initial location for a frame can use negative numbers, and
  the move method can move a frame to a negative location
Editors:
 Added an optional argument to begin-edit-sequence in
  editor<%> to treat actions before and after sequence
  as consecutive
Framework collection:
 Changed the defaults for frame:standard-menus-mixin;
  the method file-menu:between-save-as-and-print method no
  longer creates a separator menu item
 Changed the overriding method behavior of
   drscheme:frame:basics-mixin
 Modes are now based on the language settings, rather than
   the filename

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

Version 205: August, 2003

Anti-aliased text:
 Text rendering uses smoothing (anti-aliasing) for Mac OS X,
 Windows, and X with Xft/fontconfig/RENDER
PNG format and image masks:
 Added 'png and 'png/mask as load bitmap types, and added
  optional background color argument for loading 'png
 Added 'jpeg and 'png as save bitmap types
 Changed draw-bitmap and draw-bitmap-section to accept
  a non-monochrome bitmap as a mask (serving roughly 
  as an inverted alpha channel)
 Changed image-snip% to use a mask attached to a
  bitmap, if any, and to preserve the mask bitmap
  when the file is saved
OpenGL:
 OpenGL support now available on all platforms; see also the
  "sgl" collection
 Changed canvas% so that 'gl style is no longer needed
  to enable OpenGL drawing in the canvas
 Added get-gl-context method to dc<%>, which returns a
  gl-context<%> for canvas and bitmap DCs
 Changed with-gl-context method of canvas% to use
  call-as-current for its gl-context<%>; the difference
  from the old behavior is that such context-setting
  is serialized across all eventspaces
GUI:
 Added 'no-autoclear style to canvas%
 Added 'control-border style to canvas% and editor-canvas%
 Added 'hilite style for pen% and brush%
 Windows: Use XP theme controls (under Windows XP)
 Windows: system font is Tahoma when available,
  default font is Microsoft Sans Serif when available
 Mac OS X: Added 'toolbar-button style, on-toolbar-button-click
  method, and modified method to frame%; the 'toolbar-button style
  only affects the frame under OS X
 Mac OS: Added current-eventspace-has-menu-root? and support for
  'root parent of a menu-bar% instance
 Mac OS: Added application-file-handler
 Mac OS: Key-release events now reported
 Mac OS X: Fixed menu-bar flashing bug, thanks to Paul Schlie
Editor:
 Added write-editor-version and read-editor-version
 Changed cut-and-paste WXME format to include version
 Added on-display-size-when-ready and lock for refresh that blocks
  an edit sequence
 Added get-text! to snip%
 Added locations-computed? to editor<%>
 Added locked-for-write?, locked-for-flow?, and
  locked-for-read? to editor<%>
Misc:
 Handling of --main/-C command-line flag changed

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

Version 204: May, 2003

Mac OS X: tab-panel% draws a border around its content by default
Added 'no-border style to tab-panel%
Windows: removed border around radio-box% buttons, changed label
 to follow requested positioning
Added group-box-panel%
Added eventspace-handler-thread
Added vertical-inset and horizontal-inset methods to editor-canvas%
Changed text-field% to have margins of 2, reduced space between
 the edit-box border and the editable text
Windows: switched to XP-style controls under XP
Added application-quit-handler

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

Version 203: December, 2002

Windows: corrected a source of much instability
Added tab-panel%
Added message-box/custom
Added 'app, 'caution, and 'stop styles to message-box
Added 'app, 'caution, and 'stop labels for message%
Added value init argument to check%, selection init argument to
 radio-box%, choice%, and list-box%; in the argument order, the new
 argument follows the style argument
Added checked init argument for checkable-menu-item%
Added and 'deleted style to every subwindow<%> class; a window
 created with 'deleted is initially invisible and takes no
 space in its container
Added `file-creator-and-type', useful in Mac OS
Mac OS X: file dialogs use given starting directory, and dialog%s
 with a parent frame are shown as "sheets"
Mac OS X: MrEd3m is now supported

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

Version 202: August, 2002

Added 'panel brush style for drawing in the current platform's panel
 background color and pattern.
Added application-about-handler, application-preferences-handler,
 and current-eventspace-has-standard-menus?
Mac OS X: fixed handling of the standard `Quit' menu item; it now
 invokes the `on-exit' handler of the most recently active frame in the
 initial eventspace

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

Version 201: July, 2002

Added 'unknown/mask and 'unknown/gif bitmap types and
 get-loaded-mask and set-loaded-mask methods to bitmap%;
 used for GIF files containing transparent pixels
New load handler, text-editor-load-handler, enables MrEd to
 load source files that are stored in the graphical
 editor format
Added open-input-text-editor, used by the load handler
Added readable-snip<%>, which is recognized in ports created
 with open-input-text-editor to "read" special snips
Changed file loading and saving so that a snip class name of
 the form "(lib ...)" triggers the loading of a snip class
 implementation
Removed get-clipboard-client from clipboard<%>
Changed set-clipboard-client to associate a clipboard-client%
 object to the current eventspace, and the-clipboard to call
 methods within the eventspace through event callbacks
Added a variant of insert-file to editor<%> to accept
 an input port instead of a filename
Changed load-file, save-file, and insert-file in editor<%>
 to raise exceptions instead of returning booleans
Added can-reorder?, on-reorder, and after-reorder to
 pasteboard%
Added on-snip-modified method to editor<%>, set-unmodified
 method on snip%, and modified method to editor-admin and
 snip-admin
Added 'packages and 'enter-packages style flags to get-file
 and get-directory; affects only Mac OS

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

Version 200: June, 2002

Changed mouse-event% and key-event% positions (x and y) to be
 exact integers
Added 'wheel-up and 'wheel-down "key" events
Added 'release key events
Added popup-menu to window<%>
Added a popup menu to the message-box dialog that copies the contained
 message to the clipboard
Changed methods in dc<%> classes to raise an exception if the
 DC is not ok (except for the ok? method)
Changed dc<%>'s draw-bitmap and draw-bitmap-section to
 scale the bitmap if the dc<%> has a scale, and to accept
 a mask bitmap
The get-resource and write-resource procedures are deprecated, and
 not supported for Mac OS; MrEd uses the preferences file that
 ismanaged by MzLib's get-preference and put-preferences
Changed text% undo to restore the pre-modification selection
Changed text% so that later-installed clickbacks take precedence
Changed cursor% constructor to take image and mask bitmaps instead of
 a filename
Restricted all label string arguments to <= 200 characters
Added optional filters argument to get-file, put-file, and
 get-file-list (used by Windows, only)
Added get-directory
Fixed internal lock handling on focus and activation events
Removed ps-setup%'s get-options and set-options
Added a use-paper-bbox? initialization argument to post-script-dc%
Added a 'gl style flag to canvas%, and with-gl-context and
 swap-gl-buffers methods; supported for Windows, only
Added container-flow-modified method to area-container<%>
Added "standard" HTML colors to the-color-database
Added 'size-n/s, 'size-e/w, 'size-ne/sw, and 'size-nw/se icons
Windows: removed special handling of Ctl-m, Ctl-i, and Ctl-h
X: play-sound in Linux uses the "play" program, and under
   Solaris, it uses the "audioplay" program
X: Default keymap double-click time determined via the standard Xt
 function
X: 'no-resize-border and 'no-caption work for frame% with many window
 managers
X: too-long menus can scroll
X: changed default preview command from "ghostview" to "gv"
Mac OS: play-sound plays virtually any kind of sound, including
 .wav files; QuickTime 3.0 or higher is required

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

Version 103: August 28, 2000

Added 'wait as a possible argument to yield, and changed startup
 to call (yield 'wait), with new meaning for -V flag
Removed 'anchored flag for snip% (wasn't implemented)
Added support for loading JPEG file (but not saving)
Added get-clipboard-bitmap and set-clipboard-bitmap to
 clipboard<%>
Changed graphical-read-eval-print-loop to take an optional
 eventspace argument, which determines the evaluation eventspace
Fixed menu shortcut handling to call the menu bar's `on-demand'
 method before looking for a key binding
Fixed auto-wrapping bug in text%
Fixed set-max-undo-history in editor<%>
Windows: editors can paste bitmaps copied to the
 clipboard from other programs
Windows: fixed get-file-list

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

Version 102: June 26, 2000

Changed the interaction of face and familiy settings in a font for
 drawing text
Removed get-afm-name and set-afm-name from font-name-directory<%>,
 and changed post-script-dc% to use the PostScript font name as the
 AFM file name
Added get-margin and set-margin to ps-setup%; post-script-dc% uses
 the margins to shrink its paper size and offset its output
Changed pen%'s width from integer to real number (used for PS)
Added on-superwindow-show and on-superwindow-enable to window<%>
Added get-file-list procedure
Added on-message to top-level-window<%>
Added send-message-to-window procedure
Added pop-down callback initialization argument to popup-menu%, and
 added 'menu-popdown and 'menu-popdown-none event types to
 control-event%
Added get-popup-target method to popup-menu%
Added popup-menu method to editor-admin% and snip-admin%
Added can-do-edit-operation? to editor<%>
Added "leftbuttonseq", "middlebuttonseq", and "rightbuttonseq" to
 keymap%'s map-function
Changed the default text keymap initializer to map right button
 releases to popup an edit menu
Changed the meaning of the on-change method in editor<%>; see the
 manual for details
Editor reading/writing/cutting/pasting no longer relies on global
 state, so exceptions raised for one editor do not affect other
 editors
Removed read-done and write-done from snip-class%
Moved reading-version to snip-class% (from snip-class-list%)
Added offset argument to dc<%>'s get-text-extent and draw-text
Made stdio window for Windows/MacOS accept input (for `read', etc.)
X, Mac: Fixed list-box% to handle arbitrarily many list items
X: Fixed input of keypad characters and dead characters (such as
 accent marks)
X: Fixed loading of amimated GIFs (shows only first image)

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

Version 101: October 25, 1999

Showing an inactive child window now raises an exception
Added set-paragrapgh-alignment to text%
Added 'symbol font family
Added {set,get}-paste-text-only to editor<%>
Added {set,get}-line-spacing and {set,get}-styles-sticky to text%
Added {set,get}-tight-text-fit to editor-snip%
A text-field%'s text% is in paste-text-only mode by default

Framework changes:

- gui-utils:get-choice accepts a new (final) parameter that controls the 
 result when the user cancels the dialog. 

- added color-model:rgb-color-distance that accepts six numbers representing 
 two colors in rgb form and returns the distance between those colors. 
 Larger numbers mean that the human eye will see larger differences. 

- when the framework collection has a "CVS" subdirectory, 
  info frames show the current memory usage in the info panel.
  Clicking the button performs three gcs and updates the memory count.

- editor:basic-mixin no longer has a `default-auto-wrap?' method.
  Just set the parameter method `auto-wrap' directly.
 
----------------------------------------------------------------------

Version 100: August 9, 1999

MrEd 100 is the successor to MrEd 53. For MrEd 100, we preserved the
underlying windowing model, but redesigned the GUI toolbox interface
to make it simpler and more Scheme-like. Every MrEd 53 program
requires substantial changes to run in MrEd 100.

The revised interface makes MrEd more accessible to new users: class
and method names are more consistent; useless and redundant methods
have been eliminated; and methods check their arguments more
precisely.  Key portions of the documentation have been re-written,
and a new help system called "Help Desk" makes locating information
much easier than before.

The implementation behind the revised interface is reliable. Whereas
previous versions of MrEd were plagued by bugs and inconsistently
implemented features, the new interface is consistently implemented
across platforms and thoroughly tested. Of course, bugs will always
slip through, but MrEd 100 is far more robust than its predecessors as
a result of a cleaner implementation and a new testing process.

New Application Architecture
----------------------------

MrEd 53 comprised two parts:

 * a core toolbox (containing names prefixed with `wx:') that was too
   primitive for real programming (notably, no geometry management);
   and

 * an application framework (containing names prefixed with `mred:')
   that provided crucial functionality (notably, windows with geometry
   management) but also much more, making it too heavyweight for
   simple GUI programs.

For MrEd 100, we moved the boundary between the core toolbox and the
application framework. The name "MrEd" now refers to only the core
toolbox, but the core toolbox now includes the most useful `mred:'
classes from the old application framework. While merging the `wx:'
and `mred:' classes, we eliminated the prefixes.

All of the core toolbox classes are built into the MrEd executable.
The old `mred:' classes that are not part of the core toolbox have
been moved into a separate framework library. The framework library is
designed for use in large and polished applications (as opposed to
small or prototype applications), and particularly in applications
that require coordinated groups of frames, editor frames with
searching, or user preference dialogs.

Running MrEd and Developing MrEd Applications
---------------------------------------------

MrEd 100 is more consistent with MzScheme than previous releases. The
default language for MrEd 100 is the same as MzScheme's default
language. In contrast, MrEd 53's language had different
case-sensitivity and cond-fallthrough behavior. Command-line handling
for MrEd 100 is nearly the same as for MzScheme; the only difference
is that MrEd executes `(graphical-read-eval-print-loop)' on startup
instead of `(read-eval-print-loop)'. MrEd 100 programmers do not need
to understand units and collections to implement a simple GUI
application.

MrEd's `graphical-read-eval-print-loop' implements a rather primitive
REPL, unlike the relatively useful REPL provided by the old MrEd
toolbox-framework combination. MrEd 100 provides no replacement for
the old REPL. Instead, DrScheme 100 provides a REPL that matches
MrEd's language exactly.

Porting to MrEd 100
-------------------

The remainder of this document provides an overview of MrEd 100 with
notes for porting MrEd 53 applications. Section 0 describes a few
highlights of the MrEd 100 revision. Section 1 shows the new
interface/class hierarchy for windows and a few other parts of the
toolbox. Section 2 lists the methods of the new interfaces and
classes. Section 3 lists the complete, new set of MrEd procedures,
showing the arguments for selected new procedures. Section 4 provides
a mapping from the old `wx:const-XXX' constants to the new
symbols. Finally, Section 5 lists some of the small, relatively
subtle, and potentially confusing changes in MrEd 100 (similar to
changes normally listed in the HISTORY notes).

Further Details
---------------

See plt/notes/mred/MrEd_100.txt in the PLT distribution for further
details.

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

Version 53: July 25, 1998

IMPORTANT: Expect further major changes in the MrEd toolbox with
version 54. See the note for version 51, below. Here are some
more expected changes:
 * wx:text%, wx:multi-text%, wx:text-window%, mred:text%, and
   mred:multi-text% will be removed and replaced with 
   wx:media%-based tools, i.e., the current mred:media-text% and
   mred:media-multi-text%

Engine:
-------
Removed wx:concat-files, wx:string-match?, wx:get-temp-file-name
 (see MzLib's new make-temporary-file)
Procedures and methods that accept wx:const-XXX bit combinations
 now check their arguments more thoroughly; junk values are
 no longer ignored
The wx:style-delta% initialization and wx:style-delta% set-delta
 method no longer allow a second argument with command flags
 where it used to be ignored; the second argument with 
 wx:const-change-underline is now a Boolean rather than 0 or 1
Removed some constants:
  wx:const-bitmap-type-default
  wx:const-bitmap-discard-colourmap
  wx:const-allow-auto-resize
  wx:const-needed-sb
  wx:const-event-type-char
  wx:const-conter (use wx:const-centre)
All methods that operate on bitmap files now require that the 
 bitmap type is specified
Removed wx:key-event%'s get-event-type, since there was only
 one possible result
Added wx:const-print-postscript, wx:const-print-standard, and
 wx:const-print-ask
Restricted wx:find-path to fewer paths; see MzScheme's new
 find-system-path
Changed wx:list-box%'s get-selections to just return a list
 of integers
The following wx:command-event% methods are deprecated and
 have been removed from the documentation:
  get-/set-command-int (use get-/set-selection)
  get-/set-command-string (use get-/set-string)
  get-/set-extra-long (use get-/set-selection-type)
Cleaned up wx:list-box% multiple-selection (wx:const-multiple
 and wx:const-extended standardized across platforms)
Cleaned up wx:command-event% field values for list-box events
Cleaned up canvas scrollbar handling for all platforms;
 the get-scroll-units method was removed
wx:panel%'s set-button-font and set-label-font work consistenly
Windows: cleaned up structure of sliders and gauges

System:
-------
- Fixed minimum mred:slider% size

- Cleaned up wx:command-event% field values for list-box double-click
  events

- When only one object of class mred:standard-menus-frame% exists,
   its File|Close menu item is disabled, and its close button
   invokes the exit handler

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

Version 52: May 25, 1998

IMPORTANT: Expect major changes in the MrEd toolbox with version 53 or
so. See the note for version 51, below.

Engine:
-------
on-set-focus and on-kill-focus work reliably; not all windows 
 can get the focus, but those that do call the on-set-focus and
 on-kill-focus methods
pre-on-char and pre-on-event work for all windows on all
 platforms
wx:begin-busy-cursor no longer takes a cursor argument, but it
 now works correctly on all platforms
set-cursor in wx:window% now accepts and returns null, indicating
 that the window's cursor is the same as its parents; most
 windows start out with the null cursor
Added number method to wx:menu% and wx:menu-bar
The delete methods of wx:menu% and wx:menu-bar return #t if the
 delete suceeded, #f otherwise

System:
-------
- mred:standard-menus-frame now has a windows menu. To
  eliminate it, ovveride "windows-meun" with #f. It
  is updated by mred:the-frame-group

- added documentation for:
    mred:constants:original-output-port, 
    mred:constants:original-error-port, and
    mred:constants:original-input-port.

- added get-title-prefix to mred:simple-menu-frame% class
  documented get-title, etc. in mred:simple-menu-frame% class
  added get-complete-title to mred:simple-menu-frame% class

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

Version 51: March 25, 1998

IMPORTANT: Expect major changes in the MrEd toolbox with version 53 or
so. Likely changes include:
 * Removing the useless size arguments for initializing mred:frame%,
   mred:button%, etc. instances.
 * Changing the ``nothing'' value (e.g., no parent frame) from null 
   to #f.
 * Replacing `bitwise-or'ed wx:const-XXX numerical constants with 
   lists of 'wx:const-XXX symbols.

Engine:
-------
The wx: classes and procedures are no longer ``built-in''
 with respect to units; instead, all wx: items are now
 in the wx@ signed unit, with the signature wx^, so
 the MzScheme and MrEd languages are the same; the
 wx^ signature is in MrEd's initial environment and
 in the "wxs.ss" library of the "system" collection
Added a --pre flag for evaluating an expression in a 
 MzScheme-only namespace at startup. This flag is intended
 for use with image dumps (see the MzScheme manual), which
 are disabled by default
X Windows: mred now accepts a fixed set of standard X
 Windows command-line flags (it treats them the same as
 always) instead of letting the platform-specific Xt
 library decide; these flags must now be specified
 first if there is no --pre flag, or after --pre's 
 argument if there is one, otherwise the flags
 are passed on to MrEd's system (for good or ill)
X Windows: window manager close-frame request is ignored
 when a modal dialog is in control
Added security so that wx:snip% methods cannot be overridden 
 to crash MrEd
Fixed wx:canvas% scrolling on all platforms; the style flags
 wx:const-hscroll and wx:const-vscroll must be used at
 canvas-creation to set up for scrolling. Removed the
 enable-scrolling method from wx:canvas%. Renamed the method
 get-scroll-page-units to get-scroll-units. Added methods
 get-scroll-pos, get-scroll-range, and get-scroll-page.
The wx:canvas% wx:const-backingstore and wx:const-retained
 style flags have been removed.
Pasteboard printing implemented [finally], and many pasteboard
 bugs are fixed
Removed wx:key-event%'s position method and added get-x,
 get-y, set-x, and set-y
Changed default pen in DC to width 0 instead of 1
Added get-max-view method to wx:media-admin%
Revised wx:media-buffer%'s cursor system for better 
 cooperation with embedded buffers; instead of handling
 the cursor in on-default-event, added a method adjust-cursor
 to buffers and snips, and replaced admin's set-cursor with
 update-cursor
Added refresh-delayed? predicate to wx:media-buffer%, useful
 for deciding whether a buffer (or one of its enclosing 
 buffers) is in an edit-sequence
Added copy-self-to method to wx:media-buffer% and made copy-self
 overrideable; copy-self creates a new buffer and copy-self-to
 copies properties of the buffer to the newly created buffer;
 now implemented for pasteboards, too
Added number-of-visible-items to wx:list-box%
Removed wx:copy-file; MzScheme now has copy-file
Fixed wx:media-stream-in%'s get-string (it was adding an
 extra nul character)
Removed error dialogs when wx:media-buffer%'s load-file or
 save-file fails
Changed the meaning of wx:keymap%'s implies-shift method;
 mapping from ``?'', where ``?'' implies a shift, maps both
 ``?'' and ``s:?''; the idea is that only one of these
 mappings is possible, but it may be difficult to know
 which one
Windows: fixed canvas mouse events; button-down event grabs
 the mouse until the next button-up event
Windows: fixed initial setting of DC text mode: transparent
 instead of opaque
X Windows: fixed wx:frame's iconize and iconized? methods,
 ignoring the X idea of not de-iconifying windows that were 
 iconified by the user
X Windows: fixed iconification of parentless dialog boxes;
 they can't be iconified, since there's often no way to
 get them back
Changed the initial setting of an eventspace created by the
 wx:make-eventspace procedure; now, the initial directory is
 the current directory when wx:make-eventspace is called
Removed wx:exit
MacOS: fixed event handling -> better response and performance
More PostScript drawing fixes
X Windows: added .mred.resources option `mred.forceFocus'; if
 the value is 1, bringing a frame to the foreground forces the
 focus there (good for Window Managers where the focus does
 not follow the pointer); the default is 0, the old behavior
MacOS: removed the special -r command-line flag
Upgraded to gc 13alpha1

System:
-------
- mred console printer improved:
  - values printer now shows partial results.
  - last newline inside stdout (purple) boxes ommitted
  - more efficient

- killing and breaking read (finally) works.

- printing dialogs for windows and mac work better now

- parenthesis matching is improved. The cache is now used much more
  heavily.

- turned off the file name printouts on splash screen

  evaluate: 

  (wx:write-resource "mred" "splashMessages" 1 (wx:find-path 'setup-file))

  to turn them back on.

- searching keybindings have changed. There are four distinct actions:
   action1: move keyboard focus to the searching window, opening it if necessary, 
            or if already there search forward
   action2: move keyboard focus to the searching window, opening it if necessary, 
            or if already there search backward.
   action3: search again, in the same direction
   action4: move the focus between the main window, searching window and replacment window
   action5: hide the searching window

The actions are mapped to different keys, based on the platform. 

On unix:
 action1 => control-s, meta-%
 action2 => control-r
 action3 => f3
 action4 => control-i
 action5 => control-g

On the macintosh:
  action1 => command-f
  action2 => command-r
  action3 => command-g
  action4 => command-o
  action5 => command-.

On windows:
 action1 => control-f
 action2 => control-r
 action3 => f3, control-g
 action4 => control-i
 action5 => escape

- set-empty-callback in mred:frame-group% is now set-empty-callbacks
  in mred:frame-group%. See the docs for more details.

- initial basis now documented

- provide "simple" interface to unitized apps

- mred:edit-file used to return (void) when the file was already
  open. Now it returns the (already open) frame.

- fixed callback printfs from frames. They now appear in the console.

- the paren shader used to fail on very large regions. It does not
  anymore.

- fixed mred:radio-box%'s enable method. It now takes two arguments.

- better begin/end-edit-sequence support in mred; used by
  info-frame and to improve the speed in the console io. There is a
  new method of mred:media-edit: "run-after-edit-sequence".

- mred:original-output-port is now called mred:constants:original-output-port
  mred:original-input-port is now called mred:constants:original-input-port

- MrEd's collections are now documented.

- The command line flags have changed. Specifically:
  the -nu flag is now called either "--non-unitized" or "-u".
  the splash screen flag has changed.

- mred no longer imports a unit of the mred:application signature. Instead, 
  the parameter mred:current-app-name is used to get and set the
  applications name. The eval-string and frame are not used.

- CACHE-WRITE-COUNT in a console-edit is no longer used.

- set-empty-callback is now set-empty-callbacks. It sets two
  callbacks, one for when the group is about to become empty and one
  for when the group is actually empty. See the documentation for
  more info.

- do not use the frame method on-close anymore. Use can-close? and
  do-close.

- renamed the edit-method "on-close" to "do-close"

- the startup procedure has changed again. Now, applications are
  expected to be in a collection. The -a flag has an extra first
  argument, specifing the collection to load the files from, and 
  a -A flag has been added. See the startup documentation for more
  information.

  Also, if you define mred:startup and use the -u (previously -nu) flag, the
  definition of mred:startup must come after the flag on the command
  line. For example:
     mred -e "(define mred:startup (lambda ...))" -nu
  no longer works.

  Redefinition of mred:initialize and mred:make-invokeable-unit are
  no longer supported. Create a new system instead, using the -s flag.

- added "set-display/write-handlers" method of mred:console-edit. This
  work used to happen during a call to the "takeover" method.

-  mred:get-file and mred:put-file now take a parent window as optional
   last argument.

- added kill-protect and kill-allow-protected to mred:console-edit%

- the collection paths are not normalized anymore

- fixed bugs in the meta-u and meta-l keybindings

- if unmarshalling preferences caused an exception at startup, MrEd
  would open up EdJr; now it recovers and uses the default value.

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

Version 50: August 26, 1997

Engine:
-------
Changed wx:dc%'s get-size method to return size of
 destination area; old [documented] functionality
 is available via max-x and max-y
Made button-click state visible for Xt on b&w displays
Fixed and normalized PostScript drawing
Removed wx:dc% methods: device-to-logical-x, etc.
Windows wx:display-size changed to return the size of the
 screen not including the task bar
Windows: finally fixed scale for [non-PostScript] printing
Added wx:[un]register-collecting-blit
X Windows: Fixed use of colormap by loaded bitmap images
Added an optional argument to wx:media-buffer's print method
 to supporting fitting to the destination page
X Windows: Saving as xbm works for bitmaps of any depth
MzScheme pathname expansion performed by all wx: toolbox
 procedures that take a pathname
X Windows Xt: removed excessive borders on wx:canvas% objects
X Windows Xt: removed 2 pixel offset for a single auto-sized
 child in a wx:frame% or wx:dialog-box%
Windows: Fixed scrollbars on editor buffers; they're always
 shown now, but the editor never gets confused about the size
Fixed on-size, pre-on-char, and pre-on-event for wx:item% 
 subclasses
Fixed confusing argument type and number error messages
 for overloaded methods of primitive classes

System:
-------
- fixed a bug in file handlers; if a predicate is supplied, that
  predicate is only called with one argument, the filename.

- added mred:get-single-choice, which takes the same arguments as
  wx:get-single-choice. It works the same, unless the dialog is
  resized, in which case the mred: version resizes gracefully.

- All of the icons in mred are now loaded lazily (but only once),
  and their names are prefixed with "get-". They are now:

  - mred:get-anchor-bitmap
  - mred:get-lock-bitmap
  - mred:get-unlock-bitmap
  - mred:get-icon
  - mred:get-autowrap-bitmap
  - mred:get-paren-highlight-bitmap
  - mred:get-reset-console-bitmap

- added mred:info-frame%

- split out mred:edit into several edits. The choices for pasteboards
  and edits are now:

    mred:media-edit%
    mred:info-edit%
    mred:searching-edit%
    mred:clever-file-format-edit%
    mred:file-edit%
    mred:backup-autosave-edit%
    mred:edit%
    mred:return-edit%
    mred:pasteboard%
    mred:file-pasteboard%
    mred:backup-autosave-pasteboard%

  Probably mred:edit is not the right choice for you now.

- mred:media-snip% objects now defaultly carry a mred:media-edit% object 

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

Version 49: May 31, 1997

Engine:
-------
Object system changes: see mzscheme/HISTORY for details
Fixed Mac event-handling and many other Mac things
Fixed garbage collection of hidden frames under Windows (!)
Panels, canvases, and controls that are both hidden and
  inaccessible are now garbage-collected
Disabled controls are reliably grayed-out, including items 
  within a disabled panel 
Instances of wx:pen%, wx:brush%, or wx:pen% that are
  selected into a drawing context cannot be mutated
Immutability of objects obtained via wx:the-XXX-list is
  enforced
Controls for Windows, Xt are created with the "System" family
  rather than the "Default" family (using resources)
Single wx:bitmap% object can be used by multiple controls
  and/or pens and/or brushes
Fixed Motif image-label radio button
wx:find-directory replaced with wx:find-path
All wx:dc% instances have a default font for drawing
wx:const-copy blit never uses the pen/background color;
  new blit mode wx:const-colour uses current pen
X Windows: removed mapping of Mod3 to Alt (too confusing on
  keyboards where NumLock is Mod3)
Fixed wx:timer% bug that caused autosaving to not work
Fixed eventspace bugs
Fixed .bmp reading when smaller-than-max colormap is provided
Fixed interlaced .gif reading for Windows and MacOS
Xt: fixed default height of wx:text% items
Xt: In a wx:mouse-event% instance, type wx:const-type-XXX-down
  implies get-XXX-down => #t (formerly #f)
Removed wx:group-box% class; use a panel with a border, instead
Removed wx:tool-bar% class
wx:choice% get-columns and set-columns no longer supported
Added wx:gauge% methods: get-value and get-range
wx:media-pasteboard% bug fixes and improvements: raise, lower, 
  set-before, and set-after methods now work
wx:list-box% set-client-data and get-client-data work with
  any Scheme data type
Windows and X Windows: Break key changed back to shift-ctl-c 
  instead of ctl-c (to avoid conflicts with Emacs-std keyboard
  mappings)

System:
-------
- .htx files are no longer supported

- the search paths for the mzlib collection have changed. The PLTHOME
  environment variable is now given preference.

- mred:editor-frames are shown by default (the documentation was wrong)

- mred:pasteboard-frames initialization arguments have changed and
  they are not shown by default

- autosaving has been moved to new edit and pasteboard classes, 
  mred:backup-autosave-edit and  mred:backup-autosave-pasteboard.

- mred:add-preference-default now takes a function which determines if
  preferences read from the disk are valid or not (if not, the default
  is used)

- the show method of mred:dialog-box% only takes one argument now. Use
  the centre method instead of the second argument

- There is only one frame group now, and all frames are registered
  with it. It is called mred:the-frame-group.
  Associated changes:
  - mred:current-frames is gone
  - mred:edit-file only takes at most two arguments now
  - handlers do not take a group as an argument
  - mred:editor-frame% does not take a group as an input argument
  - classes with the method `get-edit' are treated specially in groups
  - mred:frame-group% method open-file does not exist,
    use the procedures mred:edit-file or mred:open-file.
  - mred:frame-group% ask-before-closing last eliminated. 
    Use the empty-callback method
  - added locate-file, a method of mred:the-frame-group which
    takes a filename and returns a frame that is editing that if one exists.
  - mred:edit-file now consults mred:the-frame-group to see if 
    the file is already open, based on the third argument (or the parameter
    mred:edit-file-consult-group)
  - mred:editor-frame
     - medthod get-frame-group gone from mred:editor-frame%
     - method open-file's final optional arg eliminated
     - do-autosave method deleted
     - register-autosave call moved to mred:std-buffer 
       (ie mred:edit and mred:pasteboard)

- The perform-updates and set-perform-update ivars in mred:panel%,
  mred:frame%, and mred:dialog-box% have been replaced with the
  delay-updates method in mred:frame% and mred:dialog-box%.

  Added on-container-resize method to mred:panel%, etc. to handle
  container resize events, rather than inferring a container resize via
  on-size (which could confuse real container resizes with external
  events).

  Changed force-redraw to ignore refresh requests when the
  redraw-requesting window is not shown. Redraw requests are now
  propogated to the top-level frame or dialog via child-redraw-request.
- if your application is unititized, then you need to change the
  startup procedure. See the application startup section in the
  toolbox manual.

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

Version 48: Skipped to avoid confusion with Scheme48

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

Version 47: January 11, 1997

Engine:
-------
WARNING: multiple inhertance is going away in 48
Added overwrite-styles? arg to wx:media-buffer%'s read-from-file,
  and added get-/set-load-overwrites-styles methods
Modified wx:media-buffer%'s set-caret-owner to provide more
  levels of focus control
Controls with bitmap labels work correctly, fixed crashing bugs,
  some Mac controls do not display yet
wx:bitmap%'s load-file only allowed when the bitmap is not selected
  into a wx:memory-dc% object or used by a control

System:
-------
- find-string-embedded of mred:edit% is just like find-string except it
  searches in embedded buffers as well.
- mred:frame-name is gone, use app-name in the application unit instead,
  which is documented under the `Starting Up' section of the toolbox
  manual.
- the signature mred:application^ now contains the variable app-name.

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

Version 46: December 5, 1996

Engine:
-------
Fixed misc. Motif control-sizing problems
Mac & Xt: "&" stripped from control labels correctly
wx:yield takes an optional semaphore argument

System:
-------
- pretty-print-out is gone, use display-result instead, if you want to
  display results

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

Version 45: November 12, 1996

Engine:
-------
IMPORTANT: let-values is now analogous to let; the old 
  let-values is now let*-values
Added thread-savy parameterization system; namespace system changed
Added eventspaces
wx:server%, wx:client%, and wx:connection% are no longer supported
  (Better TCP support is now built into MzScheme)
wx:the-snip-class-list was replaced by (wx:get-the-snip-class-list)
wx:the-buffer-data-class-list was replaced by (wx:get-the-buffer-data-class-list)
Added transparent text backing for editor text
Added wx:dc% try-colour method
wx:window% capture-mouse, release-mouse, and make-modal no longer supported
  Modal dialogs can be used instead of make-modal (modal is
  specified through the constructor). There is currently no
  replacement for capture-mouse and release-mouse, but a replacement is
  likely to be in 46.
Xt and Mac: "&" stripped from control labels (matches Windows/Motif), sortof

System:
-------
- frame groups no longer set the frame title prefix
- there is a new edit%, mred:return-edit%. It takes an extra arg at
  initialization time, which should be a function that will be called
  when the user types return in the edit.
- takeover-output is now takeover and release-output is gone.
  In the next release this should become obsolete
- there are now two new methods of simple-menu-frame%'s, 
  get-edit and get-canvas. These return the current "main" edit and canvas
  in the frame. They should be used for saving, reverting, etc. If your
  frame can have more than one "main" edit then override get-edit and 
  get-canvas and have them return the current main canvas. Note that
  this is different from active-canvas and active-edit. Those two functions
  may return *any* visible edit in the frame, eg one of the searching edits
  in the bottom of the frame, that appear while searching. 
  active-edit and active-canvas should be used for things like pasting 
  and copying, which should apply to all edits, not just "important" or "main"
  ones.
- mred:simple-frame-canvas% and mred:editor-canvas% are now obsolete.
  Instead there are now three important canvas classes in the system:
  mred:wrapping-canvas% : 
    handles autowrapping, can create edits automatically, uses
    style-flags ivar and style initialization for default styles to
    super-init, and implements edit-modifited and edit-renamed
  mred:one-line-canvas% 
    is just the right height to display one line of text.
    inherits from mred:wrapping-canvas%
  mred:frame-title-canvas%
    updates the title of the frame when it receives focus
    events. inherits from mred:wrapping-canvas%
- all of the "connection maintenence" ie edits that know which canvses
  they are in, frames that know which canvas is the most recently
  active canvas have been moved into into separate classes that only
  maintain those connections, mred:connections-media-edit%,
  mred:connections-media-canvas%, mred:connections-frame%,
  mred:connections-dialog-box%, and mred:connections-panel%
- all instance variables class% (e.g. edit% and canvas% on frames) 
  have been changed to get-class%, to support inheiritance.
- added extra optional arg to mred:local-busy-cursor and
  mred:show-busy-cursor that specifies the timeout
- frame title prefixes are now handled by the frame, and
  the set-frame-prefix and set-frame-title methods correctly
  update the graphical frame with it's new title.

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

Version 44: September 9, 1996

Engine:
-------
wx:play-sound added
Saving bitmaps fixed on all platforms; editor can now save 
  "inlined" images instead of only references to images
Hyper-text browser handles HTML files (w/o networking)
Fixed Mac control drawing and hiding
Fixed Xt menus (finally!)
Fixed menu item auto-check for popup menus
Fixed Motif canvas click event reporting (spurious drags)
See also mzscheme/HISTORY, wxme/README, and system/HISTORY
Upgraded to gc 11alpha3

System:
-------
- .html files (with file: links) are supported
- system now provides and uses a better dialog buildling classes. 
  See toolbox manual for more info
- changed do-eval and do-save-and-eval-or-read-avail
  to accept a range in the edit rather than a string
- added read-snips/chars-from-buffer, a function that takes an edit and 
  produces a thunk. That thunk returns either a snip or a character, for
  each character and non-text snip in the edit.  
- added a check so that edits will now save themselves in mred's format
  if there are non-text snips in the edit.

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

Version 43: Re-released August 12, 1996
Under GNU LGPL license

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

Version 43: August 9, 1996

Engine:
-------
Major system overhaul (Robby Findler); see system/HISTORY
Windows stability greatly advanced
Windows and MacOS versions much more "Windows-like" and "Mac-like"
  with standard menu shortcuts and better icons
MacOS and Windows use native print facilities
GIF images supported under Windows
wx:window set-client-size removed
wx:panel%'s get-cursor renamed to get-item-cursor; added set-item-cursor
Fixed cut-n-paste newlines under MacOS and Windows
Xt: panel with one item no longer auto-sizes the child
See also mzscheme/HISTORY

System:
-------
- replaced search dialogue
- new application startup procedure
- mred:frame% changed to mred:editor-frame%
- mred:canvas% changed to mred:editor-canvas%
- mred:console-frame renamed to mred:console
- mred:console-edit and mred:console-canvas gone, use
  (ivar mred:console edit) and (ivar mred:console canavs)
- expanded keybindings -- most movement keys now
  have a shifted form that selects text
- added mred:standard-menus-frame% which gets the right keybindings for
  the different platforms

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

Version 42: June 8, 1996
Documentation translated to Scheme notation, corrected
Windows update bug fixed for embedded buffers
MacOS memory use greatly improved
Fixed annoying non-standard Windows beep
Non-matching cond or case expression raises and error
mred:platform and mred:window-system changed to wx:...
standard system uses functors (see MzScheme)
wx:canvas%::int-draw-line and wx:int-point% removed
wx:list%, wx:hash-table%, wx:string-list%, wx:path-list removed
wx:media-stream-in%::get removed for strings; use get-string
Redundant wx: functions removed:
  wx:dir-exists?  (use directory-exists?)
  wx:file-exists? (use file-exists?)
  wx:file-name-from-path (use file-name-from-path or split-path)
  wx:path-only (use path-only or split-path)
  wx:is-absolute-path? (use reletaive-path?)
  wx:expand-path (use expand-path)
  wx:get-working-directory (use current-directory)
  wx:set-working-directory (use current-directory)
  wx:mkdir (use make-directory)
  wx:remove-file (use delete-file)
  wx:rename-file (use rename-file)
  wx:get-user-home and wx:get-home-dir (use expand-path with "~")
  wx:execute and wx:shell (use system or process)
  wx:find-first-file and wx:find-next-file (use get-directory-list)
  wx:sleep (use sleep)
  wx:sub-type? (use subclass?)
  wx:to-lower (use char-upcase)
  wx:to-upper (use char-downcase)
  wx:is-wild? (use reg exps)
  wx:match-wild? (use reg exps)

Version 0.41: April 15, 1996
Important language changes; see mzscheme/HISTORY
Fixed bug in wxCanvas drawing methods
Fixed wxCanvasDC and wxMemoryDC bugs in Xt version
Pasteboards fixed
AIX: two consecutive SIGDANGERs => exit(-1)
wxGetMultipleChoice supported

Version 0.40: March 24, 1996
Possible improvements to memory system
Some redundant event methods removed
Finally fixed Windows NT/95 Scheme threads
Stdout/stderr messages to a window instead of file for Windows/Mac+
Fixed misc. Xt problems, including show-n-hide on frame

Version 0.39: March 6, 1996
Fixed safety from Scheme on invalidated C++ objects (stack objs, too)
Fixed many bugs in Xt version
Upgraded to gc version 4.10
Reduced memory usage of buffer objects

Version 0.38: February 22, 1996
Xt port released
Part of standard system moved to DrScheme
See also mzscheme HISTORY and wxmedia README

Version 0.37: Not released

Version 0.36: January 18, 1996
Fixed bug in MzScheme's bignum multiplication

Version 0.35: January 17, 1996
X selection protocol supported. To get the old clipboard-style
  mechanism, add this to your .mredrc:
     (wx:media-set-x-selection-mode #f)
 See also wxMediaEdit::SetPosition() in the wxMedia manual.

Version 0.34: December 30, 1995
Minor improvements to MzScheme and the standard system

Version 0.33: December 21, 1995
MzScheme language changes; see mzscheme/HISTORY
Old standard system no longer compatible
Project system improved
Many bugs fixed in the new standard system

Version 0.32: December 4, 1995
New standard system:
  * The console I/O is completely different. It works more
     like an Emacs shell. Use M-p and M-n to access previously
     entered expressions. (read) will now read from the console.
  * All mred:std-<x> variables have been eliminated. For each
     mred:<x>%, there is now a procedure mred:make-<x>% that takes a
     superclass and returns a new class.
  * The frame and buffer hierarchies have changed a little.
  * From a mred:edit% object, you can get to its canvas or frame.
  * The menubar/menu system is completely revised. You don't have to
     deal with menu ids much anymore. Menus and menu items can now be 
     dynamically added and removed.
  * Keymap chaining works differently.
  * The new Scheme project system is roughly in place. This will let you
     develop Scheme programs by organizing Scheme files within a project.
     Projects help manage loading program files into the
     evaluator and uses Shriram's Zodiac/Aries packages to
     provide debugging facilities. This will be improved in the near 
     future.
 The old standard system is available in the "oldsys" directory.
Pretty printer handles loops and graphs
Very limited support for wxYield under XView - will be extended
Fixed some wxMedia bugs (see wxme/README)
Fixed some MzScheme bugs (see mzscheme/HISTORY)

Version 0.31: November 14, 1995
Fixed some wxMedia bugs (see wxme/README)
Fixed some MzScheme bugs (see mzscheme/HISTORY)
Parameterization for Macintosh

Verion 0.30: October 25, 1995
Added call-with-values and regexp to MzScheme
Unix stack-checking setup code fixed in MzScheme
wxMediaPasteboard implemented more
Scheme-C++ object link changed; use ptr in all C++ objects
Added tutorial section to "User Manual"

Version 0.29: October 18, 1995
Editor can save text preserving automatic CR
Bug fix in automatic line-wrapping
New font system can access arbitrary fonts
Multiple displays in Motif: wx:set-display and wx:get-display-name
MzScheme fix for forms such as (let ([x (let ...)]) ...)

Version 0.28: October 3, 1995
MzScheme bug fix: stack-checking on Unix
wxMedia fix: Insert(unsigned char, ...) instead of Insert(char, ...)
 and proper use of `unsigned' in word-breaking array access

Version 0.27: September 29, 1995
Major MzScheme upgrade, including multiple inheritance
 (See MzScheme HISTORY for details)
Win32: Allow deeper recursion by copying the stack
Win32: Allow breaking with Shift-Ctl-C
New font configuration system

Version 0.26: September 8, 1995
Very minor changes
Bug fix to MzScheme for Win32s

Version 0.25: September 7, 1995
Upgraded to wxWindows 1.63
Minor bug fixes

Version 0.24: September 1, 1995
Minor bug fixes

Version 0.23: August 23, 1995
Minor bug fixes
Editor can display images (types depend on wxWindow compile flags)
MzScheme correction: expand & expand-once

Version 0.22: August 17, 1995
Mostly MzScheme improvements
File-format bug fixed related to portability; To make files created 
  earlier portable, open and re-save them.

Version 0.21: August 8, 1995
Bug fixes
triggers, hash tables, and case-lambda added to MzScheme
MzScheme "sleeps" properly
Connected MrEd to wxWindow's layout constraint system

Version 0.20: July 26, 1995
MzScheme Bug fixes

Version 0.19: July 25, 1995
All "!"s removed from method names!!!!!
Full continuations and bignums added to MzScheme
Bug Fixes

Version 0.18: July 20, 1995
Win32s kinda supported
Bug fixes
Added (compile ...) to MzScheme
Added internal processes & threads to MzScheme
wxSnipData -> wxBufferData
Old process and system changed to process* and system*

Version 0.17: July 11, 1995
Bug fixes, especially Motif and memory bugs
Rewrote editor line-maintenance
Faster caret updating
Upgraded garbage collector
File format changed to accomodate nested buffers with
  separate style lists
Standard system standardized
Code changes for compiling on MSWindows (almost works...)
Scheme mode

Version 0.16: June 16, 1995
Fixed define-struct bug

Version 0.15: June 15, 1995
Bug fixes, especially XView
make-input-port takes only 3 args; "unget" param dropped
on-local-char & on-local-event renamed to on-default-char 
  and on-default-event
name changes: to have "!" or not to have "!". See doc/names.diff
  for a list of changed names
fonts configuarble through .Xdefaults; see MrEd.ad

Version 0.14: June 9, 1995
Bug fixes, including wxWindows widget table clash
Scheme mode works
error-handler changed to parameterizing function

Version 0.13: June 5, 1995
MzScheme replaced libscheme
ctl-c breaks Scheme evaluation in MrEd
libscheme/ changed to mzscheme/ - change your make.env!

Version 0.12: June 1, 1995
Bug fixes
Revised object system: requires (inherit ...) declarations
(pretty-print ...) installed

Version 0.11: May 19, 1995
Bug Fixes

Version 0.10: May 19, 1995
Bug fixes
(match ...) installed

Version 0.9: May 18, 1995
wxMediaPasteboard

Version 0.8: May 11, 1995
Bug fixes

Version 0.7: May 10, 1995
mred:default-<x> changed to mred:<x> in system
README in demo directory
Lots of bug fixes
