1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef GamepadEvent_h 6 #define GamepadEvent_h 7 8 #include "modules/EventModules.h" 9 #include "modules/gamepad/Gamepad.h" 10 11 namespace blink { 12 13 struct GamepadEventInit : public EventInit { 14 GamepadEventInit(); 15 16 Member<Gamepad> gamepad; 17 }; 18 19 class GamepadEvent FINAL : public Event { 20 DEFINE_WRAPPERTYPEINFO(); 21 public: create()22 static PassRefPtrWillBeRawPtr<GamepadEvent> create() 23 { 24 return adoptRefWillBeNoop(new GamepadEvent); 25 } create(const AtomicString & type,bool canBubble,bool cancelable,Gamepad * gamepad)26 static PassRefPtrWillBeRawPtr<GamepadEvent> create(const AtomicString& type, bool canBubble, bool cancelable, Gamepad* gamepad) 27 { 28 return adoptRefWillBeNoop(new GamepadEvent(type, canBubble, cancelable, gamepad)); 29 } create(const AtomicString & type,const GamepadEventInit & initializer)30 static PassRefPtrWillBeRawPtr<GamepadEvent> create(const AtomicString& type, const GamepadEventInit& initializer) 31 { 32 return adoptRefWillBeNoop(new GamepadEvent(type, initializer)); 33 } 34 virtual ~GamepadEvent(); 35 gamepad()36 Gamepad* gamepad() const { return m_gamepad.get(); } 37 38 virtual const AtomicString& interfaceName() const OVERRIDE; 39 40 virtual void trace(Visitor*) OVERRIDE; 41 42 private: 43 GamepadEvent(); 44 GamepadEvent(const AtomicString& type, bool canBubble, bool cancelable, Gamepad*); 45 GamepadEvent(const AtomicString&, const GamepadEventInit&); 46 47 PersistentWillBeMember<Gamepad> m_gamepad; 48 }; 49 50 } // namespace blink 51 52 #endif // GamepadEvent_h 53