summaryrefslogtreecommitdiffstats
path: root/W.hs
diff options
context:
space:
mode:
authorDon Stewart <dons@cse.unsw.edu.au>2007-03-07 07:15:32 +0100
committerDon Stewart <dons@cse.unsw.edu.au>2007-03-07 07:15:32 +0100
commitc4b45c022f7092acbff1b692634116602f3d394e (patch)
tree3343ef8366fd50a9a152ce21c0753706f09ea3c9 /W.hs
parent7efe23f6578cd675309b34491cd934fb552630cf (diff)
downloadmetatile-c4b45c022f7092acbff1b692634116602f3d394e.tar
metatile-c4b45c022f7092acbff1b692634116602f3d394e.zip
derive MonadState, removes most accessors
darcs-hash:20070307061532-9c5c1-9a125c44f0e63442f53f2d7cd9609a419cbb2c1d
Diffstat (limited to 'W.hs')
-rw-r--r--W.hs26
1 files changed, 3 insertions, 23 deletions
diff --git a/W.hs b/W.hs
index deed0e6..88af0d3 100644
--- a/W.hs
+++ b/W.hs
@@ -34,7 +34,7 @@ type Windows = [Window]
-- | The W monad, a StateT transformer over IO encapuslating the window
-- manager state
newtype W a = W { unW :: StateT WState IO a }
- deriving (Functor, Monad, MonadIO)
+ deriving (Functor, Monad, MonadIO, MonadState WState)
-- | Run the W monad, given a chunk of W monad code, and an initial state
-- Return the result, and final state
@@ -59,29 +59,9 @@ trace msg = io $ do
-- ---------------------------------------------------------------------
-- Getting at the window manager state
--- | Return the current dispaly
-getDisplay :: W Display
-getDisplay = W (gets display)
-
--- | Return the current windows
-getWindows :: W Windows
-getWindows = W (gets windows)
-
--- | Return the screen width
-getScreenWidth :: W Int
-getScreenWidth = W (gets screenWidth)
-
--- | Return the screen height
-getScreenHeight :: W Int
-getScreenHeight = W (gets screenHeight)
-
--- | Set the current window list
-setWindows ::Windows -> W ()
-setWindows x = W (modify (\s -> s {windows = x}))
-
-- | Modify the current window list
-modifyWindows :: (Windows -> Windows) -> W ()
-modifyWindows f = W (modify (\s -> s {windows = f (windows s)}))
+modifyWindows :: (Windows -> Windows) -> W ()
+modifyWindows f = modify $ \s -> s {windows = f (windows s)}
-- ---------------------------------------------------------------------
-- Generic utilities