Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / gamepad / GamepadEvent.h
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 public:
21     static PassRefPtrWillBeRawPtr<GamepadEvent> create()
22     {
23         return adoptRefWillBeNoop(new GamepadEvent);
24     }
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     }
29     static PassRefPtrWillBeRawPtr<GamepadEvent> create(const AtomicString& type, const GamepadEventInit& initializer)
30     {
31         return adoptRefWillBeNoop(new GamepadEvent(type, initializer));
32     }
33     virtual ~GamepadEvent();
34
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 blink
50
51 #endif // GamepadEvent_h