Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: Source/modules/gamepad/NavigatorGamepad.h

Issue 200783002: Gamepad API: add support for gamepadconnected and gamepaddisconnected events (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: layout fix: webexposed/global-constructors-listing Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/modules/gamepad/GamepadEvent.idl ('k') | Source/modules/gamepad/NavigatorGamepad.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011, Google Inc. All rights reserved. 2 * Copyright (C) 2011, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met: 5 * modification, are permitted provided that the following conditions are met:
6 * 6 *
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE 16 * ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
20 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
23 * DAMAGE. 23 * DAMAGE.
24 */ 24 */
25 25
26 #ifndef NavigatorGamepad_h 26 #ifndef NavigatorGamepad_h
27 #define NavigatorGamepad_h 27 #define NavigatorGamepad_h
28 28
29 #include "core/frame/DOMWindowLifecycleObserver.h"
30 #include "core/frame/DOMWindowProperty.h"
31 #include "core/frame/DeviceSensorEventController.h"
29 #include "heap/Handle.h" 32 #include "heap/Handle.h"
30 #include "platform/Supplementable.h" 33 #include "platform/Supplementable.h"
31 #include "public/platform/WebGamepads.h" 34 #include "public/platform/WebGamepads.h"
32 35
36 namespace blink {
37 class WebGamepad;
38 class WebGamepads;
39 }
40
33 namespace WebCore { 41 namespace WebCore {
34 42
35 class GamepadList; 43 class GamepadList;
36 class Navigator; 44 class Navigator;
37 class WebKitGamepadList; 45 class WebKitGamepadList;
38 46
39 class NavigatorGamepad FINAL : public NoBaseWillBeGarbageCollectedFinalized<Navi gatorGamepad>, public WillBeHeapSupplement<Navigator> { 47 class NavigatorGamepad FINAL : public NoBaseWillBeGarbageCollectedFinalized<Navi gatorGamepad>, public WillBeHeapSupplement<Navigator>, public DOMWindowProperty, public DeviceSensorEventController, public DOMWindowLifecycleObserver {
40 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(NavigatorGamepad); 48 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(NavigatorGamepad);
41 public: 49 public:
50 static NavigatorGamepad* from(Document&);
51 static NavigatorGamepad& from(Navigator&);
42 virtual ~NavigatorGamepad(); 52 virtual ~NavigatorGamepad();
43 static NavigatorGamepad& from(Navigator&);
44 53
45 static WebKitGamepadList* webkitGetGamepads(Navigator&); 54 static WebKitGamepadList* webkitGetGamepads(Navigator&);
46 static GamepadList* getGamepads(Navigator&); 55 static GamepadList* getGamepads(Navigator&);
47 56
48 WebKitGamepadList* webkitGamepads(); 57 WebKitGamepadList* webkitGamepads();
49 GamepadList* gamepads(); 58 GamepadList* gamepads();
50 59
51 virtual void trace(Visitor*); 60 virtual void trace(Visitor*);
52 61
62 void didConnectOrDisconnectGamepad(unsigned index, const blink::WebGamepad&, bool connected);
63
53 private: 64 private:
54 NavigatorGamepad(); 65 explicit NavigatorGamepad(Document&);
66
55 static const char* supplementName(); 67 static const char* supplementName();
56 68
69 // DOMWindowProperty
70 virtual void willDestroyGlobalObjectInFrame() OVERRIDE FINAL;
71 virtual void willDetachGlobalObjectFromFrame() OVERRIDE FINAL;
72
73 // DeviceSensorEventController
74 virtual void registerWithDispatcher() OVERRIDE FINAL;
75 virtual void unregisterWithDispatcher() OVERRIDE FINAL;
76 virtual bool hasLastData() OVERRIDE FINAL;
77 virtual PassRefPtr<Event> getLastEvent() OVERRIDE FINAL;
78 virtual bool isNullEvent(Event*) OVERRIDE FINAL;
79
80 // DOMWindowLifecycleObserver
81 virtual void didAddEventListener(DOMWindow*, const AtomicString&) OVERRIDE F INAL;
82 virtual void didRemoveEventListener(DOMWindow*, const AtomicString&) OVERRID E FINAL;
83 virtual void didRemoveAllEventListeners(DOMWindow*) OVERRIDE FINAL;
84
57 RefPtrWillBeMember<GamepadList> m_gamepads; 85 RefPtrWillBeMember<GamepadList> m_gamepads;
58 RefPtrWillBeMember<WebKitGamepadList> m_webkitGamepads; 86 RefPtrWillBeMember<WebKitGamepadList> m_webkitGamepads;
59 }; 87 };
60 88
61 } // namespace WebCore 89 } // namespace WebCore
62 90
63 #endif // NavigatorGamepad_h 91 #endif // NavigatorGamepad_h
OLDNEW
« no previous file with comments | « Source/modules/gamepad/GamepadEvent.idl ('k') | Source/modules/gamepad/NavigatorGamepad.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698