{-# 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