cocoa: flip vertical slider direction
This commit is contained in:
parent
a5a7076fe0
commit
2ba8927ba5
|
@ -46,12 +46,15 @@
|
|||
|
||||
(define vert? (memq 'vertical style))
|
||||
|
||||
(define slider-lo lo)
|
||||
(define slider-hi hi)
|
||||
|
||||
(define slider-cocoa
|
||||
(let ([cocoa (as-objc-allocation
|
||||
(tell (tell MySlider alloc) init))])
|
||||
(tellv cocoa setMinValue: #:type _double* lo)
|
||||
(tellv cocoa setMaxValue: #:type _double* hi)
|
||||
(tellv cocoa setDoubleValue: #:type _double* val)
|
||||
(tellv cocoa setDoubleValue: #:type _double* (flip val))
|
||||
;; heuristic: show up to tick marks:
|
||||
(when ((- hi lo) . < . 64)
|
||||
(tellv cocoa setNumberOfTickMarks: #:type _NSUInteger (add1 (- hi lo)))
|
||||
|
@ -148,13 +151,17 @@
|
|||
[event-type 'slider]
|
||||
[time-stamp (current-milliseconds)])))
|
||||
|
||||
(define/private (flip v)
|
||||
(if vert?
|
||||
(+ slider-lo (- slider-hi v))
|
||||
v))
|
||||
|
||||
(define/public (set-value v)
|
||||
(atomically
|
||||
(tellv slider-cocoa setDoubleValue: #:type _double* v)
|
||||
(tellv slider-cocoa setDoubleValue: #:type _double* (flip v))
|
||||
(update-message v)))
|
||||
(define/public (get-value)
|
||||
(inexact->exact (floor (tell #:type _double slider-cocoa doubleValue))))
|
||||
(flip (inexact->exact (floor (tell #:type _double slider-cocoa doubleValue)))))
|
||||
|
||||
(define/public (update-message [val (get-value)])
|
||||
(tellv message-cocoa setTitleWithMnemonic: #:type _NSString (format "~a" val)))
|
||||
|
|
Loading…
Reference in New Issue
Block a user