@@ 0,0 1,63 @@
+-- Full source may be found at: https://git.singpolyma.net/post-part
+-- Copyright 2020 Stephen Paul Weber <singpolyma.net>
+--
+-- Permission to use, copy, modify, and/or distribute this software for any
+-- purpose with or without fee is hereby granted, provided that the above
+-- copyright notice and this permission notice appear in all copies.
+--
+-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+-- SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+-- RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+-- CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+-- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+module Window where
+
+import Prelude
+import Effect
+import Effect.Class
+import Data.Maybe
+import Data.Either
+import Data.Array
+import Debug.Trace
+import Data.Traversable
+import Math as Math
+import Data.Tuple (Tuple(..))
+import Data.Int as Int
+import Effect.Timer as Timer
+import Effect.Ref as Ref
+import Effect.Aff (Aff, Canceler(..), makeAff, launchAff_)
+import Web.DOM.ParentNode (querySelector, querySelectorAll, QuerySelector(..), ParentNode)
+import Web.DOM.Document as DOMDocument
+import Web.HTML.HTMLDocument as HTMLDocument
+import Web.HTML.HTMLElement as HTMLElement
+import Web.HTML.HTMLMediaElement as HTMLMediaElement
+import Web.HTML (window, HTMLElement, HTMLMediaElement)
+import Web.HTML.Event.EventTypes (load)
+import Web.UIEvent.MouseEvent as MouseEvent
+import Web.UIEvent.MouseEvent.EventTypes (mousemove, mouseout, click)
+import Web.HTML.Window as Window
+import Web.DOM.Element as Element
+import Web.DOM.NodeList as NodeList
+import Web.DOM.DOMTokenList as DOMTokenList
+import Web.Event.EventTarget (addEventListener, eventListener)
+import Partial.Unsafe (unsafePartial)
+import Web.CSSOM.ElementCSSInlineStyle as Style
+import Web.CSSOM.CSSStyleDeclaration as Style
+
+addEventListener' eventType eventTarget cb = do
+ listener <- eventListener cb
+ addEventListener eventType listener false eventTarget
+
+main = unsafePartial $ do
+ win <- window
+ doc <- HTMLDocument.toParentNode <$> Window.document win
+ addEventListener' load (Window.toEventTarget win) $ \_ -> do
+ Just body <- querySelector (QuerySelector "body") doc
+ Just bgmusic <- (HTMLMediaElement.fromElement =<< _) <$> querySelector (QuerySelector "#bgmusic") doc
+
+ addEventListener' click (Element.toEventTarget body) $ \_ -> do
+ paused <- HTMLMediaElement.paused bgmusic
+ when paused $ HTMLMediaElement.play bgmusic