Skip to content

Migrate Gamepad to dom #574

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 41 additions & 33 deletions api-reports/2_12.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1690,6 +1690,37 @@ GainNode[JT] val numberOfInputs: Int
GainNode[JT] val numberOfOutputs: Int
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
Gamepad[JT] val axes: js.Array[Double]
Gamepad[JT] val buttons: js.Array[GamepadButton]
Gamepad[JT] val connected: Boolean
Gamepad[JT] val id: String
Gamepad[JT] val index: Double
Gamepad[JT] val mapping: GamepadMappingType
Gamepad[JT] val timestamp: Double
GamepadButton[JT] val pressed: Boolean
GamepadButton[JT] val value: Double
GamepadEvent[JC] def bubbles: Boolean
GamepadEvent[JC] def cancelBubble: Boolean
GamepadEvent[JC] def cancelable: Boolean
GamepadEvent[JC] def currentTarget: EventTarget
GamepadEvent[JC] def defaultPrevented: Boolean
GamepadEvent[JC] def eventPhase: Int
GamepadEvent[JC] val gamepad: Gamepad
GamepadEvent[JC] def isTrusted: Boolean
GamepadEvent[JC] def preventDefault(): Unit
GamepadEvent[JC] def stopImmediatePropagation(): Unit
GamepadEvent[JC] def stopPropagation(): Unit
GamepadEvent[JC] def target: EventTarget
GamepadEvent[JC] def timeStamp: Double
GamepadEvent[JC] def `type`: String
GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
GamepadMappingType[JT]
GamepadMappingType[SO] final val standard: GamepadMappingType
GamepadMappingType[SO] final val unknown: GamepadMappingType
Geolocation[JT] def clearWatch(watchId: Int): Unit
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _]): Unit
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _], errorCallback: js.Function1[PositionError, _], options: PositionOptions?): Unit
Expand Down Expand Up @@ -14355,6 +14386,7 @@ Navigator[JC] def appName: String
Navigator[JC] def appVersion: String
Navigator[JC] def clipboard: Clipboard
Navigator[JC] def geolocation: Geolocation
Navigator[JC] def getGamepads(): js.Array[Gamepad]
Navigator[JC] def language: String
Navigator[JC] def languages: js.Array[String]
Navigator[JC] def onLine: Boolean
Expand Down Expand Up @@ -24396,39 +24428,15 @@ experimental/deviceorientation/DeviceRotationRate[JT] val gamma: Double
experimental/domparser/package[SO] type DOMParser = dom.DOMParser (@deprecated in 2.0.0)
experimental/domparser/package[SO] type SupportedType = dom.MIMEType (@deprecated in 2.0.0)
experimental/domparser/package[SO] @deprecated("use dom.MIMEType instead", "2.0.0") val SupportedType = dom.MIMEType
experimental/gamepad/Gamepad[JT] val axes: js.Array[Double]
experimental/gamepad/Gamepad[JT] val buttons: js.Array[GamepadButton]
experimental/gamepad/Gamepad[JT] val connected: Boolean
experimental/gamepad/Gamepad[JT] val id: String
experimental/gamepad/Gamepad[JT] val index: Double
experimental/gamepad/Gamepad[JT] val mapping: GamepadMappingType
experimental/gamepad/Gamepad[JT] val timestamp: Double
experimental/gamepad/GamepadButton[JT] val pressed: Boolean
experimental/gamepad/GamepadButton[JT] val value: Double
experimental/gamepad/GamepadEvent[JC] def bubbles: Boolean
experimental/gamepad/GamepadEvent[JC] def cancelBubble: Boolean
experimental/gamepad/GamepadEvent[JC] def cancelable: Boolean
experimental/gamepad/GamepadEvent[JC] def currentTarget: EventTarget
experimental/gamepad/GamepadEvent[JC] def defaultPrevented: Boolean
experimental/gamepad/GamepadEvent[JC] def eventPhase: Int
experimental/gamepad/GamepadEvent[JC] val gamepad: Gamepad
experimental/gamepad/GamepadEvent[JC] def isTrusted: Boolean
experimental/gamepad/GamepadEvent[JC] def preventDefault(): Unit
experimental/gamepad/GamepadEvent[JC] def stopImmediatePropagation(): Unit
experimental/gamepad/GamepadEvent[JC] def stopPropagation(): Unit
experimental/gamepad/GamepadEvent[JC] def target: EventTarget
experimental/gamepad/GamepadEvent[JC] def timeStamp: Double
experimental/gamepad/GamepadEvent[JC] def `type`: String
experimental/gamepad/GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
experimental/gamepad/GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
experimental/gamepad/GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
experimental/gamepad/GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
experimental/gamepad/GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
experimental/gamepad/GamepadMappingType[JT]
experimental/gamepad/GamepadNavigator[JT] def getGamepads(): js.Array[Gamepad]
experimental/gamepad/package[SO] final val standard: GamepadMappingType
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator
experimental/gamepad/package[SO] final val unknown: GamepadMappingType
experimental/gamepad/package[SO] type Gamepad = dom.Gamepad (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadButton = dom.GamepadButton (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadEvent = dom.GamepadEvent (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadEventInit = dom.GamepadEventInit (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadMappingType = dom.GamepadMappingType (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadNavigator = dom.Navigator (@deprecated in 2.0.0)
experimental/gamepad/package[SO] def standard: dom.GamepadMappingType (@deprecated in 2.0.0)
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator (@deprecated in 2.0.0)
experimental/gamepad/package[SO] def unknown: dom.GamepadMappingType (@deprecated in 2.0.0)
experimental/intl/Collator[JC] def compare(string1: String, string2: String): Double
experimental/intl/Collator[JC] def resolvedOptions(): CollatorOptions
experimental/intl/Collator[JC] def supportedLocalesOf(locales: String | js.Array[String], options: js.Any): js.Array[String]
Expand Down
74 changes: 41 additions & 33 deletions api-reports/2_13.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1690,6 +1690,37 @@ GainNode[JT] val numberOfInputs: Int
GainNode[JT] val numberOfOutputs: Int
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
Gamepad[JT] val axes: js.Array[Double]
Gamepad[JT] val buttons: js.Array[GamepadButton]
Gamepad[JT] val connected: Boolean
Gamepad[JT] val id: String
Gamepad[JT] val index: Double
Gamepad[JT] val mapping: GamepadMappingType
Gamepad[JT] val timestamp: Double
GamepadButton[JT] val pressed: Boolean
GamepadButton[JT] val value: Double
GamepadEvent[JC] def bubbles: Boolean
GamepadEvent[JC] def cancelBubble: Boolean
GamepadEvent[JC] def cancelable: Boolean
GamepadEvent[JC] def currentTarget: EventTarget
GamepadEvent[JC] def defaultPrevented: Boolean
GamepadEvent[JC] def eventPhase: Int
GamepadEvent[JC] val gamepad: Gamepad
GamepadEvent[JC] def isTrusted: Boolean
GamepadEvent[JC] def preventDefault(): Unit
GamepadEvent[JC] def stopImmediatePropagation(): Unit
GamepadEvent[JC] def stopPropagation(): Unit
GamepadEvent[JC] def target: EventTarget
GamepadEvent[JC] def timeStamp: Double
GamepadEvent[JC] def `type`: String
GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
GamepadMappingType[JT]
GamepadMappingType[SO] final val standard: GamepadMappingType
GamepadMappingType[SO] final val unknown: GamepadMappingType
Geolocation[JT] def clearWatch(watchId: Int): Unit
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _]): Unit
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _], errorCallback: js.Function1[PositionError, _], options: PositionOptions?): Unit
Expand Down Expand Up @@ -14355,6 +14386,7 @@ Navigator[JC] def appName: String
Navigator[JC] def appVersion: String
Navigator[JC] def clipboard: Clipboard
Navigator[JC] def geolocation: Geolocation
Navigator[JC] def getGamepads(): js.Array[Gamepad]
Navigator[JC] def language: String
Navigator[JC] def languages: js.Array[String]
Navigator[JC] def onLine: Boolean
Expand Down Expand Up @@ -24396,39 +24428,15 @@ experimental/deviceorientation/DeviceRotationRate[JT] val gamma: Double
experimental/domparser/package[SO] type DOMParser = dom.DOMParser (@deprecated in 2.0.0)
experimental/domparser/package[SO] type SupportedType = dom.MIMEType (@deprecated in 2.0.0)
experimental/domparser/package[SO] @deprecated("use dom.MIMEType instead", "2.0.0") val SupportedType = dom.MIMEType
experimental/gamepad/Gamepad[JT] val axes: js.Array[Double]
experimental/gamepad/Gamepad[JT] val buttons: js.Array[GamepadButton]
experimental/gamepad/Gamepad[JT] val connected: Boolean
experimental/gamepad/Gamepad[JT] val id: String
experimental/gamepad/Gamepad[JT] val index: Double
experimental/gamepad/Gamepad[JT] val mapping: GamepadMappingType
experimental/gamepad/Gamepad[JT] val timestamp: Double
experimental/gamepad/GamepadButton[JT] val pressed: Boolean
experimental/gamepad/GamepadButton[JT] val value: Double
experimental/gamepad/GamepadEvent[JC] def bubbles: Boolean
experimental/gamepad/GamepadEvent[JC] def cancelBubble: Boolean
experimental/gamepad/GamepadEvent[JC] def cancelable: Boolean
experimental/gamepad/GamepadEvent[JC] def currentTarget: EventTarget
experimental/gamepad/GamepadEvent[JC] def defaultPrevented: Boolean
experimental/gamepad/GamepadEvent[JC] def eventPhase: Int
experimental/gamepad/GamepadEvent[JC] val gamepad: Gamepad
experimental/gamepad/GamepadEvent[JC] def isTrusted: Boolean
experimental/gamepad/GamepadEvent[JC] def preventDefault(): Unit
experimental/gamepad/GamepadEvent[JC] def stopImmediatePropagation(): Unit
experimental/gamepad/GamepadEvent[JC] def stopPropagation(): Unit
experimental/gamepad/GamepadEvent[JC] def target: EventTarget
experimental/gamepad/GamepadEvent[JC] def timeStamp: Double
experimental/gamepad/GamepadEvent[JC] def `type`: String
experimental/gamepad/GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
experimental/gamepad/GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
experimental/gamepad/GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
experimental/gamepad/GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
experimental/gamepad/GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
experimental/gamepad/GamepadMappingType[JT]
experimental/gamepad/GamepadNavigator[JT] def getGamepads(): js.Array[Gamepad]
experimental/gamepad/package[SO] final val standard: GamepadMappingType
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator
experimental/gamepad/package[SO] final val unknown: GamepadMappingType
experimental/gamepad/package[SO] type Gamepad = dom.Gamepad (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadButton = dom.GamepadButton (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadEvent = dom.GamepadEvent (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadEventInit = dom.GamepadEventInit (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadMappingType = dom.GamepadMappingType (@deprecated in 2.0.0)
experimental/gamepad/package[SO] type GamepadNavigator = dom.Navigator (@deprecated in 2.0.0)
experimental/gamepad/package[SO] def standard: dom.GamepadMappingType (@deprecated in 2.0.0)
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator (@deprecated in 2.0.0)
experimental/gamepad/package[SO] def unknown: dom.GamepadMappingType (@deprecated in 2.0.0)
experimental/intl/Collator[JC] def compare(string1: String, string2: String): Double
experimental/intl/Collator[JC] def resolvedOptions(): CollatorOptions
experimental/intl/Collator[JC] def supportedLocalesOf(locales: String | js.Array[String], options: js.Any): js.Array[String]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,20 @@
* [[https://www.w3.org/TR/2015/WD-gamepad-20151217/ W3C Working Draft]]
*/

package org.scalajs.dom.experimental.gamepad
package org.scalajs.dom

import org.scalajs.dom
import org.scalajs.dom.EventInit
import scala.scalajs.js
import scala.scalajs.js.annotation._

@js.native
trait GamepadMappingType extends js.Any

object GamepadMappingType {
final val `unknown`: GamepadMappingType = "".asInstanceOf[GamepadMappingType]

final val `standard`: GamepadMappingType = "standard".asInstanceOf[GamepadMappingType]
}

/** Represents the state of a button. */
trait GamepadButton extends js.Any {

Expand Down Expand Up @@ -57,12 +61,6 @@ trait GamepadEventInit extends EventInit {

@JSGlobal("GamepadEvent")
@js.native
class GamepadEvent(typeArg: String, init: js.UndefOr[GamepadEventInit] = js.undefined)
extends dom.Event(typeArg, init) {
class GamepadEvent(typeArg: String, init: js.UndefOr[GamepadEventInit] = js.undefined) extends Event(typeArg, init) {
val gamepad: Gamepad = js.native
}

@js.native
trait GamepadNavigator extends js.Any {
def getGamepads(): js.Array[Gamepad] = js.native
}
35 changes: 26 additions & 9 deletions src/main/scala/org/scalajs/dom/experimental/gamepad/package.scala
Original file line number Diff line number Diff line change
@@ -1,18 +1,35 @@
package org.scalajs.dom.experimental
package org.scalajs
package dom.experimental

import org.scalajs.dom
import scala.language.implicitConversions

/** Implements the Gamepad API.
*
* [[https://www.w3.org/TR/2015/WD-gamepad-20151217/ W3C Working Draft]]
*/
package object gamepad {

@deprecated("use dom.GamepadMappingType instead", "2.0.0")
type GamepadMappingType = dom.GamepadMappingType

@deprecated("use dom.GamepadButton instead", "2.0.0")
type GamepadButton = dom.GamepadButton

@deprecated("use dom.Gamepad instead", "2.0.0")
type Gamepad = dom.Gamepad

@deprecated("use dom.GamepadEventInit instead", "2.0.0")
type GamepadEventInit = dom.GamepadEventInit

@deprecated("use dom.GamepadEvent instead", "2.0.0")
type GamepadEvent = dom.GamepadEvent

@deprecated("use dom.Navigator instead", "2.0.0")
type GamepadNavigator = dom.Navigator

@deprecated("use dom.Navigator directly instead", "2.0.0")
implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator =
navigator.asInstanceOf[GamepadNavigator]
navigator

final val `unknown`: GamepadMappingType = "".asInstanceOf[GamepadMappingType]
@deprecated("use dom.GamepadMappingType.`unknown` instead", "2.0.0")
def `unknown`: dom.GamepadMappingType = dom.GamepadMappingType.`unknown`

final val `standard`: GamepadMappingType = "standard".asInstanceOf[GamepadMappingType]
@deprecated("use dom.GamepadMappingType.`standard` instead", "2.0.0")
def `standard`: dom.GamepadMappingType = dom.GamepadMappingType.`standard`
}
6 changes: 6 additions & 0 deletions src/main/scala/org/scalajs/dom/lib.scala
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,12 @@ class Navigator
* The data parameter is the ArrayBufferView, Blob, DOMString, or FormData data that is to be transmitted.
*/
def sendBeacon(url: String, data: BodyInit = js.native): Boolean = js.native

/** Implements the Gamepad API.
*
* [[https://www.w3.org/TR/2015/WD-gamepad-20151217/ W3C Working Draft]]
*/
def getGamepads(): js.Array[Gamepad] = js.native
}

@js.native
Expand Down