From 294c8e19b136f06ca7fa1bb4e4d109e90e2bb033 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Sat, 23 Nov 2019 16:38:47 -0800 Subject: Add Com.MusicMeetsComics --- Miso/FFI/Audio.hs | 20 ++++++++++++++++++++ Miso/FFI/Document.hs | 11 +++++++++++ Miso/FFI/Fullscreen.hs | 28 ++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 Miso/FFI/Audio.hs create mode 100644 Miso/FFI/Document.hs create mode 100644 Miso/FFI/Fullscreen.hs (limited to 'Miso') diff --git a/Miso/FFI/Audio.hs b/Miso/FFI/Audio.hs new file mode 100644 index 0000000..e21ab57 --- /dev/null +++ b/Miso/FFI/Audio.hs @@ -0,0 +1,20 @@ +{-# LANGUAGE NoImplicitPrelude #-} +module Miso.FFI.Audio where + +import GHCJS.Types +import Protolude + +{- +Usage: + +obj <- Miso.FFI.Document.getElementById "myAudioPlayer" +play obj +pause obj + +-} + +foreign import javascript unsafe "$1.play();" + play :: JSVal -> IO () + +foreign import javascript unsafe "$1.pause();" + pause :: JSVal -> IO () diff --git a/Miso/FFI/Document.hs b/Miso/FFI/Document.hs new file mode 100644 index 0000000..f3a7bef --- /dev/null +++ b/Miso/FFI/Document.hs @@ -0,0 +1,11 @@ +{-# LANGUAGE NoImplicitPrelude #-} +module Miso.FFI.Document where + +import GHCJS.Types +import Protolude + +foreign import javascript unsafe "$r = document.getElementById($1);" + getElementById :: JSString -> IO JSVal + +foreign import javascript unsafe "$r = document.querySelector($1);" + querySelector :: JSString -> IO JSVal diff --git a/Miso/FFI/Fullscreen.hs b/Miso/FFI/Fullscreen.hs new file mode 100644 index 0000000..db2e37e --- /dev/null +++ b/Miso/FFI/Fullscreen.hs @@ -0,0 +1,28 @@ +{-# LANGUAGE NoImplicitPrelude #-} +module Miso.FFI.Fullscreen where + +import GHCJS.Types +import Protolude + +-- | Requests that the user agent switch from full-screen mode back to windowed +-- mode. Returns a Promise which is resolved once full-screen mode has been +-- completely shut off. +-- +-- https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen +foreign import javascript unsafe "$r = document.exitFullscreen();" + exitFullscreen :: IO JSVal + +exit :: IO JSVal +exit = exitFullscreen + +-- | Asks the user agent to place the specified element (and, by extension, its +-- descendants) into full-screen mode, removing all of the browser's UI elements +-- as well as all other applications from the screen. Returns a Promise which is +-- resolved once full-screen mode has been activated. +-- +-- https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen +foreign import javascript unsafe "$r = $1.requestFullscreen();" + requestFullscreen :: JSVal -> IO JSVal + +request :: JSVal -> IO JSVal +request = requestFullscreen -- cgit v1.2.3