svn: r10199
This commit is contained in:
Robby Findler 2008-06-09 22:44:40 +00:00
parent dc47e25c44
commit 9120268b36
2 changed files with 36 additions and 6 deletions

View File

@ -645,12 +645,41 @@ profile todo:
(values text (values text
(λ () (send text on-close))) (λ () (send text on-close)))
(values #f (λ () (void)))))] (values #f (λ () (void)))))]
[(path? file)
(let ([file (with-handlers ((exn:fail? (λ (x) #f)))
(normal-case-path (normalize-path file)))])
(if file
(cond
[(send (group:get-the-frame-group)
locate-file
file)
=>
(λ (frame)
(cond
[(is-a? frame drscheme:unit:frame%)
(let loop ([tabs (send frame get-tabs)])
(cond
[(null? tabs) (values #f void)]
[else
(let* ([tab (car tabs)]
[defs (send tab get-defs)])
(if (with-handlers ((exn:fail? (λ (x) #f)))
(equal? (normalize-path (normal-case-path (send defs get-filename)))
file))
(values defs void)
(loop (cdr tabs))))]))]
[(is-a? frame frame:editor<%>)
(values (send frame get-editor) void)]
[else (values #f void)]))]
[(path? file) [(path? file)
(let ([text (new text:basic%)]) (let ([text (new text:basic%)])
(if (send text load-file file) (if (send text load-file file)
(values text (values text
(λ () (send text on-close))) (λ () (send text on-close)))
(values #f (λ () (void)))))] (values #f (λ () (void)))))]
[else
(values #f void)])
(values #f void)))]
[(is-a? file editor<%>) [(is-a? file editor<%>)
(values file void)] (values file void)]
[else (error 'insert-context "unknown file spec ~e" file)])]) [else (error 'insert-context "unknown file spec ~e" file)])])

View File

@ -1173,7 +1173,8 @@ module browser threading seems wrong.
ensure-defs-shown ensure-defs-shown
get-language-menu get-language-menu
register-toolbar-button)) register-toolbar-button
get-tabs))
(define frame-mixin (define frame-mixin
(mixin (drscheme:frame:<%> frame:searchable-text<%> frame:delegate<%> frame:open-here<%>) (mixin (drscheme:frame:<%> frame:searchable-text<%> frame:delegate<%> frame:open-here<%>)