• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 SetMaxPullDownDistance(const std::optional<float>& maxDistance) override;
41     void SetPullDownRatio(const std::optional<float>& pullDownRatio) override;
42     void SetCustomBuilder(const RefPtr<NG::UINode>& customBuilder) override;
43     void SetLoadingText(const std::string& loadingText) override;
44     void ResetLoadingText() override;
45     void SetRefreshOffset(const Dimension& offset) override;
46     void SetPullToRefresh(bool isPullToRefresh) override;
47     void SetIsCustomBuilderExist(bool isCustomBuilderExist) override;
48     // @deprecated
Pop()49     void Pop() override {}
SetRefreshDistance(const Dimension & refreshDistance)50     void SetRefreshDistance(const Dimension& refreshDistance) override {}
SetUseOffset(bool isUseOffset)51     void SetUseOffset(bool isUseOffset) override {}
IsRefresh(bool isRefresh)52     void IsRefresh(bool isRefresh) override {}
SetLoadingDistance(const Dimension & loadingDistance)53     void SetLoadingDistance(const Dimension& loadingDistance) override {}
SetProgressDistance(const Dimension & progressDistance)54     void SetProgressDistance(const Dimension& progressDistance) override {}
SetProgressDiameter(const Dimension & progressDiameter)55     void SetProgressDiameter(const Dimension& progressDiameter) override {}
SetMaxDistance(const Dimension & maxDistance)56     void SetMaxDistance(const Dimension& maxDistance) override {}
SetIsShowLastTime(bool IsShowLastTime)57     void SetIsShowLastTime(bool IsShowLastTime) override {}
SetShowTimeDistance(const Dimension & showTimeDistance)58     void SetShowTimeDistance(const Dimension& showTimeDistance) override {}
SetTextStyle(const TextStyle & textStyle)59     void SetTextStyle(const TextStyle& textStyle) override {}
SetProgressBackgroundColor(const Color & backgroundColor)60     void SetProgressBackgroundColor(const Color& backgroundColor) override {}
SetProgressColor(const Color & progressColor)61     void SetProgressColor(const Color& progressColor) override {}
62     void CreateWithResourceObj(const RefPtr<ResourceObject>& resObj) override;
63 
64     static RefPtr<FrameNode> CreateFrameNode(int32_t nodeId);
65     static void SetRefreshing(FrameNode* frameNode, bool isRefreshing);
66     static bool GetRefreshing(FrameNode* frameNode);
67     static void SetCustomBuilder(FrameNode* frameNode, FrameNode* customBuilder);
68     static void SetCustomBuilderMultiThread(FrameNode* frameNode, FrameNode* customBuilder);
69     static void SetOnStateChange(FrameNode* frameNode, StateChangeEvent&& stateChange);
70     static void SetOnOffsetChange(FrameNode* frameNode, OffsetChangeEvent&& dragOffset);
71     static void ResetOnOffsetChange(FrameNode* frameNode);
72     static void SetOnRefreshing(FrameNode* frameNode, RefreshingEvent&& refreshing);
73     static void SetRefreshOffset(FrameNode* frameNode, const Dimension& offset);
74     static void SetPullToRefresh(FrameNode* frameNode, bool isPullToRefresh);
75     static void SetMaxPullDownDistance(FrameNode* frameNode, const std::optional<float>& maxDistance);
76     static float GetMaxPullDownDistance(FrameNode* frameNode);
77     static void SetPullDownRatio(FrameNode* frameNode, const std::optional<float>& pullDownRatio);
78     static float GetPullDownRatio(FrameNode* frameNode);
79     static Dimension GetRefreshOffset(FrameNode* frameNode);
80     static bool GetPullToRefresh(FrameNode* frameNode);
81     static void SetChangeEvent(FrameNode* frameNode, RefreshChangeEvent&& changeEvent);
82     static void SetStepOffsetChange(FrameNode* frameNode, OffsetChangeEvent&& dragOffset);
83 };
84 } // namespace OHOS::Ace::NG
85 
86 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_REFRESH_MODEL_NG_H
87