1 /* 2 * Copyright (c) 2021 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 #include "core/gestures/slide_gesture.h" 17 18 #include "core/gestures/slide_recognizer.h" 19 20 namespace OHOS::Ace { 21 CreateRecognizer(WeakPtr<PipelineBase> context)22RefPtr<GestureRecognizer> Ace::SwipeGesture::CreateRecognizer(WeakPtr<PipelineBase> context) 23 { 24 auto newContext = context.Upgrade(); 25 if (!newContext) { 26 LOGE("fail to create pan recognizer due to context is nullptr"); 27 return nullptr; 28 } 29 double speed = newContext->NormalizeToPx(Dimension(speed_, DimensionUnit::VP)); 30 RefPtr<OHOS::Ace::SlideRecognizer> slideRecognizer; 31 slideRecognizer = AceType::MakeRefPtr<SlideRecognizer>(context, fingers_, direction_, speed); 32 if (onActionId_) { 33 slideRecognizer->SetOnAction(*onActionId_); 34 } 35 36 slideRecognizer->SetPriority(priority_); 37 slideRecognizer->SetPriorityMask(gestureMask_); 38 return slideRecognizer; 39 } 40 41 } // namespace OHOS::Ace