packages feed

tianbar 0.4.0.0 → 0.4.0.1

raw patch · 2 files changed

+55/−1 lines, 2 files

Files

+ src/System/Tianbar/Plugin/DBus/FromData.hs view
@@ -0,0 +1,53 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+module System.Tianbar.Plugin.DBus.FromData () where++import Control.Monad++import Data.List.Split+import Data.Maybe++import DBus+import DBus.Client++import Happstack.Server++instance FromData MatchRule where+    fromData = do+        objPath <- fromData+        iface <- fromData+        memberName <- fromData+        return $ matchAny { matchSender = Nothing+                          , matchDestination = Nothing+                          , matchPath = objPath+                          , matchInterface = iface+                          , matchMember = memberName+                          }++instance FromData MethodCall where+    fromData = do+        callPath <- fromData+        iface <- fromData+        member <- fromData+        callBody <- liftM (map variantFromString) $ looks "body[]"+        dest <- fromData+        let setBodyDest mcall = mcall { methodCallBody = callBody+                                      , methodCallDestination = dest+                                      }+        return $ setBodyDest $ methodCall callPath iface member++instance FromData ObjectPath where+    fromData = liftM (fromJust . parseObjectPath) $ look "path"++instance FromData InterfaceName where+    fromData = liftM (fromJust . parseInterfaceName) $ look "iface"++instance FromData MemberName where+    fromData = liftM (fromJust . parseMemberName) $ look "member"++instance FromData BusName where+    fromData = liftM (fromJust . parseBusName) $ look "destination"++variantFromString :: String -> Variant+variantFromString param = case splitOn ":" param of+    ["string", str] -> toVariant str+    _ -> error "Invalid variant string"
tianbar.cabal view
@@ -1,5 +1,5 @@ name:                tianbar-version:             0.4.0.0+version:             0.4.0.1 synopsis:            A desktop bar based on WebKit description:   A desktop bar using WebKit for rendering as much as possible.@@ -54,6 +54,7 @@                      , System.Tianbar.Plugin.Basic                      , System.Tianbar.Plugin.Combined                      , System.Tianbar.Plugin.DBus+                     , System.Tianbar.Plugin.DBus.FromData                      , System.Tianbar.Plugin.DBus.JSON                      , System.Tianbar.Plugin.Socket                      , System.Tianbar.Utils