gui/gui-lib/mred/HISTORY.txt
2014-12-02 02:33:07 -05:00

1726 lines
65 KiB
Plaintext

Version 6.0, January 2014
Added get-display-backing-scale
Added get-backing-scale to bitmap%
Fixed key-event% get-key-release-code to return 'press instead of 'down
for a key-down event
Changed GUI size limit to 1000000
Add dimension-integer?, position-integer?, spacing-integer?, and
positive-dimension-integer?
Framework: changed backward-containing-sexp so it returns #f in
more situations
Framework: syntax colorer now usees 'text' for stuff between {}s
in scribble mode (not string)
bitmap-dc% get-pixel and set-pixel now transmit alpha values to/from
their arguments
----------------------------------------
Version 5.1, February 2011
The GRacket executable is now a thin wrapper on the Racket executable,
with the drawing and GUI libraries re-implemented as plain Racket
libraries. See "Draw_and_GUI_5_1.txt" in the Racket release-notes
directory. These notes will be discontinued.
----------------------------------------------------------------------
Version 5.0.2, October 2010
Minor bug fixes
----------------------------------------------------------------------
Version 5.0.1, July 2010
Minor bug fixes
----------------------------------------------------------------------
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, January 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
propagated 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 accommodate 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