LCOV - code coverage report
Current view: top level - dom/events - WheelEvent.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 61 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 11 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
       5             :  * You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #include "mozilla/dom/WheelEvent.h"
       8             : #include "mozilla/MouseEvents.h"
       9             : #include "prtime.h"
      10             : 
      11             : namespace mozilla {
      12             : namespace dom {
      13             : 
      14           0 : WheelEvent::WheelEvent(EventTarget* aOwner,
      15             :                        nsPresContext* aPresContext,
      16           0 :                        WidgetWheelEvent* aWheelEvent)
      17             :   : MouseEvent(aOwner, aPresContext,
      18             :                aWheelEvent ? aWheelEvent :
      19           0 :                              new WidgetWheelEvent(false, eVoidEvent, nullptr))
      20           0 :   , mAppUnitsPerDevPixel(0)
      21             : {
      22           0 :   if (aWheelEvent) {
      23           0 :     mEventIsInternal = false;
      24             :     // If the delta mode is pixel, the WidgetWheelEvent's delta values are in
      25             :     // device pixels.  However, JS contents need the delta values in CSS pixels.
      26             :     // We should store the value of mAppUnitsPerDevPixel here because
      27             :     // it might be changed by changing zoom or something.
      28           0 :     if (aWheelEvent->mDeltaMode == nsIDOMWheelEvent::DOM_DELTA_PIXEL) {
      29           0 :       mAppUnitsPerDevPixel = aPresContext->AppUnitsPerDevPixel();
      30             :     }
      31             :   } else {
      32           0 :     mEventIsInternal = true;
      33           0 :     mEvent->mTime = PR_Now();
      34           0 :     mEvent->mRefPoint = LayoutDeviceIntPoint(0, 0);
      35           0 :     mEvent->AsWheelEvent()->inputSource = nsIDOMMouseEvent::MOZ_SOURCE_UNKNOWN;
      36             :   }
      37           0 : }
      38             : 
      39           0 : NS_IMPL_ADDREF_INHERITED(WheelEvent, MouseEvent)
      40           0 : NS_IMPL_RELEASE_INHERITED(WheelEvent, MouseEvent)
      41             : 
      42           0 : NS_INTERFACE_MAP_BEGIN(WheelEvent)
      43           0 : NS_INTERFACE_MAP_END_INHERITING(MouseEvent)
      44             : 
      45             : void
      46           0 : WheelEvent::InitWheelEvent(const nsAString& aType,
      47             :                            bool aCanBubble,
      48             :                            bool aCancelable,
      49             :                            nsGlobalWindow* aView,
      50             :                            int32_t aDetail,
      51             :                            int32_t aScreenX,
      52             :                            int32_t aScreenY,
      53             :                            int32_t aClientX,
      54             :                            int32_t aClientY,
      55             :                            uint16_t aButton,
      56             :                            EventTarget* aRelatedTarget,
      57             :                            const nsAString& aModifiersList,
      58             :                            double aDeltaX,
      59             :                            double aDeltaY,
      60             :                            double aDeltaZ,
      61             :                            uint32_t aDeltaMode)
      62             : {
      63           0 :   NS_ENSURE_TRUE_VOID(!mEvent->mFlags.mIsBeingDispatched);
      64             : 
      65           0 :   MouseEvent::InitMouseEvent(aType, aCanBubble, aCancelable, aView, aDetail,
      66             :                              aScreenX, aScreenY, aClientX, aClientY, aButton,
      67           0 :                              aRelatedTarget, aModifiersList);
      68             : 
      69           0 :   WidgetWheelEvent* wheelEvent = mEvent->AsWheelEvent();
      70           0 :   wheelEvent->mDeltaX = aDeltaX;
      71           0 :   wheelEvent->mDeltaY = aDeltaY;
      72           0 :   wheelEvent->mDeltaZ = aDeltaZ;
      73           0 :   wheelEvent->mDeltaMode = aDeltaMode;
      74             : }
      75             : 
      76             : double
      77           0 : WheelEvent::DeltaX()
      78             : {
      79           0 :   if (!mAppUnitsPerDevPixel) {
      80           0 :     return mEvent->AsWheelEvent()->mDeltaX;
      81             :   }
      82           0 :   return mEvent->AsWheelEvent()->mDeltaX *
      83           0 :     mAppUnitsPerDevPixel / nsPresContext::AppUnitsPerCSSPixel();
      84             : }
      85             : 
      86             : double
      87           0 : WheelEvent::DeltaY()
      88             : {
      89           0 :   if (!mAppUnitsPerDevPixel) {
      90           0 :     return mEvent->AsWheelEvent()->mDeltaY;
      91             :   }
      92           0 :   return mEvent->AsWheelEvent()->mDeltaY *
      93           0 :     mAppUnitsPerDevPixel / nsPresContext::AppUnitsPerCSSPixel();
      94             : }
      95             : 
      96             : double
      97           0 : WheelEvent::DeltaZ()
      98             : {
      99           0 :   if (!mAppUnitsPerDevPixel) {
     100           0 :     return mEvent->AsWheelEvent()->mDeltaZ;
     101             :   }
     102           0 :   return mEvent->AsWheelEvent()->mDeltaZ *
     103           0 :     mAppUnitsPerDevPixel / nsPresContext::AppUnitsPerCSSPixel();
     104             : }
     105             : 
     106             : uint32_t
     107           0 : WheelEvent::DeltaMode()
     108             : {
     109           0 :   return mEvent->AsWheelEvent()->mDeltaMode;
     110             : }
     111             : 
     112             : already_AddRefed<WheelEvent>
     113           0 : WheelEvent::Constructor(const GlobalObject& aGlobal,
     114             :                         const nsAString& aType,
     115             :                         const WheelEventInit& aParam,
     116             :                         ErrorResult& aRv)
     117             : {
     118           0 :   nsCOMPtr<EventTarget> t = do_QueryInterface(aGlobal.GetAsSupports());
     119           0 :   RefPtr<WheelEvent> e = new WheelEvent(t, nullptr, nullptr);
     120           0 :   bool trusted = e->Init(t);
     121           0 :   e->InitWheelEvent(aType, aParam.mBubbles, aParam.mCancelable,
     122           0 :                     aParam.mView, aParam.mDetail,
     123           0 :                     aParam.mScreenX, aParam.mScreenY,
     124           0 :                     aParam.mClientX, aParam.mClientY,
     125           0 :                     aParam.mButton, aParam.mRelatedTarget,
     126           0 :                     EmptyString(), aParam.mDeltaX,
     127           0 :                     aParam.mDeltaY, aParam.mDeltaZ, aParam.mDeltaMode);
     128           0 :   e->InitializeExtraMouseEventDictionaryMembers(aParam);
     129           0 :   e->SetTrusted(trusted);
     130           0 :   e->SetComposed(aParam.mComposed);
     131           0 :   return e.forget();
     132             : }
     133             : 
     134             : } // namespace dom
     135             : } // namespace mozilla
     136             : 
     137             : using namespace mozilla;
     138             : using namespace mozilla::dom;
     139             : 
     140             : already_AddRefed<WheelEvent>
     141           0 : NS_NewDOMWheelEvent(EventTarget* aOwner,
     142             :                     nsPresContext* aPresContext,
     143             :                     WidgetWheelEvent* aEvent)
     144             : {
     145           0 :   RefPtr<WheelEvent> it = new WheelEvent(aOwner, aPresContext, aEvent);
     146           0 :   return it.forget();
     147             : }

Generated by: LCOV version 1.13