Skip to content

Commit 3b38146

Browse files
authored
Merge pull request #574 from scala-js/topic/migrate-gamepad
Migrate Gamepad to dom
2 parents 4845e72 + a5f74f1 commit 3b38146

File tree

5 files changed

+122
-85
lines changed

5 files changed

+122
-85
lines changed

api-reports/2_12.txt

+41-33
Original file line numberDiff line numberDiff line change
@@ -1706,6 +1706,37 @@ GainNode[JT] val numberOfInputs: Int
17061706
GainNode[JT] val numberOfOutputs: Int
17071707
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
17081708
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
1709+
Gamepad[JT] val axes: js.Array[Double]
1710+
Gamepad[JT] val buttons: js.Array[GamepadButton]
1711+
Gamepad[JT] val connected: Boolean
1712+
Gamepad[JT] val id: String
1713+
Gamepad[JT] val index: Double
1714+
Gamepad[JT] val mapping: GamepadMappingType
1715+
Gamepad[JT] val timestamp: Double
1716+
GamepadButton[JT] val pressed: Boolean
1717+
GamepadButton[JT] val value: Double
1718+
GamepadEvent[JC] def bubbles: Boolean
1719+
GamepadEvent[JC] def cancelBubble: Boolean
1720+
GamepadEvent[JC] def cancelable: Boolean
1721+
GamepadEvent[JC] def currentTarget: EventTarget
1722+
GamepadEvent[JC] def defaultPrevented: Boolean
1723+
GamepadEvent[JC] def eventPhase: Int
1724+
GamepadEvent[JC] val gamepad: Gamepad
1725+
GamepadEvent[JC] def isTrusted: Boolean
1726+
GamepadEvent[JC] def preventDefault(): Unit
1727+
GamepadEvent[JC] def stopImmediatePropagation(): Unit
1728+
GamepadEvent[JC] def stopPropagation(): Unit
1729+
GamepadEvent[JC] def target: EventTarget
1730+
GamepadEvent[JC] def timeStamp: Double
1731+
GamepadEvent[JC] def `type`: String
1732+
GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
1733+
GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
1734+
GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
1735+
GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
1736+
GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
1737+
GamepadMappingType[JT]
1738+
GamepadMappingType[SO] final val standard: GamepadMappingType
1739+
GamepadMappingType[SO] final val unknown: GamepadMappingType
17091740
Geolocation[JT] def clearWatch(watchId: Int): Unit
17101741
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _]): Unit
17111742
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _], errorCallback: js.Function1[PositionError, _], options: PositionOptions?): Unit
@@ -14371,6 +14402,7 @@ Navigator[JC] def appName: String
1437114402
Navigator[JC] def appVersion: String
1437214403
Navigator[JC] def clipboard: Clipboard
1437314404
Navigator[JC] def geolocation: Geolocation
14405+
Navigator[JC] def getGamepads(): js.Array[Gamepad]
1437414406
Navigator[JC] def language: String
1437514407
Navigator[JC] def languages: js.Array[String]
1437614408
Navigator[JC] def onLine: Boolean
@@ -24399,39 +24431,15 @@ experimental/deviceorientation/DeviceRotationRate[JT] val gamma: Double
2439924431
experimental/domparser/package[SO] type DOMParser = dom.DOMParser (@deprecated in 2.0.0)
2440024432
experimental/domparser/package[SO] type SupportedType = dom.MIMEType (@deprecated in 2.0.0)
2440124433
experimental/domparser/package[SO] @deprecated("use dom.MIMEType instead", "2.0.0") val SupportedType = dom.MIMEType
24402-
experimental/gamepad/Gamepad[JT] val axes: js.Array[Double]
24403-
experimental/gamepad/Gamepad[JT] val buttons: js.Array[GamepadButton]
24404-
experimental/gamepad/Gamepad[JT] val connected: Boolean
24405-
experimental/gamepad/Gamepad[JT] val id: String
24406-
experimental/gamepad/Gamepad[JT] val index: Double
24407-
experimental/gamepad/Gamepad[JT] val mapping: GamepadMappingType
24408-
experimental/gamepad/Gamepad[JT] val timestamp: Double
24409-
experimental/gamepad/GamepadButton[JT] val pressed: Boolean
24410-
experimental/gamepad/GamepadButton[JT] val value: Double
24411-
experimental/gamepad/GamepadEvent[JC] def bubbles: Boolean
24412-
experimental/gamepad/GamepadEvent[JC] def cancelBubble: Boolean
24413-
experimental/gamepad/GamepadEvent[JC] def cancelable: Boolean
24414-
experimental/gamepad/GamepadEvent[JC] def currentTarget: EventTarget
24415-
experimental/gamepad/GamepadEvent[JC] def defaultPrevented: Boolean
24416-
experimental/gamepad/GamepadEvent[JC] def eventPhase: Int
24417-
experimental/gamepad/GamepadEvent[JC] val gamepad: Gamepad
24418-
experimental/gamepad/GamepadEvent[JC] def isTrusted: Boolean
24419-
experimental/gamepad/GamepadEvent[JC] def preventDefault(): Unit
24420-
experimental/gamepad/GamepadEvent[JC] def stopImmediatePropagation(): Unit
24421-
experimental/gamepad/GamepadEvent[JC] def stopPropagation(): Unit
24422-
experimental/gamepad/GamepadEvent[JC] def target: EventTarget
24423-
experimental/gamepad/GamepadEvent[JC] def timeStamp: Double
24424-
experimental/gamepad/GamepadEvent[JC] def `type`: String
24425-
experimental/gamepad/GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
24426-
experimental/gamepad/GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
24427-
experimental/gamepad/GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
24428-
experimental/gamepad/GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
24429-
experimental/gamepad/GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
24430-
experimental/gamepad/GamepadMappingType[JT]
24431-
experimental/gamepad/GamepadNavigator[JT] def getGamepads(): js.Array[Gamepad]
24432-
experimental/gamepad/package[SO] final val standard: GamepadMappingType
24433-
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator
24434-
experimental/gamepad/package[SO] final val unknown: GamepadMappingType
24434+
experimental/gamepad/package[SO] type Gamepad = dom.Gamepad (@deprecated in 2.0.0)
24435+
experimental/gamepad/package[SO] type GamepadButton = dom.GamepadButton (@deprecated in 2.0.0)
24436+
experimental/gamepad/package[SO] type GamepadEvent = dom.GamepadEvent (@deprecated in 2.0.0)
24437+
experimental/gamepad/package[SO] type GamepadEventInit = dom.GamepadEventInit (@deprecated in 2.0.0)
24438+
experimental/gamepad/package[SO] type GamepadMappingType = dom.GamepadMappingType (@deprecated in 2.0.0)
24439+
experimental/gamepad/package[SO] type GamepadNavigator = dom.Navigator (@deprecated in 2.0.0)
24440+
experimental/gamepad/package[SO] def standard: dom.GamepadMappingType (@deprecated in 2.0.0)
24441+
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator (@deprecated in 2.0.0)
24442+
experimental/gamepad/package[SO] def unknown: dom.GamepadMappingType (@deprecated in 2.0.0)
2443524443
experimental/intl/Collator[JC] def compare(string1: String, string2: String): Double
2443624444
experimental/intl/Collator[JC] def resolvedOptions(): CollatorOptions
2443724445
experimental/intl/Collator[JC] def supportedLocalesOf(locales: String | js.Array[String], options: js.Any): js.Array[String]

api-reports/2_13.txt

+41-33
Original file line numberDiff line numberDiff line change
@@ -1706,6 +1706,37 @@ GainNode[JT] val numberOfInputs: Int
17061706
GainNode[JT] val numberOfOutputs: Int
17071707
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
17081708
GainNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
1709+
Gamepad[JT] val axes: js.Array[Double]
1710+
Gamepad[JT] val buttons: js.Array[GamepadButton]
1711+
Gamepad[JT] val connected: Boolean
1712+
Gamepad[JT] val id: String
1713+
Gamepad[JT] val index: Double
1714+
Gamepad[JT] val mapping: GamepadMappingType
1715+
Gamepad[JT] val timestamp: Double
1716+
GamepadButton[JT] val pressed: Boolean
1717+
GamepadButton[JT] val value: Double
1718+
GamepadEvent[JC] def bubbles: Boolean
1719+
GamepadEvent[JC] def cancelBubble: Boolean
1720+
GamepadEvent[JC] def cancelable: Boolean
1721+
GamepadEvent[JC] def currentTarget: EventTarget
1722+
GamepadEvent[JC] def defaultPrevented: Boolean
1723+
GamepadEvent[JC] def eventPhase: Int
1724+
GamepadEvent[JC] val gamepad: Gamepad
1725+
GamepadEvent[JC] def isTrusted: Boolean
1726+
GamepadEvent[JC] def preventDefault(): Unit
1727+
GamepadEvent[JC] def stopImmediatePropagation(): Unit
1728+
GamepadEvent[JC] def stopPropagation(): Unit
1729+
GamepadEvent[JC] def target: EventTarget
1730+
GamepadEvent[JC] def timeStamp: Double
1731+
GamepadEvent[JC] def `type`: String
1732+
GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
1733+
GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
1734+
GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
1735+
GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
1736+
GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
1737+
GamepadMappingType[JT]
1738+
GamepadMappingType[SO] final val standard: GamepadMappingType
1739+
GamepadMappingType[SO] final val unknown: GamepadMappingType
17091740
Geolocation[JT] def clearWatch(watchId: Int): Unit
17101741
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _]): Unit
17111742
Geolocation[JT] def getCurrentPosition(successCallback: js.Function1[Position, _], errorCallback: js.Function1[PositionError, _], options: PositionOptions?): Unit
@@ -14371,6 +14402,7 @@ Navigator[JC] def appName: String
1437114402
Navigator[JC] def appVersion: String
1437214403
Navigator[JC] def clipboard: Clipboard
1437314404
Navigator[JC] def geolocation: Geolocation
14405+
Navigator[JC] def getGamepads(): js.Array[Gamepad]
1437414406
Navigator[JC] def language: String
1437514407
Navigator[JC] def languages: js.Array[String]
1437614408
Navigator[JC] def onLine: Boolean
@@ -24399,39 +24431,15 @@ experimental/deviceorientation/DeviceRotationRate[JT] val gamma: Double
2439924431
experimental/domparser/package[SO] type DOMParser = dom.DOMParser (@deprecated in 2.0.0)
2440024432
experimental/domparser/package[SO] type SupportedType = dom.MIMEType (@deprecated in 2.0.0)
2440124433
experimental/domparser/package[SO] @deprecated("use dom.MIMEType instead", "2.0.0") val SupportedType = dom.MIMEType
24402-
experimental/gamepad/Gamepad[JT] val axes: js.Array[Double]
24403-
experimental/gamepad/Gamepad[JT] val buttons: js.Array[GamepadButton]
24404-
experimental/gamepad/Gamepad[JT] val connected: Boolean
24405-
experimental/gamepad/Gamepad[JT] val id: String
24406-
experimental/gamepad/Gamepad[JT] val index: Double
24407-
experimental/gamepad/Gamepad[JT] val mapping: GamepadMappingType
24408-
experimental/gamepad/Gamepad[JT] val timestamp: Double
24409-
experimental/gamepad/GamepadButton[JT] val pressed: Boolean
24410-
experimental/gamepad/GamepadButton[JT] val value: Double
24411-
experimental/gamepad/GamepadEvent[JC] def bubbles: Boolean
24412-
experimental/gamepad/GamepadEvent[JC] def cancelBubble: Boolean
24413-
experimental/gamepad/GamepadEvent[JC] def cancelable: Boolean
24414-
experimental/gamepad/GamepadEvent[JC] def currentTarget: EventTarget
24415-
experimental/gamepad/GamepadEvent[JC] def defaultPrevented: Boolean
24416-
experimental/gamepad/GamepadEvent[JC] def eventPhase: Int
24417-
experimental/gamepad/GamepadEvent[JC] val gamepad: Gamepad
24418-
experimental/gamepad/GamepadEvent[JC] def isTrusted: Boolean
24419-
experimental/gamepad/GamepadEvent[JC] def preventDefault(): Unit
24420-
experimental/gamepad/GamepadEvent[JC] def stopImmediatePropagation(): Unit
24421-
experimental/gamepad/GamepadEvent[JC] def stopPropagation(): Unit
24422-
experimental/gamepad/GamepadEvent[JC] def target: EventTarget
24423-
experimental/gamepad/GamepadEvent[JC] def timeStamp: Double
24424-
experimental/gamepad/GamepadEvent[JC] def `type`: String
24425-
experimental/gamepad/GamepadEventInit[JT] var bubbles: js.UndefOr[Boolean]
24426-
experimental/gamepad/GamepadEventInit[JT] var cancelable: js.UndefOr[Boolean]
24427-
experimental/gamepad/GamepadEventInit[JT] var composed: js.UndefOr[Boolean]
24428-
experimental/gamepad/GamepadEventInit[JT] var gamepad: js.UndefOr[Gamepad]
24429-
experimental/gamepad/GamepadEventInit[JT] var scoped: js.UndefOr[Boolean]
24430-
experimental/gamepad/GamepadMappingType[JT]
24431-
experimental/gamepad/GamepadNavigator[JT] def getGamepads(): js.Array[Gamepad]
24432-
experimental/gamepad/package[SO] final val standard: GamepadMappingType
24433-
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator
24434-
experimental/gamepad/package[SO] final val unknown: GamepadMappingType
24434+
experimental/gamepad/package[SO] type Gamepad = dom.Gamepad (@deprecated in 2.0.0)
24435+
experimental/gamepad/package[SO] type GamepadButton = dom.GamepadButton (@deprecated in 2.0.0)
24436+
experimental/gamepad/package[SO] type GamepadEvent = dom.GamepadEvent (@deprecated in 2.0.0)
24437+
experimental/gamepad/package[SO] type GamepadEventInit = dom.GamepadEventInit (@deprecated in 2.0.0)
24438+
experimental/gamepad/package[SO] type GamepadMappingType = dom.GamepadMappingType (@deprecated in 2.0.0)
24439+
experimental/gamepad/package[SO] type GamepadNavigator = dom.Navigator (@deprecated in 2.0.0)
24440+
experimental/gamepad/package[SO] def standard: dom.GamepadMappingType (@deprecated in 2.0.0)
24441+
experimental/gamepad/package[SO] implicit def toGamepad(navigator: dom.Navigator): GamepadNavigator (@deprecated in 2.0.0)
24442+
experimental/gamepad/package[SO] def unknown: dom.GamepadMappingType (@deprecated in 2.0.0)
2443524443
experimental/intl/Collator[JC] def compare(string1: String, string2: String): Double
2443624444
experimental/intl/Collator[JC] def resolvedOptions(): CollatorOptions
2443724445
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

+8-10
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-
}
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

+6
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)