fix the "Show Line Numbers" menu item so its label changes

when the preference changes

closes PR 12459
This commit is contained in:
Robby Findler 2011-12-25 13:37:02 -06:00
parent 188f868a28
commit 9bef0204bb

View File

@ -1388,12 +1388,19 @@ module browser threading seems wrong.
;; so it stays alive as long ;; so it stays alive as long
;; as the frame stays alive ;; as the frame stays alive
(define show-line-numbers-pref-fn (define show-line-numbers-pref-fn
(let ([fn (lambda (pref value) (show-line-numbers! value))]) (let ([fn (lambda (pref value)
(when show-line-numbers-menu-item
(send show-line-numbers-menu-item set-label
(if value
(string-constant hide-line-numbers/menu)
(string-constant show-line-numbers/menu))))
(show-line-numbers! value))])
(preferences:add-callback (preferences:add-callback
'drracket:show-line-numbers? 'drracket:show-line-numbers?
fn fn
#t) #t)
fn)) fn))
(define show-line-numbers-menu-item #f)
(define/override (add-line-number-menu-items menu) (define/override (add-line-number-menu-items menu)
(define on? (preferences:get 'drracket:show-line-numbers?)) (define on? (preferences:get 'drracket:show-line-numbers?))
@ -3978,19 +3985,16 @@ module browser threading seems wrong.
has-editor-on-demand) has-editor-on-demand)
(register-capability-menu-item 'drscheme:special:insert-lambda insert-menu)) (register-capability-menu-item 'drscheme:special:insert-lambda insert-menu))
(new menu:can-restore-menu-item% (set! show-line-numbers-menu-item
[label (if (show-line-numbers?) (new menu:can-restore-menu-item%
(string-constant hide-line-numbers/menu) [label (if (show-line-numbers?)
(string-constant show-line-numbers/menu))] (string-constant hide-line-numbers/menu)
[parent (get-show-menu)] (string-constant show-line-numbers/menu))]
[callback (lambda (self event) [parent (get-show-menu)]
(define value (preferences:get 'drracket:show-line-numbers?)) [callback (lambda (self event)
(send self set-label (define value (preferences:get 'drracket:show-line-numbers?))
(if value (preferences:set 'drracket:show-line-numbers? (not value))
(string-constant show-line-numbers/menu) (show-line-numbers! (not value)))]))
(string-constant hide-line-numbers/menu)))
(preferences:set 'drracket:show-line-numbers? (not value))
(show-line-numbers! (not value)))])
(make-object separator-menu-item% (get-show-menu)) (make-object separator-menu-item% (get-show-menu))