replace the line number widget in drracket with the new mixin from the framework

This commit is contained in:
Jon Rafkind 2010-11-01 22:05:03 -06:00
parent 32bd5c9f5f
commit 4f3e87d42a
2 changed files with 23 additions and 11 deletions

View File

@ -448,6 +448,7 @@ module browser threading seems wrong.
definitions-text%)))
;; links two editor's together so they scroll in tandem
#;
(define (linked-scroller %)
(class %
(super-new)
@ -532,14 +533,18 @@ module browser threading seems wrong.
))
;; an editor that does not respond to key presses
#;
(define (uneditable %)
(class %
(super-new)
(define/override (on-char . stuff) (void))))
(define (show-line-numbers?)
(preferences:get 'drracket:show-line-numbers?))
(define (make-definitions-text%)
(let ([definitions-super%
(linked-scroller
(text:line-numbers-mixin
(text:first-line-mixin
(drracket:module-language:module-language-put-file-mixin
(scheme:text-mixin
@ -902,7 +907,7 @@ module browser threading seems wrong.
(define error-arrows #f)
(super-new)
(super-new [show-line-numbers? (show-line-numbers?)])
;; insert the default-text
(queue-callback (lambda () (insert-auto-text)))
@ -1448,11 +1453,11 @@ module browser threading seems wrong.
(λ (l) (remq execute-warning-panel l)))
(send execute-warning-canvas set-message #f))])))
(define (show-line-numbers?)
(preferences:get 'drracket:show-line-numbers?))
(define/public (show-line-numbers! show)
(re-initialize-definitions-canvas show))
(for ([tab tabs])
(define text (send tab get-defs))
(send text show-line-numbers! show))
(send definitions-canvas refresh))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
@ -2772,7 +2777,11 @@ module browser threading seems wrong.
(initialize-definitions-canvas)
definitions-canvas)
(define (create-definitions-canvas line-numbers?)
(define (create-definitions-canvas)
(new (drracket:get/extend:get-definitions-canvas)
[parent resizable-panel]
[editor definitions-text])
#;
(define (with-line-numbers)
(define line-numbers-text (new (linked-scroller (uneditable scheme:text%))
[line-numbers? #t]))
@ -2788,15 +2797,18 @@ module browser threading seems wrong.
(new (drracket:get/extend:get-definitions-canvas)
[parent shared-pane]
[editor definitions-text]))
#;
(define (without-line-numbers)
(send definitions-text link-to! #f)
(new (drracket:get/extend:get-definitions-canvas)
[parent resizable-panel]
[editor definitions-text]))
#;
(if line-numbers?
(with-line-numbers)
(without-line-numbers)))
#;
(define/private (re-initialize-definitions-canvas show)
(begin-container-sequence)
(set! definitions-canvas (create-definitions-canvas show))
@ -2807,8 +2819,7 @@ module browser threading seems wrong.
(define/private (initialize-definitions-canvas)
(unless definitions-canvas
(set! definitions-canvas (create-definitions-canvas
(show-line-numbers?)))))
(set! definitions-canvas (create-definitions-canvas))))
(define/override (get-delegated-text) definitions-text)
(define/override (get-open-here-editor) definitions-text)

View File

@ -3714,7 +3714,7 @@ designates the character that triggers autocompletion
line-end-position)
(define line-numbers-color "black")
(define show-line-numbers? #t)
(init-field [show-line-numbers? #t])
(define old-origin-x 0)
(define old-origin-y 0)
(define cached-snips (list))
@ -3845,7 +3845,8 @@ designates the character that triggers autocompletion
;; this isn't quite incremental but its better than recalculating
;; on every redraw
(define/augment (on-insert start length)
(set! need-to-recalculate-snips #t))
(set! need-to-recalculate-snips #t)
(inner (void) on-insert start length))
(define (get-snip-heights dc)
(when need-to-recalculate-snips