Font size changes; prefs setting overrides default

svn: r4308
This commit is contained in:
Ryan Culpepper 2006-09-11 13:47:27 +00:00
parent dbc8a7debf
commit ba5c8d5b07
2 changed files with 27 additions and 12 deletions

View File

@ -9,7 +9,8 @@
"interfaces.ss"
"util.ss")
(provide typesetter-for-text%)
(provide typesetter-for-text%
code-style)
;; typesetter-for-text%
(define typesetter-for-text%
@ -34,13 +35,6 @@
(define output-port (make-text-port text end-anchor))
(define base-style
(send (send text get-style-list) find-named-style "Standard")
#;(let ([sd (make-object style-delta% 'change-family 'modern)])
(when (current-syntax-font-size)
(send sd set-delta 'change-size (current-syntax-font-size)))
sd))
(define/private (get-start-position)
(send text get-snip-position start-anchor))
@ -70,7 +64,7 @@
(let ([end (get-end-position)])
(send text delete (sub1 end) end))
(send text change-style
base-style
(code-style text)
(get-start-position)
(get-end-position))
(send colorer apply-styles)
@ -104,6 +98,17 @@
(send text get-snip-position end-anchor))
#t)))
;; code-style : text<%> -> style<%>
(define (code-style text)
(let* ([style-list (send text get-style-list)]
[style (send style-list find-named-style "Standard")]
[font-size (current-syntax-font-size)])
(if font-size
(send style-list find-or-create-style
style
(make-object style-delta% 'change-size font-size))
style)))
(define anchor-snip%
(class snip%
(define/override (copy)

View File

@ -36,6 +36,17 @@
(new syntax-controller%
(properties-controller this)))
;; FIXME: Why doesn't this work?
#;
(when (current-syntax-font-size)
(let* ([style-list (send -text get-style-list)]
[standard (send style-list find-named-style "Standard")])
(send style-list replace-named-style "Standard"
(send style-list find-or-create-style
standard
(make-object style-delta% 'change-size
(current-syntax-font-size))))))
(send -text lock #t)
(send -split-panel set-percentages
(let ([pp (pref:props-percentage)]) (list (- 1 pp) pp)))
@ -125,9 +136,8 @@
(send new-colorer highlight-syntaxes hi-stxs hi-color)))))))
(define/private (calculate-columns)
(define style-list (send -text get-style-list))
(define standard (send style-list find-named-style "Standard"))
(define char-width (send standard get-text-width (send -ecanvas get-dc)))
(define style (code-style -text))
(define char-width (send style get-text-width (send -ecanvas get-dc)))
(define-values (canvas-w canvas-h) (send -ecanvas get-client-size))
(sub1 (inexact->exact (floor (/ canvas-w char-width)))))