...
original commit: ad23bf94bb5b9e0c782d1e064f798d59d3af85cb
This commit is contained in:
parent
80f948e9a6
commit
bc42f68f99
|
@ -209,10 +209,12 @@
|
|||
'framework:auto-set-wrap?)))
|
||||
(private
|
||||
[remove-callback
|
||||
(preferences:add-callback
|
||||
'framework:auto-set-wrap?
|
||||
(lambda (p v)
|
||||
(auto-wrap v)))])))
|
||||
(preferences:add-callback
|
||||
'framework:auto-set-wrap?
|
||||
(let ([autowrap-mixin-pref-callback
|
||||
(lambda (p v)
|
||||
(auto-wrap v))])
|
||||
autowrap-mixin-pref-callback))])))
|
||||
|
||||
(define file<%> (interface (-keymap<%>)))
|
||||
(define file-mixin
|
||||
|
|
|
@ -1016,12 +1016,15 @@
|
|||
(if v
|
||||
(list rest-panel outer-info-panel)
|
||||
(list rest-panel))))))])
|
||||
(private
|
||||
[memory-cleanup void]) ;; only for PLTers; used with memory-text
|
||||
(override
|
||||
[on-close
|
||||
(lambda ()
|
||||
(super-on-close)
|
||||
(unregister-collecting-blit gc-canvas)
|
||||
(close-panel-callback))])
|
||||
(close-panel-callback)
|
||||
(memory-cleanup))])
|
||||
|
||||
(public
|
||||
[lock-status-changed
|
||||
|
@ -1083,6 +1086,10 @@
|
|||
[ec (make-object editor-canvas% panel memory-text '(no-hscroll no-vscroll))])
|
||||
(determine-width "000000000" ec memory-text)
|
||||
(update-text)
|
||||
(set! memory-cleanup
|
||||
(lambda ()
|
||||
(send memory-text remove-canvas ec)
|
||||
(send ec set-editor #f)))
|
||||
(send panel stretchable-width #f))))
|
||||
(private
|
||||
[lock-message (make-object message%
|
||||
|
|
|
@ -14,11 +14,15 @@
|
|||
[(windows) "mred.pre"]
|
||||
[else ".mred.prefs"])))
|
||||
|
||||
(define-struct callbacks-ht (ht))
|
||||
|
||||
(define preferences (make-hash-table))
|
||||
(define marshall-unmarshall (make-hash-table))
|
||||
(define callbacks (make-hash-table))
|
||||
(define callbacks (make-callbacks-ht (make-hash-table)))
|
||||
(define defaults (make-hash-table))
|
||||
|
||||
(printf "hash-tables: ~s~n" (list preferences marshall-unmarshall (callbacks-ht-ht callbacks) defaults))
|
||||
|
||||
(define-struct un/marshall (marshall unmarshall))
|
||||
(define-struct marshalled (data))
|
||||
(define-struct pref (value))
|
||||
|
@ -59,19 +63,26 @@
|
|||
|
||||
(define get-callbacks
|
||||
(lambda (p)
|
||||
(hash-table-get callbacks
|
||||
(hash-table-get (callbacks-ht-ht callbacks)
|
||||
p
|
||||
(lambda () null))))
|
||||
|
||||
(define add-callback
|
||||
(lambda (p callback)
|
||||
(hash-table-put! callbacks p (append (get-callbacks p) (list callback)))
|
||||
(printf "added callback (~s) for ~s~n" callback p)
|
||||
(hash-table-put! (callbacks-ht-ht callbacks) p (append (get-callbacks p) (list callback)))
|
||||
(lambda ()
|
||||
(hash-table-put!
|
||||
callbacks p
|
||||
(mzlib:function:remove callback
|
||||
(get-callbacks p)
|
||||
eq?)))))
|
||||
(callbacks-ht-ht callbacks)
|
||||
p
|
||||
(let loop ([callbacks (get-callbacks p)])
|
||||
(cond
|
||||
[(null? callbacks) null]
|
||||
[else (if (eq? (car callbacks) callback)
|
||||
(begin
|
||||
(printf "removed callback (~s) for ~s~n" callback p)
|
||||
(loop (cdr callbacks)))
|
||||
(cons (car callbacks) (loop (cdr callbacks))))]))))))
|
||||
|
||||
(define check-callbacks
|
||||
(lambda (p value)
|
||||
|
|
Loading…
Reference in New Issue
Block a user