original commit: 5c70d93112ec3499e9a52616a233ed9820fe4582
This commit is contained in:
Matthew Flatt 1997-12-22 13:43:29 +00:00
commit 71b40c1802
9 changed files with 2807 additions and 0 deletions

101
collects/tests/mred/README Normal file
View File

@ -0,0 +1,101 @@
The "item.ss" test (use load/cd) creates a frame to select
among several types of control-testing frames:
* Big - Tests basic controls; try everything
* Medium - Tests sliders & gauges; keep a new Big or
Medium frame open while getting a new Medium
frame to use the "Enable Previous Frame" test
* Menu - contains its own test instructions
* Button, Checkbox, etc. - Test everything, watching for
messages in the console
For Big & Medium, verify that hide & disbale work (via the checkboxes
on the right). Hiding or disabling a panel should hde or disable all
its contained controls. Disbaling a frame (a "Previous" frame) should
also disbale all of the contained controls. When "Null label" is
used, there should *not* be extra space left where a label might have
gone.
---------------------------------------------------------------------------
The "draw.ss" test (use load/cd) tests drawing commands. There
is a checkbox for testing drawing into an intermediate offscreen
bitmap as well. The drawing area should have the following
features:
At the top, "Pen 0 x 0" in a consistent font (i.e., re-painting
should not change the font)
"Pen 1 x 1" in a possibly different font
"Pen 2 x 2" in a bold font (bold version of 1x1 font)
the drawings under 0x0 and 1x1 should look the same:
TopLeft: h-line should be left-aligned with box below it,
but extend 1 extra pixel. v-line similarly should be
top-aligned and 1 pixel longer. The lines should not
touch the box - there should be 2 pixels of space.
Top: Lines for the rotated L's should join in a sharp corner
Second from Top: like top-left, but lines should touch the box
Four shape lines: First and second should be exactly the same
shape, with the first hollow and the second filled.
Third shape and 2x2 shapes are ill-defined.
Octagons: two hollow octagons exactly the same shape.
Line: actually two lines, but they should form a single
unbroken line
Images: MrEd logo (b & w)
BB logo (color)
Down-left arrow (b & w)
Down-left arrow - B & W, *not* red
Down-left arrow - red with white background
BB logo, possibly reddened
Down-left arrow - red with *white* background
---------------------------------------------------------------------------
The "imred.ss" test is used to check for memory leaks in a loop
invoking the mred system. Call the `go' procedure with a list
of symbol flags:
'force not included:
Use the current eventspaces; expects mred:run-exit-callbacks
to terminate everything properly
'force included:
Use a new eventspace; don't run mred:run-exit-callbacks and
call wx:kill-eventspace instead.
'console included:
Open a MrEd console
'thread included:
Spawn a sleeping-and-looping thread during each invocation.
Also tests semaphore-callback (because it has to)
'eventspace included:
Create a new sub-eventspace during each invocation with
a wx:frame% shown
---------------------------------------------------------------------------
The "mem.ss" test should be loaded at startup:
mred -nu -f tests/mem.ss
It will create a lot of frames and instance of other objects,
reporting memory information along the way. At the end,
before the last memory dump, objects that are still allocated
are displayed like this:
(frame (1 . 5))
This means that the frame allocated by thread #1 at cycle 5
(counting down from some number) hasn't been garbage-collected.
If there's a few of these lines (less than 10), that's ok.
A large number of lines indicates a GC problem.
---------------------------------------------------------------------------
The "setup.ss" test is a randomized test of the MrEd classes that tests
MrEd's stability. Load/cd setup.ss, and then run
(init)
This attempts to create instances of classes using random
intialization arguments. (init) can be run any number of times. Then
run
(call-all-random)
This calls every method of every class (skipping some "dangerous" ones
that modify the file system) with a random instance and with random
arguments.

346
collects/tests/mred/draw.ss Normal file
View File

@ -0,0 +1,346 @@
(define sys-path
(lambda (f)
(build-path (collection-path "icons") f)))
(let* ([f (make-object mred:frame% ()
"Graphics Test"
-1 -1 300 350)]
[vp (make-object mred:vertical-panel% f)]
[hp0 (make-object mred:horizontal-panel% vp)]
[hp (make-object mred:horizontal-panel% vp)]
[hp2 (make-object mred:horizontal-panel% vp)]
[bb (make-object wx:bitmap% (sys-path "bb.gif")
wx:const-bitmap-type-gif)]
[return (make-object wx:bitmap% (sys-path "return.xbm")
wx:const-bitmap-type-xbm)]
[tmp-mdc (make-object wx:memory-dc%)]
[use-bitmap? #f]
[depth-one? #f])
(send hp0 stretchable-in-y #f)
(send hp stretchable-in-y #f)
(send hp2 stretchable-in-y #f)
(let ([canvas
(make-object
(make-class mred:canvas%
(inherit get-dc)
(public
[no-bitmaps? #f]
[set-bitmaps (lambda (on?) (set! no-bitmaps? (not on?)) (on-paint))]
[no-stipples? #f]
[set-stipples (lambda (on?) (set! no-stipples? (not on?)) (on-paint))]
[scale 1]
[set-scale (lambda (s) (set! scale s) (on-paint))]
[offset 0]
[set-offset (lambda (o) (set! offset o) (on-paint))]
[on-paint
(case-lambda
[() (on-paint #f)]
[(ps?)
(let* ([can-dc (get-dc)]
[pen0s (make-object wx:pen% "BLACK" 0 wx:const-solid)]
[pen1s (make-object wx:pen% "BLACK" 1 wx:const-solid)]
[pen2s (make-object wx:pen% "BLACK" 2 wx:const-solid)]
[pen0t (make-object wx:pen% "BLACK" 0 wx:const-transparent)]
[pen1t (make-object wx:pen% "BLACK" 1 wx:const-transparent)]
[pen2t (make-object wx:pen% "BLACK" 2 wx:const-transparent)]
[brushs (make-object wx:brush% "BLACK" wx:const-solid)]
[brusht (make-object wx:brush% "BLACK" wx:const-transparent)]
[penr (make-object wx:pen% "RED" 1 wx:const-solid)]
[brushb (make-object wx:brush% "BLUE" wx:const-solid)]
[mem-dc (if use-bitmap?
(make-object wx:memory-dc%)
#f)]
[bm (if use-bitmap?
(make-object wx:bitmap% (* scale 300) (* scale 300)
(if depth-one? 1 -1))
#f)]
[draw-series
(lambda (dc pens pent size x y flevel last?)
(let* ([ofont (send dc get-font)])
(if (positive? flevel)
(send dc set-font
(make-object wx:font%
10 wx:const-decorative
wx:const-normal
(if (> flevel 1)
wx:const-bold
wx:const-normal)
#t)))
(send dc set-pen pens)
(send dc set-brush brusht)
; Test should overlay this line:
(send dc draw-line
(+ x 3) (+ y 12)
(+ x 40) (+ y 12))
(send dc draw-text (string-append size " Pen")
(+ x 5) (+ y 8))
(send dc set-font ofont)
(send dc draw-line
(+ x 5) (+ y 27) (+ x 10) (+ 27 y))
(send dc draw-rectangle
(+ x 5) (+ y 30) 5 5)
(send dc draw-line
(+ x 12) (+ y 30) (+ x 12) (+ y 35))
(send dc draw-line
(+ x 5) (+ y 40) (+ x 10) (+ 40 y))
(send dc draw-rectangle
(+ x 5) (+ y 41) 5 5)
(send dc draw-line
(+ x 10) (+ y 41) (+ x 10) (+ 46 y))
(send dc draw-line
(+ x 15) (+ y 25) (+ x 20) (+ 25 y))
(send dc draw-line
(+ x 20) (+ y 30) (+ x 20) (+ 25 y))
(send dc draw-line
(+ x 30) (+ y 25) (+ x 25) (+ 25 y))
(send dc draw-line
(+ x 25) (+ y 30) (+ x 25) (+ 25 y))
(send dc draw-line
(+ x 35) (+ y 30) (+ x 40) (+ 30 y))
(send dc draw-line
(+ x 40) (+ y 25) (+ x 40) (+ 30 y))
(send dc draw-line
(+ x 50) (+ y 30) (+ x 45) (+ 30 y))
(send dc draw-line
(+ x 45) (+ y 25) (+ x 45) (+ 30 y))
; Check line thickness with "X"
(send dc draw-line
(+ x 20) (+ y 45) (+ x 40) (+ 39 y))
(send dc draw-line
(+ x 20) (+ y 39) (+ x 40) (+ 45 y))
(send dc draw-rectangle
(+ x 5) (+ y 50) 10 10)
(send dc draw-rounded-rectangle
(+ x 5) (+ y 65) 10 10 3)
(send dc draw-ellipse
(+ x 5) (+ y 80) 10 10)
(send dc set-brush brushs)
(send dc draw-rectangle
(+ x 17) (+ y 50) 10 10)
(send dc draw-rounded-rectangle
(+ x 17) (+ y 65) 10 10 3)
(send dc draw-ellipse
(+ x 17) (+ y 80) 10 10)
(send dc set-pen pent)
(send dc draw-rectangle
(+ x 29) (+ y 50) 10 10)
(send dc draw-rounded-rectangle
(+ x 29) (+ y 65) 10 10 3)
(send dc draw-ellipse
(+ x 29) (+ y 80) 10 10)
(send dc set-pen pens)
(send dc draw-rectangle
(+ x 17) (+ y 95) 10 10)
(send dc set-logical-function wx:const-clear)
(send dc draw-rectangle
(+ x 18) (+ y 96) 8 8)
(send dc set-logical-function wx:const-copy)
(send dc draw-rectangle
(+ x 29) (+ y 95) 10 10)
(send dc set-logical-function wx:const-clear)
(send dc set-pen pent)
(send dc draw-rectangle
(+ x 30) (+ y 96) 8 8)
(send dc set-pen pens)
(send dc draw-rectangle
(+ x 5) (+ y 95) 10 10)
(send dc set-logical-function wx:const-xor)
(send dc draw-rectangle
(+ x 5) (+ y 95) 10 10)
(send dc set-logical-function wx:const-copy)
(send dc draw-line
(+ x 5) (+ y 110) (+ x 8) (+ y 110))
(send dc draw-line
(+ x 8) (+ y 110) (+ x 11) (+ y 113))
(send dc draw-line
(+ x 11) (+ y 113) (+ x 11) (+ y 116))
(send dc draw-line
(+ x 11) (+ y 116) (+ x 8) (+ y 119))
(send dc draw-line
(+ x 8) (+ y 119) (+ x 5) (+ y 119))
(send dc draw-line
(+ x 5) (+ y 119) (+ x 2) (+ y 116))
(send dc draw-line
(+ x 2) (+ y 116) (+ x 2) (+ y 113))
(send dc draw-line
(+ x 2) (+ y 113) (+ x 5) (+ y 110))
(send dc draw-lines
(list
(make-object wx:point% 5 95)
(make-object wx:point% 8 95)
(make-object wx:point% 11 98)
(make-object wx:point% 11 101)
(make-object wx:point% 8 104)
(make-object wx:point% 5 104)
(make-object wx:point% 2 101)
(make-object wx:point% 2 98)
(make-object wx:point% 5 95))
(+ x 12) (+ y 15))
(send dc draw-line
(+ x 5) (+ y 125) (+ x 10) (+ y 125))
(send dc draw-line
(+ x 11) (+ y 125) (+ x 16) (+ y 125))
(send dc set-brush brusht)
(send dc draw-arc
(+ x 20) (+ y 135)
(+ x 5) (+ y 150)
(+ x 20) (+ y 150))
(send dc draw-arc
(+ x 35) (+ y 150)
(+ x 20) (+ y 135)
(+ x 20) (+ y 150))
(send dc set-brush brushs)
(send dc draw-arc
(+ x 60) (+ y 135)
(+ x 36) (+ y 150)
(+ x 60) (+ y 150))
(send dc set-brush brusht)
(unless (or no-bitmaps? (not last?))
(let ([x 5] [y 165])
(send dc draw-icon
(mred:get-icon) x y)
(set! x (+ x (send (mred:get-icon) get-width)))
(let ([do-one
(lambda (bm mode)
(if (send bm ok?)
(begin
(send tmp-mdc select-object bm)
(let ([h (send bm get-height)]
[w (send bm get-width)])
(send dc blit x y
w h
tmp-mdc 0 0
mode)
(set! x (+ x w 10)))
(send tmp-mdc select-object null))
(printf "bad bitmap~n")))])
(do-one bb wx:const-copy)
(do-one return wx:const-copy)
(send dc set-pen penr)
(do-one return wx:const-copy)
(do-one return wx:const-colour)
(do-one bb wx:const-colour)
(let ([bg (send dc get-background)])
(send dc set-background brushs)
(do-one return wx:const-colour)
(send dc set-background bg))
(send dc set-pen pens))))
(unless (or no-stipples? (not last?))
(send dc set-brush brushb)
(send dc draw-rectangle 80 200 100 40)
(when (send return ok?)
(let ([b (make-object wx:brush% "GREEN" wx:const-stipple)])
(send b set-stipple return)
(send dc set-brush b)
(send dc draw-rectangle 85 205 30 30)
(send dc set-brush brushs)
(send b set-style wx:const-opaque-stipple)
(send dc set-brush b)
(send dc draw-rectangle 120 205 30 30)
(send dc set-brush brushs)
(send b set-stipple bb)
(send dc set-brush b)
(send dc draw-rectangle 155 205 20 30)
(send dc set-brush brushs)
(send b set-stipple null))))
(if (not (or ps? (eq? dc can-dc)))
(send can-dc blit 0 0
(* scale 300) (* scale 300)
mem-dc 0 0 wx:const-copy)))
'done)])
(send (get-dc) set-user-scale 1 1)
(send (get-dc) set-device-origin 0 0)
(let ([dc (if ps?
(let ([dc (make-object wx:post-script-dc% null #t)])
(and (send dc ok?) dc))
(if (and use-bitmap? (send bm ok?))
(begin
(send mem-dc select-object bm)
mem-dc)
(get-dc)))])
(when dc
(when ps?
(send dc start-doc "Draw Test")
(send dc start-page))
(send dc set-user-scale scale scale)
(send dc set-device-origin offset offset)
(send dc clear)
; check default pen/brush:
(send dc draw-rectangle 0 0 5 5)
(send dc draw-line 0 0 20 6)
(draw-series dc pen0s pen0t "0 x 0" 5 0 0 #f)
(draw-series dc pen1s pen1t "1 x 1" 70 0 1 #f)
(draw-series dc pen2s pen2t "2 x 2" 135 0 2 #t)
(when ps?
(send dc end-page)
(send dc end-doc))))
'done)])]))
vp 0 50 300 300)])
(make-object mred:radio-box% hp0
(lambda (self event)
(set! use-bitmap? (< 0 (send event get-command-int)))
(set! depth-one? (< 1 (send event get-command-int)))
(send canvas on-paint))
null
-1 -1 -1 -1
'("Canvas" "Pixmap" "Bitmap")
0 wx:const-horizontal)
(make-object mred:button% hp
(lambda (self event)
(send canvas on-paint #t))
"PostScript")
(make-object mred:check-box% hp
(lambda (self event)
(send canvas set-scale (if (send event checked?) 2 1)))
"*2")
(make-object mred:check-box% hp
(lambda (self event)
(send canvas set-offset (if (send event checked?) 10 0)))
"+10")
(send (make-object mred:check-box% hp2
(lambda (self event)
(send canvas set-bitmaps (send event checked?)))
"Icons")
set-value #t)
(send (make-object mred:check-box% hp2
(lambda (self event)
(send canvas set-stipples (send event checked?)))
"Stipples")
set-value #t))
(send f show #t))

1167
collects/tests/mred/item.ss Normal file

File diff suppressed because it is too large Load Diff

241
collects/tests/mred/mem.ss Normal file
View File

@ -0,0 +1,241 @@
(define source-dir (current-load-relative-directory))
(define num-times 12)
(define num-threads 1)
(define dump-stats? #t)
(define edit? #t)
(define insert? #t)
(define load-file? #f) ; adds a lot of messy objects
(define menus? #t)
(define atomic? #t)
(define offscreen? #t)
(define frame? #t)
(define subwindows? #t)
(define allocated '())
(define (remember tag v)
(set! allocated
(cons (cons tag (make-weak-box v))
allocated))
v)
(define frame%
; Leave this as the (obsolete) make-class form for macro testing
(make-class mred:editor-frame%
(rename [super-show show])
(public
[prim-show (lambda (arg) (super-show arg))]
[show
(lambda (x) (void))])))
(when subwindows?
(define sub-collect-frame
(make-object wx:frame% null "sub-collect" -1 -1 200 200))
(define sub-collect-panel
(make-object wx:panel% sub-collect-frame 0 0 100 100)))
(send sub-collect-frame show #t)
(define (maker id n)
(sleep)
(collect-garbage)
(collect-garbage)
(printf "Thread: ~s Cycle: ~s~n" id n)
(dump-object-stats)
(if (and dump-stats? (= id 1))
(dump-memory-stats))
(unless (zero? n)
(let ([tag (cons id n)])
(let* ([f (if edit? (remember tag (make-object frame%)))]
[c (make-custodian)]
[es (parameterize ([current-custodian c])
(wx:make-eventspace))])
(parameterize ([wx:current-eventspace es])
(send (remember
tag
(make-object
(class-asi wx:timer%
(public
[notify void]))))
start 100))
(when edit?
(remember tag (send f get-edit)))
(when (and edit? (zero? (modulo n 2)))
(send f prim-show #t)
(sleep 0.5))
(if frame?
(let* ([f (make-object wx:frame% '() "Tester" -1 -1 200 200)]
[p (remember tag (make-object wx:panel% f))])
(remember tag (make-object wx:canvas% f))
(if (zero? (modulo n 3))
(send f show #t))
(remember tag (make-object wx:button% p (lambda args #t) "one"))
(let ([class wx:check-box%])
(let loop ([m 10])
(unless (zero? m)
(remember (cons tag m)
(make-object class p (lambda args #t) "another"))
(loop (sub1 m)))))
(send p new-line)
(remember tag (make-object wx:check-box% p (lambda args #t) "check"))
(remember tag (make-object wx:choice% p (lambda args #t) "choice"))
(remember tag (make-object wx:list-box% p (lambda args #t) "list"
wx:const-single -1 -1 -1 -1
'("apple" "banana" "coconut")))
(remember tag (make-object wx:button% p (lambda args #t) "two"))
(send f show #f)))
(if subwindows?
(let ([p (make-object wx:panel% sub-collect-frame 100 100 50 50)]
[cv (make-object wx:canvas% sub-collect-frame 150 150 50 50)]
[add-objects
(lambda (p tag hide?)
(let ([b (make-object wx:button% p (lambda args #t) "one" 0 0)]
[c (make-object wx:check-box% p (lambda args #t) "check" 0 0)]
[co (make-object wx:choice% p (lambda args #t) "choice" 0 0)]
[cv (make-object wx:canvas% p 0 0 50 50)]
[lb (make-object wx:list-box% p (lambda args #t) "list"
wx:const-single 0 0 -1 -1
'("apple" "banana" "coconut"))])
(when hide?
(send b show #f)
(send c show #f)
(send cv show #f)
(send co show #f)
(send lb show #f))
(remember tag b)
(remember tag c)
(remember tag cv)
(remember tag co)
(remember tag lb)))])
(add-objects sub-collect-panel (cons 'sc1 tag) #t)
(add-objects p (cons 'sc2 tag) #f)
(remember (cons 'sc0 tag) p)
(remember (cons 'sc0 tag) cv)
(send p show #f)
(send cv show #f)))
(if (and edit? insert?)
(let ([e (send f get-edit)])
(when load-file?
(send e load-file (build-path source-dir "mem.ss")))
(let loop ([i 20])
(send e insert (number->string i))
(unless (zero? i)
(loop (sub1 i))))
(let ([s (make-object wx:media-snip%)])
(send (send s get-this-media) insert "Hello!")
(send e insert s))
(send e insert #\newline)
(send e insert "done")
(send e set-modified #f)))
(when menus?
(remember tag (make-object wx:menu-bar%))
(remember tag (make-object wx:menu%))
(let ([mb (remember tag (make-object wx:menu-bar%))]
[m (remember tag (make-object wx:menu%))])
(send m append 5 "Hi" (remember tag (make-object wx:menu%)))
(send mb append m "x"))
(if edit?
(let ([m (remember tag (make-object mred:menu%))]
[m2 (remember tag (make-object mred:menu%))]
[mb (send f get-menu-bar)])
(send m append 4 "ok")
(send m2 append 4 "hao")
(send m append 5 "Hi" (remember tag (make-object mred:menu%)))
(send mb append m "Extra")
(send mb append m2 "Other")
(send m delete 5)
(send mb delete m))))
(when atomic?
(let loop ([m 8])
(unless (zero? m)
(remember (cons tag m) (make-object wx:point% n m))
(remember (cons tag m) (make-object wx:int-point% n m))
(remember (cons tag m) (make-object wx:brush%))
(remember (cons tag m) (make-object wx:pen%))
(loop (sub1 m)))))
(when offscreen?
(let ([m (remember tag (make-object wx:memory-dc%))]
[b (remember (cons tag 'u) (make-object wx:bitmap% 100 100))]
[b2 (remember (cons tag 'x) (make-object wx:bitmap% 100 100))])
(send m select-object b)))
(when edit?
(let ([name (wx:get-temp-file-name "hi")])
(send (send f get-edit) save-file name)
(send f on-close)
(send f prim-show #f)
(delete-file name)))
(custodian-shutdown-all c)
(collect-garbage)
(maker id (sub1 n))))))
(define (still)
(map (lambda (x)
(let ([v (weak-box-value (cdr x))])
(if v
(printf "~s ~s~n" (send v get-class-name) (car x)))))
allocated)
(void))
(define (xthread f)
(f))
(define (stw t n)
(thread-weight t (floor (/ (thread-weight t) n))))
(define (do-test)
(let ([sema (make-semaphore)])
(let loop ([n num-threads])
(unless (zero? n)
(thread (lambda ()
(stw (current-thread) n)
(dynamic-wind
void
(lambda () (maker n num-times))
(lambda () (semaphore-post sema)))))
(loop (sub1 n))))
(let loop ([n num-threads])
(unless (zero? n)
(wx:yield sema)
(loop (sub1 n)))))
(collect-garbage)
(collect-garbage)
(let loop ([n 100])
(if (zero? n) 0 (sub1 (loop (sub1 n)))))
(collect-garbage)
(collect-garbage)
(still)
(when subwindows?
(set! sub-collect-frame #f)
(set! sub-collect-panel #f))
(when dump-stats?
(dump-memory-stats)
(still)))
(define mred:startup
(let ([old-mred:startup mred:startup])
(lambda args
(send mred:the-frame-group set-empty-callback (lambda () #t))
(do-test)
(apply old-mred:startup args))))

View File

@ -0,0 +1,4 @@
#define nruter_width 6
#define nruter_height 9
static char nruter_bits[] = {
0x1e,0x1f,0x03,0x03,0x27,0x3e,0x3c,0x3c,0x3e};

409
notes/mred/HISTORY Normal file
View File

@ -0,0 +1,409 @@
Version 51: ??, 1997
X Windows: window manager close-frame request is ignored
when a modal dialog is in control
Added security so that wx:snip% methods cannot be overridden
to crash MrEd
Fixed wx:canvas% scrolling on all platforms; the style flags
wx:const-hscroll and wx:const-vscroll must be used at
canvas-creation to set up for scrolling. Removed the
enable-scrolling method from wx:canvas%. Renamed the method
get-scroll-page-units to get-scroll-units. Added methods
get-scroll-pos, get-scroll-range, and get-scroll-page.
The wx:canvas% wx:const-backingstore and wx:const-retained
style flags have been removed.
Removed wx:key-event%'s position method and added get-x,
get-y, set-x, and set-y
Changed default pen in DC to width 0 instead of 1
Added get-max-view method to wx:media-admin%
Revised wx:media-buffer%'s cursor system for better
cooperation with embedded buffers; instead of handling
the cursor in on-default-event, added a method adjust-cursor
to buffers and snips, and replaced admin's set-cursor with
update-cursor
Added refresh-delayed? predicate to wx:media-buffer%, useful
for deciding whether a buffer (or one of its enclosing
buffers) is in an edit-sequence
Added a --pre flag for evaluating an expression in a
MzScheme-only namespace at startup. This flag is intended
for use with image dumps (see the MzScheme manual)
Removed wx:copy-file; MzScheme now has copy-file
Fixed wx:media-stream-in%'s get-string (it was adding an
extra nul character)
Removed error dialogs when wx:media-buffer%'s load-file or
save-file fails
Windows: fixed canvas mouse events; button-down event grabs
the mouse until the next button-up event
Windows: fixed initial setting of DC text mode: transparent
instead of opaque
X Windows: fixed wx:frame's iconize and iconized? methods,
ignoring the X idea of not de-iconifying windows that were
iconified by the user
Removed wx:exit
Version 50: August 26, 1997
Changed wx:dc%'s get-size method to return size of
destination area; old [documented] functionality
is available via max-x and max-y
Made button-click state visible for Xt on b&w displays
Fixed and normalized PostScript drawing
Removed wx:dc% methods: device-to-logical-x, etc.
Windows wx:display-size changed to return the size of the
screen not including the task bar
Windows: finally fixed scale for [non-PostScript] printing
Added wx:[un]register-collecting-blit
X Windows: Fixed use of colormap by loaded bitmap images
Added an optional argument to wx:media-buffer's print method
to supporting fitting to the destination page
X Windows: Saving as xbm works for bitmaps of any depth
MzScheme pathname expansion performed by all wx: toolbox
procedures that take a pathname
X Windows Xt: removed excessive borders on wx:canvas% objects
X Windows Xt: removed 2 pixel offset for a single auto-sized
child in a wx:frame% or wx:dialog-box%
Windows: Fixed scrollbars on editor buffers; they're always
shown now, but the editor never gets confused about the size
Fixed on-size, pre-on-char, and pre-on-event for wx:item%
subclasses
Fixed confusing argument type and number error messages
for overloaded methods of primitive classes
Version 49: May 31, 1997
Object system changes: see mzscheme/HISTORY for details
Fixed Mac event-handling and many other Mac things
Fixed garbage collection of hidden frames under Windows (!)
Panels, canvases, and controls that are both hidden and
inaccessible are now garbage-collected
Disabled controls are reliably grayed-out, including items
within a disabled panel
Instances of wx:pen%, wx:brush%, or wx:pen% that are
selected into a drawing context cannot be mutated
Immutability of objects obtained via wx:the-XXX-list is
enforced
Controls for Windows, Xt are created with the "System" family
rather than the "Default" family (using resources)
Single wx:bitmap% object can be used by multiple controls
and/or pens and/or brushes
Fixed Motif image-label radio button
wx:find-directory replaced with wx:find-path
All wx:dc% instances have a default font for drawing
wx:const-copy blit never uses the pen/background color;
new blit mode wx:const-colour uses current pen
X Windows: removed mapping of Mod3 to Alt (too confusing on
keyboards where NumLock is Mod3)
Fixed wx:timer% bug that caused autosaving to not work
Fixed eventspace bugs
Fixed .bmp reading when smaller-than-max colormap is provided
Fixed interlaced .gif reading for Windows and MacOS
Xt: fixed default height of wx:text% items
Xt: In a wx:mouse-event% instance, type wx:const-type-XXX-down
implies get-XXX-down => #t (formerly #f)
Removed wx:group-box% class; use a panel with a border, instead
Removed wx:tool-bar% class
wx:choice% get-columns and set-columns no longer supported
Added wx:gauge% methods: get-value and get-range
wx:media-pasteboard% bug fixes and improvements: raise, lower,
set-before, and set-after methods now work
wx:list-box% set-client-data and get-client-data work with
any Scheme data type
Windows and X Windows: Break key changed back to shift-ctl-c
instead of ctl-c (to avoid conflicts with Emacs-std keyboard
mappings)
Version 48: Skipped to avoid confusion with Scheme48
Version 47: January 11, 1997
WARNING: multiple inhertance is going away in 48
Added overwrite-styles? arg to wx:media-buffer%'s read-from-file,
and added get-/set-load-overwrites-styles methods
Modified wx:media-buffer%'s set-caret-owner to provide more
levels of focus control
Controls with bitmap labels work correctly, fixed crashing bugs,
some Mac controls do not display yet
wx:bitmap%'s load-file only allowed when the bitmap is not selected
into a wx:memory-dc% object or used by a control
Version 46: December 5, 1996
Fixed misc. Motif control-sizing problems
Mac & Xt: "&" stripped from control labels correctly
wx:yield takes an optional semaphore argument
Version 45: November 12, 1996
IMPORTANT: let-values is now analogous to let; the old
let-values is now let*-values
Added thread-savy parameterization system; namespace system changed
Added eventspaces
wx:server%, wx:client%, and wx:connection% are no longer supported
(Better TCP support is now built into MzScheme)
wx:the-snip-class-list was replaced by (wx:get-the-snip-class-list)
wx:the-buffer-data-class-list was replaced by (wx:get-the-buffer-data-class-list)
Added transparent text backing for editor text
Added wx:dc% try-colour method
wx:window% capture-mode, release-mouse, and make-modal no longer supported
Modal dialogs can be used instead of make-modal (modal is
specified through the constructor). There is currently no
replacement for capture-mouse and release-mouse, but a replacement is
likely to be in 46.
Xt and Mac: "&" stripped from control labels (matches Windows/Motif), sortof
Version 44: September 9, 1996
wx:play-sound added
Saving bitmaps fixed on all platforms; editor can now save
"inlined" images instead of only references to images
Hyper-text browser handles HTML files (w/o networking)
Fixed Mac control drawing and hiding
Fixed Xt menus (finally!)
Fixed menu item auto-check for popup menus
Fixed Motif canvas click event reporting (spurious drags)
See also mzscheme/HISTORY, wxme/README, and system/HISTORY
Upgraded to gc 11alpha3
Version 43: Re-released August 12, 1996
Under GNU LGPL license
Version 43: August 9, 1996
Major system overhaul (Robby Findler); see system/HISTORY
Windows stability greatly advanced
Windows and MacOS versions much more "Windows-like" and "Mac-like"
with standard menu shortcuts and better icons
MacOS and Windows use native print facilities
GIF images supported under Windows
wx:window set-client-size removed
wx:panel%'s get-cursor renamed to get-item-cursor; added set-item-cursor
Fixed cut-n-paste newlines under MacOS and Windows
Xt: panel with one item no longer auto-sizes the child
See also mzscheme/HISTORY
Version 42: June 8, 1996
Documentation translated to Scheme notation, corrected
Windows update bug fixed for embedded buffers
MacOS memory use greatly improved
Fixed annoying non-standard Windows beep
Non-matching cond or case expression raises and error
mred:platform and mred:window-system changed to wx:...
standard system uses functors (see MzScheme)
wx:canvas%::int-draw-line and wx:int-point% removed
wx:list%, wx:hash-table%, wx:string-list%, wx:path-list removed
wx:media-stream-in%::get removed for strings; use get-string
Redundant wx: functions removed:
wx:dir-exists? (use directory-exists?)
wx:file-exists? (use file-exists?)
wx:file-name-from-path (use file-name-from-path or split-path)
wx:path-only (use path-only or split-path)
wx:is-absolute-path? (use reletaive-path?)
wx:expand-path (use expand-path)
wx:get-working-directory (use current-directory)
wx:set-working-directory (use current-directory)
wx:mkdir (use make-directory)
wx:remove-file (use delete-file)
wx:rename-file (use rename-file)
wx:get-user-home and wx:get-home-dir (use expand-path with "~")
wx:execute and wx:shell (use system or process)
wx:find-first-file and wx:find-next-file (use get-directory-list)
wx:sleep (use sleep)
wx:sub-type? (use subclass?)
wx:to-lower (use char-upcase)
wx:to-upper (use char-downcase)
wx:is-wild? (use reg exps)
wx:match-wild? (use reg exps)
Version 0.41: April 15, 1996
Important language changes; see mzscheme/HISTORY
Fixed bug in wxCanvas drawing methods
Fixed wxCanvasDC and wxMemoryDC bugs in Xt version
Pasteboards fixed
AIX: two consecutive SIGDANGERs => exit(-1)
wxGetMultipleChoice supported
Version 0.40: March 24, 1996
Possible improvements to memory system
Some redundant event methods removed
Finally fixed Windows NT/95 Scheme threads
Stdout/stderr messages to a window instead of file for Windows/Mac+
Fixed misc. Xt problems, including show-n-hide on frame
Version 0.39: March 6, 1996
Fixed safety from Scheme on invalidated C++ objects (stack objs, too)
Fixed many bugs in Xt version
Upgraded to gc version 4.10
Reduced memory usage of buffer objects
Version 0.38: February 22, 1996
Xt port released
Part of standard system moved to DrScheme
See also mzscheme HISTORY and wxmedia README
Version 0.37: Not released
Version 0.36: January 18, 1996
Fixed bug in MzScheme's bignum multiplication
Version 0.35: January 17, 1996
X selection protocol supported. To get the old clipboard-style
mechanism, add this to your .mredrc:
(wx:media-set-x-selection-mode #f)
See also wxMediaEdit::SetPosition() in the wxMedia manual.
Version 0.34: December 30, 1995
Minor improvements to MzScheme and the standard system
Version 0.33: December 21, 1995
MzScheme language changes; see mzscheme/HISTORY
Old standard system no longer compatible
Project system improved
Many bugs fixed in the new standard system
Version 0.32: December 4, 1995
New standard system:
* The console I/O is completely different. It works more
like an Emacs shell. Use M-p and M-n to access previously
entered expressions. (read) will now read from the console.
* All mred:std-<x> variables have been eliminated. For each
mred:<x>%, there is now a procedure mred:make-<x>% that takes a
superclass and returns a new class.
* The frame and buffer hierarchies have changed a little.
* From a mred:edit% object, you can get to its canvas or frame.
* The menubar/menu system is completely revised. You don't have to
deal with menu ids much anymore. Menus and menu items can now be
dynamically added and removed.
* Keymap chaining works differently.
* The new Scheme project system is roughly in place. This will let you
develop Scheme programs by organizing Scheme files within a project.
Projects help manage loading program files into the
evaluator and uses Shriram's Zodiac/Aries packages to
provide debugging facilities. This will be improved in the near
future.
The old standard system is available in the "oldsys" directory.
Pretty printer handles loops and graphs
Very limited support for wxYield under XView - will be extended
Fixed some wxMedia bugs (see wxme/README)
Fixed some MzScheme bugs (see mzscheme/HISTORY)
Version 0.31: November 14, 1995
Fixed some wxMedia bugs (see wxme/README)
Fixed some MzScheme bugs (see mzscheme/HISTORY)
Parameterization for Macintosh
Verion 0.30: October 25, 1995
Added call-with-values and regexp to MzScheme
Unix stack-checking setup code fixed in MzScheme
wxMediaPasteboard implemented more
Scheme-C++ object link changed; use ptr in all C++ objects
Added tutorial section to "User Manual"
Version 0.29: October 18, 1995
Editor can save text preserving automatic CR
Bug fix in automatic line-wrapping
New font system can access arbitrary fonts
Multiple displays in Motif: wx:set-display and wx:get-display-name
MzScheme fix for forms such as (let ([x (let ...)]) ...)
Version 0.28: October 3, 1995
MzScheme bug fix: stack-checking on Unix
wxMedia fix: Insert(unsigned char, ...) instead of Insert(char, ...)
and proper use of `unsigned' in word-breaking array access
Version 0.27: September 29, 1995
Major MzScheme upgrade, including multiple inheritance
(See MzScheme HISTORY for details)
Win32: Allow deeper recursion by copying the stack
Win32: Allow breaking with Shift-Ctl-C
New font configuration system
Version 0.26: September 8, 1995
Very minor changes
Bug fix to MzScheme for Win32s
Version 0.25: September 7, 1995
Upgraded to wxWindows 1.63
Minor bug fixes
Version 0.24: September 1, 1995
Minor bug fixes
Version 0.23: August 23, 1995
Minor bug fixes
Editor can display images (types depend on wxWindow compile flags)
MzScheme correction: expand & expand-once
Version 0.22: August 17, 1995
Mostly MzScheme improvements
File-format bug fixed related to portability; To make files created
earlier portable, open and re-save them.
Version 0.21: August 8, 1995
Bug fixes
triggers, hash tables, and case-lambda added to MzScheme
MzScheme "sleeps" properly
Connected MrEd to wxWindow's layout constraint system
Version 0.20: July 26, 1995
MzScheme Bug fixes
Version 0.19: July 25, 1995
All "!"s removed from method names!!!!!
Full continuations and bignums added to MzScheme
Bug Fixes
Version 0.18: July 20, 1995
Win32s kinda supported
Bug fixes
Added (compile ...) to MzScheme
Added internal processes & threads to MzScheme
wxSnipData -> wxBufferData
Old process and system changed to process* and system*
Version 0.17: July 11, 1995
Bug fixes, especially Motif and memory bugs
Rewrote editor line-maintenance
Faster caret updating
Upgraded garbage collector
File format changed to accomodate nested buffers with
separate style lists
Standard system standardized
Code changes for compiling on MSWindows (almost works...)
Scheme mode
Version 0.16: June 16, 1995
Fixed define-struct bug
Version 0.15: June 15, 1995
Bug fixes, especially XView
make-input-port takes only 3 args; "unget" param dropped
on-local-char & on-local-event renamed to on-default-char
and on-default-event
name changes: to have "!" or not to have "!". See doc/names.diff
for a list of changed names
fonts configuarble through .Xdefaults; see MrEd.ad
Version 0.14: June 9, 1995
Bug fixes, including wxWindows widget table clash
Scheme mode works
error-handler changed to parameterizing function
Version 0.13: June 5, 1995
MzScheme replaced libscheme
ctl-c breaks Scheme evaluation in MrEd
libscheme/ changed to mzscheme/ - change your make.env!
Version 0.12: June 1, 1995
Bug fixes
Revised object system: requires (inherit ...) declarations
(pretty-print ...) installed
Version 0.11: May 19, 1995
Bug Fixes
Version 0.10: May 19, 1995
Bug fixes
(match ...) installed
Version 0.9: May 18, 1995
wxMediaPasteboard
Version 0.8: May 11, 1995
Bug fixes
Version 0.7: May 10, 1995
mred:default-<x> changed to mred:<x> in system
README in demo directory
Lots of bug fixes

409
src/mred/HISTORY Normal file
View File

@ -0,0 +1,409 @@
Version 51: ??, 1997
X Windows: window manager close-frame request is ignored
when a modal dialog is in control
Added security so that wx:snip% methods cannot be overridden
to crash MrEd
Fixed wx:canvas% scrolling on all platforms; the style flags
wx:const-hscroll and wx:const-vscroll must be used at
canvas-creation to set up for scrolling. Removed the
enable-scrolling method from wx:canvas%. Renamed the method
get-scroll-page-units to get-scroll-units. Added methods
get-scroll-pos, get-scroll-range, and get-scroll-page.
The wx:canvas% wx:const-backingstore and wx:const-retained
style flags have been removed.
Removed wx:key-event%'s position method and added get-x,
get-y, set-x, and set-y
Changed default pen in DC to width 0 instead of 1
Added get-max-view method to wx:media-admin%
Revised wx:media-buffer%'s cursor system for better
cooperation with embedded buffers; instead of handling
the cursor in on-default-event, added a method adjust-cursor
to buffers and snips, and replaced admin's set-cursor with
update-cursor
Added refresh-delayed? predicate to wx:media-buffer%, useful
for deciding whether a buffer (or one of its enclosing
buffers) is in an edit-sequence
Added a --pre flag for evaluating an expression in a
MzScheme-only namespace at startup. This flag is intended
for use with image dumps (see the MzScheme manual)
Removed wx:copy-file; MzScheme now has copy-file
Fixed wx:media-stream-in%'s get-string (it was adding an
extra nul character)
Removed error dialogs when wx:media-buffer%'s load-file or
save-file fails
Windows: fixed canvas mouse events; button-down event grabs
the mouse until the next button-up event
Windows: fixed initial setting of DC text mode: transparent
instead of opaque
X Windows: fixed wx:frame's iconize and iconized? methods,
ignoring the X idea of not de-iconifying windows that were
iconified by the user
Removed wx:exit
Version 50: August 26, 1997
Changed wx:dc%'s get-size method to return size of
destination area; old [documented] functionality
is available via max-x and max-y
Made button-click state visible for Xt on b&w displays
Fixed and normalized PostScript drawing
Removed wx:dc% methods: device-to-logical-x, etc.
Windows wx:display-size changed to return the size of the
screen not including the task bar
Windows: finally fixed scale for [non-PostScript] printing
Added wx:[un]register-collecting-blit
X Windows: Fixed use of colormap by loaded bitmap images
Added an optional argument to wx:media-buffer's print method
to supporting fitting to the destination page
X Windows: Saving as xbm works for bitmaps of any depth
MzScheme pathname expansion performed by all wx: toolbox
procedures that take a pathname
X Windows Xt: removed excessive borders on wx:canvas% objects
X Windows Xt: removed 2 pixel offset for a single auto-sized
child in a wx:frame% or wx:dialog-box%
Windows: Fixed scrollbars on editor buffers; they're always
shown now, but the editor never gets confused about the size
Fixed on-size, pre-on-char, and pre-on-event for wx:item%
subclasses
Fixed confusing argument type and number error messages
for overloaded methods of primitive classes
Version 49: May 31, 1997
Object system changes: see mzscheme/HISTORY for details
Fixed Mac event-handling and many other Mac things
Fixed garbage collection of hidden frames under Windows (!)
Panels, canvases, and controls that are both hidden and
inaccessible are now garbage-collected
Disabled controls are reliably grayed-out, including items
within a disabled panel
Instances of wx:pen%, wx:brush%, or wx:pen% that are
selected into a drawing context cannot be mutated
Immutability of objects obtained via wx:the-XXX-list is
enforced
Controls for Windows, Xt are created with the "System" family
rather than the "Default" family (using resources)
Single wx:bitmap% object can be used by multiple controls
and/or pens and/or brushes
Fixed Motif image-label radio button
wx:find-directory replaced with wx:find-path
All wx:dc% instances have a default font for drawing
wx:const-copy blit never uses the pen/background color;
new blit mode wx:const-colour uses current pen
X Windows: removed mapping of Mod3 to Alt (too confusing on
keyboards where NumLock is Mod3)
Fixed wx:timer% bug that caused autosaving to not work
Fixed eventspace bugs
Fixed .bmp reading when smaller-than-max colormap is provided
Fixed interlaced .gif reading for Windows and MacOS
Xt: fixed default height of wx:text% items
Xt: In a wx:mouse-event% instance, type wx:const-type-XXX-down
implies get-XXX-down => #t (formerly #f)
Removed wx:group-box% class; use a panel with a border, instead
Removed wx:tool-bar% class
wx:choice% get-columns and set-columns no longer supported
Added wx:gauge% methods: get-value and get-range
wx:media-pasteboard% bug fixes and improvements: raise, lower,
set-before, and set-after methods now work
wx:list-box% set-client-data and get-client-data work with
any Scheme data type
Windows and X Windows: Break key changed back to shift-ctl-c
instead of ctl-c (to avoid conflicts with Emacs-std keyboard
mappings)
Version 48: Skipped to avoid confusion with Scheme48
Version 47: January 11, 1997
WARNING: multiple inhertance is going away in 48
Added overwrite-styles? arg to wx:media-buffer%'s read-from-file,
and added get-/set-load-overwrites-styles methods
Modified wx:media-buffer%'s set-caret-owner to provide more
levels of focus control
Controls with bitmap labels work correctly, fixed crashing bugs,
some Mac controls do not display yet
wx:bitmap%'s load-file only allowed when the bitmap is not selected
into a wx:memory-dc% object or used by a control
Version 46: December 5, 1996
Fixed misc. Motif control-sizing problems
Mac & Xt: "&" stripped from control labels correctly
wx:yield takes an optional semaphore argument
Version 45: November 12, 1996
IMPORTANT: let-values is now analogous to let; the old
let-values is now let*-values
Added thread-savy parameterization system; namespace system changed
Added eventspaces
wx:server%, wx:client%, and wx:connection% are no longer supported
(Better TCP support is now built into MzScheme)
wx:the-snip-class-list was replaced by (wx:get-the-snip-class-list)
wx:the-buffer-data-class-list was replaced by (wx:get-the-buffer-data-class-list)
Added transparent text backing for editor text
Added wx:dc% try-colour method
wx:window% capture-mode, release-mouse, and make-modal no longer supported
Modal dialogs can be used instead of make-modal (modal is
specified through the constructor). There is currently no
replacement for capture-mouse and release-mouse, but a replacement is
likely to be in 46.
Xt and Mac: "&" stripped from control labels (matches Windows/Motif), sortof
Version 44: September 9, 1996
wx:play-sound added
Saving bitmaps fixed on all platforms; editor can now save
"inlined" images instead of only references to images
Hyper-text browser handles HTML files (w/o networking)
Fixed Mac control drawing and hiding
Fixed Xt menus (finally!)
Fixed menu item auto-check for popup menus
Fixed Motif canvas click event reporting (spurious drags)
See also mzscheme/HISTORY, wxme/README, and system/HISTORY
Upgraded to gc 11alpha3
Version 43: Re-released August 12, 1996
Under GNU LGPL license
Version 43: August 9, 1996
Major system overhaul (Robby Findler); see system/HISTORY
Windows stability greatly advanced
Windows and MacOS versions much more "Windows-like" and "Mac-like"
with standard menu shortcuts and better icons
MacOS and Windows use native print facilities
GIF images supported under Windows
wx:window set-client-size removed
wx:panel%'s get-cursor renamed to get-item-cursor; added set-item-cursor
Fixed cut-n-paste newlines under MacOS and Windows
Xt: panel with one item no longer auto-sizes the child
See also mzscheme/HISTORY
Version 42: June 8, 1996
Documentation translated to Scheme notation, corrected
Windows update bug fixed for embedded buffers
MacOS memory use greatly improved
Fixed annoying non-standard Windows beep
Non-matching cond or case expression raises and error
mred:platform and mred:window-system changed to wx:...
standard system uses functors (see MzScheme)
wx:canvas%::int-draw-line and wx:int-point% removed
wx:list%, wx:hash-table%, wx:string-list%, wx:path-list removed
wx:media-stream-in%::get removed for strings; use get-string
Redundant wx: functions removed:
wx:dir-exists? (use directory-exists?)
wx:file-exists? (use file-exists?)
wx:file-name-from-path (use file-name-from-path or split-path)
wx:path-only (use path-only or split-path)
wx:is-absolute-path? (use reletaive-path?)
wx:expand-path (use expand-path)
wx:get-working-directory (use current-directory)
wx:set-working-directory (use current-directory)
wx:mkdir (use make-directory)
wx:remove-file (use delete-file)
wx:rename-file (use rename-file)
wx:get-user-home and wx:get-home-dir (use expand-path with "~")
wx:execute and wx:shell (use system or process)
wx:find-first-file and wx:find-next-file (use get-directory-list)
wx:sleep (use sleep)
wx:sub-type? (use subclass?)
wx:to-lower (use char-upcase)
wx:to-upper (use char-downcase)
wx:is-wild? (use reg exps)
wx:match-wild? (use reg exps)
Version 0.41: April 15, 1996
Important language changes; see mzscheme/HISTORY
Fixed bug in wxCanvas drawing methods
Fixed wxCanvasDC and wxMemoryDC bugs in Xt version
Pasteboards fixed
AIX: two consecutive SIGDANGERs => exit(-1)
wxGetMultipleChoice supported
Version 0.40: March 24, 1996
Possible improvements to memory system
Some redundant event methods removed
Finally fixed Windows NT/95 Scheme threads
Stdout/stderr messages to a window instead of file for Windows/Mac+
Fixed misc. Xt problems, including show-n-hide on frame
Version 0.39: March 6, 1996
Fixed safety from Scheme on invalidated C++ objects (stack objs, too)
Fixed many bugs in Xt version
Upgraded to gc version 4.10
Reduced memory usage of buffer objects
Version 0.38: February 22, 1996
Xt port released
Part of standard system moved to DrScheme
See also mzscheme HISTORY and wxmedia README
Version 0.37: Not released
Version 0.36: January 18, 1996
Fixed bug in MzScheme's bignum multiplication
Version 0.35: January 17, 1996
X selection protocol supported. To get the old clipboard-style
mechanism, add this to your .mredrc:
(wx:media-set-x-selection-mode #f)
See also wxMediaEdit::SetPosition() in the wxMedia manual.
Version 0.34: December 30, 1995
Minor improvements to MzScheme and the standard system
Version 0.33: December 21, 1995
MzScheme language changes; see mzscheme/HISTORY
Old standard system no longer compatible
Project system improved
Many bugs fixed in the new standard system
Version 0.32: December 4, 1995
New standard system:
* The console I/O is completely different. It works more
like an Emacs shell. Use M-p and M-n to access previously
entered expressions. (read) will now read from the console.
* All mred:std-<x> variables have been eliminated. For each
mred:<x>%, there is now a procedure mred:make-<x>% that takes a
superclass and returns a new class.
* The frame and buffer hierarchies have changed a little.
* From a mred:edit% object, you can get to its canvas or frame.
* The menubar/menu system is completely revised. You don't have to
deal with menu ids much anymore. Menus and menu items can now be
dynamically added and removed.
* Keymap chaining works differently.
* The new Scheme project system is roughly in place. This will let you
develop Scheme programs by organizing Scheme files within a project.
Projects help manage loading program files into the
evaluator and uses Shriram's Zodiac/Aries packages to
provide debugging facilities. This will be improved in the near
future.
The old standard system is available in the "oldsys" directory.
Pretty printer handles loops and graphs
Very limited support for wxYield under XView - will be extended
Fixed some wxMedia bugs (see wxme/README)
Fixed some MzScheme bugs (see mzscheme/HISTORY)
Version 0.31: November 14, 1995
Fixed some wxMedia bugs (see wxme/README)
Fixed some MzScheme bugs (see mzscheme/HISTORY)
Parameterization for Macintosh
Verion 0.30: October 25, 1995
Added call-with-values and regexp to MzScheme
Unix stack-checking setup code fixed in MzScheme
wxMediaPasteboard implemented more
Scheme-C++ object link changed; use ptr in all C++ objects
Added tutorial section to "User Manual"
Version 0.29: October 18, 1995
Editor can save text preserving automatic CR
Bug fix in automatic line-wrapping
New font system can access arbitrary fonts
Multiple displays in Motif: wx:set-display and wx:get-display-name
MzScheme fix for forms such as (let ([x (let ...)]) ...)
Version 0.28: October 3, 1995
MzScheme bug fix: stack-checking on Unix
wxMedia fix: Insert(unsigned char, ...) instead of Insert(char, ...)
and proper use of `unsigned' in word-breaking array access
Version 0.27: September 29, 1995
Major MzScheme upgrade, including multiple inheritance
(See MzScheme HISTORY for details)
Win32: Allow deeper recursion by copying the stack
Win32: Allow breaking with Shift-Ctl-C
New font configuration system
Version 0.26: September 8, 1995
Very minor changes
Bug fix to MzScheme for Win32s
Version 0.25: September 7, 1995
Upgraded to wxWindows 1.63
Minor bug fixes
Version 0.24: September 1, 1995
Minor bug fixes
Version 0.23: August 23, 1995
Minor bug fixes
Editor can display images (types depend on wxWindow compile flags)
MzScheme correction: expand & expand-once
Version 0.22: August 17, 1995
Mostly MzScheme improvements
File-format bug fixed related to portability; To make files created
earlier portable, open and re-save them.
Version 0.21: August 8, 1995
Bug fixes
triggers, hash tables, and case-lambda added to MzScheme
MzScheme "sleeps" properly
Connected MrEd to wxWindow's layout constraint system
Version 0.20: July 26, 1995
MzScheme Bug fixes
Version 0.19: July 25, 1995
All "!"s removed from method names!!!!!
Full continuations and bignums added to MzScheme
Bug Fixes
Version 0.18: July 20, 1995
Win32s kinda supported
Bug fixes
Added (compile ...) to MzScheme
Added internal processes & threads to MzScheme
wxSnipData -> wxBufferData
Old process and system changed to process* and system*
Version 0.17: July 11, 1995
Bug fixes, especially Motif and memory bugs
Rewrote editor line-maintenance
Faster caret updating
Upgraded garbage collector
File format changed to accomodate nested buffers with
separate style lists
Standard system standardized
Code changes for compiling on MSWindows (almost works...)
Scheme mode
Version 0.16: June 16, 1995
Fixed define-struct bug
Version 0.15: June 15, 1995
Bug fixes, especially XView
make-input-port takes only 3 args; "unget" param dropped
on-local-char & on-local-event renamed to on-default-char
and on-default-event
name changes: to have "!" or not to have "!". See doc/names.diff
for a list of changed names
fonts configuarble through .Xdefaults; see MrEd.ad
Version 0.14: June 9, 1995
Bug fixes, including wxWindows widget table clash
Scheme mode works
error-handler changed to parameterizing function
Version 0.13: June 5, 1995
MzScheme replaced libscheme
ctl-c breaks Scheme evaluation in MrEd
libscheme/ changed to mzscheme/ - change your make.env!
Version 0.12: June 1, 1995
Bug fixes
Revised object system: requires (inherit ...) declarations
(pretty-print ...) installed
Version 0.11: May 19, 1995
Bug Fixes
Version 0.10: May 19, 1995
Bug fixes
(match ...) installed
Version 0.9: May 18, 1995
wxMediaPasteboard
Version 0.8: May 11, 1995
Bug fixes
Version 0.7: May 10, 1995
mred:default-<x> changed to mred:<x> in system
README in demo directory
Lots of bug fixes

View File

130
tests/mred/steps.txt Normal file
View File

@ -0,0 +1,130 @@
Instructions:
Initial Setup:
- Second menu is enabled "Apple"
Delete Apple
Menu Inserting & Deleting:
Add Apple - apple menu appears
Add Banana - banana menu appears
Delete Apple (from apple menu) - apple menu goes, banana menu still there
Delete Banana - back to starting point
Add Apple
Add Banana
Delete Banana - apple still there
Delete Apple
Add Apple
Add Coconut - coconut submenu appears
Delete Coconut (from sub-menu) - coconut submenu gone
Delete Apple
Add Coconut
Add Apple - apple menu appears with coconut already
Delete Apple
Delete Coconut
Add Apple - apple menu appears without coconut
Menu Enabling:
Disable Second - apple menu gray & unselectable
Enable Second - back to normal
Disable Second
Delete Apple (from tester menu)
Add Apple - NOT gray anymore
Item Enabling:
Disable Apple Once Item -> once item grayed & unselectable
Un-Disable Apple Once Item -> once item normal
Disable Apple Once Item
Delete Apple
Add Apple -> once item still gray
Un-Disable Apple Once Item
Delete Apple
Disable Apple Once Item
Add Apple -> once item gray again
Un-Disable Apple Once Item
Item Inserting & Deleting:
Append Donut - donut item added
Delete Once - once item disappears
Delete Apple
Add Apple - once item still gone
Append Donut - another donut
Delete Apple
Append Donut
Add Apple - three donuts total
Checkable Items & Insertions:
Test Apple Item -> "no"
Apple Checkable
Test Apple Item -> "yes"
Delete Apple
Test Apple Item -> "yes"
Apple Checkable
Test Apple Item -> "no"
Delete Apple
Test Apple Item -> "no"
More Checkable (Apple & Banana currently deleted):
Test Aeros -> "yes"
Test Bruin -> "no"
Test Capitols -> "no"
Check Astros -> nothing
Check Braves -> "Braves checked", braves checked, astros unchecked
Check Cardianls -> "Cardinals checked", cardinals checked, braves unchecked
Check Bruins -> "Boston checked", aeros unchecked, bruins checked
Test Aeros -> "no"
Test Bruin -> "yes"
Test Capitols -> "no"
Checkable via Menubar (Apple & Banana currently deleted):
Via Menubar
Test Aeros -> "no"
Test Bruin -> "yes"
Test Apple Item -> "no"
Check in Apple (Button)
Add Apple - checkable item *not* checked
Check in Apple (Button) - item checked
Test Apple Item -> "yes"
Delete Apple
Test Apple Item -> "no"
Add Apple
Apple | Checkable
Delete Apple
Via Menubar
Labels (Apple & Banana currently deleted):
Add Coconut - (coconut item needed for the rest)
Test Labels - "ok" in console
Find Labels - "ok" in console
Toggle Labels - "Tester" -> "Hi", "Add Apple" -> "Apple Adder", "Astros" -> "'Stros"
Add Apple - check that "Delete Apple" -> "Apple Deleter"
Delete Apple
Test Labels - "ok" in console
Find Labels - "ok" in console
Toggle Labels - original labels
Add Apple - check for original labels
Toggle Labels - "Delete Apple" -> "Apple Deleter"
Toggle Labels
Delete Apple
Via Menubar
Test Labels - "ok" in console
Find Labels - "ok" in console
Toggle Labels - "Add Apple" -> "Apple Adder", "Astros" -> "'Stros"
Test Labels - "ok" in console
Find Labels - "ok" in console
Toggle Labels - original labels
Add Apple
Test Labels - "ok" in console
Find Labels - "ok" in console
Via Menubar - off
Handling Bad Requests:
Test Bad Item -> #f
Test Other Bad Item -> #f
Bad Item Labels - "ok" in console
Via Menubar
Bad Item Labels - "ok" in console
Via Menubar
Bad Check - nothing
Bad Enable - nothing