summaryrefslogtreecommitdiff
path: root/Miso/FFI/Fullscreen.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Miso/FFI/Fullscreen.hs')
-rw-r--r--Miso/FFI/Fullscreen.hs28
1 files changed, 28 insertions, 0 deletions
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