Skip to content

Commit a5f74f1

Browse files
committed
Migrate Gamepad to dom
1 parent 381b485 commit a5f74f1

File tree

5 files changed

+122
-85
lines changed

5 files changed

+122
-85
lines changed

api-reports/2_12.txt

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1690,6 +1690,37 @@ GainNode[JT] val numberOfInputs: Int
16901690
GainNode[JT] val numberOfOutputs: Int
16911691
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
16921692
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
1693+
Gamepad[JT] val axes: js.Array[Double]
1694+
Gamepad[JT] val buttons: js.Array[GamepadButton]
1695+
Gamepad[JT] val connected: Boolean
1696+
Gamepad[JT] val id: String
1697+
Gamepad[JT] val index: Double
1698+
Gamepad[JT] val mapping: GamepadMappingType
1699+
Gamepad[JT] val timestamp: Double
1700+
GamepadButton[JT] val pressed: Boolean
1701+
GamepadButton[JT] val value: Double
1702+
GamepadEvent[JC] def bubbles: Boolean
1703+
GamepadEvent[JC] def cancelBubble: Boolean
1704+
GamepadEvent[JC] def cancelable: Boolean
1705+
GamepadEvent[JC] def currentTarget: EventTarget
1706+
GamepadEvent[JC] def defaultPrevented: Boolean
1707+
GamepadEvent[JC] def eventPhase: Int
1708+
GamepadEvent[JC] val gamepad: Gamepad
1709+
GamepadEvent[JC] def isTrusted: Boolean
1710+
GamepadEvent[JC] def preventDefault(): Unit
1711+
GamepadEvent[JC] def stopImmediatePropagation(): Unit
1712+
GamepadEvent[JC] def stopPropagation(): Unit
1713+
GamepadEvent[JC] def target: EventTarget
1714+
GamepadEvent[JC] def timeStamp: Double
1715+
GamepadEvent[JC] def `type`: String
1716+
GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
1717+
GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
1718+
GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
1719+
GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
1720+
GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
1721+
GamepadMappingType[JT]
1722+
GamepadMappingType[SO] final val standard: GamepadMappingType
1723+
GamepadMappingType[SO] final val unknown: GamepadMappingType
16931724
Geolocation[JT] def clearWatch(watchId: Int): Unit
16941725
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _]): Unit
16951726
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _], errorCallback: js.Function1[PositionError, _], options: PositionOptions?): Unit
@@ -14355,6 +14386,7 @@ Navigator[JC] def appName: String
1435514386
Navigator[JC] def appVersion: String
1435614387
Navigator[JC] def clipboard: Clipboard
1435714388
Navigator[JC] def geolocation: Geolocation
14389+
Navigator[JC] def getGamepads(): js.Array[Gamepad]
1435814390
Navigator[JC] def language: String
1435914391
Navigator[JC] def languages: js.Array[String]
1436014392
Navigator[JC] def onLine: Boolean
@@ -24396,39 +24428,15 @@ experimental/deviceorientation/DeviceRotationRate[JT] val gamma: Double
2439624428
experimental/domparser/package[SO] type DOMParser = dom.DOMParser (@deprecated in 2.0.0)
2439724429
experimental/domparser/package[SO] type SupportedType = dom.MIMEType (@deprecated in 2.0.0)
2439824430
experimental/domparser/package[SO] @deprecated("use dom.MIMEType instead", "2.0.0") val SupportedType = dom.MIMEType
24399-
experimental/gamepad/Gamepad[JT] val axes: js.Array[Double]
24400-
experimental/gamepad/Gamepad[JT] val buttons: js.Array[GamepadButton]
24401-
experimental/gamepad/Gamepad[JT] val connected: Boolean
24402-
experimental/gamepad/Gamepad[JT] val id: String
24403-
experimental/gamepad/Gamepad[JT] val index: Double
24404-
experimental/gamepad/Gamepad[JT] val mapping: GamepadMappingType
24405-
experimental/gamepad/Gamepad[JT] val timestamp: Double
24406-
experimental/gamepad/GamepadButton[JT] val pressed: Boolean
24407-
experimental/gamepad/GamepadButton[JT] val value: Double
24408-
experimental/gamepad/GamepadEvent[JC] def bubbles: Boolean
24409-
experimental/gamepad/GamepadEvent[JC] def cancelBubble: Boolean
24410-
experimental/gamepad/GamepadEvent[JC] def cancelable: Boolean
24411-
experimental/gamepad/GamepadEvent[JC] def currentTarget: EventTarget
24412-
experimental/gamepad/GamepadEvent[JC] def defaultPrevented: Boolean
24413-
experimental/gamepad/GamepadEvent[JC] def eventPhase: Int
24414-
experimental/gamepad/GamepadEvent[JC] val gamepad: Gamepad
24415-
experimental/gamepad/GamepadEvent[JC] def isTrusted: Boolean
24416-
experimental/gamepad/GamepadEvent[JC] def preventDefault(): Unit
24417-
experimental/gamepad/GamepadEvent[JC] def stopImmediatePropagation(): Unit
24418-
experimental/gamepad/GamepadEvent[JC] def stopPropagation(): Unit
24419-
experimental/gamepad/GamepadEvent[JC] def target: EventTarget
24420-
experimental/gamepad/GamepadEvent[JC] def timeStamp: Double
24421-
experimental/gamepad/GamepadEvent[JC] def `type`: String
24422-
experimental/gamepad/GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
24423-
experimental/gamepad/GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
24424-
experimental/gamepad/GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
24425-
experimental/gamepad/GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
24426-
experimental/gamepad/GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
24427-
experimental/gamepad/GamepadMappingType[JT]
24428-
experimental/gamepad/GamepadNavigator[JT] def getGamepads(): js.Array[Gamepad]
24429-
experimental/gamepad/package[SO] final val standard: GamepadMappingType
24430-
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator
24431-
experimental/gamepad/package[SO] final val unknown: GamepadMappingType
24431+
experimental/gamepad/package[SO] type Gamepad = dom.Gamepad (@deprecated in 2.0.0)
24432+
experimental/gamepad/package[SO] type GamepadButton = dom.GamepadButton (@deprecated in 2.0.0)
24433+
experimental/gamepad/package[SO] type GamepadEvent = dom.GamepadEvent (@deprecated in 2.0.0)
24434+
experimental/gamepad/package[SO] type GamepadEventInit = dom.GamepadEventInit (@deprecated in 2.0.0)
24435+
experimental/gamepad/package[SO] type GamepadMappingType = dom.GamepadMappingType (@deprecated in 2.0.0)
24436+
experimental/gamepad/package[SO] type GamepadNavigator = dom.Navigator (@deprecated in 2.0.0)
24437+
experimental/gamepad/package[SO] def standard: dom.GamepadMappingType (@deprecated in 2.0.0)
24438+
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator (@deprecated in 2.0.0)
24439+
experimental/gamepad/package[SO] def unknown: dom.GamepadMappingType (@deprecated in 2.0.0)
2443224440
experimental/intl/Collator[JC] def compare(string1: String, string2: String): Double
2443324441
experimental/intl/Collator[JC] def resolvedOptions(): CollatorOptions
2443424442
experimental/intl/Collator[JC] def supportedLocalesOf(locales: String | js.Array[String], options: js.Any): js.Array[String]

api-reports/2_13.txt

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1690,6 +1690,37 @@ GainNode[JT] val numberOfInputs: Int
16901690
GainNode[JT] val numberOfOutputs: Int
16911691
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
16921692
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
1693+
Gamepad[JT] val axes: js.Array[Double]
1694+
Gamepad[JT] val buttons: js.Array[GamepadButton]
1695+
Gamepad[JT] val connected: Boolean
1696+
Gamepad[JT] val id: String
1697+
Gamepad[JT] val index: Double
1698+
Gamepad[JT] val mapping: GamepadMappingType
1699+
Gamepad[JT] val timestamp: Double
1700+
GamepadButton[JT] val pressed: Boolean
1701+
GamepadButton[JT] val value: Double
1702+
GamepadEvent[JC] def bubbles: Boolean
1703+
GamepadEvent[JC] def cancelBubble: Boolean
1704+
GamepadEvent[JC] def cancelable: Boolean
1705+
GamepadEvent[JC] def currentTarget: EventTarget
1706+
GamepadEvent[JC] def defaultPrevented: Boolean
1707+
GamepadEvent[JC] def eventPhase: Int
1708+
GamepadEvent[JC] val gamepad: Gamepad
1709+
GamepadEvent[JC] def isTrusted: Boolean
1710+
GamepadEvent[JC] def preventDefault(): Unit
1711+
GamepadEvent[JC] def stopImmediatePropagation(): Unit
1712+
GamepadEvent[JC] def stopPropagation(): Unit
1713+
GamepadEvent[JC] def target: EventTarget
1714+
GamepadEvent[JC] def timeStamp: Double
1715+
GamepadEvent[JC] def `type`: String
1716+
GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
1717+
GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
1718+
GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
1719+
GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
1720+
GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
1721+
GamepadMappingType[JT]
1722+
GamepadMappingType[SO] final val standard: GamepadMappingType
1723+
GamepadMappingType[SO] final val unknown: GamepadMappingType
16931724
Geolocation[JT] def clearWatch(watchId: Int): Unit
16941725
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _]): Unit
16951726
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _], errorCallback: js.Function1[PositionError, _], options: PositionOptions?): Unit
@@ -14355,6 +14386,7 @@ Navigator[JC] def appName: String
1435514386
Navigator[JC] def appVersion: String
1435614387
Navigator[JC] def clipboard: Clipboard
1435714388
Navigator[JC] def geolocation: Geolocation
14389+
Navigator[JC] def getGamepads(): js.Array[Gamepad]
1435814390
Navigator[JC] def language: String
1435914391
Navigator[JC] def languages: js.Array[String]
1436014392
Navigator[JC] def onLine: Boolean
@@ -24396,39 +24428,15 @@ experimental/deviceorientation/DeviceRotationRate[JT] val gamma: Double
2439624428
experimental/domparser/package[SO] type DOMParser = dom.DOMParser (@deprecated in 2.0.0)
2439724429
experimental/domparser/package[SO] type SupportedType = dom.MIMEType (@deprecated in 2.0.0)
2439824430
experimental/domparser/package[SO] @deprecated("use dom.MIMEType instead", "2.0.0") val SupportedType = dom.MIMEType
24399-
experimental/gamepad/Gamepad[JT] val axes: js.Array[Double]
24400-
experimental/gamepad/Gamepad[JT] val buttons: js.Array[GamepadButton]
24401-
experimental/gamepad/Gamepad[JT] val connected: Boolean
24402-
experimental/gamepad/Gamepad[JT] val id: String
24403-
experimental/gamepad/Gamepad[JT] val index: Double
24404-
experimental/gamepad/Gamepad[JT] val mapping: GamepadMappingType
24405-
experimental/gamepad/Gamepad[JT] val timestamp: Double
24406-
experimental/gamepad/GamepadButton[JT] val pressed: Boolean
24407-
experimental/gamepad/GamepadButton[JT] val value: Double
24408-
experimental/gamepad/GamepadEvent[JC] def bubbles: Boolean
24409-
experimental/gamepad/GamepadEvent[JC] def cancelBubble: Boolean
24410-
experimental/gamepad/GamepadEvent[JC] def cancelable: Boolean
24411-
experimental/gamepad/GamepadEvent[JC] def currentTarget: EventTarget
24412-
experimental/gamepad/GamepadEvent[JC] def defaultPrevented: Boolean
24413-
experimental/gamepad/GamepadEvent[JC] def eventPhase: Int
24414-
experimental/gamepad/GamepadEvent[JC] val gamepad: Gamepad
24415-
experimental/gamepad/GamepadEvent[JC] def isTrusted: Boolean
24416-
experimental/gamepad/GamepadEvent[JC] def preventDefault(): Unit
24417-
experimental/gamepad/GamepadEvent[JC] def stopImmediatePropagation(): Unit
24418-
experimental/gamepad/GamepadEvent[JC] def stopPropagation(): Unit
24419-
experimental/gamepad/GamepadEvent[JC] def target: EventTarget
24420-
experimental/gamepad/GamepadEvent[JC] def timeStamp: Double
24421-
experimental/gamepad/GamepadEvent[JC] def `type`: String
24422-
experimental/gamepad/GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
24423-
experimental/gamepad/GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
24424-
experimental/gamepad/GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
24425-
experimental/gamepad/GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
24426-
experimental/gamepad/GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
24427-
experimental/gamepad/GamepadMappingType[JT]
24428-
experimental/gamepad/GamepadNavigator[JT] def getGamepads(): js.Array[Gamepad]
24429-
experimental/gamepad/package[SO] final val standard: GamepadMappingType
24430-
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator
24431-
experimental/gamepad/package[SO] final val unknown: GamepadMappingType
24431+
experimental/gamepad/package[SO] type Gamepad = dom.Gamepad (@deprecated in 2.0.0)
24432+
experimental/gamepad/package[SO] type GamepadButton = dom.GamepadButton (@deprecated in 2.0.0)
24433+
experimental/gamepad/package[SO] type GamepadEvent = dom.GamepadEvent (@deprecated in 2.0.0)
24434+
experimental/gamepad/package[SO] type GamepadEventInit = dom.GamepadEventInit (@deprecated in 2.0.0)
24435+
experimental/gamepad/package[SO] type GamepadMappingType = dom.GamepadMappingType (@deprecated in 2.0.0)
24436+
experimental/gamepad/package[SO] type GamepadNavigator = dom.Navigator (@deprecated in 2.0.0)
24437+
experimental/gamepad/package[SO] def standard: dom.GamepadMappingType (@deprecated in 2.0.0)
24438+
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator (@deprecated in 2.0.0)
24439+
experimental/gamepad/package[SO] def unknown: dom.GamepadMappingType (@deprecated in 2.0.0)
2443224440
experimental/intl/Collator[JC] def compare(string1: String, string2: String): Double
2443324441
experimental/intl/Collator[JC] def resolvedOptions(): CollatorOptions
2443424442
experimental/intl/Collator[JC] def supportedLocalesOf(locales: String | js.Array[String], options: js.Any): js.Array[String]

src/main/scala/org/scalajs/dom/experimental/gamepad/Gamepad.scala renamed to src/main/scala/org/scalajs/dom/Gamepad.scala

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,20 @@
44
* [[https://www.w3.org/TR/2015/WD-gamepad-20151217/ W3C Working Draft]]
55
*/
66

7-
package org.scalajs.dom.experimental.gamepad
7+
package org.scalajs.dom
88

9-
import org.scalajs.dom
10-
import org.scalajs.dom.EventInit
119
import scala.scalajs.js
1210
import scala.scalajs.js.annotation._
1311

1412
@js.native
1513
trait GamepadMappingType extends js.Any
1614

15+
object GamepadMappingType {
16+
final val `unknown`: GamepadMappingType = "".asInstanceOf[GamepadMappingType]
17+
18+
final val `standard`: GamepadMappingType = "standard".asInstanceOf[GamepadMappingType]
19+
}
20+
1721
/** Represents the state of a button. */
1822
trait GamepadButton extends js.Any {
1923

@@ -57,12 +61,6 @@ trait GamepadEventInit extends EventInit {
5761

5862
@JSGlobal("GamepadEvent")
5963
@js.native
60-
class GamepadEvent(typeArg: String, init: js.UndefOr[GamepadEventInit] = js.undefined)
61-
extends dom.Event(typeArg, init) {
64+
class GamepadEvent(typeArg: String, init: js.UndefOr[GamepadEventInit] = js.undefined) extends Event(typeArg, init) {
6265
val gamepad: Gamepad = js.native
6366
}
64-
65-
@js.native
66-
trait GamepadNavigator extends js.Any {
67-
def getGamepads(): js.Array[Gamepad] = js.native
68-
}
Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,35 @@
1-
package org.scalajs.dom.experimental
1+
package org.scalajs
2+
package dom.experimental
23

3-
import org.scalajs.dom
44
import scala.language.implicitConversions
55

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

8+
@deprecated("use dom.GamepadMappingType instead", "2.0.0")
9+
type GamepadMappingType = dom.GamepadMappingType
10+
11+
@deprecated("use dom.GamepadButton instead", "2.0.0")
12+
type GamepadButton = dom.GamepadButton
13+
14+
@deprecated("use dom.Gamepad instead", "2.0.0")
15+
type Gamepad = dom.Gamepad
16+
17+
@deprecated("use dom.GamepadEventInit instead", "2.0.0")
18+
type GamepadEventInit = dom.GamepadEventInit
19+
20+
@deprecated("use dom.GamepadEvent instead", "2.0.0")
21+
type GamepadEvent = dom.GamepadEvent
22+
23+
@deprecated("use dom.Navigator instead", "2.0.0")
24+
type GamepadNavigator = dom.Navigator
25+
26+
@deprecated("use dom.Navigator directly instead", "2.0.0")
1227
implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator =
13-
navigator.asInstanceOf[GamepadNavigator]
28+
navigator
1429

15-
final val `unknown`: GamepadMappingType = "".asInstanceOf[GamepadMappingType]
30+
@deprecated("use dom.GamepadMappingType.`unknown` instead", "2.0.0")
31+
def `unknown`: dom.GamepadMappingType = dom.GamepadMappingType.`unknown`
1632

17-
final val `standard`: GamepadMappingType = "standard".asInstanceOf[GamepadMappingType]
33+
@deprecated("use dom.GamepadMappingType.`standard` instead", "2.0.0")
34+
def `standard`: dom.GamepadMappingType = dom.GamepadMappingType.`standard`
1835
}

src/main/scala/org/scalajs/dom/lib.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,12 @@ class Navigator
325325
* The data parameter is the ArrayBufferView, Blob, DOMString, or FormData data that is to be transmitted.
326326
*/
327327
def sendBeacon(url: String, data: BodyInit = js.native): Boolean = js.native
328+
329+
/** Implements the Gamepad API.
330+
*
331+
* [[https://www.w3.org/TR/2015/WD-gamepad-20151217/ W3C Working Draft]]
332+
*/
333+
def getGamepads(): js.Array[Gamepad] = js.native
328334
}
329335

330336
@js.native

0 commit comments

Comments
 (0)