From 8fe28223abd6e25493c8e460c17309d374f14b4f Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 11 Oct 1998 22:58:01 +0000 Subject: [PATCH] . original commit: 25ba6ad75b4f39488ba06e0f08f867bf68d91de2 --- collects/tests/mred/item.ss | 4 +-- notes/mred/MrEd_100.txt | 71 ++++++++++++++++++++++++------------- 2 files changed, 48 insertions(+), 27 deletions(-) diff --git a/collects/tests/mred/item.ss b/collects/tests/mred/item.ss index 759d7fb5..2c295cd0 100644 --- a/collects/tests/mred/item.ss +++ b/collects/tests/mred/item.ss @@ -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 diff --git a/notes/mred/MrEd_100.txt b/notes/mred/MrEd_100.txt index d71b5968..94ff3c6d 100644 --- a/notes/mred/MrEd_100.txt +++ b/notes/mred/MrEd_100.txt @@ -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).