mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
b656763114
CLOSED TREE Backed out changeset c23b8418e6be (bug 1060987) Backed out changeset a8cddc6bdffc (bug 1061060) Backed out changeset b5af5cbdac3f (bug 1060982) Backed out changeset 4912d451011a (bug 1060930) Backed out changeset bdacbf453238 (bug 1061058) Backed out changeset da6c71a8f5ae (bug 1060987)
137 lines
3.4 KiB
C++
137 lines
3.4 KiB
C++
/* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */
|
|
/* 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 MOZ_FINAL : public nsISupports
|
|
, public nsWrapperCache
|
|
{
|
|
public:
|
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
|
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(TouchList)
|
|
|
|
TouchList(nsISupports* aParent)
|
|
: mParent(aParent)
|
|
{
|
|
SetIsDOMBinding();
|
|
nsJSContext::LikelyShortLivingObjectCreated();
|
|
}
|
|
TouchList(nsISupports* aParent,
|
|
const WidgetTouchEvent::TouchArray& aTouches)
|
|
: mParent(aParent)
|
|
, mPoints(aTouches)
|
|
{
|
|
SetIsDOMBinding();
|
|
nsJSContext::LikelyShortLivingObjectCreated();
|
|
}
|
|
|
|
void Append(Touch* aPoint)
|
|
{
|
|
mPoints.AppendElement(aPoint);
|
|
}
|
|
|
|
virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
|
|
|
|
nsISupports* GetParentObject() const
|
|
{
|
|
return mParent;
|
|
}
|
|
|
|
static bool PrefEnabled(JSContext* aCx = nullptr,
|
|
JSObject* aGlobal = nullptr);
|
|
|
|
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];
|
|
}
|
|
Touch* IdentifiedTouch(int32_t aIdentifier) const;
|
|
|
|
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* WrapObject(JSContext* aCx) MOZ_OVERRIDE
|
|
{
|
|
return TouchEventBinding::Wrap(aCx, this);
|
|
}
|
|
|
|
TouchList* Touches();
|
|
TouchList* TargetTouches();
|
|
TouchList* ChangedTouches();
|
|
|
|
bool AltKey();
|
|
bool MetaKey();
|
|
bool CtrlKey();
|
|
bool ShiftKey();
|
|
|
|
void InitTouchEvent(const nsAString& aType,
|
|
bool aCanBubble,
|
|
bool aCancelable,
|
|
nsIDOMWindow* aView,
|
|
int32_t aDetail,
|
|
bool aCtrlKey,
|
|
bool aAltKey,
|
|
bool aShiftKey,
|
|
bool aMetaKey,
|
|
TouchList* aTouches,
|
|
TouchList* aTargetTouches,
|
|
TouchList* aChangedTouches,
|
|
ErrorResult& aRv);
|
|
|
|
static bool PrefEnabled(JSContext* aCx = nullptr,
|
|
JSObject* aGlobal = nullptr);
|
|
|
|
protected:
|
|
~TouchEvent() {}
|
|
|
|
nsRefPtr<TouchList> mTouches;
|
|
nsRefPtr<TouchList> mTargetTouches;
|
|
nsRefPtr<TouchList> mChangedTouches;
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_dom_TouchEvent_h_
|