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