• 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 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