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)]
[swap? (send ck-w get-value)])
(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-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?))
(if for-small?
; 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
GUI toolbox interface to streamline it, to make it more Scheme-like,
and to make it more accessible to new users. While we preserved the
windowing model that underlies the old toolbox, every MrEd 53 program
requires substantial changes to run in MrEd 100.
GUI toolbox interface to make it simpler and more Scheme-like.
Although we preserved the windowing model that underlies the old
toolbox, every MrEd 53 program will require substantial changes to run
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:
* a low-level toolbox (containing names prefixed with `wx:') that was
too primitive for real programming (no geometry management); and
* a core toolbox (containing names prefixed with `wx:') that was too
primitive for real programming (no geometry management); and
* an application framework (containing names prefixed with `mred:')
that provided useful window classes (with geometry management) but
also much more, making it too heavyweight for simple GUI programs.
that provided crucial functionality (e.g., windows with geometry
management) but also much more, making it too heavyweight for
simple GUI programs.
For MrEd 100, we split the core toolbox and the application
framework. The new toolbox includes the most useful stuff from the old
`mred:' domain, such as the windowing classes with geometry
management. Those `mred:' classes replace clumsy `wx:'
classes. Useless and redundant methods have been eliminated. As a
result, the MrEd 100 toolbox is both smaller and better than the core
toolbox in MrEd 53.
For MrEd 100, we moved the boundary between the core toolbox and the
application framework. "MrEd" now refers to only the core toolbox, but
the new core toolbox includes the most useful `mred:' classes from the
old application framework. We eliminated the `wx:' and `mred:'
prefixes; many of the former `mred:' classes replace the former `wx:'
classes.
The old `mred:' classes that implement the application framework have
been moved into a separate, optional library. It is no longer
necessary to understand units and collections to implement a simple
MrEd application.
All of the core toolbox classes are built into the MrEd executable.
The remaining `mred:' classes were moved into a separate, optional
framework library, which was itself thoroughly revised. Changes to the
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
toolbox. No extra files are needed to start the MrEd
executable. Command-line handling for MrEd 100 is the same as for
toolbox. 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
`(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
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 REPL. Unlike previous releases of DrScheme and MrEd, DrScheme 100
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
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
@ -1047,7 +1068,7 @@ the-color-database only has a find-color method; the others were
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
on-pre-char).