summaryrefslogtreecommitdiffstats
path: root/gfx/layers/ipc/APZCTreeManagerParent.h
blob: 8e44babbd38bcfbba1272082f13493f22721c7a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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_layers_APZCTreeManagerParent_h
#define mozilla_layers_APZCTreeManagerParent_h

#include "mozilla/layers/PAPZCTreeManagerParent.h"

namespace mozilla {
namespace layers {

class APZCTreeManager;

class APZCTreeManagerParent
    : public PAPZCTreeManagerParent
{
public:

  explicit APZCTreeManagerParent(uint64_t aLayersId, RefPtr<APZCTreeManager> aAPZCTreeManager);
  virtual ~APZCTreeManagerParent();

  uint64_t LayersId() const { return mLayersId; }

  /**
   * Called when the layer tree that this protocol is connected to
   * is adopted by another compositor, and we need to switch APZCTreeManagers.
   */
  void ChildAdopted(RefPtr<APZCTreeManager> aAPZCTreeManager);

  bool
  RecvReceiveMultiTouchInputEvent(
          const MultiTouchInput& aEvent,
          nsEventStatus* aOutStatus,
          MultiTouchInput* aOutEvent,
          ScrollableLayerGuid* aOutTargetGuid,
          uint64_t* aOutInputBlockId) override;

  bool
  RecvReceiveMouseInputEvent(
          const MouseInput& aEvent,
          nsEventStatus* aOutStatus,
          MouseInput* aOutEvent,
          ScrollableLayerGuid* aOutTargetGuid,
          uint64_t* aOutInputBlockId) override;

  bool
  RecvReceivePanGestureInputEvent(
          const PanGestureInput& aEvent,
          nsEventStatus* aOutStatus,
          PanGestureInput* aOutEvent,
          ScrollableLayerGuid* aOutTargetGuid,
          uint64_t* aOutInputBlockId) override;

  bool
  RecvReceivePinchGestureInputEvent(
          const PinchGestureInput& aEvent,
          nsEventStatus* aOutStatus,
          PinchGestureInput* aOutEvent,
          ScrollableLayerGuid* aOutTargetGuid,
          uint64_t* aOutInputBlockId) override;

  bool
  RecvReceiveTapGestureInputEvent(
          const TapGestureInput& aEvent,
          nsEventStatus* aOutStatus,
          TapGestureInput* aOutEvent,
          ScrollableLayerGuid* aOutTargetGuid,
          uint64_t* aOutInputBlockId) override;

  bool
  RecvReceiveScrollWheelInputEvent(
          const ScrollWheelInput& aEvent,
          nsEventStatus* aOutStatus,
          ScrollWheelInput* aOutEvent,
          ScrollableLayerGuid* aOutTargetGuid,
          uint64_t* aOutInputBlockId) override;

  bool
  RecvZoomToRect(
          const ScrollableLayerGuid& aGuid,
          const CSSRect& aRect,
          const uint32_t& aFlags) override;

  bool
  RecvContentReceivedInputBlock(
          const uint64_t& aInputBlockId,
          const bool& aPreventDefault) override;

  bool
  RecvSetTargetAPZC(
          const uint64_t& aInputBlockId,
          nsTArray<ScrollableLayerGuid>&& aTargets) override;

  bool
  RecvUpdateZoomConstraints(
          const ScrollableLayerGuid& aGuid,
          const MaybeZoomConstraints& aConstraints) override;

  bool
  RecvCancelAnimation(const ScrollableLayerGuid& aGuid) override;

  bool
  RecvAdjustScrollForSurfaceShift(const ScreenPoint& aShift) override;

  bool
  RecvSetDPI(const float& aDpiValue) override;

  bool
  RecvSetAllowedTouchBehavior(
          const uint64_t& aInputBlockId,
          nsTArray<TouchBehaviorFlags>&& aValues) override;

  bool
  RecvStartScrollbarDrag(
          const ScrollableLayerGuid& aGuid,
          const AsyncDragMetrics& aDragMetrics) override;

  bool
  RecvSetLongTapEnabled(const bool& aTapGestureEnabled) override;

  bool
  RecvProcessTouchVelocity(
          const uint32_t& aTimestampMs,
          const float& aSpeedY) override;

  bool
  RecvUpdateWheelTransaction(
          const LayoutDeviceIntPoint& aRefPoint,
          const EventMessage& aEventMessage) override;

  bool
  RecvTransformEventRefPoint(
          const LayoutDeviceIntPoint& aRefPoint,
          LayoutDeviceIntPoint* aOutRefPoint,
          ScrollableLayerGuid* aOutTargetGuid) override;

  void
  ActorDestroy(ActorDestroyReason aWhy) override { }

private:
  uint64_t mLayersId;
  RefPtr<APZCTreeManager> mTreeManager;
};

} // namespace layers
} // namespace mozilla

#endif // mozilla_layers_APZCTreeManagerParent_h