module Graphics.Ubigraph.Style (
changeVStyle, newVStyle, newVStyleWithID, setVStyleAttr,
changeEStyle, newEStyle, newEStyleWithID, setEStyleAttr,
) where
import Control.Monad.Reader (asks, liftIO)
import Network.XmlRpc.Client (remote)
import Graphics.Ubigraph.Base
toBool :: IO Int -> IO Bool
toBool x = do
x' <- x
return $ if x' == 0 then True else False
changeVStyle :: StyleID -> VertexID -> Hubigraph Bool
changeVStyle sid vid =
do serv <- asks server
liftIO . toBool $ remote serv "ubigraph.change_vertex_style" vid sid
newVStyle :: StyleID -> Hubigraph StyleID
newVStyle sid =
do serv <- asks server
liftIO $ remote serv "ubigraph.new_vertex_style" sid
newVStyleWithID :: StyleID -> StyleID -> Hubigraph Bool
newVStyleWithID newid parentid =
do serv <- asks server
liftIO $ remote serv "ubigraph.new_vertex_style_w_id" newid parentid
setVStyleAttr :: VAttr -> StyleID -> Hubigraph Bool
setVStyleAttr va sid =
do serv <- asks server
liftIO . toBool $ remote serv "ubigraph.set_vertex_style_attribute" sid k v
where (k, v) = toPair va
changeEStyle :: StyleID -> EdgeID -> Hubigraph Bool
changeEStyle sid eid =
do serv <- asks server
liftIO . toBool $ remote serv "ubigraph.change_edge_style" eid sid
newEStyle :: StyleID -> Hubigraph StyleID
newEStyle sid =
do serv <- asks server
liftIO $ remote serv "ubigraph.new_edge_style" sid
newEStyleWithID :: StyleID -> StyleID -> Hubigraph Bool
newEStyleWithID newid parentid =
do serv <- asks server
liftIO $ remote serv "ubigraph.new_edge_style_w_id" newid parentid
setEStyleAttr :: EAttr -> StyleID -> Hubigraph Bool
setEStyleAttr ea sid =
do serv <- asks server
liftIO . toBool $ remote serv "ubigraph.set_edge_style_attribute" sid k v
where (k, v) = toPair ea