• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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