mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 10:57:34 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
145
dom/events/TouchEvent.h
Normal file
145
dom/events/TouchEvent.h
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
#ifndef mozilla_dom_TouchEvent_h_
|
||||
#define mozilla_dom_TouchEvent_h_
|
||||
|
||||
#include "mozilla/dom/Touch.h"
|
||||
#include "mozilla/dom/TouchEventBinding.h"
|
||||
#include "mozilla/dom/UIEvent.h"
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "mozilla/EventForwards.h"
|
||||
#include "mozilla/TouchEvents.h"
|
||||
#include "nsJSEnvironment.h"
|
||||
#include "nsWrapperCache.h"
|
||||
|
||||
class nsAString;
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
class TouchList final : public nsISupports
|
||||
, public nsWrapperCache
|
||||
{
|
||||
public:
|
||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(TouchList)
|
||||
|
||||
explicit TouchList(nsISupports* aParent)
|
||||
: mParent(aParent)
|
||||
{
|
||||
nsJSContext::LikelyShortLivingObjectCreated();
|
||||
}
|
||||
TouchList(nsISupports* aParent,
|
||||
const WidgetTouchEvent::TouchArray& aTouches)
|
||||
: mParent(aParent)
|
||||
, mPoints(aTouches)
|
||||
{
|
||||
nsJSContext::LikelyShortLivingObjectCreated();
|
||||
}
|
||||
|
||||
void Append(Touch* aPoint)
|
||||
{
|
||||
mPoints.AppendElement(aPoint);
|
||||
}
|
||||
|
||||
virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
|
||||
|
||||
nsISupports* GetParentObject() const
|
||||
{
|
||||
return mParent;
|
||||
}
|
||||
|
||||
static bool PrefEnabled(JSContext* aCx, JSObject* aGlobal);
|
||||
|
||||
uint32_t Length() const
|
||||
{
|
||||
return mPoints.Length();
|
||||
}
|
||||
Touch* Item(uint32_t aIndex) const
|
||||
{
|
||||
return mPoints.SafeElementAt(aIndex);
|
||||
}
|
||||
Touch* IndexedGetter(uint32_t aIndex, bool& aFound) const
|
||||
{
|
||||
aFound = aIndex < mPoints.Length();
|
||||
if (!aFound) {
|
||||
return nullptr;
|
||||
}
|
||||
return mPoints[aIndex];
|
||||
}
|
||||
|
||||
protected:
|
||||
~TouchList() {}
|
||||
|
||||
nsCOMPtr<nsISupports> mParent;
|
||||
WidgetTouchEvent::TouchArray mPoints;
|
||||
};
|
||||
|
||||
class TouchEvent : public UIEvent
|
||||
{
|
||||
public:
|
||||
TouchEvent(EventTarget* aOwner,
|
||||
nsPresContext* aPresContext,
|
||||
WidgetTouchEvent* aEvent);
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(TouchEvent, UIEvent)
|
||||
|
||||
virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
|
||||
{
|
||||
return TouchEventBinding::Wrap(aCx, this, aGivenProto);
|
||||
}
|
||||
|
||||
already_AddRefed<TouchList>
|
||||
CopyTouches(const Sequence<OwningNonNull<Touch>>& aTouches);
|
||||
|
||||
TouchList* Touches();
|
||||
TouchList* TargetTouches();
|
||||
TouchList* ChangedTouches();
|
||||
|
||||
bool AltKey();
|
||||
bool MetaKey();
|
||||
bool CtrlKey();
|
||||
bool ShiftKey();
|
||||
|
||||
void InitTouchEvent(const nsAString& aType,
|
||||
bool aCanBubble,
|
||||
bool aCancelable,
|
||||
nsGlobalWindow* aView,
|
||||
int32_t aDetail,
|
||||
bool aCtrlKey,
|
||||
bool aAltKey,
|
||||
bool aShiftKey,
|
||||
bool aMetaKey,
|
||||
TouchList* aTouches,
|
||||
TouchList* aTargetTouches,
|
||||
TouchList* aChangedTouches);
|
||||
|
||||
static bool PrefEnabled(JSContext* aCx, JSObject* aGlobal);
|
||||
static bool PrefEnabled(nsIDocShell* aDocShell);
|
||||
|
||||
static already_AddRefed<Event> Constructor(const GlobalObject& aGlobal,
|
||||
const nsAString& aType,
|
||||
const TouchEventInit& aParam,
|
||||
ErrorResult& aRv);
|
||||
|
||||
protected:
|
||||
~TouchEvent() {}
|
||||
|
||||
RefPtr<TouchList> mTouches;
|
||||
RefPtr<TouchList> mTargetTouches;
|
||||
RefPtr<TouchList> mChangedTouches;
|
||||
};
|
||||
|
||||
} // namespace dom
|
||||
} // namespace mozilla
|
||||
|
||||
already_AddRefed<mozilla::dom::TouchEvent>
|
||||
NS_NewDOMTouchEvent(mozilla::dom::EventTarget* aOwner,
|
||||
nsPresContext* aPresContext,
|
||||
mozilla::WidgetTouchEvent* aEvent);
|
||||
|
||||
#endif // mozilla_dom_TouchEvent_h_
|
||||
Loading…
Add table
Add a link
Reference in a new issue