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 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_LIST_WATCH_INTERACTIVE_EFFECT_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_LIST_WATCH_INTERACTIVE_EFFECT_H 18 19 #include "core/components/list/interactive_effect.h" 20 21 namespace OHOS::Ace { 22 23 class WatchInteractiveEffect : public InteractiveEffect { 24 DECLARE_ACE_TYPE(WatchInteractiveEffect, InteractiveEffect); 25 26 public: WatchInteractiveEffect(const WeakPtr<PipelineContext> & context)27 explicit WatchInteractiveEffect(const WeakPtr<PipelineContext>& context) : InteractiveEffect(context) {} 28 29 ~WatchInteractiveEffect() override = default; 30 HandleOnClick()31 void HandleOnClick() override 32 { 33 scaleBegin_ = scale_; 34 if (theme_) { 35 scaleEnd_ = scale_ * theme_->GetClickScale(); // scale_ * 0.95; 36 alphaBegin_ = theme_->GetClickAlphaBegin(); // 0.0 37 alphaEnd_ = theme_->GetClickAlphaEnd(); // 0.1 38 focusDuration_ = theme_->GetClickAnimationDuration(); // 200.0 39 } else { 40 LOGE("HandleOnClick : theme is not invalid"); 41 } 42 } 43 44 void BuildClickAnimation() override; 45 46 private: 47 void BuildClickScaleAnimation(const RefPtr<KeyframeAnimation<double>>& scaleAnimation); 48 }; 49 50 } // namespace OHOS::Ace 51 52 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_LIST_WATCH_INTERACTIVE_EFFECT_H 53