Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / device_light / DeviceLightEvent.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 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