diff --git a/frontend/src/uxbox/main/data/workspace.cljs b/frontend/src/uxbox/main/data/workspace.cljs index d2bd006d9..5ada86f28 100644 --- a/frontend/src/uxbox/main/data/workspace.cljs +++ b/frontend/src/uxbox/main/data/workspace.cljs @@ -118,11 +118,7 @@ (deftype ActivateFlag [flag] ptk/UpdateEvent (update [_ state] - (update-in state [:workspace :flags] conj flag)) - - ptk/WatchEvent - (watch [_ state stream] - (rx/of (set-tooltip "Drag to use the ruler")))) + (update-in state [:workspace :flags] conj flag))) (defn activate-flag [flag] @@ -132,11 +128,7 @@ (deftype DeactivateFlag [flag] ptk/UpdateEvent (update [_ state] - (update-in state [:workspace :flags] disj flag)) - - ptk/WatchEvent - (watch [_ state stream] - (rx/of (set-tooltip nil)))) + (update-in state [:workspace :flags] disj flag))) (defn deactivate-flag [flag] @@ -155,6 +147,40 @@ [flag] (ToggleFlag. flag)) +;; --- Workspace Ruler + +(deftype ActivateRuler [] + ptk/WatchEvent + (watch [_ state stream] + (rx/of (set-tooltip "Drag to use the ruler") + (activate-flag :ruler)))) + +(defn activate-ruler + [] + (ActivateRuler.)) + +(deftype DeactivateRuler [] + ptk/WatchEvent + (watch [_ state stream] + (rx/of (set-tooltip nil) + (deactivate-flag :ruler)))) + +(defn deactivate-ruler + [] + (DeactivateRuler.)) + +(deftype ToggleRuler [] + ptk/WatchEvent + (watch [_ state stream] + (let [flags (get-in state [:workspace :flags])] + (if (contains? flags :ruler) + (rx/of (deactivate-ruler)) + (rx/of (activate-ruler)))))) + +(defn toggle-ruler + [] + (ToggleRuler.)) + ;; --- Icons Toolbox (deftype SelectIconsToolboxCollection [id] diff --git a/frontend/src/uxbox/main/ui/workspace/canvas.cljs b/frontend/src/uxbox/main/ui/workspace/canvas.cljs index bcf7a1ef0..e41993d56 100644 --- a/frontend/src/uxbox/main/ui/workspace/canvas.cljs +++ b/frontend/src/uxbox/main/ui/workspace/canvas.cljs @@ -93,12 +93,12 @@ {:mixins [mx/reactive mx/static]} [tooltip] (let [coords (mx/react refs/window-mouse-position)] - [:span.cursor-tooltip - {:style - {:position "fixed" - :left (str (+ (:x coords) 5) "px") - :top (str (- (:y coords) 25) "px")}} - tooltip])) + [:span.cursor-tooltip + {:style + {:position "fixed" + :left (str (+ (:x coords) 5) "px") + :top (str (- (:y coords) 25) "px")}} + tooltip])) ;; --- Canvas diff --git a/frontend/src/uxbox/main/ui/workspace/header.cljs b/frontend/src/uxbox/main/ui/workspace/header.cljs index 0b9bab382..0805058e0 100644 --- a/frontend/src/uxbox/main/ui/workspace/header.cljs +++ b/frontend/src/uxbox/main/ui/workspace/header.cljs @@ -8,17 +8,18 @@ (ns uxbox.main.ui.workspace.header (:require [beicon.core :as rx] [uxbox.config :as cfg] - [uxbox.util.router :as r] [potok.core :as ptk] + [uxbox.builtins.icons :as i] [uxbox.main.store :as st] [uxbox.main.refs :as refs] [uxbox.main.data.workspace :as dw] [uxbox.main.data.history :as udh] + [uxbox.main.data.undo :as udu] [uxbox.main.data.lightbox :as udl] [uxbox.main.ui.workspace.clipboard] - [uxbox.builtins.icons :as i] [uxbox.main.ui.users :as ui.u] [uxbox.main.ui.navigation :as nav] + [uxbox.util.router :as r] [uxbox.util.mixins :as mx :include-macros true] [uxbox.util.geom.point :as gpt] [uxbox.util.math :as mth])) diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs index 666c1f3e4..1831163ed 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs @@ -102,11 +102,11 @@ (sort-by (comp :priority second))) select-drawtool #(st/emit! ::uev/interrupt - (udw/deactivate-flag :ruler) + (udw/deactivate-ruler) (udw/select-for-drawing %)) - toggle-flag #(st/emit! (udw/select-for-drawing nil) - (uds/deselect-all) - (udw/toggle-flag %))] + toggle-ruler #(st/emit! (udw/select-for-drawing nil) + (uds/deselect-all) + (udw/toggle-ruler))] [:div#form-tools.tool-window.drawing-tools [:div.tool-window-bar @@ -125,7 +125,7 @@ [:div.tool-btn.tooltip.tooltip-hover {:alt "Ruler" - :on-click (partial toggle-flag :ruler) + :on-click toggle-ruler :class (when (contains? flags :ruler) "selected")} i/ruler-tool]]]))