From 307ed257419a4b61b9e2c04ab43322d2e36c7442 Mon Sep 17 00:00:00 2001 From: "joe.thornber" Date: Thu, 24 May 2007 10:55:37 +0200 Subject: [Spiral] misc tidying darcs-hash:20070524085537-db939-c28969cbbff29f18c78150a912fcab760d263c86.gz --- Spiral.hs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'Spiral.hs') diff --git a/Spiral.hs b/Spiral.hs index f4a0452..7ec38f8 100644 --- a/Spiral.hs +++ b/Spiral.hs @@ -18,18 +18,19 @@ import XMonad fibs :: [Integer] fibs = 1 : 1 : (zipWith (+) fibs (tail fibs)) -fibRatios :: [Rational] -fibRatios = ratios fibs - where - ratios (x:y:rs) = (x % y) : ratios (y:rs) - ratios _ = [] +mkRatios :: [Integer] -> [Rational] +mkRatios (x1:x2:xs) = (x1 % x2) : mkRatios (x2:xs) +mkRatios _ = [] spiral :: Rational -> Layout spiral scale = Layout { doLayout = fibLayout, - modifyLayout = \m -> fmap resize (fromMessage m) } + modifyLayout = \m -> fmap resize (fromMessage m) } where - fibLayout sc ws = return $ zip ws (divideRects (map (* scale) . reverse . take len $ fibRatios) len East sc) + fibLayout sc ws = return $ zip ws rects where len = length ws + ratios = map (* scale) . reverse . take len . mkRatios $ fibs + rects = divideRects ratios len East sc + resize Expand = spiral $ (11 % 10) * scale resize Shrink = spiral $ (10 % 11) * scale -- cgit v1.2.3