mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-03 22:07:30 +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
388
widget/ContentEvents.h
Normal file
388
widget/ContentEvents.h
Normal file
|
|
@ -0,0 +1,388 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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_ContentEvents_h__
|
||||
#define mozilla_ContentEvents_h__
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "mozilla/BasicEvents.h"
|
||||
#include "mozilla/dom/DataTransfer.h"
|
||||
#include "mozilla/dom/EventTarget.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsRect.h"
|
||||
#include "nsStringGlue.h"
|
||||
|
||||
class nsIContent;
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
/******************************************************************************
|
||||
* mozilla::InternalScrollPortEvent
|
||||
******************************************************************************/
|
||||
|
||||
class InternalScrollPortEvent : public WidgetGUIEvent
|
||||
{
|
||||
public:
|
||||
virtual InternalScrollPortEvent* AsScrollPortEvent() override
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
enum OrientType
|
||||
{
|
||||
eVertical,
|
||||
eHorizontal,
|
||||
eBoth
|
||||
};
|
||||
|
||||
InternalScrollPortEvent(bool aIsTrusted, EventMessage aMessage,
|
||||
nsIWidget* aWidget)
|
||||
: WidgetGUIEvent(aIsTrusted, aMessage, aWidget, eScrollPortEventClass)
|
||||
, mOrient(eVertical)
|
||||
{
|
||||
}
|
||||
|
||||
virtual WidgetEvent* Duplicate() const override
|
||||
{
|
||||
MOZ_ASSERT(mClass == eScrollPortEventClass,
|
||||
"Duplicate() must be overridden by sub class");
|
||||
// Not copying widget, it is a weak reference.
|
||||
InternalScrollPortEvent* result =
|
||||
new InternalScrollPortEvent(false, mMessage, nullptr);
|
||||
result->AssignScrollPortEventData(*this, true);
|
||||
result->mFlags = mFlags;
|
||||
return result;
|
||||
}
|
||||
|
||||
OrientType mOrient;
|
||||
|
||||
void AssignScrollPortEventData(const InternalScrollPortEvent& aEvent,
|
||||
bool aCopyTargets)
|
||||
{
|
||||
AssignGUIEventData(aEvent, aCopyTargets);
|
||||
|
||||
mOrient = aEvent.mOrient;
|
||||
}
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* mozilla::InternalScrollPortEvent
|
||||
******************************************************************************/
|
||||
|
||||
class InternalScrollAreaEvent : public WidgetGUIEvent
|
||||
{
|
||||
public:
|
||||
virtual InternalScrollAreaEvent* AsScrollAreaEvent() override
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
InternalScrollAreaEvent(bool aIsTrusted, EventMessage aMessage,
|
||||
nsIWidget* aWidget)
|
||||
: WidgetGUIEvent(aIsTrusted, aMessage, aWidget, eScrollAreaEventClass)
|
||||
{
|
||||
}
|
||||
|
||||
virtual WidgetEvent* Duplicate() const override
|
||||
{
|
||||
MOZ_ASSERT(mClass == eScrollAreaEventClass,
|
||||
"Duplicate() must be overridden by sub class");
|
||||
// Not copying widget, it is a weak reference.
|
||||
InternalScrollAreaEvent* result =
|
||||
new InternalScrollAreaEvent(false, mMessage, nullptr);
|
||||
result->AssignScrollAreaEventData(*this, true);
|
||||
result->mFlags = mFlags;
|
||||
return result;
|
||||
}
|
||||
|
||||
nsRect mArea;
|
||||
|
||||
void AssignScrollAreaEventData(const InternalScrollAreaEvent& aEvent,
|
||||
bool aCopyTargets)
|
||||
{
|
||||
AssignGUIEventData(aEvent, aCopyTargets);
|
||||
|
||||
mArea = aEvent.mArea;
|
||||
}
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* mozilla::InternalFormEvent
|
||||
*
|
||||
* We hold the originating form control for form submit and reset events.
|
||||
* mOriginator is a weak pointer (does not hold a strong reference).
|
||||
******************************************************************************/
|
||||
|
||||
class InternalFormEvent : public WidgetEvent
|
||||
{
|
||||
public:
|
||||
virtual InternalFormEvent* AsFormEvent() override { return this; }
|
||||
|
||||
InternalFormEvent(bool aIsTrusted, EventMessage aMessage)
|
||||
: WidgetEvent(aIsTrusted, aMessage, eFormEventClass)
|
||||
, mOriginator(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
virtual WidgetEvent* Duplicate() const override
|
||||
{
|
||||
MOZ_ASSERT(mClass == eFormEventClass,
|
||||
"Duplicate() must be overridden by sub class");
|
||||
InternalFormEvent* result = new InternalFormEvent(false, mMessage);
|
||||
result->AssignFormEventData(*this, true);
|
||||
result->mFlags = mFlags;
|
||||
return result;
|
||||
}
|
||||
|
||||
nsIContent* mOriginator;
|
||||
|
||||
void AssignFormEventData(const InternalFormEvent& aEvent, bool aCopyTargets)
|
||||
{
|
||||
AssignEventData(aEvent, aCopyTargets);
|
||||
|
||||
// Don't copy mOriginator due to a weak pointer.
|
||||
}
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* mozilla::InternalClipboardEvent
|
||||
******************************************************************************/
|
||||
|
||||
class InternalClipboardEvent : public WidgetEvent
|
||||
{
|
||||
public:
|
||||
virtual InternalClipboardEvent* AsClipboardEvent() override
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
InternalClipboardEvent(bool aIsTrusted, EventMessage aMessage)
|
||||
: WidgetEvent(aIsTrusted, aMessage, eClipboardEventClass)
|
||||
{
|
||||
}
|
||||
|
||||
virtual WidgetEvent* Duplicate() const override
|
||||
{
|
||||
MOZ_ASSERT(mClass == eClipboardEventClass,
|
||||
"Duplicate() must be overridden by sub class");
|
||||
InternalClipboardEvent* result =
|
||||
new InternalClipboardEvent(false, mMessage);
|
||||
result->AssignClipboardEventData(*this, true);
|
||||
result->mFlags = mFlags;
|
||||
return result;
|
||||
}
|
||||
|
||||
nsCOMPtr<dom::DataTransfer> mClipboardData;
|
||||
|
||||
void AssignClipboardEventData(const InternalClipboardEvent& aEvent,
|
||||
bool aCopyTargets)
|
||||
{
|
||||
AssignEventData(aEvent, aCopyTargets);
|
||||
|
||||
mClipboardData = aEvent.mClipboardData;
|
||||
}
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* mozilla::InternalFocusEvent
|
||||
******************************************************************************/
|
||||
|
||||
class InternalFocusEvent : public InternalUIEvent
|
||||
{
|
||||
public:
|
||||
virtual InternalFocusEvent* AsFocusEvent() override { return this; }
|
||||
|
||||
InternalFocusEvent(bool aIsTrusted, EventMessage aMessage)
|
||||
: InternalUIEvent(aIsTrusted, aMessage, eFocusEventClass)
|
||||
, mFromRaise(false)
|
||||
, mIsRefocus(false)
|
||||
{
|
||||
}
|
||||
|
||||
virtual WidgetEvent* Duplicate() const override
|
||||
{
|
||||
MOZ_ASSERT(mClass == eFocusEventClass,
|
||||
"Duplicate() must be overridden by sub class");
|
||||
InternalFocusEvent* result = new InternalFocusEvent(false, mMessage);
|
||||
result->AssignFocusEventData(*this, true);
|
||||
result->mFlags = mFlags;
|
||||
return result;
|
||||
}
|
||||
|
||||
/// The possible related target
|
||||
nsCOMPtr<dom::EventTarget> mRelatedTarget;
|
||||
|
||||
bool mFromRaise;
|
||||
bool mIsRefocus;
|
||||
|
||||
void AssignFocusEventData(const InternalFocusEvent& aEvent, bool aCopyTargets)
|
||||
{
|
||||
AssignUIEventData(aEvent, aCopyTargets);
|
||||
|
||||
mRelatedTarget = aCopyTargets ? aEvent.mRelatedTarget : nullptr;
|
||||
mFromRaise = aEvent.mFromRaise;
|
||||
mIsRefocus = aEvent.mIsRefocus;
|
||||
}
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* mozilla::InternalTransitionEvent
|
||||
******************************************************************************/
|
||||
|
||||
class InternalTransitionEvent : public WidgetEvent
|
||||
{
|
||||
public:
|
||||
virtual InternalTransitionEvent* AsTransitionEvent() override
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
InternalTransitionEvent(bool aIsTrusted, EventMessage aMessage)
|
||||
: WidgetEvent(aIsTrusted, aMessage, eTransitionEventClass)
|
||||
, mElapsedTime(0.0)
|
||||
{
|
||||
}
|
||||
|
||||
virtual WidgetEvent* Duplicate() const override
|
||||
{
|
||||
MOZ_ASSERT(mClass == eTransitionEventClass,
|
||||
"Duplicate() must be overridden by sub class");
|
||||
InternalTransitionEvent* result =
|
||||
new InternalTransitionEvent(false, mMessage);
|
||||
result->AssignTransitionEventData(*this, true);
|
||||
result->mFlags = mFlags;
|
||||
return result;
|
||||
}
|
||||
|
||||
nsString mPropertyName;
|
||||
nsString mPseudoElement;
|
||||
float mElapsedTime;
|
||||
|
||||
void AssignTransitionEventData(const InternalTransitionEvent& aEvent,
|
||||
bool aCopyTargets)
|
||||
{
|
||||
AssignEventData(aEvent, aCopyTargets);
|
||||
|
||||
mPropertyName = aEvent.mPropertyName;
|
||||
mElapsedTime = aEvent.mElapsedTime;
|
||||
mPseudoElement = aEvent.mPseudoElement;
|
||||
}
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* mozilla::InternalAnimationEvent
|
||||
******************************************************************************/
|
||||
|
||||
class InternalAnimationEvent : public WidgetEvent
|
||||
{
|
||||
public:
|
||||
virtual InternalAnimationEvent* AsAnimationEvent() override
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
InternalAnimationEvent(bool aIsTrusted, EventMessage aMessage)
|
||||
: WidgetEvent(aIsTrusted, aMessage, eAnimationEventClass)
|
||||
, mElapsedTime(0.0)
|
||||
{
|
||||
}
|
||||
|
||||
virtual WidgetEvent* Duplicate() const override
|
||||
{
|
||||
MOZ_ASSERT(mClass == eAnimationEventClass,
|
||||
"Duplicate() must be overridden by sub class");
|
||||
InternalAnimationEvent* result =
|
||||
new InternalAnimationEvent(false, mMessage);
|
||||
result->AssignAnimationEventData(*this, true);
|
||||
result->mFlags = mFlags;
|
||||
return result;
|
||||
}
|
||||
|
||||
nsString mAnimationName;
|
||||
nsString mPseudoElement;
|
||||
float mElapsedTime;
|
||||
|
||||
void AssignAnimationEventData(const InternalAnimationEvent& aEvent,
|
||||
bool aCopyTargets)
|
||||
{
|
||||
AssignEventData(aEvent, aCopyTargets);
|
||||
|
||||
mAnimationName = aEvent.mAnimationName;
|
||||
mElapsedTime = aEvent.mElapsedTime;
|
||||
mPseudoElement = aEvent.mPseudoElement;
|
||||
}
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* mozilla::InternalSVGZoomEvent
|
||||
******************************************************************************/
|
||||
|
||||
class InternalSVGZoomEvent : public WidgetGUIEvent
|
||||
{
|
||||
public:
|
||||
virtual InternalSVGZoomEvent* AsSVGZoomEvent() override { return this; }
|
||||
|
||||
InternalSVGZoomEvent(bool aIsTrusted, EventMessage aMessage)
|
||||
: WidgetGUIEvent(aIsTrusted, aMessage, nullptr, eSVGZoomEventClass)
|
||||
{
|
||||
}
|
||||
|
||||
virtual WidgetEvent* Duplicate() const override
|
||||
{
|
||||
MOZ_ASSERT(mClass == eSVGZoomEventClass,
|
||||
"Duplicate() must be overridden by sub class");
|
||||
// Not copying widget, it is a weak reference.
|
||||
InternalSVGZoomEvent* result = new InternalSVGZoomEvent(false, mMessage);
|
||||
result->AssignSVGZoomEventData(*this, true);
|
||||
result->mFlags = mFlags;
|
||||
return result;
|
||||
}
|
||||
|
||||
void AssignSVGZoomEventData(const InternalSVGZoomEvent& aEvent,
|
||||
bool aCopyTargets)
|
||||
{
|
||||
AssignGUIEventData(aEvent, aCopyTargets);
|
||||
}
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
* mozilla::InternalSMILTimeEvent
|
||||
******************************************************************************/
|
||||
|
||||
class InternalSMILTimeEvent : public InternalUIEvent
|
||||
{
|
||||
public:
|
||||
virtual InternalSMILTimeEvent* AsSMILTimeEvent() override
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
InternalSMILTimeEvent(bool aIsTrusted, EventMessage aMessage)
|
||||
: InternalUIEvent(aIsTrusted, aMessage, eSMILTimeEventClass)
|
||||
{
|
||||
}
|
||||
|
||||
virtual WidgetEvent* Duplicate() const override
|
||||
{
|
||||
MOZ_ASSERT(mClass == eSMILTimeEventClass,
|
||||
"Duplicate() must be overridden by sub class");
|
||||
InternalSMILTimeEvent* result = new InternalSMILTimeEvent(false, mMessage);
|
||||
result->AssignSMILTimeEventData(*this, true);
|
||||
result->mFlags = mFlags;
|
||||
return result;
|
||||
}
|
||||
|
||||
void AssignSMILTimeEventData(const InternalSMILTimeEvent& aEvent,
|
||||
bool aCopyTargets)
|
||||
{
|
||||
AssignUIEventData(aEvent, aCopyTargets);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
} // namespace mozilla
|
||||
|
||||
#endif // mozilla_ContentEvents_h__
|
||||
Loading…
Add table
Add a link
Reference in a new issue