Refactor basic mouse streams and atoms on workspace/base.

This commit is contained in:
Andrey Antukh 2016-02-16 19:53:29 +02:00
parent 2982f347a4
commit c7a38113a1

View File

@ -79,25 +79,32 @@
(defonce mouse-b (rx/bus)) (defonce mouse-b (rx/bus))
(defonce mouse-s (defonce mouse-s
(->> mouse-b (rx/dedupe mouse-b))
(rx/filter #(= (:id %) (:id @page-l)))
(defonce mouse-canvas-s
(->> mouse-s
(rx/map :canvas-coords) (rx/map :canvas-coords)
(rx/share))) (rx/share)))
(defonce mouse-a (defonce mouse-canvas-a
(rx/to-atom mouse-s)) (rx/to-atom mouse-canvas-s))
(defonce mouse-viewport-s
(->> mouse-s
(rx/map :viewport-coords)
(rx/share)))
(defonce mouse-viewport-a
(rx/to-atom mouse-viewport-s))
(defonce mouse-absolute-s (defonce mouse-absolute-s
(->> mouse-b (->> mouse-s
(rx/filter #(= (:id %) (:id @page-l)))
(rx/map :window-coords) (rx/map :window-coords)
(rx/share))) (rx/share)))
(defonce mouse-ctrl-s (defonce mouse-ctrl-s
(->> mouse-b (->> mouse-s
(rx/filter #(= (:id %) (:id @page-l)))
(rx/map :ctrl) (rx/map :ctrl)
(rx/dedupe)
(rx/share))) (rx/share)))
(defn- coords-delta (defn- coords-delta
@ -105,19 +112,12 @@
(gpt/subtract new old)) (gpt/subtract new old))
(defonce mouse-delta-s (defonce mouse-delta-s
(->> mouse-s (->> mouse-viewport-s
(rx/sample 10) (rx/sample 10)
(rx/buffer 2 1) (rx/buffer 2 1)
(rx/map coords-delta) (rx/map coords-delta)
(rx/share))) (rx/share)))
(defonce mouse-position
(->> mouse-s
(rx/sample 10)
(rx/to-atom)))
(defonce bounding-rect (atom {}))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Constants ;; Constants
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;