diff options
Diffstat (limited to 'gfx/layers/ipc/PAPZCTreeManager.ipdl')
-rw-r--r-- | gfx/layers/ipc/PAPZCTreeManager.ipdl | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/gfx/layers/ipc/PAPZCTreeManager.ipdl b/gfx/layers/ipc/PAPZCTreeManager.ipdl new file mode 100644 index 000000000..21d899f91 --- /dev/null +++ b/gfx/layers/ipc/PAPZCTreeManager.ipdl @@ -0,0 +1,139 @@ +/* -*- Mode: C++; tab-width: 8; 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/. */ + +include "mozilla/GfxMessageUtils.h"; +include "ipc/nsGUIEventIPC.h"; + +include protocol PCompositorBridge; + +using CSSRect from "Units.h"; +using LayoutDeviceCoord from "Units.h"; +using LayoutDeviceIntPoint from "Units.h"; +using mozilla::LayoutDevicePoint from "Units.h"; +using ScreenPoint from "Units.h"; +using struct mozilla::layers::ScrollableLayerGuid from "FrameMetrics.h"; +using mozilla::layers::MaybeZoomConstraints from "FrameMetrics.h"; +using mozilla::layers::TouchBehaviorFlags from "mozilla/layers/APZUtils.h"; +using mozilla::layers::AsyncDragMetrics from "mozilla/layers/AsyncDragMetrics.h"; +using mozilla::layers::GeckoContentController::TapType from "mozilla/layers/GeckoContentController.h"; + +using nsEventStatus from "mozilla/EventForwards.h"; +using EventMessage from "mozilla/EventForwards.h"; +using mozilla::Modifiers from "mozilla/EventForwards.h"; +using class mozilla::WidgetInputEvent from "mozilla/BasicEvents.h"; +using class mozilla::WidgetMouseEventBase from "mozilla/MouseEvents.h"; +using mozilla::WidgetMouseEvent::Reason from "mozilla/MouseEvents.h"; +using class mozilla::WidgetTouchEvent from "mozilla/TouchEvents.h"; +using class mozilla::WidgetWheelEvent from "mozilla/MouseEvents.h"; +using class mozilla::InputData from "InputData.h"; +using class mozilla::MultiTouchInput from "InputData.h"; +using class mozilla::MouseInput from "InputData.h"; +using class mozilla::PanGestureInput from "InputData.h"; +using class mozilla::PinchGestureInput from "InputData.h"; +using mozilla::PinchGestureInput::PinchGestureType from "InputData.h"; +using class mozilla::TapGestureInput from "InputData.h"; +using class mozilla::ScrollWheelInput from "InputData.h"; + +namespace mozilla { +namespace layers { + +/** + * PAPZCTreeManager is a protocol for remoting an IAPZCTreeManager. PAPZCTreeManager + * lives on the PCompositorBridge protocol which either connects to the compositor + * thread in the main process, or to the compositor thread in the gpu processs. + * + * PAPZCTreeManagerParent lives in the compositor thread, while PAPZCTreeManagerChild + * lives in the main thread of the main or the content process. APZCTreeManagerParent + * and APZCTreeManagerChild implement this protocol. + */ +sync protocol PAPZCTreeManager +{ +manager PCompositorBridge; + +parent: + + // These messages correspond to the methods + // on the IAPZCTreeManager interface + + async ZoomToRect(ScrollableLayerGuid aGuid, CSSRect aRect, uint32_t Flags); + + async ContentReceivedInputBlock(uint64_t aInputBlockId, bool PreventDefault); + + async SetTargetAPZC(uint64_t aInputBlockId, ScrollableLayerGuid[] Targets); + + async UpdateZoomConstraints(ScrollableLayerGuid aGuid, MaybeZoomConstraints aConstraints); + + async CancelAnimation(ScrollableLayerGuid aGuid); + + async AdjustScrollForSurfaceShift(ScreenPoint aShift); + + async SetDPI(float aDpiValue); + + async SetAllowedTouchBehavior(uint64_t aInputBlockId, TouchBehaviorFlags[] aValues); + + async StartScrollbarDrag(ScrollableLayerGuid aGuid, AsyncDragMetrics aDragMetrics); + + async SetLongTapEnabled(bool aTapGestureEnabled); + + async ProcessTouchVelocity(uint32_t aTimestampMs, float aSpeedY); + + // The following messages are used to + // implement the ReceiveInputEvent methods + + sync ReceiveMultiTouchInputEvent(MultiTouchInput aEvent) + returns (nsEventStatus aOutStatus, + MultiTouchInput aOutEvent, + ScrollableLayerGuid aOutTargetGuid, + uint64_t aOutInputBlockId); + + sync ReceiveMouseInputEvent(MouseInput aEvent) + returns (nsEventStatus aOutStatus, + MouseInput aOutEvent, + ScrollableLayerGuid aOutTargetGuid, + uint64_t aOutInputBlockId); + + sync ReceivePanGestureInputEvent(PanGestureInput aEvent) + returns (nsEventStatus aOutStatus, + PanGestureInput aOutEvent, + ScrollableLayerGuid aOutTargetGuid, + uint64_t aOutInputBlockId); + + sync ReceivePinchGestureInputEvent(PinchGestureInput aEvent) + returns (nsEventStatus aOutStatus, + PinchGestureInput aOutEvent, + ScrollableLayerGuid aOutTargetGuid, + uint64_t aOutInputBlockId); + + sync ReceiveTapGestureInputEvent(TapGestureInput aEvent) + returns (nsEventStatus aOutStatus, + TapGestureInput aOutEvent, + ScrollableLayerGuid aOutTargetGuid, + uint64_t aOutInputBlockId); + + sync ReceiveScrollWheelInputEvent(ScrollWheelInput aEvent) + returns (nsEventStatus aOutStatus, + ScrollWheelInput aOutEvent, + ScrollableLayerGuid aOutTargetGuid, + uint64_t aOutInputBlockId); + + async UpdateWheelTransaction(LayoutDeviceIntPoint aRefPoint, EventMessage aEventMessage); + + sync TransformEventRefPoint(LayoutDeviceIntPoint aRefPoint) + returns (LayoutDeviceIntPoint aOutRefPoint, + ScrollableLayerGuid aOutTargetGuid); + + async __delete__(); + +child: + + async HandleTap(TapType aType, LayoutDevicePoint point, Modifiers aModifiers, + ScrollableLayerGuid aGuid, uint64_t aInputBlockId); + + async NotifyPinchGesture(PinchGestureType aType, ScrollableLayerGuid aGuid, + LayoutDeviceCoord aSpanChange, Modifiers aModifiers); +}; + +} // namespace gfx +} // namespace mozilla |