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 DeviceLightEvent_h 6 #define DeviceLightEvent_h 7 8 #include "modules/EventModules.h" 9 #include "platform/heap/Handle.h" 10 11 namespace WebCore { 12 13 struct DeviceLightEventInit : public EventInit { 14 DeviceLightEventInit() 15 : value(std::numeric_limits<double>::infinity()) 16 { 17 bubbles = true; 18 }; 19 20 double value; 21 }; 22 23 class DeviceLightEvent FINAL : public Event { 24 public: 25 virtual ~DeviceLightEvent(); 26 27 static PassRefPtrWillBeRawPtr<DeviceLightEvent> create() 28 { 29 return adoptRefWillBeNoop(new DeviceLightEvent); 30 } 31 static PassRefPtrWillBeRawPtr<DeviceLightEvent> create(const AtomicString& eventType, double value) 32 { 33 return adoptRefWillBeNoop(new DeviceLightEvent(eventType, value)); 34 } 35 static PassRefPtrWillBeRawPtr<DeviceLightEvent> create(const AtomicString& eventType, const DeviceLightEventInit& initializer) 36 { 37 return adoptRefWillBeNoop(new DeviceLightEvent(eventType, initializer)); 38 } 39 40 double value() const { return m_value; } 41 42 virtual const AtomicString& interfaceName() const OVERRIDE; 43 44 private: 45 DeviceLightEvent(); 46 DeviceLightEvent(const AtomicString& eventType, double value); 47 DeviceLightEvent(const AtomicString& eventType, const DeviceLightEventInit& initializer); 48 49 double m_value; 50 }; 51 52 DEFINE_TYPE_CASTS(DeviceLightEvent, Event, event, event->interfaceName() == EventNames::DeviceLightEvent, event.interfaceName() == EventNames::DeviceLightEvent); 53 54 } // namespace WebCore 55 56 #endif // DeviceLightEvent_h 57