1/* 2 * Copyright 2010, The Android Open Source Project 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * * Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#include "config.h" 27#include "modules/device_orientation/DeviceOrientationEvent.h" 28 29#include "modules/device_orientation/DeviceOrientationData.h" 30 31namespace blink { 32 33DeviceOrientationEvent::~DeviceOrientationEvent() 34{ 35} 36 37DeviceOrientationEvent::DeviceOrientationEvent() 38 : m_orientation(DeviceOrientationData::create()) 39{ 40} 41 42DeviceOrientationEvent::DeviceOrientationEvent(const AtomicString& eventType, DeviceOrientationData* orientation) 43 : Event(eventType, false, false) // Can't bubble, not cancelable 44 , m_orientation(orientation) 45{ 46} 47 48void DeviceOrientationEvent::initDeviceOrientationEvent(const AtomicString& type, bool bubbles, bool cancelable, DeviceOrientationData* orientation) 49{ 50 if (dispatched()) 51 return; 52 53 initEvent(type, bubbles, cancelable); 54 m_orientation = orientation; 55} 56 57double DeviceOrientationEvent::alpha(bool& isNull) const 58{ 59 if (m_orientation->canProvideAlpha()) 60 return m_orientation->alpha(); 61 62 isNull = true; 63 return 0; 64} 65 66double DeviceOrientationEvent::beta(bool& isNull) const 67{ 68 if (m_orientation->canProvideBeta()) 69 return m_orientation->beta(); 70 71 isNull = true; 72 return 0; 73} 74 75double DeviceOrientationEvent::gamma(bool& isNull) const 76{ 77 if (m_orientation->canProvideGamma()) 78 return m_orientation->gamma(); 79 80 isNull = true; 81 return 0; 82} 83 84bool DeviceOrientationEvent::absolute(bool& isNull) const 85{ 86 if (m_orientation->canProvideAbsolute()) 87 return m_orientation->absolute(); 88 89 isNull = true; 90 return 0; 91} 92 93const AtomicString& DeviceOrientationEvent::interfaceName() const 94{ 95 return EventNames::DeviceOrientationEvent; 96} 97 98void DeviceOrientationEvent::trace(Visitor* visitor) 99{ 100 visitor->trace(m_orientation); 101 Event::trace(visitor); 102} 103 104} // namespace blink 105