From fe86285e8eeffdab39eb8a936364a2bd12835b9d Mon Sep 17 00:00:00 2001 From: fukamachi Date: Fri, 7 Jan 2011 12:36:15 +0900 Subject: [PATCH] refactored L5/slide and reduce calling repaint. --- src/L5/context.clj | 6 ++---- src/L5/slide.clj | 22 +++++++++------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/L5/context.clj b/src/L5/context.clj index dd5a73c..648c1a2 100644 --- a/src/L5/context.clj +++ b/src/L5/context.clj @@ -17,8 +17,7 @@ (defn dispatch-event [context keyCode] (let [actions (get @(:actions context) keyCode)] (when (not (empty? actions)) - (doseq [act actions] (act)) - (.repaint @(:frame context))))) + (doseq [act actions] (act))))) (defn build-context [raw-context-params & slides] (let [params (merge default raw-context-params) @@ -84,8 +83,7 @@ (dosync (ref-set zoom scale) (ref-set x (/ width-diff 2 scale)) - (ref-set y (/ height-diff 2 scale)))) - (slide/current-slide context)))] + (ref-set y (/ height-diff 2 scale))))))] (doto panel (.setFocusable true) (.setForeground (:color context)) diff --git a/src/L5/slide.clj b/src/L5/slide.clj index 230f1c5..c1b604f 100644 --- a/src/L5/slide.clj +++ b/src/L5/slide.clj @@ -179,27 +179,23 @@ (ref-set y elem-y)))))))) (defn current-slide [context] - (let [idx @(:current context)] + (let [idx @(:current context) + slides @(:slides context)] + (println + (format "%d / %d %s" + (+ 1 idx) (count slides) (:body (first (get slides idx))))) (draw-slide context idx))) (defn next-slide [context] (let [slides @(:slides context) idx (+ @(:current context) 1)] (when (> (count slides) idx) - ;; TODO: this indicator is dup with below - (println - (format "%d / %d %s" - (+ 1 idx) (count slides) (:body (first (get slides idx))))) - (draw-slide context idx) - (dosync (alter (:current context) inc))))) + (dosync (alter (:current context) inc)) + (current-slide context)))) (defn prev-slide [context] (let [slides @(:slides context) idx (- @(:current context) 1)] (when (>= idx 0) - ;; TODO: this indicator is dup with above - (println - (format "%d / %d %s" - (+ 1 idx) (count @(:slides context)) (:body (first (get slides idx))))) - (draw-slide context idx) - (dosync (alter (:current context) dec))))) + (dosync (alter (:current context) dec)) + (current-slide context))))