From 4866f2e367dfcf22a9591231ba40948826a1b438 Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Thu, 1 Nov 2007 21:10:59 +0100 Subject: Hierarchify darcs-hash:20071101201059-a5988-fc1f1262bec1b69e13ba18ae7cefeafc8c4471d4.gz --- Grid.hs | 65 ----------------------------------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 Grid.hs (limited to 'Grid.hs') diff --git a/Grid.hs b/Grid.hs deleted file mode 100644 index c18f997..0000000 --- a/Grid.hs +++ /dev/null @@ -1,65 +0,0 @@ -{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-} - ------------------------------------------------------------------------------ --- | --- Module : XMonadContrib.Grid --- Copyright : (c) Lukas Mai --- License : BSD-style (see LICENSE) --- --- Maintainer : --- Stability : unstable --- Portability : unportable --- --- A simple layout that attempts to put all windows in a square grid. --- ------------------------------------------------------------------------------ - -module XMonadContrib.Grid ( - -- * Usage - -- $usage - Grid(..) -) where - -import XMonad -import XMonad.StackSet -import Graphics.X11.Xlib.Types - --- $usage --- Put the following in your Config.hs file: --- --- > import XMonadContrib.Grid --- > ... --- > layouts = [ ... --- > , Layout Grid --- > ] - --- %import XMonadContrib.Grid --- %layout , Layout Grid - -data Grid a = Grid deriving (Read, Show) - -instance LayoutClass Grid a where - pureLayout Grid r s = arrange r (integrate s) - -arrange :: Rectangle -> [a] -> [(a, Rectangle)] -arrange (Rectangle rx ry rw rh) st = zip st rectangles - where - nwins = length st - ncols = ceiling . (sqrt :: Double -> Double) . fromIntegral $ nwins - mincs = nwins `div` ncols - extrs = nwins - ncols * mincs - chop :: Int -> Dimension -> [(Position, Dimension)] - chop n m = ((0, m - k * fromIntegral (pred n)) :) . map (flip (,) k) . tail . reverse . take n . tail . iterate (subtract k') $ m' - where - k :: Dimension - k = m `div` fromIntegral n - m' = fromIntegral m - k' :: Position - k' = fromIntegral k - xcoords = chop ncols rw - ycoords = chop mincs rh - ycoords' = chop (succ mincs) rh - (xbase, xext) = splitAt (ncols - extrs) xcoords - rectangles = combine ycoords xbase ++ combine ycoords' xext - where - combine ys xs = [Rectangle (rx + x) (ry + y) w h | (x, w) <- xs, (y, h) <- ys] -- cgit v1.2.3