 (ns uxbox.ui.workspace.shortcuts
+  (:require-macros [uxbox.util.syntax :refer [define-once]])
   (:require [goog.events :as events]
             [beicon.core :as rx]
             [uxbox.rstore :as rs]

           goog.ui.KeyboardShortcutHandler))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Keyboard Shortcuts Watcher
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defonce ^:static +shortcuts+
  #{:ctrl+g
    :ctrl+shift+f
    :ctrl+shift+i
    :ctrl+shift+l})

(defonce ^:static ^:private +bus+
  (rx/bus))

        (events/unlistenByKey key)
        (.clearKeyListener handler)))))

(define-once
  (rx/on-value +stream+ #(println "[debug]: shortcut:" %))
  (rx/on-value +stream+ (fn [event]
                          (when-let [handler (get +shortcuts+ event)]
                            (handler)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Keyboard Shortcuts Mixin
