Mercurial > hg > indyvon
changeset 48:a948ac563f6f
Graph: draw the vertex being dragged above others.
author | Mikhail Kryshen <mikhail@kryshen.net> |
---|---|
date | Wed, 28 Jul 2010 04:47:30 +0400 |
parents | 180d7690d09a |
children | ca728127d605 |
files | src/kryshen/indyvon/graph.clj |
diffstat | 1 files changed, 20 insertions(+), 11 deletions(-) [+] |
line diff
1.1 --- a/src/kryshen/indyvon/graph.clj Wed Jul 28 04:46:34 2010 +0400 1.2 +++ b/src/kryshen/indyvon/graph.clj Wed Jul 28 04:47:30 2010 +0400 1.3 @@ -33,15 +33,14 @@ 1.4 (doseq [v (.vertices (.getGraph layout))] 1.5 (draw-anchored! v :center :center (+ x (.getX v)) (+ y (.getY v))))) 1.6 1.7 -(defn- draw-movable-vertices! 1.8 - [^GraphLayout layout x y dragged fix-x fix-y] 1.9 - (doseq [v (.vertices (.getGraph layout))] 1.10 - (let [x (+ x (.getX v)) 1.11 - y (+ y (.getY v)) 1.12 - anchor (anchor v :center :center) 1.13 - size (layer-size v) 1.14 - x (- x (:x anchor)) 1.15 - y (- y (:y anchor))] 1.16 +(defn- draw-movable-vertex! 1.17 + [^Vertex2D v ^GraphLayout layout x y dragged fix-x fix-y] 1.18 + (let [x (+ x (.getX v)) 1.19 + y (+ y (.getY v)) 1.20 + anchor (anchor v :center :center) 1.21 + size (layer-size v) 1.22 + x (- x (:x anchor)) 1.23 + y (- y (:y anchor))] 1.24 (with-bounds x y (:width size) (:height size) 1.25 (with-handlers v 1.26 (draw! v) 1.27 @@ -65,8 +64,18 @@ 1.28 (.invalidateLayout layout) 1.29 (*update*) 1.30 (ref-set fix-x x) 1.31 - (ref-set fix-y y))))))))))) 1.32 - 1.33 + (ref-set fix-y y)))))))))) 1.34 + 1.35 +(defn- draw-movable-vertices! 1.36 + [^GraphLayout layout x y dragged-ref fix-x fix-y] 1.37 + (let [dragged @dragged-ref] 1.38 + (doseq [v (.vertices (.getGraph layout)) 1.39 + :when (not= v dragged)] 1.40 + (draw-movable-vertex! v layout x y dragged-ref fix-x fix-y)) 1.41 + ;; Draw the vertex being dragged above others. 1.42 + (when dragged 1.43 + (draw-movable-vertex! dragged layout x y dragged-ref fix-x fix-y)))) 1.44 + 1.45 (defn- draw-edges! [^GraphLayout layout x y] 1.46 ;; TODO: extend Layer on Edge2D and draw like vertices. 1.47 (.translate *graphics* x y)