1 /* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_GESTURE_LISTENER_GESTURE_LISTENER_COMPONENT_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_GESTURE_LISTENER_GESTURE_LISTENER_COMPONENT_H 18 19 #include "core/components/gesture_listener/gesture_listener_element.h" 20 #include "core/components/gesture_listener/render_gesture_listener.h" 21 #include "core/pipeline/base/sole_child_component.h" 22 23 namespace OHOS::Ace { 24 25 struct GestureItemInfo { 26 int32_t offsetX; 27 int32_t offsetY; 28 RefPtr<PixelMap> pixelMap; 29 }; 30 using OnGestureFunc = std::function<GestureItemInfo()>; 31 class GestureListenerComponent final : public SoleChildComponent { 32 DECLARE_ACE_TYPE(GestureListenerComponent, SoleChildComponent); 33 34 public: 35 GestureListenerComponent() = default; GestureListenerComponent(const RefPtr<Component> & child)36 explicit GestureListenerComponent(const RefPtr<Component>& child) : SoleChildComponent(child) {} 37 ~GestureListenerComponent() override = default; 38 CreateElement()39 RefPtr<Element> CreateElement() override 40 { 41 return MakeRefPtr<GestureListenerElement>(); 42 } 43 CreateRenderNode()44 RefPtr<RenderNode> CreateRenderNode() override 45 { 46 return RenderGestureListener::Create(); 47 } 48 GetOnClickId()49 const EventMarker& GetOnClickId() const 50 { 51 return onClickId_; 52 } SetOnClickId(const EventMarker & onClickId)53 void SetOnClickId(const EventMarker& onClickId) 54 { 55 onClickId_ = onClickId; 56 } 57 GetRemoteMessageId()58 const EventMarker& GetRemoteMessageId() const 59 { 60 return remoteMessage_; 61 } 62 SetRemoteMessageId(const EventMarker & remoteMessage)63 void SetRemoteMessageId(const EventMarker& remoteMessage) 64 { 65 remoteMessage_ = remoteMessage; 66 } 67 GetOnDoubleClickId()68 const EventMarker& GetOnDoubleClickId() const 69 { 70 return onDoubleClickId_; 71 } SetOnDoubleClickId(const EventMarker & onDoubleClickId)72 void SetOnDoubleClickId(const EventMarker& onDoubleClickId) 73 { 74 onDoubleClickId_ = onDoubleClickId; 75 } 76 GetOnLongPressId()77 const EventMarker& GetOnLongPressId() const 78 { 79 return onLongPressId_; 80 } SetOnLongPressId(const EventMarker & onLongPressId)81 void SetOnLongPressId(const EventMarker& onLongPressId) 82 { 83 onLongPressId_ = onLongPressId; 84 } 85 GetOnPinchStartId()86 const EventMarker& GetOnPinchStartId() const 87 { 88 return onPinchStartId_; 89 } SetOnPinchStartId(const EventMarker & onPinchStartId)90 void SetOnPinchStartId(const EventMarker& onPinchStartId) 91 { 92 onPinchStartId_ = onPinchStartId; 93 } 94 GetOnPinchUpdateId()95 const EventMarker& GetOnPinchUpdateId() const 96 { 97 return onPinchUpdateId_; 98 } SetOnPinchUpdateId(const EventMarker & onPinchUpdateId)99 void SetOnPinchUpdateId(const EventMarker& onPinchUpdateId) 100 { 101 onPinchUpdateId_ = onPinchUpdateId; 102 } 103 GetOnPinchEndId()104 const EventMarker& GetOnPinchEndId() const 105 { 106 return onPinchEndId_; 107 } SetOnPinchEndId(const EventMarker & onPinchEndId)108 void SetOnPinchEndId(const EventMarker& onPinchEndId) 109 { 110 onPinchEndId_ = onPinchEndId; 111 } 112 GetOnPinchCancelId()113 const EventMarker& GetOnPinchCancelId() const 114 { 115 return onPinchCancelId_; 116 } SetOnPinchCancelId(const EventMarker & onPinchCancelId)117 void SetOnPinchCancelId(const EventMarker& onPinchCancelId) 118 { 119 onPinchCancelId_ = onPinchCancelId; 120 } 121 GetOnHorizontalDragStartId()122 const EventMarker& GetOnHorizontalDragStartId() const 123 { 124 return onHorizontalDragStartId_; 125 } SetOnHorizontalDragStartId(const EventMarker & onHorizontalDragStartId)126 void SetOnHorizontalDragStartId(const EventMarker& onHorizontalDragStartId) 127 { 128 onHorizontalDragStartId_ = onHorizontalDragStartId; 129 } 130 GetOnHorizontalDragUpdateId()131 const EventMarker& GetOnHorizontalDragUpdateId() const 132 { 133 return onHorizontalDragUpdateId_; 134 } SetOnHorizontalDragUpdateId(const EventMarker & onHorizontalDragUpdateId)135 void SetOnHorizontalDragUpdateId(const EventMarker& onHorizontalDragUpdateId) 136 { 137 onHorizontalDragUpdateId_ = onHorizontalDragUpdateId; 138 } 139 GetOnHorizontalDragEndId()140 const EventMarker& GetOnHorizontalDragEndId() const 141 { 142 return onHorizontalDragEndId_; 143 } SetOnHorizontalDragEndId(const EventMarker & onHorizontalDragEndId)144 void SetOnHorizontalDragEndId(const EventMarker& onHorizontalDragEndId) 145 { 146 onHorizontalDragEndId_ = onHorizontalDragEndId; 147 } 148 GetOnHorizontalDragCancelId()149 const EventMarker& GetOnHorizontalDragCancelId() const 150 { 151 return onHorizontalDragCancelId_; 152 } SetOnHorizontalDragCancelId(const EventMarker & onHorizontalDragCancelId)153 void SetOnHorizontalDragCancelId(const EventMarker& onHorizontalDragCancelId) 154 { 155 onHorizontalDragCancelId_ = onHorizontalDragCancelId; 156 } 157 GetOnVerticalDragStartId()158 const EventMarker& GetOnVerticalDragStartId() const 159 { 160 return onVerticalDragStartId_; 161 } SetOnVerticalDragStartId(const EventMarker & onVerticalDragStartId)162 void SetOnVerticalDragStartId(const EventMarker& onVerticalDragStartId) 163 { 164 onVerticalDragStartId_ = onVerticalDragStartId; 165 } 166 GetOnVerticalDragUpdateId()167 const EventMarker& GetOnVerticalDragUpdateId() const 168 { 169 return onVerticalDragUpdateId_; 170 } SetOnVerticalDragUpdateId(const EventMarker & onVerticalDragUpdateId)171 void SetOnVerticalDragUpdateId(const EventMarker& onVerticalDragUpdateId) 172 { 173 onVerticalDragUpdateId_ = onVerticalDragUpdateId; 174 } 175 GetOnVerticalDragEndId()176 const EventMarker& GetOnVerticalDragEndId() const 177 { 178 return onVerticalDragEndId_; 179 } SetOnVerticalDragEndId(const EventMarker & onVerticalDragEndId)180 void SetOnVerticalDragEndId(const EventMarker& onVerticalDragEndId) 181 { 182 onVerticalDragEndId_ = onVerticalDragEndId; 183 } 184 GetOnVerticalDragCancelId()185 const EventMarker& GetOnVerticalDragCancelId() const 186 { 187 return onVerticalDragCancelId_; 188 } SetOnVerticalDragCancelId(const EventMarker & onVerticalDragCancelId)189 void SetOnVerticalDragCancelId(const EventMarker& onVerticalDragCancelId) 190 { 191 onVerticalDragCancelId_ = onVerticalDragCancelId; 192 } 193 GetOnFreeDragStartId()194 const EventMarker& GetOnFreeDragStartId() const 195 { 196 return onFreeDragStartId_; 197 } SetOnFreeDragStartId(const EventMarker & onFreeDragStartId)198 void SetOnFreeDragStartId(const EventMarker& onFreeDragStartId) 199 { 200 onFreeDragStartId_ = onFreeDragStartId; 201 } 202 GetOnFreeDragUpdateId()203 const EventMarker& GetOnFreeDragUpdateId() const 204 { 205 return onFreeDragUpdateId_; 206 } SetOnFreeDragUpdateId(const EventMarker & onFreeDragUpdateId)207 void SetOnFreeDragUpdateId(const EventMarker& onFreeDragUpdateId) 208 { 209 onFreeDragUpdateId_ = onFreeDragUpdateId; 210 } 211 GetOnFreeDragEndId()212 const EventMarker& GetOnFreeDragEndId() const 213 { 214 return onFreeDragEndId_; 215 } SetOnFreeDragEndId(const EventMarker & onFreeDragEndId)216 void SetOnFreeDragEndId(const EventMarker& onFreeDragEndId) 217 { 218 onFreeDragEndId_ = onFreeDragEndId; 219 } 220 GetOnFreeDragCancelId()221 const EventMarker& GetOnFreeDragCancelId() const 222 { 223 return onFreeDragCancelId_; 224 } SetOnFreeDragCancelId(const EventMarker & onFreeDragCancelId)225 void SetOnFreeDragCancelId(const EventMarker& onFreeDragCancelId) 226 { 227 onFreeDragCancelId_ = onFreeDragCancelId; 228 } 229 IsVisible()230 bool IsVisible() const 231 { 232 return isVisible_; 233 } 234 SetIsVisible(bool isVisible)235 void SetIsVisible(bool isVisible) 236 { 237 isVisible_ = isVisible; 238 } 239 GetOnDragStartId()240 OnGestureFunc GetOnDragStartId() const 241 { 242 return onDragStartId_; 243 } SetOnDragStartId(const OnGestureFunc & onDragStartId)244 void SetOnDragStartId(const OnGestureFunc& onDragStartId) 245 { 246 onDragStartId_ = onDragStartId; 247 } 248 249 private: 250 EventMarker remoteMessage_; 251 EventMarker onClickId_; 252 EventMarker onDoubleClickId_; 253 EventMarker onLongPressId_; 254 EventMarker onPinchStartId_; 255 EventMarker onPinchUpdateId_; 256 EventMarker onPinchEndId_; 257 EventMarker onPinchCancelId_; 258 EventMarker onHorizontalDragStartId_; 259 EventMarker onHorizontalDragUpdateId_; 260 EventMarker onHorizontalDragEndId_; 261 EventMarker onHorizontalDragCancelId_; 262 EventMarker onVerticalDragStartId_; 263 EventMarker onVerticalDragUpdateId_; 264 EventMarker onVerticalDragEndId_; 265 EventMarker onVerticalDragCancelId_; 266 EventMarker onFreeDragStartId_; 267 EventMarker onFreeDragUpdateId_; 268 EventMarker onFreeDragEndId_; 269 EventMarker onFreeDragCancelId_; 270 271 bool isVisible_ = true; 272 OnGestureFunc onDragStartId_; 273 }; 274 275 } // namespace OHOS::Ace 276 277 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_GESTURE_LISTENER_GESTURE_LISTENER_COMPONENT_H 278