|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 #ifndef __mozilla_widget_ContentHelper_h__ |
|
7 #define __mozilla_widget_ContentHelper_h__ |
|
8 |
|
9 #include "nsIFrame.h" |
|
10 #include "nsIWidget.h" |
|
11 #include "mozilla/layers/APZCTreeManager.h" |
|
12 |
|
13 namespace mozilla { |
|
14 namespace widget { |
|
15 |
|
16 /* |
|
17 * Allow different platform widgets to access Content/DOM stuff. |
|
18 */ |
|
19 class ContentHelper |
|
20 { |
|
21 typedef mozilla::layers::AllowedTouchBehavior AllowedTouchBehavior; |
|
22 typedef uint32_t TouchBehaviorFlags; |
|
23 |
|
24 private: |
|
25 static uint32_t GetTouchActionFromFrame(nsIFrame* aFrame); |
|
26 static void UpdateAllowedBehavior(uint32_t aTouchActionValue, bool aConsiderPanning, TouchBehaviorFlags& aOutBehavior); |
|
27 |
|
28 public: |
|
29 /* |
|
30 * Performs hit testing on content, finds frame that corresponds to the aPoint and retrieves |
|
31 * touch-action css property value from it according the rules specified in the spec: |
|
32 * http://www.w3.org/TR/pointerevents/#the-touch-action-css-property. |
|
33 */ |
|
34 static TouchBehaviorFlags GetAllowedTouchBehavior(nsIWidget* aWidget, const nsIntPoint& aPoint); |
|
35 }; |
|
36 |
|
37 } |
|
38 } |
|
39 |
|
40 #endif /*__mozilla_widget_ContentHelper_h__ */ |