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 WebCore { 12 13 struct GamepadEventInit : public EventInit { 14 GamepadEventInit(); 15 16 Member<Gamepad> gamepad; 17 }; 18 19 class GamepadEvent FINAL : public Event { 20 public: create()21 static PassRefPtrWillBeRawPtr<GamepadEvent> create() 22 { 23 return adoptRefWillBeNoop(new GamepadEvent); 24 } create(const AtomicString & type,bool canBubble,bool cancelable,Gamepad * gamepad)25 static PassRefPtrWillBeRawPtr<GamepadEvent> create(const AtomicString& type, bool canBubble, bool cancelable, Gamepad* gamepad) 26 { 27 return adoptRefWillBeNoop(new GamepadEvent(type, canBubble, cancelable, gamepad)); 28 } create(const AtomicString & type,const GamepadEventInit & initializer)29 static PassRefPtrWillBeRawPtr<GamepadEvent> create(const AtomicString& type, const GamepadEventInit& initializer) 30 { 31 return adoptRefWillBeNoop(new GamepadEvent(type, initializer)); 32 } 33 virtual ~GamepadEvent(); 34 gamepad()35 Gamepad* gamepad() const { return m_gamepad.get(); } 36 37 virtual const AtomicString& interfaceName() const OVERRIDE; 38 39 virtual void trace(Visitor*) OVERRIDE; 40 41 private: 42 GamepadEvent(); 43 GamepadEvent(const AtomicString& type, bool canBubble, bool cancelable, Gamepad*); 44 GamepadEvent(const AtomicString&, const GamepadEventInit&); 45 46 PersistentWillBeMember<Gamepad> m_gamepad; 47 }; 48 49 } // namespace WebCore 50 51 #endif // GamepadEvent_h 52