96 lines
4.2 KiB
Text
96 lines
4.2 KiB
Text
/* -*- 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 "ipc/nsGUIEventIPC.h";
|
|
|
|
using mozilla::LayoutDeviceIntPoint from "Units.h";
|
|
using mozilla::LayoutDevicePoint from "Units.h";
|
|
using mozilla::layers::GeckoContentController_TapType from "mozilla/layers/GeckoContentControllerTypes.h";
|
|
using mozilla::layers::DoubleTapToZoomMetrics from "mozilla/layers/DoubleTapToZoom.h";
|
|
using struct mozilla::layers::ScrollableLayerGuid from "mozilla/layers/ScrollableLayerGuid.h";
|
|
using struct mozilla::layers::APZEventResult from "mozilla/layers/APZInputBridge.h";
|
|
using struct mozilla::layers::APZHandledResult from "mozilla/layers/APZInputBridge.h";
|
|
|
|
using mozilla::EventMessage from "mozilla/EventForwards.h";
|
|
using mozilla::Modifiers from "mozilla/EventForwards.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 class mozilla::TapGestureInput from "InputData.h";
|
|
using class mozilla::ScrollWheelInput from "InputData.h";
|
|
using class mozilla::KeyboardInput from "InputData.h";
|
|
|
|
using mozilla::layers::LayersId from "mozilla/layers/LayersTypes.h";
|
|
|
|
namespace mozilla {
|
|
namespace layers {
|
|
|
|
/**
|
|
* This protocol is used to send input events from the UI process to the
|
|
* GPU process for handling by APZ. There is one instance per top-level
|
|
* compositor, or in other words, one instance per concrete APZCTreeManager
|
|
* instance. The child side lives on the controller thread in the UI process,
|
|
* ie the main thread on most platforms, but the Android UI thread on Android.
|
|
* The parent side lives on the main thread in the GPU process. If there is no
|
|
* GPU process, then this protocol is not instantiated.
|
|
*/
|
|
[ParentProc=GPU, ChildProc=Parent]
|
|
sync protocol PAPZInputBridge
|
|
{
|
|
parent:
|
|
// The following messages are used to
|
|
// implement the ReceiveInputEvent methods
|
|
|
|
sync ReceiveMultiTouchInputEvent(MultiTouchInput aEvent, bool aWantsCallback)
|
|
returns(APZEventResult aOutResult, MultiTouchInput aOutEvent);
|
|
|
|
sync ReceiveMouseInputEvent(MouseInput aEvent, bool aWantsCallback)
|
|
returns (APZEventResult aOutResult,
|
|
MouseInput aOutEvent);
|
|
|
|
sync ReceivePanGestureInputEvent(PanGestureInput aEvent, bool aWantsCallback)
|
|
returns (APZEventResult aOutResult,
|
|
PanGestureInput aOutEvent);
|
|
|
|
sync ReceivePinchGestureInputEvent(PinchGestureInput aEvent,
|
|
bool aWantsCallback)
|
|
returns (APZEventResult aOutResult,
|
|
PinchGestureInput aOutEvent);
|
|
|
|
sync ReceiveTapGestureInputEvent(TapGestureInput aEvent, bool aWantsCallback)
|
|
returns (APZEventResult aOutResult,
|
|
TapGestureInput aOutEvent);
|
|
|
|
sync ReceiveScrollWheelInputEvent(ScrollWheelInput aEvent,
|
|
bool aWantsCallback)
|
|
returns (APZEventResult aOutResult,
|
|
ScrollWheelInput aOutEvent);
|
|
|
|
sync ReceiveKeyboardInputEvent(KeyboardInput aEvent, bool aWantsCallback)
|
|
returns (APZEventResult aOutResult,
|
|
KeyboardInput aOutEvent);
|
|
|
|
async UpdateWheelTransaction(LayoutDeviceIntPoint aRefPoint,
|
|
EventMessage aEventMessage,
|
|
ScrollableLayerGuid? aTargetGuid);
|
|
|
|
sync ProcessUnhandledEvent(LayoutDeviceIntPoint aRefPoint)
|
|
returns (LayoutDeviceIntPoint aOutRefPoint,
|
|
ScrollableLayerGuid aOutTargetGuid,
|
|
uint64_t aOutFocusSequenceNumber,
|
|
LayersId aOutLayersId);
|
|
|
|
child:
|
|
async CallInputBlockCallback(uint64_t aInputBlockId,
|
|
APZHandledResult aHandledResult);
|
|
|
|
async HandleTap(GeckoContentController_TapType aType, LayoutDevicePoint point,
|
|
Modifiers aModifiers, ScrollableLayerGuid aGuid,
|
|
uint64_t aInputBlockId, DoubleTapToZoomMetrics? aDoubleTapToZoomMetrics);
|
|
};
|
|
|
|
} // namespace gfx
|
|
} // namespace mozilla
|