.
original commit: 25ba6ad75b4f39488ba06e0f08f867bf68d91de2
This commit is contained in:
parent
71fd0cda0a
commit
8fe28223ab
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
Loading…
Reference in New Issue
Block a user