diff --git a/src/bean/frames.cljs b/src/bean/frames.cljs index 0e4b5b9..6676b32 100644 --- a/src/bean/frames.cljs +++ b/src/bean/frames.cljs @@ -37,7 +37,11 @@ sheet)) (defn add-labels [sheet frame-name addresses dirn] - (reduce #(add-label %1 frame-name %2 dirn (util/random-color-hex)) sheet addresses)) + (reduce #(add-label %1 frame-name %2 dirn + (case dirn + :top (util/random-color-hex (str (first %2) dirn)) + :left (util/random-color-hex (str (second %2) dirn)) + (util/random-color-hex))) sheet addresses)) (defn remove-labels [sheet frame-name addresses] (reduce #(update-in % [:frames frame-name :labels] dissoc %2) sheet addresses)) diff --git a/src/bean/ui/events.cljs b/src/bean/ui/events.cljs index e6c6422..e7b0e2b 100644 --- a/src/bean/ui/events.cljs +++ b/src/bean/ui/events.cljs @@ -279,7 +279,6 @@ (rf/reg-event-fx ::renaming-frame - (undoable) (fn edit-frame [{:keys [db]} [_ frame-name]] {:db (assoc-in db [:ui :renaming-frame] frame-name) :fx [[:dispatch [::select-frame frame-name]]]})) diff --git a/src/bean/ui/styles.cljs b/src/bean/ui/styles.cljs index 5b81f43..d4c1bc2 100644 --- a/src/bean/ui/styles.cljs +++ b/src/bean/ui/styles.cljs @@ -36,4 +36,4 @@ :frame-name-padding 3}) (def cell-background-colors - [nil 0xcccccc 0xffc9c9 0xb2f2bb 0xa5d8ff 0xffec99]) + [nil 0xcccccc 0xb2f2bb 0xa5d8ff 0xffec99]) diff --git a/src/bean/util.cljs b/src/bean/util.cljs index 14d2217..59368d4 100644 --- a/src/bean/util.cljs +++ b/src/bean/util.cljs @@ -54,10 +54,17 @@ (for [c (range start-c (inc end-c))] [r c]))) -(defn random-color-hex [] - (+ (bit-shift-left (rand-int 256) 16) - (bit-shift-left (rand-int 256) 8) - (rand-int 256))) +(defn random-color-hex + ([] + (random-color-hex (rand-int 1000000))) + ([seed] + (let [hash (hash seed) + r (mod (bit-shift-right hash 16) 256) + g (mod (bit-shift-right hash 8) 256) + b (mod hash 256)] + (+ (bit-shift-left r 16) + (bit-shift-left g 8) + b)))) (defn merged-or-self [[r c] sheet] (or (get-in sheet [:grid r c :style :merged-with]) [r c]))