diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-07-14 20:21:30 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-07-14 20:21:30 +0200 |
commit | 861fa81d8503b64023777ec815845361bbcc2885 (patch) | |
tree | c194a5bbd4c839eb4ccf5b933d5abebcb3368385 /lib/Phi/Phi.hs | |
parent | 7c0f602343e84823d370c8742716ce6b7a8b9850 (diff) | |
download | phi-861fa81d8503b64023777ec815845361bbcc2885.tar phi-861fa81d8503b64023777ec815845361bbcc2885.zip |
Added clock widget
Diffstat (limited to 'lib/Phi/Phi.hs')
-rw-r--r-- | lib/Phi/Phi.hs | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/lib/Phi/Phi.hs b/lib/Phi/Phi.hs index 5d14181..1fef39b 100644 --- a/lib/Phi/Phi.hs +++ b/lib/Phi/Phi.hs @@ -1,13 +1,11 @@ -{-# LANGUAGE ExistentialQuantification #-} +{-# LANGUAGE ExistentialQuantification, DeriveDataTypeable, StandaloneDeriving #-} module Phi.Phi ( Phi - , MessageBus , Message + , DefaultMessage(..) , fromMessage , initPhi - , runPhi , sendMessage - , getMessageBus , receiveMessage ) where @@ -16,9 +14,11 @@ import Control.Monad import Data.Typeable data Phi = Phi (Chan Message) -data MessageBus = MessageBus (Chan Message) data Message = forall a. (Typeable a, Show a) => Message a +deriving instance Show Message + +data DefaultMessage = Repaint deriving (Typeable, Show) fromMessage :: (Typeable a, Show a) => Message -> Maybe a fromMessage (Message m) = cast m @@ -26,14 +26,8 @@ fromMessage (Message m) = cast m initPhi :: IO Phi initPhi = liftM Phi newChan -runPhi :: Phi -> IO () -runPhi (Phi chan) = forever $ readChan chan - sendMessage :: (Typeable a, Show a) => Phi -> a -> IO () sendMessage (Phi chan) = writeChan chan . Message -getMessageBus :: Phi -> IO MessageBus -getMessageBus (Phi chan) = liftM MessageBus $ dupChan chan - -receiveMessage :: MessageBus -> IO Message -receiveMessage (MessageBus chan) = readChan chan +receiveMessage :: Phi -> IO Message +receiveMessage (Phi chan) = readChan chan |