add some keymap:call/text-keymap-initializer calls
closes PR 14013
This commit is contained in:
parent
d5a798c2a9
commit
10fe09ad8d
|
@ -385,19 +385,23 @@
|
|||
(new horizontal-panel% [parent dialog]
|
||||
[stretchable-height #f] [alignment '(right center)]))
|
||||
(define file-text-field
|
||||
(new text-field% [parent file-panel]
|
||||
[callback void] [min-width 300] [stretchable-width #t]
|
||||
[init-value (caddr pref)]
|
||||
[label (string-constant install-plt-filename)]))
|
||||
(keymap:call/text-keymap-initializer
|
||||
(λ ()
|
||||
(new text-field% [parent file-panel]
|
||||
[callback void] [min-width 300] [stretchable-width #t]
|
||||
[init-value (caddr pref)]
|
||||
[label (string-constant install-plt-filename)]))))
|
||||
(define file-button
|
||||
(new button% [parent file-panel]
|
||||
[callback (λ (x y) (browse))]
|
||||
[label (string-constant browse...)]))
|
||||
(define url-text-field
|
||||
(new text-field% [parent url-panel]
|
||||
[min-width 300] [stretchable-width #t] [callback void]
|
||||
[init-value (cadr pref)]
|
||||
[label (string-constant install-plt-url)]))
|
||||
(keymap:call/text-keymap-initializer
|
||||
(λ ()
|
||||
(new text-field% [parent url-panel]
|
||||
[min-width 300] [stretchable-width #t] [callback void]
|
||||
[init-value (cadr pref)]
|
||||
[label (string-constant install-plt-url)]))))
|
||||
(define-values (ok-button cancel-button)
|
||||
(gui-utils:ok/cancel-buttons
|
||||
button-panel
|
||||
|
@ -551,10 +555,13 @@
|
|||
(update-bindings))
|
||||
|
||||
(define bp (make-object horizontal-panel% this))
|
||||
(define search-field (new text-field%
|
||||
[parent this]
|
||||
[label (string-constant mfs-search-string)]
|
||||
[callback (λ (a b) (update-bindings))]))
|
||||
(define search-field
|
||||
(keymap:call/text-keymap-initializer
|
||||
(λ ()
|
||||
(new text-field%
|
||||
[parent this]
|
||||
[label (string-constant mfs-search-string)]
|
||||
[callback (λ (a b) (update-bindings))]))))
|
||||
(define b-name (new button%
|
||||
[label (string-constant keybindings-sort-by-name)]
|
||||
[parent bp]
|
||||
|
|
|
@ -334,66 +334,72 @@
|
|||
; ;;;;
|
||||
|
||||
(define (get-fraction-from-user parent)
|
||||
(let* ([dlg (make-object dialog% (string-constant enter-fraction))]
|
||||
[hp (make-object horizontal-panel% dlg)]
|
||||
[_1 (make-object message% (string-constant whole-part) hp)]
|
||||
[whole (make-object text-field% #f hp void)]
|
||||
[vp (make-object vertical-panel% hp)]
|
||||
[hp2 (make-object horizontal-panel% vp)]
|
||||
[num (make-object text-field% #f hp2 void)]
|
||||
[num-m (make-object message% (string-constant numerator) hp2)]
|
||||
[hp3 (make-object horizontal-panel% vp)]
|
||||
[den (make-object text-field% #f hp3 void)]
|
||||
[den-m (make-object message% (string-constant denominator) hp3)]
|
||||
[bp (make-object horizontal-panel% dlg)]
|
||||
[ok? #f]
|
||||
[validate-number
|
||||
(λ ()
|
||||
(let ([num-s (string->number (send num get-value))]
|
||||
[den-s (string->number (send den get-value))]
|
||||
[whole-s (if (string=? (send whole get-value) "")
|
||||
0
|
||||
(string->number (send whole get-value)))])
|
||||
(cond
|
||||
[(or (not whole-s) (not (integer? whole-s)))
|
||||
(string-constant insert-number/bad-whole-part)]
|
||||
[(or (not num-s) (not (integer? num-s)) (< num-s 0))
|
||||
(string-constant insert-number/bad-numerator)]
|
||||
[(or (not den-s) (not (integer? den-s)) (<= den-s 0))
|
||||
(string-constant insert-number/bad-denominator)]
|
||||
[else
|
||||
(if (< whole-s 0)
|
||||
(- whole-s (/ num-s den-s))
|
||||
(+ whole-s (/ num-s den-s)))])))]
|
||||
[ok-callback
|
||||
(λ ()
|
||||
(let ([v (validate-number)])
|
||||
(cond
|
||||
[(number? v)
|
||||
(set! ok? #t)
|
||||
(send dlg show #f)]
|
||||
[else
|
||||
(message-box
|
||||
(string-constant drscheme)
|
||||
v
|
||||
dlg
|
||||
#:dialog-mixin frame:focus-table-mixin)])))]
|
||||
[cancel-callback
|
||||
(λ () (send dlg show #f))])
|
||||
(let-values ([(ok cancel)
|
||||
(gui-utils:ok/cancel-buttons
|
||||
bp
|
||||
(λ (x y) (ok-callback))
|
||||
(λ (x y) (cancel-callback)))])
|
||||
(let ([mw (max (send den-m get-width) (send num-m get-width))])
|
||||
(send den-m min-width mw)
|
||||
(send num-m min-width mw))
|
||||
(send bp set-alignment 'right 'center)
|
||||
(send dlg show #t)
|
||||
(and ok?
|
||||
(let ([v (validate-number)])
|
||||
(and (number? v)
|
||||
v))))))
|
||||
(define dlg (make-object dialog% (string-constant enter-fraction)))
|
||||
(define hp (make-object horizontal-panel% dlg))
|
||||
(make-object message% (string-constant whole-part) hp)
|
||||
(define whole
|
||||
(keymap:call/text-keymap-initializer
|
||||
(λ ()
|
||||
(make-object text-field% #f hp void))))
|
||||
(define vp (make-object vertical-panel% hp))
|
||||
(define hp2 (make-object horizontal-panel% vp))
|
||||
(define num
|
||||
(keymap:call/text-keymap-initializer
|
||||
(λ ()
|
||||
(make-object text-field% #f hp2 void))))
|
||||
(define num-m (make-object message% (string-constant numerator) hp2))
|
||||
(define hp3 (make-object horizontal-panel% vp))
|
||||
(define den
|
||||
(keymap:call/text-keymap-initializer
|
||||
(λ ()
|
||||
(make-object text-field% #f hp3 void))))
|
||||
(define den-m (make-object message% (string-constant denominator) hp3))
|
||||
(define bp (make-object horizontal-panel% dlg))
|
||||
(define ok? #f)
|
||||
(define (validate-number)
|
||||
(define num-s (string->number (send num get-value)))
|
||||
(define den-s (string->number (send den get-value)))
|
||||
(define whole-s (if (string=? (send whole get-value) "")
|
||||
0
|
||||
(string->number (send whole get-value))))
|
||||
(cond
|
||||
[(or (not whole-s) (not (integer? whole-s)))
|
||||
(string-constant insert-number/bad-whole-part)]
|
||||
[(or (not num-s) (not (integer? num-s)) (< num-s 0))
|
||||
(string-constant insert-number/bad-numerator)]
|
||||
[(or (not den-s) (not (integer? den-s)) (<= den-s 0))
|
||||
(string-constant insert-number/bad-denominator)]
|
||||
[else
|
||||
(if (< whole-s 0)
|
||||
(- whole-s (/ num-s den-s))
|
||||
(+ whole-s (/ num-s den-s)))]))
|
||||
(define (ok-callback)
|
||||
(define v (validate-number))
|
||||
(cond
|
||||
[(number? v)
|
||||
(set! ok? #t)
|
||||
(send dlg show #f)]
|
||||
[else
|
||||
(message-box
|
||||
(string-constant drscheme)
|
||||
v
|
||||
dlg
|
||||
#:dialog-mixin frame:focus-table-mixin)]))
|
||||
(define (cancel-callback) (send dlg show #f))
|
||||
(define-values (ok cancel)
|
||||
(gui-utils:ok/cancel-buttons
|
||||
bp
|
||||
(λ (x y) (ok-callback))
|
||||
(λ (x y) (cancel-callback))))
|
||||
(let ([mw (max (send den-m get-width) (send num-m get-width))])
|
||||
(send den-m min-width mw)
|
||||
(send num-m min-width mw))
|
||||
(send bp set-alignment 'right 'center)
|
||||
(send dlg show #t)
|
||||
(and ok?
|
||||
(let ([v (validate-number)])
|
||||
(and (number? v)
|
||||
v))))
|
||||
|
||||
;; create-executable : (instanceof drracket:unit:frame<%>) -> void
|
||||
(define (create-executable frame)
|
||||
|
@ -1571,19 +1577,21 @@
|
|||
(send-url (url->string url2)))]
|
||||
[parent logger-gui-content-panel])
|
||||
(set! logger-text-field
|
||||
(new text-field%
|
||||
[parent logger-gui-content-panel]
|
||||
[label "‹level›@‹name› ..."]
|
||||
[init-value (send (get-interactions-text) get-user-log-receiver-args-str)]
|
||||
[callback
|
||||
(λ (tf evt)
|
||||
(define str (send (send tf get-editor) get-text))
|
||||
(define args (parse-logger-args str))
|
||||
(preferences:set 'drracket:logger-receiver-string str)
|
||||
(send (get-interactions-text) set-user-log-receiver-args
|
||||
str
|
||||
(if (null? args) #f args))
|
||||
(set-logger-text-field-bg-color args))]))
|
||||
(keymap:call/text-keymap-initializer
|
||||
(λ ()
|
||||
(new text-field%
|
||||
[parent logger-gui-content-panel]
|
||||
[label "‹level›@‹name› ..."]
|
||||
[init-value (send (get-interactions-text) get-user-log-receiver-args-str)]
|
||||
[callback
|
||||
(λ (tf evt)
|
||||
(define str (send (send tf get-editor) get-text))
|
||||
(define args (parse-logger-args str))
|
||||
(preferences:set 'drracket:logger-receiver-string str)
|
||||
(send (get-interactions-text) set-user-log-receiver-args
|
||||
str
|
||||
(if (null? args) #f args))
|
||||
(set-logger-text-field-bg-color args))]))))
|
||||
(set-logger-text-field-bg-color (parse-logger-args (send logger-text-field get-value)))
|
||||
(set! logger-checkbox
|
||||
(new check-box%
|
||||
|
@ -4791,23 +4799,25 @@
|
|||
(update-ok-button-state))
|
||||
|
||||
(define tb
|
||||
(new text-field%
|
||||
[label #f]
|
||||
[parent top-hp]
|
||||
[init-value (if current-limit
|
||||
(format "~a" current-limit)
|
||||
"128")]
|
||||
[stretchable-width #f]
|
||||
[min-width 100]
|
||||
[callback
|
||||
(λ (tf e)
|
||||
(let ([ed (send tf get-editor)])
|
||||
(cond
|
||||
[(is-valid-number? ed)
|
||||
(background clear-sd)]
|
||||
[else
|
||||
(background yellow-sd)]))
|
||||
(update-ok-button-state))]))
|
||||
(keymap:call/text-keymap-initializer
|
||||
(λ ()
|
||||
(new text-field%
|
||||
[label #f]
|
||||
[parent top-hp]
|
||||
[init-value (if current-limit
|
||||
(format "~a" current-limit)
|
||||
"128")]
|
||||
[stretchable-width #f]
|
||||
[min-width 100]
|
||||
[callback
|
||||
(λ (tf e)
|
||||
(let ([ed (send tf get-editor)])
|
||||
(cond
|
||||
[(is-valid-number? ed)
|
||||
(background clear-sd)]
|
||||
[else
|
||||
(background yellow-sd)]))
|
||||
(update-ok-button-state))]))))
|
||||
|
||||
(define (update-ok-button-state)
|
||||
(cond
|
||||
|
|
Loading…
Reference in New Issue
Block a user