Home | History | Annotate | Download | only in device_orientation
      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 WebCore {
     12 
     13 class DeviceOrientationData;
     14 class Event;
     15 
     16 class DeviceOrientationController FINAL : public NoBaseWillBeGarbageCollectedFinalized<DeviceOrientationController>, 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     RefPtrWillBeMember<DeviceOrientationData> m_overrideOrientationData;
     48 };
     49 
     50 } // namespace WebCore
     51 
     52 #endif // DeviceOrientationController_h
     53