attach mrpict.ss instead of loading it in the user's space
svn: r3926
This commit is contained in:
parent
13e27951a6
commit
386b9c06a9
|
@ -655,27 +655,20 @@ pict snip :
|
|||
;;
|
||||
|
||||
(define system-eventspace (current-eventspace))
|
||||
|
||||
(define (ss-dynamic-require lib id)
|
||||
(parameterize ([current-code-inspector orig-inspector]
|
||||
[current-library-collection-paths orig-lcp])
|
||||
(dynamic-require lib id)))
|
||||
|
||||
;; send-over : any syntax -> void
|
||||
;; thread: (any) user's thread
|
||||
(define (send-over v stx)
|
||||
(let ([rep (drscheme:rep:current-rep)])
|
||||
(when rep
|
||||
(let ([pict? (ss-dynamic-require '(lib "mrpict.ss" "texpict") 'pict?)])
|
||||
(when (pict? v)
|
||||
(let* ([make-pict-drawer (ss-dynamic-require '(lib "mrpict.ss" "texpict") 'make-pict-drawer)]
|
||||
[width ((ss-dynamic-require '(lib "mrpict.ss" "texpict") 'pict-width) v)]
|
||||
[height ((ss-dynamic-require '(lib "mrpict.ss" "texpict") 'pict-height) v)]
|
||||
[pict-drawer (make-pict-drawer v)])
|
||||
(parameterize ([current-eventspace system-eventspace])
|
||||
(queue-callback
|
||||
(lambda ()
|
||||
(add-pict-drawer stx v pict-drawer width height))))))))))
|
||||
(when (pict? v)
|
||||
(let ([pict-drawer (make-pict-drawer v)]
|
||||
[width (pict-width v)]
|
||||
[height (pict-height v)])
|
||||
(parameterize ([current-eventspace system-eventspace])
|
||||
(queue-callback
|
||||
(lambda ()
|
||||
(add-pict-drawer stx v pict-drawer width height)))))))))
|
||||
|
||||
;; add-pict-drawer : syntax pict-drawer number number -> void
|
||||
;; thread: system eventspace
|
||||
|
@ -891,11 +884,16 @@ pict snip :
|
|||
(drscheme:language-configuration:add-language
|
||||
(new slideshow-language%)))
|
||||
|
||||
(define orig-namespace (current-namespace))
|
||||
|
||||
(drscheme:language:add-snip-value
|
||||
(lambda (x) ((ss-dynamic-require '(lib "mrpict.ss" "texpict") 'pict?) x))
|
||||
(lambda (pict) (new (ss-dynamic-require '(lib "pict-value-snip.ss" "texpict") 'pict-value-snip%) (pict pict))))
|
||||
|
||||
;; Convert to print?
|
||||
(lambda (x) (pict? x))
|
||||
;; Converter:
|
||||
(lambda (pict) (new pict-value-snip% (pict pict)))
|
||||
;; Namespace setup:
|
||||
(lambda ()
|
||||
(namespace-attach-module orig-namespace '(lib "mrpict.ss" "texpict"))))
|
||||
|
||||
(define lib-pict-snipclass (make-object lib-pict-snipclass%))
|
||||
(send lib-pict-snipclass set-version 2)
|
||||
|
|
Loading…
Reference in New Issue
Block a user