Macro stepper: added properties display code (but disabled)
svn: r5668 original commit: 516257199464ee7cc7e811afc5fa26befe38ce1f
This commit is contained in:
parent
fc798ea166
commit
41538c81f5
|
@ -3,7 +3,9 @@
|
||||||
(require "interfaces.ss"
|
(require "interfaces.ss"
|
||||||
"util.ss"
|
"util.ss"
|
||||||
(lib "class.ss")
|
(lib "class.ss")
|
||||||
(lib "mred.ss" "mred"))
|
(lib "mred.ss" "mred")
|
||||||
|
(lib "framework.ss" "framework")
|
||||||
|
(lib "interactive-value-port.ss" "mrlib"))
|
||||||
(provide properties-view%
|
(provide properties-view%
|
||||||
properties-snip%)
|
properties-snip%)
|
||||||
|
|
||||||
|
@ -54,7 +56,7 @@
|
||||||
(else (error 'properties-view%:refresh "internal error: no such mode: ~s" mode))))
|
(else (error 'properties-view%:refresh "internal error: no such mode: ~s" mode))))
|
||||||
|
|
||||||
;; text : text%
|
;; text : text%
|
||||||
(field (text (new text%)))
|
(field (text (new text%))) ;; text:wide-snip%)))
|
||||||
(field (pdisplayer (new properties-displayer% (text text))))
|
(field (pdisplayer (new properties-displayer% (text text))))
|
||||||
|
|
||||||
(send text set-styles-sticky #f)
|
(send text set-styles-sticky #f)
|
||||||
|
@ -118,6 +120,7 @@
|
||||||
(lambda (tp e)
|
(lambda (tp e)
|
||||||
(set-mode
|
(set-mode
|
||||||
(cdr (list-ref tab-choices (send tp get-selection))))))))
|
(cdr (list-ref tab-choices (send tp get-selection))))))))
|
||||||
|
;; canvas:wide-?%
|
||||||
(define ecanvas (new editor-canvas% (editor text) (parent tab-panel)))))
|
(define ecanvas (new editor-canvas% (editor text) (parent tab-panel)))))
|
||||||
|
|
||||||
;; properties-displayer%
|
;; properties-displayer%
|
||||||
|
@ -203,7 +206,7 @@
|
||||||
(when (null? keys)
|
(when (null? keys)
|
||||||
(display "No additional properties available.\n" n/a-sd))
|
(display "No additional properties available.\n" n/a-sd))
|
||||||
(when (pair? keys)
|
(when (pair? keys)
|
||||||
(for-each (lambda (k) (display-subkv k (syntax-property stx k)))
|
(for-each (lambda (k) (display-subkv/value k (syntax-property stx k)))
|
||||||
keys))))
|
keys))))
|
||||||
|
|
||||||
;; display-kv : any any -> void
|
;; display-kv : any any -> void
|
||||||
|
@ -216,6 +219,23 @@
|
||||||
(display (format "~a: " k) sub-key-sd)
|
(display (format "~a: " k) sub-key-sd)
|
||||||
(display (format "~a~n" v) #f))
|
(display (format "~a~n" v) #f))
|
||||||
|
|
||||||
|
(define/public (display-subkv/value k v)
|
||||||
|
(display-subkv k v)
|
||||||
|
#;
|
||||||
|
(begin
|
||||||
|
(display (format "~a:~n" k) sub-key-sd)
|
||||||
|
(let* ([value-text (new text:standard-style-list% (auto-wrap #t))]
|
||||||
|
[value-snip (new editor-snip% (editor value-text))]
|
||||||
|
[value-port (make-text-port value-text)])
|
||||||
|
(set-interactive-write-handler value-port)
|
||||||
|
(set-interactive-print-handler value-port)
|
||||||
|
(set-interactive-display-handler value-port)
|
||||||
|
(write v value-port)
|
||||||
|
(send value-text lock #t)
|
||||||
|
(send text insert value-snip)
|
||||||
|
(send text insert "\n")
|
||||||
|
#;(send ecanvas add-wide-snip value-snip))))
|
||||||
|
|
||||||
;; display : string style-delta -> void
|
;; display : string style-delta -> void
|
||||||
(define/private (display item sd)
|
(define/private (display item sd)
|
||||||
(let ([p0 (send text last-position)])
|
(let ([p0 (send text last-position)])
|
||||||
|
@ -247,6 +267,20 @@
|
||||||
'editor]
|
'editor]
|
||||||
[else s]))
|
[else s]))
|
||||||
|
|
||||||
|
;; make-text-port : text -> port
|
||||||
|
;; builds a port from a text object.
|
||||||
|
(define (make-text-port text)
|
||||||
|
(make-output-port #f
|
||||||
|
always-evt
|
||||||
|
(lambda (s start end flush? enable-break?)
|
||||||
|
(send text insert
|
||||||
|
(bytes->string/utf-8 s #f start end))
|
||||||
|
(- end start))
|
||||||
|
void
|
||||||
|
(lambda (special buffer? enable-break?)
|
||||||
|
(send text insert special)
|
||||||
|
#t)))
|
||||||
|
|
||||||
;; Styles
|
;; Styles
|
||||||
|
|
||||||
(define key-sd
|
(define key-sd
|
||||||
|
|
Loading…
Reference in New Issue
Block a user