summaryrefslogtreecommitdiff
path: root/clojure/wordmonger/timer.clj
blob: f739e7ee580e2c47a59f267983ec9d51b64bf66c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(doto *timer-label*
  (.setFont (new Font *display* "bitstream vera sans mono" 12 SWT/NORMAL))
  (.setText "   ")
  (.setLayoutData (new GridData GridData/HORIZONTAL_ALIGN_CENTER)))

(defn initialize-timer [timer-max]
  (def *timer-value* (ref timer-max)))

(defn decrement-timer []
  (let [value @*timer-value*
        new-value (dec value)]
    (unless (.isDisposed *shell*)
        (.asyncExec *display* (proxy [Runnable] []
                                (run [] (.setText *timer-label* 
                                                  (str new-value)))))
      (comment
        (async (.setText *timer-label* (str new-value))))
      (def *timer-value* (ref new-value)))))