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 For MrEd 100, we moved the boundary between the core toolbox and the
application framework. "MrEd" now refers to only the core toolbox, application framework. "MrEd" now refers to only the core toolbox,
which now includes the most useful `mred:' classes from the old 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. 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 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 MrEd 100 is more consistent with MzScheme than previous releases. The
default language for MrEd 100 is the MzScheme's default language, default language for MrEd 100 is the same as MzScheme's default
whereas MrEd 53's language had different case-sensitivity and language, whereas MrEd 53's language had different case-sensitivity
cond-fallthrough behavior. Command-line handling for MrEd 100 is the and cond-fallthrough behavior. Command-line handling for MrEd 100 is
same as for MzScheme; the only difference is that MrEd executes nearly the same as for MzScheme; the only difference is that MrEd
`(graphical-read-eval-print-loop)' on startup instead of executes `(graphical-read-eval-print-loop)' on startup instead of
`(read-eval-print-loop)'. Programmers no longer need to understand `(read-eval-print-loop)'. Programmers no longer need to understand
units and collections to implement a simple MrEd application. 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, classes. Section 3 lists the complete, new set of MrEd procedures,
showing the arguments for selected new procedures. Section 4 provides showing the arguments for selected new procedures. Section 4 provides
a mapping from the old `wx:const-XXX' constants to the new a mapping from the old `wx:const-XXX' constants to the new
symbols. Finally, Section 5 lists some of the small and relatively symbols. Finally, Section 5 lists some of the small, relatively
subtle changes in MrEd 100 (similar to changes listed in the HISTORY subtle, and potentially confusing changes in MrEd 100 (similar to
notes for an average MrEd release). changes listed in the HISTORY notes for an average MrEd release).
====================================================================== ======================================================================
0. Highlights of the New MrEd Toolbox 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 longer a subclass of panel%, which is itself no longer a subclass
of canvas%. of canvas%.
* Interfaces are widely used in the toolbox. The old toolbox had Interfaces are widely used in the toolbox. The old toolbox provided
"classes" like wx:window% that could not be instantiated. The new many "classes" like wx:window% that could not be instantiated. The
toolbox has a window<%> interface ("<%>" is the conventional suffix new toolbox has a window<%> interface ("<%>" is the conventional
for interfaces). suffix for interfaces).
* Instead of null, #f is used for the "no appropriate value" value, * 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 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 window, or the result for get-label when the window does not have a
label. label.
* There are no wx:const-... values. Instead, methods that used to There are no wx:const-... values. Instead, a method that used to
take a single (numerical) wx:const- flag now take a symbol, and take a single (numerical) wx:const- flag now takes a symbol, and a
methods that used to take bitwise-ior'd wx:const- integers now take 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 a list of symbols. For example, wx:const-horizontal was replaced by
'horizontal, and wx:const-bitmap-type-gif was replaced with 'gif. 'horizontal, and wx:const-bitmap-type-gif was replaced with 'gif.
* The old documentation described certain methods as consuming "small * The old documentation described certain methods as consuming "small
integer" values; the implementation actually accepted any sort of integer" values; the implementation actually accepted any sort of
number and coerced it to a machine-word integer. number and coerced it to a machine-word integer. Methods now
consume a precisely defined class of numbers. For example, most
Methods now consume an explicitly defined class of numbers. For windowing methods that formerly consumed "small integers" now
example, most windowing methods that formerly consumed "small consume "exact integers in [0, 10000]". The implementation signals
integers" now consume "exact integers in [0,10000]". The an exception when provided an inexact number, a non-integer, or an
implementation signals an exception when provided an inexact integer outside the range [0, 10000]. A few methods consume
number, a non-integer, or an integer outside the range [0,10000]. A arbitrary exact non-negative integers; those methods behave
few methods consume arbitrary exact non-negative integers; those correctly when provided an integer represented as a bignum.
methods behave correctly when provided an integer represented as a
bignum.
In the windowing toolbox, object-specific out-of-range errors are In the windowing toolbox, object-specific out-of-range errors are
now signalled by a mismatch exception. (In previous versions of 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 menu is created by supplying the parent menu bar as an
initialization argument (or a parent menu to create a submenu). A initialization argument (or a parent menu to create a submenu). A
menu item is created by instantiating menu-item% or menu item is created by instantiating menu-item% or
checkable-menu-item% with a menu argument. There are no integer checkable-menu-item% with a menu argument. Integer menu IDs have
menu IDs anywhere; when a menu item is selected, a callback been eliminated; when a menu item is selected, a callback
associated with the menu item is executed, just as when a button is associated with the menu item is executed, just as when a button is
clicked. 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 * The "media" names have changed. Roughly, we replaced "media" with
"editor", or dropped "media" it when "editor" is not useful. The "editor", or dropped "media" it when "editor" is not useful. The
following is the name mapping for some commonly used classes: following is the name mapping for some commonly used classes:
@ -184,7 +175,7 @@ notes for an average MrEd release).
keyboard focus. keyboard focus.
* The text-field% control (formerly wx:text% and wx:multi-text%) * 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 editor classes. (The equivalent of a wx:multi-text% is created via
a style flag for text-field%.) 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 canvas drawing must use get-dc to get a drawing context (which
always had a more complete set of methods, anyway). 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 descriptive or more consistent with other method names. American
spelling is used everywhere: colour -> color, centre -> center, spelling is used everywhere: colour -> color, centre -> center,
grey -> gray. 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?]) Added queue-callback: (queue-callback proc [hi-priority?])
and removed MzScheme's semaphore-callback
key-event%'s key-code method was removed 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, window<%>'s set-cursor no longer returns the cursor; added get-cursor,
instead instead
editor-snip%'s resize method no longer calls the embedded buffer's key-event% for a numpad Enter key in Xt reports 'numpad-enter for the
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 code instead of #\return 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 Added 'unknown image kind for bitmap%'s load-file, etc., which
examines the file to determine the type automatically. 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 For canvas%'s set-scrollbars, #f indicates a disabled scrollbar rather
than a non-positive number than a non-positive number
editor-wordbreak-map%'s get-map and set-map now work on characters A text editor's selection caret now blinks; added a blink-caret method
instead of integers to editor<%> and snip%
text%'s find-string and find-string-all use symbols to specify the
direction, 'forward or 'backward instead of -1 or 1.
In editor<%>'s scroll-to, text%'s scroll-to-position and In editor<%>'s scroll-to, text%'s scroll-to-position and
set-position-bias-scroll, editor-admin%'s scroll-to, and set-position-bias-scroll, editor-admin%'s scroll-to, and
snip-admin%'s scroll-to, bias changed from an integer to a symbol snip-admin%'s scroll-to, bias changed from an integer to a symbol
(see the docs for details) (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 Changed arguments and default value of fit-on-page? for print in
editor<%> 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 clipboard% changed to clipboard<%> and font-name-directory% changed to
font-name-directory<%>; there is just once instance, the-clipboard 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 TODO: Miscellaneous Cleanup
----------------------------- -----------------------------
Fix pen stipples Fix pen stipples under Windows
Enter/leave under Windows
Move the editor margin settings into ps-setup%? Move the editor margin settings into ps-setup%?