original commit: 48d3ebbd4d44b21dbf518418ccff71f726ca6c56
This commit is contained in:
Matthew Flatt 1998-11-14 18:09:38 +00:00
parent 0b4f4c0b1a
commit e5c95e163f

View File

@ -37,7 +37,8 @@ MrEd 53 comprised two parts:
For MrEd 100, we moved the boundary between the core toolbox and the
application framework. "MrEd" now refers to only the core toolbox,
which now includes the most useful `mred:' classes from the old
application framework. We eliminated the `wx:' and `mred:' prefixes.
application framework. We collapsed the `wx:' and `mred:' classes and
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
@ -48,11 +49,11 @@ Running MrEd and Developing MrEd Applications
---------------------------------------------
MrEd 100 is more consistent with MzScheme than previous releases. The
default language for MrEd 100 is the MzScheme's default language,
whereas MrEd 53's language had different case-sensitivity and
cond-fallthrough behavior. Command-line handling for MrEd 100 is the
same as for MzScheme; the only difference is that MrEd executes
`(graphical-read-eval-print-loop)' on startup instead of
default language for MrEd 100 is the same as MzScheme's default
language, whereas 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)'. Programmers no longer need to understand
units and collections to implement a simple MrEd application.
@ -73,9 +74,9 @@ toolbox. Section 2 lists all 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 and relatively
subtle changes in MrEd 100 (similar to changes listed in the HISTORY
notes for an average MrEd release).
symbols. Finally, Section 5 lists some of the small, relatively
subtle, and potentially confusing changes in MrEd 100 (similar to
changes listed in the HISTORY notes for an average MrEd release).
======================================================================
0. Highlights of the New MrEd Toolbox
@ -90,34 +91,32 @@ notes for an average MrEd release).
longer a subclass of panel%, which is itself no longer a subclass
of canvas%.
* Interfaces are widely used in the toolbox. The old toolbox had
"classes" like wx:window% that could not be instantiated. The new
toolbox has a window<%> interface ("<%>" is the conventional suffix
for interfaces).
Interfaces are widely used in the toolbox. The old toolbox provided
many "classes" like wx:window% that could not be instantiated. The
new toolbox has a window<%> interface ("<%>" is the conventional
suffix for interfaces).
* Instead of null, #f is used for the "no appropriate value" value,
such as the parent argument for a frame that does not have a parent
window, or the result for get-label when the window does not have a
label.
* There are no wx:const-... values. Instead, methods that used to
take a single (numerical) wx:const- flag now take a symbol, and
methods that used to take bitwise-ior'd wx:const- integers now take
There are no wx:const-... values. Instead, a method that used to
take a single (numerical) wx:const- flag now takes a symbol, and a
method that used to take bitwise-ior'd wx:const- integers now takes
a list of symbols. For example, wx:const-horizontal was replaced by
'horizontal, and wx:const-bitmap-type-gif was replaced with 'gif.
* The old documentation described certain methods as consuming "small
integer" values; the implementation actually accepted any sort of
number and coerced it to a machine-word integer.
Methods now consume an explicitly defined class of numbers. For
example, most windowing methods that formerly consumed "small
integers" now consume "exact integers in [0,10000]". The
implementation signals an exception when provided an inexact
number, a non-integer, or an integer outside the range [0,10000]. A
few methods consume arbitrary exact non-negative integers; those
methods behave correctly when provided an integer represented as a
bignum.
number and coerced it to a machine-word integer. Methods now
consume a precisely defined class of numbers. For example, most
windowing methods that formerly consumed "small integers" now
consume "exact integers in [0, 10000]". The implementation signals
an exception when provided an inexact number, a non-integer, or an
integer outside the range [0, 10000]. A few methods consume
arbitrary exact non-negative integers; those methods behave
correctly when provided an integer represented as a bignum.
In the windowing toolbox, object-specific out-of-range errors are
now signalled by a mismatch exception. (In previous versions of
@ -133,19 +132,11 @@ notes for an average MrEd release).
menu is created by supplying the parent menu bar as an
initialization argument (or a parent menu to create a submenu). A
menu item is created by instantiating menu-item% or
checkable-menu-item% with a menu argument. There are no integer
menu IDs anywhere; when a menu item is selected, a callback
checkable-menu-item% with a menu argument. Integer menu IDs have
been eliminated; when a menu item is selected, a callback
associated with the menu item is executed, just as when a button is
clicked.
* Initialization arguments for creating windows have been re-ordered.
In general, the order is as follows:
label [sub-labels] callback parent [init-value] style
^- e.g., items in a radio box
where style is a list of symbols.
* The "media" names have changed. Roughly, we replaced "media" with
"editor", or dropped "media" it when "editor" is not useful. The
following is the name mapping for some commonly used classes:
@ -184,7 +175,7 @@ notes for an average MrEd release).
keyboard focus.
* The text-field% control (formerly wx:text% and wx:multi-text%)
works well on all platforms because it is implemented using the
works well on all platforms, because it is implemented using the
editor classes. (The equivalent of a wx:multi-text% is created via
a style flag for text-field%.)
@ -227,7 +218,13 @@ notes for an average MrEd release).
canvas drawing must use get-dc to get a drawing context (which
always had a more complete set of methods, anyway).
* Some methods have been renamed to be either more (accurately)
* Initialization arguments for creating windows have been re-ordered.
In general, the order is as follows:
label [sub-labels] callback parent [init-value] style
^- e.g., items in a radio box
where style is a list of symbols.
Some methods have been renamed to be either more (accurately)
descriptive or more consistent with other method names. American
spelling is used everywhere: colour -> color, centre -> center,
grey -> gray.
@ -1006,10 +1003,11 @@ get-the-buffer-data-class-list
======================================================================
5. Relatively subtle changes
5. Relatively subtle and potentially confusing changes
======================================================================
Added queue-callback: (queue-callback proc [hi-priority?])
and removed MzScheme's semaphore-callback
key-event%'s key-code method was removed
@ -1019,20 +1017,9 @@ key-event%'s get-key-code returns a character or a symbol
window<%>'s set-cursor no longer returns the cursor; added get-cursor,
instead
editor-snip%'s resize method no longer calls the embedded buffer's
set-max-size and set-min-size; now it calls on-display-size
media-buffer%'s do-edit changed to editor<%>'s do-edit-operation,
takes a symbol instead of a number
pasteboard%'s {on,after}-interactive-move takes a mouse-event% object
Xt: key-event% for a numpad Enter key reports 'numpad-enter for the
key-event% for a numpad Enter key in Xt reports 'numpad-enter for the
key code instead of #\return
An editor's selection caret now blinks; added a blink-caret method to
editor<%> and snip%
Added 'unknown image kind for bitmap%'s load-file, etc., which
examines the file to determine the type automatically.
@ -1043,21 +1030,32 @@ canvas%'s get-view-start returns values in pixels, not scroll units
For canvas%'s set-scrollbars, #f indicates a disabled scrollbar rather
than a non-positive number
editor-wordbreak-map%'s get-map and set-map now work on characters
instead of integers
text%'s find-string and find-string-all use symbols to specify the
direction, 'forward or 'backward instead of -1 or 1.
A text editor's selection caret now blinks; added a blink-caret method
to editor<%> and snip%
In editor<%>'s scroll-to, text%'s scroll-to-position and
set-position-bias-scroll, editor-admin%'s scroll-to, and
snip-admin%'s scroll-to, bias changed from an integer to a symbol
(see the docs for details)
media-buffer%'s do-edit changed to editor<%>'s do-edit-operation,
which takes a symbol instead of a number
Changed editor<%>'s modified? to is-modified?, added is-locked?
editor-wordbreak-map%'s get-map and set-map now work on characters
instead of integers
text%'s find-string and find-string-all use symbols to specify the
direction, 'forward or 'backward instead of -1 or 1.
Changed arguments and default value of fit-on-page? for print in
editor<%>
Changed editor<%>'s modified? to is-modified?, added is-locked?
pasteboard%'s {on,after}-interactive-move takes a mouse-event% object
editor-snip%'s resize method no longer calls the embedded buffer's
set-max-size and set-min-size; now it calls on-display-size
clipboard% changed to clipboard<%> and font-name-directory% changed to
font-name-directory<%>; there is just once instance, the-clipboard
@ -1072,6 +1070,8 @@ the-color-database only has a find-color method; the others were
TODO: Miscellaneous Cleanup
-----------------------------
Fix pen stipples
Fix pen stipples under Windows
Enter/leave under Windows
Move the editor margin settings into ps-setup%?