------------------------------------------------------------------ -- | -- Module : Data.DOM.JSMWExt -- Copyright : (c) Dmitry Golubovsky, 2009 -- License : BSD-style -- -- Maintainer : golubovsky@gmail.com -- Stability : experimental -- Portability : portable -- -- -- -- DOM extensions specific to JSMW ------------------------------------------------------------------ module Data.DOM.JSMWExt ( addChildren ,alert ,status ) where import Data.DOM import Data.DOM.Dom import BrownPLT.JavaScript import Language.JSMW.Monad -- | Add multiple children to a node. Unlike 'addChild', this function -- returns the parent element. addChildren :: (CNode p, CNode c) => [Expression c] -> Expression p -> JSMW e (Expression p) addChildren [] p = once =<< return p addChildren (c:cs) p = do once =<< addChild c p addChildren cs p -- | Pop up an alert window. alert :: Expression String -> JSMW e (Expression ()) alert s = do vs <- once =<< return s once =<< return (CallExpr () (VarRef () (Id () "alert")) [vs /\ ()]) -- | Update window status line. status :: Expression String -> JSMW e (Expression ()) status s = do vs <- once =<< return s writeStmt $ ExprStmt () $ AssignExpr () OpAssign (VarRef () (Id () "window.status")) (vs /\ ()) return $ NullLit ()