original commit: 49956295b384ba589417806cfc57d0889f54a76b
This commit is contained in:
Robby Findler 1998-12-08 01:03:06 +00:00
parent a7b8ae36ff
commit 402bc420f8
4 changed files with 35 additions and 17 deletions

View File

@ -10,6 +10,7 @@
[exit : framework:exit^] [exit : framework:exit^]
[finder : framework:finder^] [finder : framework:finder^]
[keymap : framework:keymap^] [keymap : framework:keymap^]
[text : framework:text^]
[mzlib:function : mzlib:function^]) [mzlib:function : mzlib:function^])
(rename [-editor<%> editor<%>] (rename [-editor<%> editor<%>]
@ -79,6 +80,7 @@
get-canvas% get-canvas%
get-editor% get-editor%
get-editor<%>
make-editor make-editor
save-as save-as
get-canvas get-canvas
@ -132,7 +134,17 @@
(public (public
[get-canvas% (lambda () editor-canvas%)] [get-canvas% (lambda () editor-canvas%)]
[get-editor% (lambda () (error 'editor-frame% "no editor% class specified"))] [get-editor% (lambda () (error 'editor-frame% "no editor% class specified"))]
[make-editor (lambda () (make-object (get-editor%)))]) [get-editor<%> (lambda () editor<%>)]
[make-editor (lambda ()
(let ([% (get-editor%)]
[<%> (get-editor<%>)])
(unless (implementation? % <%>)
(let ([name (inferred-name this)])
(error (or name 'frame:editor%)
"result of get-editor% method must match ~e class; got: ~e"
% <%>)))
(make-object %)))])
(public (public
[save-as [save-as
@ -267,6 +279,7 @@
(define text-mixin (define text-mixin
(mixin (-editor<%>) (-text<%>) args (mixin (-editor<%>) (-text<%>) args
(override (override
[get-editor<%> (lambda () text<%>)]
[get-editor% (lambda () text%)]) [get-editor% (lambda () text%)])
(sequence (apply super-init args)))) (sequence (apply super-init args))))
@ -274,6 +287,7 @@
(define pasteboard-mixin (define pasteboard-mixin
(mixin (-editor<%>) (-pasteboard<%>) args (mixin (-editor<%>) (-pasteboard<%>) args
(override (override
[get-editor<%> (lambda () pasteboard<%>)]
[get-editor% (lambda () pasteboard%)]) [get-editor% (lambda () pasteboard%)])
(sequence (apply super-init args)))) (sequence (apply super-init args))))
@ -436,6 +450,7 @@
(private (private
[super-root 'unitiaialized-super-root]) [super-root 'unitiaialized-super-root])
(override (override
[get-editor<%> (lambda () text:searching<%>)]
[edit-menu:find (lambda (menu evt) (search))]) [edit-menu:find (lambda (menu evt) (search))])
(override (override
[make-root-area-container [make-root-area-container
@ -689,6 +704,9 @@
(set! rest-panel r-root) (set! rest-panel r-root)
r-root))]) r-root))])
(override
[get-editor<%> (lambda () text:info<%>)])
(public (public
[determine-width [determine-width
(let ([magic-space 25]) (let ([magic-space 25])

View File

@ -453,18 +453,18 @@
[after-set-position [after-set-position
(lambda () (lambda ()
(super-after-set-position) (super-after-set-position)
(enqueue-for-frame 'edit-position-changed (enqueue-for-frame 'editor-position-changed
'framework:edit-position-changed))] 'framework:editor-position-changed))]
[after-insert [after-insert
(lambda (start len) (lambda (start len)
(super-after-insert start len) (super-after-insert start len)
(enqueue-for-frame 'edit-position-changed (enqueue-for-frame 'editor-position-changed
'framework:edit-position-changed))] 'framework:editor-position-changed))]
[after-delete [after-delete
(lambda (start len) (lambda (start len)
(super-after-delete start len) (super-after-delete start len)
(enqueue-for-frame 'edit-position-changed (enqueue-for-frame 'editor-position-changed
'framework:edit-position-changed))]) 'framework:editor-position-changed))])
(sequence (sequence
(apply super-init args)))) (apply super-init args))))

View File

@ -21,6 +21,7 @@
pred pred
'(parameterize ([current-namespace (make-namespace 'mred)]) '(parameterize ([current-namespace (make-namespace 'mred)])
(require-library "tests.ss" "framework") (require-library "tests.ss" "framework")
(require-library "mred-interfaces.ss" "framework")
(eval (eval
'(invoke-open-unit/sig '(invoke-open-unit/sig
(compound-unit/sig (compound-unit/sig
@ -40,6 +41,13 @@
(global-defined-value 'test:run-one) (global-defined-value 'test:run-one)
(global-defined-value 'test:button-push) (global-defined-value 'test:button-push)
(void))) (void)))
(test
'mred-interfacess.ss
pred
'(parameterize ([current-namespace (make-namespace 'mred)])
(require-library "mred-interfacess.ss" "framework")
(global-defined-value 'mred-interfaces^)
(void)))
(test (test
'mred-interfaces.ss 'mred-interfaces.ss
pred pred
@ -66,6 +74,7 @@
pred pred
'(parameterize ([current-namespace (make-namespace 'mred)]) '(parameterize ([current-namespace (make-namespace 'mred)])
(require-library "frameworks.ss" "framework") (require-library "frameworks.ss" "framework")
(require-library "mred-interfaces.ss" "framework")
(eval (eval
'(invoke-open-unit/sig '(invoke-open-unit/sig
(compound-unit/sig (compound-unit/sig

View File

@ -8,16 +8,7 @@
(override (override
[get-editor% (lambda () ,class)]))] [get-editor% (lambda () ,class)]))]
[f (make-object % "test text")]) [f (make-object % "test text")])
(send f show #t)))
(let loop ([f f][l " "])
(printf "~a~a ~a~n" l f (send f get-label))
(when (is-a? f area-container<%>)
(for-each (lambda (c)
(loop c (string-append " " l)))
(send f get-children))))
(send f show #t)
(sleep/yield 1)
(printf "focus: ~a~n" (get-top-level-focus-window))))
(wait-for-frame "test text") (wait-for-frame "test text")
(send-sexp-to-mred `(test:keystroke #\a)) (send-sexp-to-mred `(test:keystroke #\a))
(wait-for `(string=? "a" (send (send (get-top-level-focus-window) get-editor) get-text))) (wait-for `(string=? "a" (send (send (get-top-level-focus-window) get-editor) get-text)))