1 /*
2  * Copyright (c) 2022-2024 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_NG_PATTERNS_REFRESH_MODEL_NG_H
17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_REFRESH_MODEL_NG_H
18 
19 #include <string>
20 
21 #include "frameworks/base/geometry/dimension.h"
22 #include "frameworks/base/utils/macros.h"
23 #include "frameworks/core/components/common/properties/color.h"
24 #include "frameworks/core/components_ng/pattern/refresh/refresh_model.h"
25 #include "frameworks/core/components_ng/pattern/refresh/refresh_pattern.h"
26 
27 namespace OHOS::Ace::NG {
28 
29 class ACE_EXPORT RefreshModelNG : public RefreshModel {
30 public:
31     void Create() override;
32     void SetRefreshing(bool isRefreshing) override;
33     void SetIndicatorOffset(const Dimension& indicatorOffset) override;
34     void SetFriction(int32_t friction) override;
35     void SetOnStateChange(StateChangeEvent&& stateChange) override;
36     void SetOnRefreshing(RefreshingEvent&& refreshing) override;
37     void SetChangeEvent(RefreshChangeEvent&& changeEvent) override;
38     void SetOnOffsetChange(OffsetChangeEvent&& dragOffset) override;
39     void ResetOnOffsetChange() override;
40     void SetPullDownRatio(const std::optional<float>& pullDownRatio) override;
41     void SetCustomBuilder(const RefPtr<NG::UINode>& customBuilder) override;
42     void SetLoadingText(const std::string& loadingText) override;
43     void ResetLoadingText() override;
44     void SetRefreshOffset(const Dimension& offset) override;
45     void SetPullToRefresh(bool isPullToRefresh) override;
46     void SetIsCustomBuilderExist(bool isCustomBuilderExist) override;
47     // @deprecated
Pop()48     void Pop() override {}
SetRefreshDistance(const Dimension & refreshDistance)49     void SetRefreshDistance(const Dimension& refreshDistance) override {}
SetUseOffset(bool isUseOffset)50     void SetUseOffset(bool isUseOffset) override {}
IsRefresh(bool isRefresh)51     void IsRefresh(bool isRefresh) override {}
SetLoadingDistance(const Dimension & loadingDistance)52     void SetLoadingDistance(const Dimension& loadingDistance) override {}
SetProgressDistance(const Dimension & progressDistance)53     void SetProgressDistance(const Dimension& progressDistance) override {}
SetProgressDiameter(const Dimension & progressDiameter)54     void SetProgressDiameter(const Dimension& progressDiameter) override {}
SetMaxDistance(const Dimension & maxDistance)55     void SetMaxDistance(const Dimension& maxDistance) override {}
SetIsShowLastTime(bool IsShowLastTime)56     void SetIsShowLastTime(bool IsShowLastTime) override {}
SetShowTimeDistance(const Dimension & showTimeDistance)57     void SetShowTimeDistance(const Dimension& showTimeDistance) override {}
SetTextStyle(const TextStyle & textStyle)58     void SetTextStyle(const TextStyle& textStyle) override {}
SetProgressBackgroundColor(const Color & backgroundColor)59     void SetProgressBackgroundColor(const Color& backgroundColor) override {}
SetProgressColor(const Color & progressColor)60     void SetProgressColor(const Color& progressColor) override {}
61 
62     static RefPtr<FrameNode> CreateFrameNode(int32_t nodeId);
63     static void SetRefreshing(FrameNode* frameNode, bool isRefreshing);
64     static bool GetRefreshing(FrameNode* frameNode);
65     static void SetCustomBuilder(FrameNode* frameNode, FrameNode* customBuilder);
66     static void SetOnStateChange(FrameNode* frameNode, StateChangeEvent&& stateChange);
67     static void SetOnOffsetChange(FrameNode* frameNode, OffsetChangeEvent&& dragOffset);
68     static void ResetOnOffsetChange(FrameNode* frameNode);
69     static void SetOnRefreshing(FrameNode* frameNode, RefreshingEvent&& refreshing);
70     static void SetRefreshOffset(FrameNode* frameNode, const Dimension& offset);
71     static void SetPullToRefresh(FrameNode* frameNode, bool isPullToRefresh);
72     static void SetPullDownRatio(FrameNode* frameNode, const std::optional<float>& pullDownRatio);
73     static float GetPullDownRatio(FrameNode* frameNode);
74     static Dimension GetRefreshOffset(FrameNode* frameNode);
75     static bool GetPullToRefresh(FrameNode* frameNode);
76     static void SetChangeEvent(FrameNode* frameNode, RefreshChangeEvent&& changeEvent);
77 };
78 } // namespace OHOS::Ace::NG
79 
80 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_REFRESH_MODEL_NG_H
81