aboutsummaryrefslogtreecommitdiffstats
path: root/ThreeColumns.hs
diff options
context:
space:
mode:
authorDavid Roundy <droundy@darcs.net>2007-09-24 21:16:32 +0200
committerDavid Roundy <droundy@darcs.net>2007-09-24 21:16:32 +0200
commit7afc1cfe5da0d48547b331baa6a0a8175ab12b6e (patch)
treea407b5291fd964e143f876f43f58951335e8b782 /ThreeColumns.hs
parent9b29c09a3ef081dc00dd33953975efec04611cab (diff)
downloadXMonadContrib-7afc1cfe5da0d48547b331baa6a0a8175ab12b6e.tar.gz
XMonadContrib-7afc1cfe5da0d48547b331baa6a0a8175ab12b6e.tar.xz
XMonadContrib-7afc1cfe5da0d48547b331baa6a0a8175ab12b6e.zip
move ThreeCol over to new class.
darcs-hash:20070924191632-72aca-3ae59a4b3e2f2a289cf0f385ce0a2a78c85763b8.gz
Diffstat (limited to 'ThreeColumns.hs')
-rw-r--r--ThreeColumns.hs27
1 files changed, 15 insertions, 12 deletions
diff --git a/ThreeColumns.hs b/ThreeColumns.hs
index 76faf6e..520f703 100644
--- a/ThreeColumns.hs
+++ b/ThreeColumns.hs
@@ -15,7 +15,7 @@
module XMonadContrib.ThreeColumns (
-- * Usage
-- $usage
- threeCol
+ ThreeCol
) where
import XMonad
@@ -37,21 +37,24 @@ import Graphics.X11.Xlib
--
-- and add, to the list of layouts:
--
--- > threeCol nmaster delta ratio
+-- > ThreeCol nmaster delta ratio
-- %import XMonadContrib.ThreeColumns
--- %layout , threeCol nmaster delta ratio
+-- %layout , ThreeCol nmaster delta ratio
-threeCol :: Int -> Rational -> Rational -> Layout a
-threeCol nmaster delta frac =
- Layout { doLayout = \r -> return . (\x->(x,Nothing)) .
- ap zip (tile3 frac r nmaster . length) . W.integrate
- , modifyLayout = \m -> return $ msum [fmap resize (fromMessage m)
- ,fmap incmastern (fromMessage m)] }
+data ThreeCol a = ThreeCol Int Rational Rational deriving (Show,Read)
- where resize Shrink = threeCol nmaster delta (max 0 $ frac-delta)
- resize Expand = threeCol nmaster delta (min 1 $ frac+delta)
- incmastern (IncMasterN d) = threeCol (max 0 (nmaster+d)) delta frac
+instance Layout ThreeCol a where
+ doLayout (ThreeCol nmaster _ frac) r =
+ return . (\x->(x,Nothing)) .
+ ap zip (tile3 frac r nmaster . length) . W.integrate
+ modifyLayout (ThreeCol nmaster delta frac) m =
+ return $ msum [fmap resize (fromMessage m)
+ ,fmap incmastern (fromMessage m)]
+ where resize Shrink = ThreeCol nmaster delta (max 0 $ frac-delta)
+ resize Expand = ThreeCol nmaster delta (min 1 $ frac+delta)
+ incmastern (IncMasterN d) = ThreeCol (max 0 (nmaster+d)) delta frac
+ description _ = "ThreeCol"
-- | tile3. Compute window positions using 3 panes
tile3 :: Rational -> Rectangle -> Int -> Int -> [Rectangle]