• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-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_PATTERN_SCROLLABLE_SCROLLABLE_EVENT_HUB_H
17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_SCROLLABLE_SCROLLABLE_EVENT_HUB_H
18 
19 #include "core/components_ng/event/event_hub.h"
20 #include "core/components_ng/pattern/scrollable/scrollable_properties.h"
21 
22 namespace OHOS::Ace::NG {
23 class ScrollableEventHub : public EventHub {
24     DECLARE_ACE_TYPE(ScrollableEventHub, EventHub);
25 
26 public:
27     ScrollableEventHub() = default;
28     ~ScrollableEventHub() override = default;
29 
SetOnScroll(OnScrollEvent && onScroll)30     void SetOnScroll(OnScrollEvent&& onScroll)
31     {
32         onScrollEvent_ = std::move(onScroll);
33     }
34 
GetOnScroll()35     const OnScrollEvent& GetOnScroll() const
36     {
37         return onScrollEvent_;
38     }
39 
SetOnWillScroll(OnWillScrollEvent && onScroll)40     void SetOnWillScroll(OnWillScrollEvent&& onScroll)
41     {
42         onWillScrollEvent_ = std::move(onScroll);
43     }
44 
GetOnWillScroll()45     const OnWillScrollEvent& GetOnWillScroll() const
46     {
47         return onWillScrollEvent_;
48     }
49 
SetOnDidScroll(OnScrollEvent && onScroll)50     void SetOnDidScroll(OnScrollEvent&& onScroll)
51     {
52         onDidScrollEvent_ = std::move(onScroll);
53     }
54 
GetOnDidScroll()55     const OnScrollEvent& GetOnDidScroll() const
56     {
57         return onDidScrollEvent_;
58     }
59 
SetOnScrollFrameBegin(OnScrollFrameBeginEvent && onScrollFrameBegin)60     void SetOnScrollFrameBegin(OnScrollFrameBeginEvent&& onScrollFrameBegin)
61     {
62         onScrollFrameBeginEvent_ = std::move(onScrollFrameBegin);
63     }
64 
GetOnScrollFrameBegin()65     const OnScrollFrameBeginEvent& GetOnScrollFrameBegin() const
66     {
67         return onScrollFrameBeginEvent_;
68     }
69 
SetOnScrollStart(OnScrollStartEvent && onScrollStart)70     void SetOnScrollStart(OnScrollStartEvent&& onScrollStart)
71     {
72         onScrollStartEvent_ = std::move(onScrollStart);
73     }
74 
GetOnScrollStart()75     const OnScrollStartEvent& GetOnScrollStart() const
76     {
77         return onScrollStartEvent_;
78     }
79 
SetOnScrollStop(OnScrollStopEvent && onScrollStop)80     void SetOnScrollStop(OnScrollStopEvent&& onScrollStop)
81     {
82         onScrollStopEvent_ = std::move(onScrollStop);
83     }
84 
GetOnScrollStop()85     const OnScrollStopEvent& GetOnScrollStop() const
86     {
87         return onScrollStopEvent_;
88     }
89 
SetOnReachStart(OnReachEvent && onReachStart)90     void SetOnReachStart(OnReachEvent&& onReachStart)
91     {
92         onReachStartEvent_ = std::move(onReachStart);
93     }
94 
GetOnReachStart()95     const OnReachEvent& GetOnReachStart() const
96     {
97         return onReachStartEvent_;
98     }
99 
SetOnReachEnd(OnReachEvent && onReachEnd)100     void SetOnReachEnd(OnReachEvent&& onReachEnd)
101     {
102         onReachEndEvent_ = std::move(onReachEnd);
103     }
104 
GetOnReachEnd()105     const OnReachEvent& GetOnReachEnd() const
106     {
107         return onReachEndEvent_;
108     }
109 
SetOnWillStopDragging(OnWillStopDraggingEvent && onWillStopdragging)110     void SetOnWillStopDragging(OnWillStopDraggingEvent&& onWillStopdragging)
111     {
112         onWillStopDraggingEvent_ = std::move(onWillStopdragging);
113     }
114 
GetOnWillStopDragging()115     const OnWillStopDraggingEvent& GetOnWillStopDragging() const
116     {
117         return onWillStopDraggingEvent_;
118     }
119 
SetJSFrameNodeOnReachStart(OnReachEvent && onScroll)120     void SetJSFrameNodeOnReachStart(OnReachEvent&& onScroll)
121     {
122         onJSFrameNodeReachStartEvent_ = std::move(onScroll);
123     }
124 
GetJSFrameNodeOnReachStart()125     const OnReachEvent& GetJSFrameNodeOnReachStart() const
126     {
127         return onJSFrameNodeReachStartEvent_;
128     }
129 
ClearJSFrameNodeOnReachStart()130     void ClearJSFrameNodeOnReachStart()
131     {
132         if (onJSFrameNodeReachStartEvent_) {
133             onJSFrameNodeReachStartEvent_ = nullptr;
134         }
135     }
136 
SetJSFrameNodeOnReachEnd(OnReachEvent && onScroll)137     void SetJSFrameNodeOnReachEnd(OnReachEvent&& onScroll)
138     {
139         onJSFrameNodeReachEndEvent_ = std::move(onScroll);
140     }
141 
ClearJSFrameNodeOnReachEnd()142     void ClearJSFrameNodeOnReachEnd()
143     {
144         if (onJSFrameNodeReachEndEvent_) {
145             onJSFrameNodeReachEndEvent_ = nullptr;
146         }
147     }
148 
GetJSFrameNodeOnReachEnd()149     const OnReachEvent& GetJSFrameNodeOnReachEnd() const
150     {
151         return onJSFrameNodeReachEndEvent_;
152     }
153 
SetJSFrameNodeOnScrollStart(OnScrollStartEvent && onScroll)154     void SetJSFrameNodeOnScrollStart(OnScrollStartEvent&& onScroll)
155     {
156         onJSFrameNodeScrollStartEvent_ = std::move(onScroll);
157     }
158 
ClearJSFrameNodeOnScrollStart()159     void ClearJSFrameNodeOnScrollStart()
160     {
161         if (onJSFrameNodeScrollStartEvent_) {
162             onJSFrameNodeScrollStartEvent_ = nullptr;
163         }
164     }
165 
GetJSFrameNodeOnScrollStart()166     const OnScrollStartEvent& GetJSFrameNodeOnScrollStart() const
167     {
168         return onJSFrameNodeScrollStartEvent_;
169     }
170 
SetJSFrameNodeOnScrollStop(OnScrollStopEvent && onScroll)171     void SetJSFrameNodeOnScrollStop(OnScrollStopEvent&& onScroll)
172     {
173         onJSFrameNodeScrollStopEvent_ = std::move(onScroll);
174     }
175 
ClearJSFrameNodeOnScrollStop()176     void ClearJSFrameNodeOnScrollStop()
177     {
178         if (onJSFrameNodeScrollStopEvent_) {
179             onJSFrameNodeScrollStopEvent_ = nullptr;
180         }
181     }
182 
GetJSFrameNodeOnScrollStop()183     const OnScrollStopEvent& GetJSFrameNodeOnScrollStop() const
184     {
185         return onJSFrameNodeScrollStopEvent_;
186     }
187 
SetJSFrameNodeOnScrollFrameBegin(OnScrollFrameBeginEvent && onScroll)188     void SetJSFrameNodeOnScrollFrameBegin(OnScrollFrameBeginEvent&& onScroll)
189     {
190         onJSFrameNodeScrollFrameBeginEvent_ = std::move(onScroll);
191     }
192 
ClearJSFrameNodeOnScrollFrameBegin()193     void ClearJSFrameNodeOnScrollFrameBegin()
194     {
195         if (onJSFrameNodeScrollFrameBeginEvent_) {
196             onJSFrameNodeScrollFrameBeginEvent_ = nullptr;
197         }
198     }
199 
GetJSFrameNodeOnScrollFrameBegin()200     const OnScrollFrameBeginEvent& GetJSFrameNodeOnScrollFrameBegin() const
201     {
202         return onJSFrameNodeScrollFrameBeginEvent_;
203     }
204 
SetJSFrameNodeOnWillScroll(OnWillScrollEvent && onScroll)205     void SetJSFrameNodeOnWillScroll(OnWillScrollEvent&& onScroll)
206     {
207         onJSFrameNodeWillScrollEvent_ = std::move(onScroll);
208     }
209 
ClearJSFrameNodeOnWillScroll()210     void ClearJSFrameNodeOnWillScroll()
211     {
212         if (onJSFrameNodeWillScrollEvent_) {
213             onJSFrameNodeWillScrollEvent_ = nullptr;
214         }
215     }
216 
GetJSFrameNodeOnWillScroll()217     const OnWillScrollEvent& GetJSFrameNodeOnWillScroll() const
218     {
219         return onJSFrameNodeWillScrollEvent_;
220     }
221 
SetJSFrameNodeOnDidScroll(OnScrollEvent && onScroll)222     void SetJSFrameNodeOnDidScroll(OnScrollEvent&& onScroll)
223     {
224         onJSFrameNodeDidScrollEvent_ = std::move(onScroll);
225     }
226 
ClearJSFrameNodeOnDidScroll()227     void ClearJSFrameNodeOnDidScroll()
228     {
229         if (onJSFrameNodeDidScrollEvent_) {
230             onJSFrameNodeDidScrollEvent_ = nullptr;
231         }
232     }
233 
GetJSFrameNodeOnDidScroll()234     const OnScrollEvent& GetJSFrameNodeOnDidScroll() const
235     {
236         return onJSFrameNodeDidScrollEvent_;
237     }
238 
239 private:
240     OnScrollEvent onScrollEvent_;
241     OnWillScrollEvent onWillScrollEvent_;
242     OnScrollEvent onDidScrollEvent_;
243     OnScrollStartEvent onScrollStartEvent_;
244     OnScrollStopEvent onScrollStopEvent_;
245     OnScrollFrameBeginEvent onScrollFrameBeginEvent_;
246     OnReachEvent onReachStartEvent_;
247     OnReachEvent onReachEndEvent_;
248     OnWillStopDraggingEvent onWillStopDraggingEvent_;
249 
250     OnReachEvent onJSFrameNodeReachStartEvent_;
251     OnReachEvent onJSFrameNodeReachEndEvent_;
252     OnScrollStartEvent onJSFrameNodeScrollStartEvent_;
253     OnScrollStopEvent onJSFrameNodeScrollStopEvent_;
254     OnScrollFrameBeginEvent onJSFrameNodeScrollFrameBeginEvent_;
255     OnWillScrollEvent onJSFrameNodeWillScrollEvent_;
256     OnScrollEvent onJSFrameNodeDidScrollEvent_;
257 };
258 } // namespace OHOS::Ace::NG
259 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_SCROLLABLE_SCROLLABLE_EVENT_HUB_H
260