improved insert fraction dialog
svn: r11501
This commit is contained in:
parent
790e8ebb46
commit
fa10d3f67c
|
@ -275,25 +275,29 @@ module browser threading seems wrong.
|
||||||
[whole-s (if (string=? (send whole get-value) "")
|
[whole-s (if (string=? (send whole get-value) "")
|
||||||
0
|
0
|
||||||
(string->number (send whole get-value)))])
|
(string->number (send whole get-value)))])
|
||||||
(if (and num-s den-s whole-s)
|
(cond
|
||||||
(let ([ans (+ whole-s (/ num-s den-s))])
|
[(or (not whole-s) (not (integer? whole-s)))
|
||||||
(if (and (exact? ans)
|
(string-constant insert-number/bad-whole-part)]
|
||||||
(real? ans)
|
[(or (not num-s) (not (integer? num-s)) (< num-s 0))
|
||||||
(not (integer? ans)))
|
(string-constant insert-number/bad-numerator)]
|
||||||
ans
|
[(or (not den-s) (not (integer? den-s)) (<= den-s 0))
|
||||||
#f))
|
(string-constant insert-number/bad-denominator)]
|
||||||
#f)))]
|
[else
|
||||||
|
(if (< whole-s 0)
|
||||||
|
(- whole-s (/ num-s den-s))
|
||||||
|
(+ whole-s (/ num-s den-s)))])))]
|
||||||
[ok-callback
|
[ok-callback
|
||||||
(λ ()
|
(λ ()
|
||||||
(cond
|
(let ([v (validate-number)])
|
||||||
[(validate-number)
|
(cond
|
||||||
(set! ok? #t)
|
[(number? v)
|
||||||
(send dlg show #f)]
|
(set! ok? #t)
|
||||||
[else
|
(send dlg show #f)]
|
||||||
(message-box
|
[else
|
||||||
(string-constant drscheme)
|
(message-box
|
||||||
(string-constant invalid-number)
|
(string-constant drscheme)
|
||||||
dlg)]))]
|
v
|
||||||
|
dlg)])))]
|
||||||
[cancel-callback
|
[cancel-callback
|
||||||
(λ () (send dlg show #f))])
|
(λ () (send dlg show #f))])
|
||||||
(let-values ([(ok cancel)
|
(let-values ([(ok cancel)
|
||||||
|
@ -306,7 +310,10 @@ module browser threading seems wrong.
|
||||||
(send num-m min-width mw))
|
(send num-m min-width mw))
|
||||||
(send bp set-alignment 'right 'center)
|
(send bp set-alignment 'right 'center)
|
||||||
(send dlg show #t)
|
(send dlg show #t)
|
||||||
(and ok? (validate-number)))))
|
(and ok?
|
||||||
|
(let ([v (validate-number)])
|
||||||
|
(and (number? v)
|
||||||
|
v))))))
|
||||||
|
|
||||||
;; create-executable : (instanceof drscheme:unit:frame<%>) -> void
|
;; create-executable : (instanceof drscheme:unit:frame<%>) -> void
|
||||||
(define (create-executable frame)
|
(define (create-executable frame)
|
||||||
|
|
|
@ -928,7 +928,9 @@ please adhere to these guidelines:
|
||||||
(whole-part "Whole Part")
|
(whole-part "Whole Part")
|
||||||
(numerator "Numerator")
|
(numerator "Numerator")
|
||||||
(denominator "Denominator")
|
(denominator "Denominator")
|
||||||
(invalid-number "Invalid number: must be an exact, real, non-integral number.")
|
(insert-number/bad-whole-part "The whole part of the number must be an integral number")
|
||||||
|
(insert-number/bad-numerator "The numerator part of the number must be a non-negative, integral number")
|
||||||
|
(insert-number/bad-denominator "The denominator part of the number must be a positive, integral number")
|
||||||
(insert-fraction-menu-item-label "Insert Fraction...")
|
(insert-fraction-menu-item-label "Insert Fraction...")
|
||||||
|
|
||||||
;; number snip popup menu
|
;; number snip popup menu
|
||||||
|
|
Loading…
Reference in New Issue
Block a user