original commit: 25ba6ad75b4f39488ba06e0f08f867bf68d91de2
This commit is contained in:
Matthew Flatt 1998-10-11 22:58:01 +00:00
parent 71fd0cda0a
commit 8fe28223ab
2 changed files with 48 additions and 27 deletions

View File

@ -1357,9 +1357,9 @@
[small? (send ck-s get-value)] [small? (send ck-s get-value)]
[swap? (send ck-w get-value)]) [swap? (send ck-w get-value)])
(send c1 set-vsize 10 10) (send c1 set-vsize 10 10)
(send c1 set-scrollbars (if h? 1 0) (if v? 1 0) 10 10 3 3 1 1 swap?) (send c1 set-scrollbars (and h? 1) (and v? 1) 10 10 3 3 1 1 swap?)
(send c2 set-vsize (if small? 50 500) (if small? 20 200)) (send c2 set-vsize (if small? 50 500) (if small? 20 200))
(send c2 set-scrollbars (if h? 25 0) (if v? 10 0) (if small? 2 20) (if small? 2 20) (send c2 set-scrollbars (and h? 25) (and v? 10) (if small? 2 20) (if small? 2 20)
3 3 1 1 (not swap?)) 3 3 1 1 (not swap?))
(if for-small? (if for-small?
; Specifically refresh the bottom canvas ; Specifically refresh the bottom canvas

View File

@ -4,47 +4,68 @@
****************** ******************
MrEd 100 is the successor to MrEd 53. For MrEd 100, we redesigned the MrEd 100 is the successor to MrEd 53. For MrEd 100, we redesigned the
GUI toolbox interface to streamline it, to make it more Scheme-like, GUI toolbox interface to make it simpler and more Scheme-like.
and to make it more accessible to new users. While we preserved the Although we preserved the windowing model that underlies the old
windowing model that underlies the old toolbox, every MrEd 53 program toolbox, every MrEd 53 program will require substantial changes to run
requires substantial changes to run in MrEd 100. in MrEd 100.
The new interface makes MrEd more accessible to new users: class and
method names are more consistent; useless and redundant methods have
been eliminated; and method arguments are more thoroughly checked. Key
portions of the documentation have been re-written.
The implementation behind the new interface is reliable. Previous
versions of MrEd were plagued by bugs and inconsistently implemented
features, whereas the new interface is consistently implemented across
platforms and thoroughly tested. Of course, bugs will always slip
through, but as a result of new testing methods, we expect MrEd 100 to
be far more robust than previous versions.
New Application Architecture
----------------------------
MrEd 53 comprised two parts: MrEd 53 comprised two parts:
* a low-level toolbox (containing names prefixed with `wx:') that was * a core toolbox (containing names prefixed with `wx:') that was too
too primitive for real programming (no geometry management); and primitive for real programming (no geometry management); and
* an application framework (containing names prefixed with `mred:') * an application framework (containing names prefixed with `mred:')
that provided useful window classes (with geometry management) but that provided crucial functionality (e.g., windows with geometry
also much more, making it too heavyweight for simple GUI programs. management) but also much more, making it too heavyweight for
simple GUI programs.
For MrEd 100, we split the core toolbox and the application For MrEd 100, we moved the boundary between the core toolbox and the
framework. The new toolbox includes the most useful stuff from the old application framework. "MrEd" now refers to only the core toolbox, but
`mred:' domain, such as the windowing classes with geometry the new core toolbox includes the most useful `mred:' classes from the
management. Those `mred:' classes replace clumsy `wx:' old application framework. We eliminated the `wx:' and `mred:'
classes. Useless and redundant methods have been eliminated. As a prefixes; many of the former `mred:' classes replace the former `wx:'
result, the MrEd 100 toolbox is both smaller and better than the core classes.
toolbox in MrEd 53.
The old `mred:' classes that implement the application framework have All of the core toolbox classes are built into the MrEd executable.
been moved into a separate, optional library. It is no longer The remaining `mred:' classes were moved into a separate, optional
necessary to understand units and collections to implement a simple framework library, which was itself thoroughly revised. Changes to the
MrEd application. framework classes are described in a separate document.
Running MrEd and Developing MrEd Applications
---------------------------------------------
Unlike MrEd 53, MrEd 100 is merely an extension of MzScheme with a GUI Unlike MrEd 53, MrEd 100 is merely an extension of MzScheme with a GUI
toolbox. No extra files are needed to start the MrEd toolbox. Command-line handling for MrEd 100 is the same as for
executable. Command-line handling for MrEd 100 is the same as for
MzScheme; the only difference is that MrEd executes MzScheme; the only difference is that MrEd executes
`(graphical-read-eval-print-loop)' on startup instead of `(graphical-read-eval-print-loop)' on startup instead of
`(read-eval-print-loop)'. `(read-eval-print-loop)'. It is no longer necessary to understand
units and collections to implement a simple MrEd application.
MrEd's `graphical-read-eval-print-loop' implements a rather primitive MrEd's `graphical-read-eval-print-loop' implements a rather primitive
REPL, as opposed to the relatively useful REPL that came with the old REPL, as opposed to the relatively useful REPL provided by the old
MrEd toolbox-framework combination. DrScheme 100 replaces the old MrEd toolbox-framework combination. DrScheme 100 replaces the old
MrEd REPL. Unlike previous releases of DrScheme and MrEd, DrScheme 100 MrEd REPL. Unlike previous releases of DrScheme and MrEd, DrScheme 100
provides a REPL that matches MrEd's language exactly. provides a REPL that matches MrEd's language exactly.
The remainder of this document provides an overview of MrEd 100 and Porting to MrEd 100
-------------------
The remainder of this document provides an overview of MrEd 100 with
notes that are useful for upgrading MrEd 53 applications. Section 0 notes that are useful for upgrading MrEd 53 applications. Section 0
describes a few highlights of the MrEd 100 revision. Section 1 shows 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 new interface/class hierarchy for windows and a few other parts of
@ -1047,7 +1068,7 @@ the-color-database only has a find-color method; the others were
TODO: Miscellaneous Cleanup TODO: Miscellaneous Cleanup
----------------------------- -----------------------------
Pick a set of key-bindings for text-field% items. Install a set of key-bindings for text-field% items.
Implement keyboard-based movement in frames/dialogs (in Scheme using Implement keyboard-based movement in frames/dialogs (in Scheme using
on-pre-char). on-pre-char).