Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / device_orientation / DeviceOrientationController.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 DeviceOrientationController_h
6 #define DeviceOrientationController_h
7
8 #include "core/dom/DocumentSupplementable.h"
9 #include "core/frame/DeviceSingleWindowEventController.h"
10
11 namespace blink {
12
13 class DeviceOrientationData;
14 class Event;
15
16 class DeviceOrientationController FINAL : public DeviceSingleWindowEventController, public DocumentSupplement {
17     WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DeviceOrientationController);
18 public:
19     virtual ~DeviceOrientationController();
20
21     static const char* supplementName();
22     static DeviceOrientationController& from(Document&);
23
24     // Inherited from DeviceSingleWindowEventController.
25     void didUpdateData() OVERRIDE;
26
27     void setOverride(DeviceOrientationData*);
28     void clearOverride();
29
30     virtual void trace(Visitor*) OVERRIDE;
31
32 private:
33     explicit DeviceOrientationController(Document&);
34
35     // Inherited from DeviceEventControllerBase.
36     virtual void registerWithDispatcher() OVERRIDE;
37     virtual void unregisterWithDispatcher() OVERRIDE;
38     virtual bool hasLastData() OVERRIDE;
39
40     // Inherited from DeviceSingleWindowEventController.
41     virtual PassRefPtrWillBeRawPtr<Event> lastEvent() const OVERRIDE;
42     virtual const AtomicString& eventTypeName() const OVERRIDE;
43     virtual bool isNullEvent(Event*) const OVERRIDE;
44
45     DeviceOrientationData* lastData() const;
46
47     PersistentWillBeMember<DeviceOrientationData> m_overrideOrientationData;
48 };
49
50 } // namespace blink
51
52 #endif // DeviceOrientationController_h