1 /*
2 * Copyright (c) 2023 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 #include "core/interfaces/native/node/node_api.h"
16
17 #include "core/interfaces/native/node/alphabet_indexer_modifier.h"
18 #include "core/interfaces/native/node/badge_modifier.h"
19 #include "core/interfaces/native/node/blank_modifier.h"
20 #include "core/interfaces/native/node/button_modifier.h"
21 #include "core/interfaces/native/node/calendar_picker_modifier.h"
22 #include "core/interfaces/native/node/checkboxgroup_modifier.h"
23 #include "core/interfaces/native/node/column_modifier.h"
24 #include "core/interfaces/native/node/column_split_modifier.h"
25 #include "core/interfaces/native/node/common_shape_modifier.h"
26 #include "core/interfaces/native/node/counter_modifier.h"
27 #include "core/interfaces/native/node/data_panel_modifier.h"
28 #include "core/interfaces/native/node/divider_modifier.h"
29 #include "core/interfaces/native/node/flex_modifier.h"
30 #include "core/interfaces/native/node/frame_node_modifier.h"
31 #include "core/interfaces/native/node/gauge_modifier.h"
32 #include "core/interfaces/native/node/grid_col_modifier.h"
33 #include "core/interfaces/native/node/grid_item_modifier.h"
34 #include "core/interfaces/native/node/grid_modifier.h"
35 #include "core/interfaces/native/node/grid_row_modifier.h"
36 #include "core/interfaces/native/node/hyperlink_modifier.h"
37 #include "core/interfaces/native/node/image_animator_modifier.h"
38 #include "core/interfaces/native/node/line_modifier.h"
39 #include "core/interfaces/native/node/marquee_modifier.h"
40 #include "core/interfaces/native/node/node_relative_container_modifier.h"
41 #include "core/interfaces/native/node/menu_item_modifier.h"
42 #include "core/interfaces/native/node/menu_modifier.h"
43 #include "core/interfaces/native/node/nav_destination_modifier.h"
44 #include "core/interfaces/native/node/nav_router_modifier.h"
45 #include "core/interfaces/native/node/navigation_modifier.h"
46 #include "core/interfaces/native/node/navigator_modifier.h"
47 #include "core/interfaces/native/node/node_checkbox_modifier.h"
48 #include "core/interfaces/native/node/node_common_modifier.h"
49 #include "core/interfaces/native/node/node_container_modifier.h"
50 #include "core/interfaces/native/node/node_container_span_modifier.h"
51 #include "core/interfaces/native/node/node_content_modifier.h"
52 #include "core/interfaces/native/node/node_date_picker_modifier.h"
53 #include "core/interfaces/native/node/node_folder_stack_modifier.h"
54 #include "core/interfaces/native/node/node_gesture_modifier.h"
55 #include "core/interfaces/native/node/node_image_modifier.h"
56 #include "core/interfaces/native/node/node_image_span_modifier.h"
57 #include "core/interfaces/native/node/node_list_item_group_modifier.h"
58 #include "core/interfaces/native/node/node_list_item_modifier.h"
59 #include "core/interfaces/native/node/node_list_modifier.h"
60 #include "core/interfaces/native/node/node_loading_progress_modifier.h"
61 #include "core/interfaces/native/node/node_refresh_modifier.h"
62 #include "core/interfaces/native/node/node_scroll_modifier.h"
63 #include "core/interfaces/native/node/node_slider_modifier.h"
64 #include "core/interfaces/native/node/node_span_modifier.h"
65 #include "core/interfaces/native/node/node_stack_modifier.h"
66 #include "core/interfaces/native/node/node_swiper_modifier.h"
67 #include "core/interfaces/native/node/node_symbol_glyph_modifier.h"
68 #include "core/interfaces/native/node/node_symbol_span_modifier.h"
69 #include "core/interfaces/native/node/node_text_area_modifier.h"
70 #include "core/interfaces/native/node/node_text_input_modifier.h"
71 #include "core/interfaces/native/node/node_text_modifier.h"
72 #include "core/interfaces/native/node/node_textpicker_modifier.h"
73 #include "core/interfaces/native/node/node_timepicker_modifier.h"
74 #include "core/interfaces/native/node/node_toggle_modifier.h"
75 #include "core/interfaces/native/node/panel_modifier.h"
76 #include "core/interfaces/native/node/particle_modifier.h"
77 #include "core/interfaces/native/node/path_modifier.h"
78 #include "core/interfaces/native/node/pattern_lock_modifier.h"
79 #include "core/interfaces/native/node/polygon_modifier.h"
80 #include "core/interfaces/native/node/polyline_modifier.h"
81 #include "core/interfaces/native/node/progress_modifier.h"
82 #include "core/interfaces/native/node/qrcode_modifier.h"
83 #include "core/interfaces/native/node/radio_modifier.h"
84 #include "core/interfaces/native/node/rating_modifier.h"
85 #include "core/interfaces/native/node/rect_modifier.h"
86 #include "core/interfaces/native/node/render_node_modifier.h"
87 #include "core/interfaces/native/node/rich_editor_modifier.h"
88 #include "core/interfaces/native/node/row_modifier.h"
89 #include "core/interfaces/native/node/row_split_modifier.h"
90 #include "core/interfaces/native/node/scrollable_modifier.h"
91 #include "core/interfaces/native/node/scroller_modifier.h"
92 #include "core/interfaces/native/node/search_modifier.h"
93 #include "core/interfaces/native/node/select_modifier.h"
94 #include "core/interfaces/native/node/shape_modifier.h"
95 #include "core/interfaces/native/node/side_bar_container_modifier.h"
96 #include "core/interfaces/native/node/stepper_item_modifier.h"
97 #include "core/interfaces/native/node/swiper_controller_modifier.h"
98 #include "core/interfaces/native/node/tab_content_modifier.h"
99 #include "core/interfaces/native/node/tabs_modifier.h"
100 #include "core/interfaces/native/node/text_clock_modifier.h"
101 #include "core/interfaces/native/node/text_timer_modifier.h"
102 #include "core/interfaces/native/node/video_modifier.h"
103 #include "core/interfaces/native/node/water_flow_modifier.h"
104 #include "core/interfaces/native/node/node_container_span_modifier.h"
105 #include "core/interfaces/native/node/node_scroll_bar_modifier.h"
106
107 #ifdef MODEL_COMPONENT_SUPPORTED
108 #include "core/interfaces/native/node/node_component3d_modifier.h"
109 #endif
110
111 #ifdef PLUGIN_COMPONENT_SUPPORTED
112 #include "core/interfaces/native/node/plugin_modifier.h"
113 #endif
114
115 #ifdef XCOMPONENT_SUPPORTED
116 #include "core/interfaces/native/node/node_xcomponent_modifier.h"
117 #endif
118
119 #ifdef FORM_SUPPORTED
120 #include "core/interfaces/native/node/form_component_modifier.h"
121 #endif
122
123 namespace OHOS::Ace::NG {
124 namespace {
125 const ArkUINodeModifiers impl = {
126 ARKUI_NODE_MODIFIERS_API_VERSION,
127 NodeModifier::GetCommonModifier,
128 NodeModifier::GetCheckboxGroupModifier,
129 NodeModifier::GetCounterModifier,
130 NodeModifier::GetRowModifier,
131 NodeModifier::GetRowSplitModifier,
132 NodeModifier::GetTextModifier,
133 NodeModifier::GetButtonModifier,
134 NodeModifier::GetToggleModifier,
135 NodeModifier::GetImageSpanModifier,
136 NodeModifier::GetBlankModifier,
137 NodeModifier::GetSearchModifier,
138 NodeModifier::GetSelectModifier,
139 NodeModifier::GetRadioModifier,
140 NodeModifier::GetCheckboxModifier,
141 NodeModifier::GetTimepickerModifier,
142 NodeModifier::GetTextPickerModifier,
143 NodeModifier::GetRatingModifier,
144 NodeModifier::GetSliderModifier,
145 NodeModifier::GetDividerModifier,
146 NodeModifier::GetStackModifier,
147 NodeModifier::GetFolderStackModifier,
148 NodeModifier::GetNavDestinationModifier,
149 NodeModifier::GetGridModifier,
150 NodeModifier::GetGridColModifier,
151 NodeModifier::GetGridRowModifier,
152 NodeModifier::GetPanelModifier,
153 NodeModifier::GetTextAreaModifier,
154 NodeModifier::GetNavigationModifier,
155 NodeModifier::GetColumnModifier,
156 NodeModifier::GetRichEditorModifier,
157 NodeModifier::GetImageModifier,
158 NodeModifier::GetVideoModifier,
159 nullptr,
160 NodeModifier::GetNavigatorModifier,
161 NodeModifier::GetNavRouterModifier,
162 NodeModifier::GetNodeContainerModifier,
163 NodeModifier::GetPatternLockModifier,
164 NodeModifier::GetColumnSplitModifier,
165 NodeModifier::GetLineModifier,
166 NodeModifier::GetPathModifier,
167 NodeModifier::GetPolygonModifier,
168 NodeModifier::GetPolylineModifier,
169 NodeModifier::GetSpanModifier,
170 NodeModifier::GetImageAnimatorModifier,
171 NodeModifier::GetSideBarContainerModifier,
172 NodeModifier::GetCalendarPickerModifier,
173 NodeModifier::GetTextInputModifier,
174 NodeModifier::GetTabsModifier,
175 NodeModifier::GetStepperItemModifier,
176 NodeModifier::GetHyperlinkModifier,
177 NodeModifier::GetMarqueeModifier,
178 NodeModifier::GetMenuItemModifier,
179 NodeModifier::GetMenuModifier,
180 NodeModifier::GetDatePickerModifier,
181 NodeModifier::GetWaterFlowModifier,
182 NodeModifier::GetAlphabetIndexerModifier,
183 NodeModifier::GetDataPanelModifier,
184 NodeModifier::GetGaugeModifier,
185 NodeModifier::GetScrollModifier,
186 NodeModifier::GetScrollableModifier,
187 NodeModifier::GetGridItemModifier,
188 NodeModifier::GetProgressModifier,
189 NodeModifier::GetCommonShapeModifier,
190 NodeModifier::GetShapeModifier,
191 NodeModifier::GetRectModifier,
192 NodeModifier::GetSwiperModifier,
193 NodeModifier::GetListItemModifier,
194 NodeModifier::GetListModifier,
195 NodeModifier::GetListItemGroupModifier,
196 NodeModifier::GetQRCodeModifier,
197 NodeModifier::GetLoadingProgressModifier,
198 NodeModifier::GetTextClockModifier,
199 NodeModifier::GetTextTimerModifier,
200 NodeModifier::GetRenderNodeModifier,
201 NodeModifier::GetFrameNodeModifier,
202
203 #ifdef PLUGIN_COMPONENT_SUPPORTED
204 NodeModifier::GetPluginModifier,
205 #else
206 nullptr,
207 #endif
208
209 #ifdef XCOMPONENT_SUPPORTED
210 NodeModifier::GetXComponentModifier,
211 #else
212 nullptr,
213 #endif
214
215 NodeModifier::GetUIStateModifier,
216
217 #ifdef FORM_SUPPORTED
218 NodeModifier::GetFormComponentModifier,
219 #else
220 nullptr,
221 #endif
222 NodeModifier::GetFlexModifier, // FlexModifier
223 NodeModifier::GetScrollBarModifier, // ScrollBarModifier
224 NodeModifier::GetScrollerModifier,
225 NodeModifier::GetTabContentModifier,
226 nullptr, // TabsControllerModifier
227 NodeModifier::GetSwiperControllerModifier,
228 NodeModifier::GetGestureModifier, // GestureModifier
229 NodeModifier::GetBadgeModifier, // BadgeModifier
230 nullptr, // WebModifier
231 NodeModifier::GetRefreshModifier, // RefreshModifier
232 nullptr, // MenuItemGroupModifier
233 nullptr, // SearchControllerModifier
234 nullptr, // SideBarModifier
235 nullptr, // PatternLockControllerModifier
236 nullptr, // TextTimerControllerModifier
237 nullptr, // TextClockControllerModifier
238 nullptr, // RichEditorControllerModifier
239 nullptr, // TextAreaControllerModifier
240 NodeModifier::GetRelativeContainerModifier, // RelativeContainerModifier
241 NodeModifier::GetNodeContentModifier,
242 NodeModifier::GetParticleModifier,
243 NodeModifier::GetSymbolGlyphModifier,
244 NodeModifier::GetSymbolSpanModifier,
245
246 #ifdef MODEL_COMPONENT_SUPPORTED
247 NodeModifier::GetComponent3DModifier,
248 #else
249 nullptr,
250 #endif
251
252 NodeModifier::GetContainerSpanModifier,
253 };
254 } // namespace
255
256 } // namespace OHOS::Ace::NG
257
258 extern "C" {
259
GetArkUINodeModifiers()260 const ArkUINodeModifiers* GetArkUINodeModifiers()
261 {
262 return &OHOS::Ace::NG::impl;
263 }
264
GetCJUINodeModifiers()265 const CJUINodeModifiers* GetCJUINodeModifiers()
266 {
267 static CJUINodeModifiers modifiers {
268 ARKUI_NODE_MODIFIERS_API_VERSION,
269 OHOS::Ace::NG::NodeModifier::GetCJUICommonModifier,
270 OHOS::Ace::NG::NodeModifier::GetCJUICheckboxGroupModifier,
271 OHOS::Ace::NG::NodeModifier::GetCJUICounterModifier,
272 OHOS::Ace::NG::NodeModifier::GetCJUIRowModifier,
273 OHOS::Ace::NG::NodeModifier::GetCJUIRowSplitModifier,
274 OHOS::Ace::NG::NodeModifier::GetCJUITextModifier,
275 OHOS::Ace::NG::NodeModifier::GetCJUIButtonModifier,
276 OHOS::Ace::NG::NodeModifier::GetCJUIToggleModifier,
277 OHOS::Ace::NG::NodeModifier::GetCJUIImageSpanModifier,
278 OHOS::Ace::NG::NodeModifier::GetCJUIBlankModifier,
279 OHOS::Ace::NG::NodeModifier::GetCJUISearchModifier,
280 OHOS::Ace::NG::NodeModifier::GetCJUISelectModifier,
281 OHOS::Ace::NG::NodeModifier::GetCJUIRadioModifier,
282 OHOS::Ace::NG::NodeModifier::GetCJUICheckboxModifier,
283 OHOS::Ace::NG::NodeModifier::GetCJUITimepickerModifier,
284 OHOS::Ace::NG::NodeModifier::GetCJUITextPickerModifier,
285 OHOS::Ace::NG::NodeModifier::GetCJUIRatingModifier,
286 OHOS::Ace::NG::NodeModifier::GetCJUISliderModifier,
287 OHOS::Ace::NG::NodeModifier::GetCJUIDividerModifier,
288 OHOS::Ace::NG::NodeModifier::GetCJUIStackModifier,
289 OHOS::Ace::NG::NodeModifier::GetCJUIFolderStackModifier,
290 OHOS::Ace::NG::NodeModifier::GetCJUINavDestinationModifier,
291 OHOS::Ace::NG::NodeModifier::GetCJUIGridModifier,
292 OHOS::Ace::NG::NodeModifier::GetCJUIGridColModifier,
293 OHOS::Ace::NG::NodeModifier::GetCJUIGridRowModifier,
294 OHOS::Ace::NG::NodeModifier::GetCJUIPanelModifier,
295 OHOS::Ace::NG::NodeModifier::GetCJUITextAreaModifier,
296 OHOS::Ace::NG::NodeModifier::GetCJUINavigationModifier,
297 OHOS::Ace::NG::NodeModifier::GetCJUIColumnModifier,
298 OHOS::Ace::NG::NodeModifier::GetCJUIRichEditorModifier,
299 OHOS::Ace::NG::NodeModifier::GetCJUIImageModifier,
300 OHOS::Ace::NG::NodeModifier::GetCJUIVideoModifier,
301 nullptr,
302 nullptr,
303 OHOS::Ace::NG::NodeModifier::GetCJUINavRouterModifier,
304 OHOS::Ace::NG::NodeModifier::GetCJUINodeContainerModifier,
305 OHOS::Ace::NG::NodeModifier::GetCJUIPatternLockModifier,
306 OHOS::Ace::NG::NodeModifier::GetCJUIColumnSplitModifier,
307 OHOS::Ace::NG::NodeModifier::GetCJUILineModifier,
308 OHOS::Ace::NG::NodeModifier::GetCJUIPathModifier,
309 OHOS::Ace::NG::NodeModifier::GetCJUIPolygonModifier,
310 OHOS::Ace::NG::NodeModifier::GetCJUIPolylineModifier,
311 OHOS::Ace::NG::NodeModifier::GetCJUISpanModifier,
312 OHOS::Ace::NG::NodeModifier::GetCJUIImageAnimatorModifier,
313 OHOS::Ace::NG::NodeModifier::GetCJUISideBarContainerModifier,
314 OHOS::Ace::NG::NodeModifier::GetCJUICalendarPickerModifier,
315 OHOS::Ace::NG::NodeModifier::GetCJUITextInputModifier,
316 OHOS::Ace::NG::NodeModifier::GetCJUITabsModifier,
317 OHOS::Ace::NG::NodeModifier::GetCJUIStepperItemModifier,
318 OHOS::Ace::NG::NodeModifier::GetCJUIHyperlinkModifier,
319 OHOS::Ace::NG::NodeModifier::GetCJUIMarqueeModifier,
320 nullptr,
321 OHOS::Ace::NG::NodeModifier::GetCJUIMenuModifier,
322 OHOS::Ace::NG::NodeModifier::GetCJUIDatePickerModifier,
323 OHOS::Ace::NG::NodeModifier::GetCJUIWaterFlowModifier,
324 OHOS::Ace::NG::NodeModifier::GetCJUIAlphabetIndexerModifier,
325 OHOS::Ace::NG::NodeModifier::GetCJUIDataPanelModifier,
326 OHOS::Ace::NG::NodeModifier::GetCJUIGaugeModifier,
327 OHOS::Ace::NG::NodeModifier::GetCJUIScrollModifier,
328 OHOS::Ace::NG::NodeModifier::GetCJUIGridItemModifier,
329 OHOS::Ace::NG::NodeModifier::GetCJUIProgressModifier,
330 OHOS::Ace::NG::NodeModifier::GetCJUICommonShapeModifier,
331 OHOS::Ace::NG::NodeModifier::GetCJUIShapeModifier,
332 OHOS::Ace::NG::NodeModifier::GetCJUIRectModifier,
333 OHOS::Ace::NG::NodeModifier::GetCJUISwiperModifier,
334 OHOS::Ace::NG::NodeModifier::GetCJUIListItemModifier,
335 OHOS::Ace::NG::NodeModifier::GetCJUIListModifier,
336 OHOS::Ace::NG::NodeModifier::GetCJUIListItemGroupModifier,
337 OHOS::Ace::NG::NodeModifier::GetCJUIQRCodeModifier,
338 OHOS::Ace::NG::NodeModifier::GetCJUILoadingProgressModifier,
339 OHOS::Ace::NG::NodeModifier::GetCJUITextClockModifier,
340 OHOS::Ace::NG::NodeModifier::GetCJUITextTimerModifier,
341 OHOS::Ace::NG::NodeModifier::GetCJUIRenderNodeModifier,
342 OHOS::Ace::NG::NodeModifier::GetCJUIFrameNodeModifier,
343
344 #ifdef PLUGIN_COMPONENT_SUPPORTED
345 OHOS::Ace::NG::NodeModifier::GetCJUIPluginModifier,
346 #else
347 nullptr,
348 #endif
349
350 #ifdef XCOMPONENT_SUPPORTED
351 OHOS::Ace::NG::NodeModifier::GetCJUIXComponentModifier,
352 #else
353 nullptr,
354 #endif
355
356 OHOS::Ace::NG::NodeModifier::GetCJUIStateModifier,
357
358 #ifdef FORM_SUPPORTED
359 OHOS::Ace::NG::NodeModifier::GetCJUIFormComponentModifier,
360 #else
361 nullptr,
362 #endif
363 OHOS::Ace::NG::NodeModifier::GetCJUIFlexModifier, // FlexModifier
364 OHOS::Ace::NG::NodeModifier::GetCJUIScrollBarModifier, // ScrollBarModifier
365 OHOS::Ace::NG::NodeModifier::GetCJUIScrollerModifier,
366 OHOS::Ace::NG::NodeModifier::GetCJUITabContentModifier,
367 nullptr, // TabsControllerModifier
368 OHOS::Ace::NG::NodeModifier::GetCJUISwiperControllerModifier,
369 OHOS::Ace::NG::NodeModifier::GetCJUIGestureModifier, // GestureModifier
370 nullptr, // BadgeModifier
371 nullptr, // WebModifier
372 OHOS::Ace::NG::NodeModifier::GetCJUIRefreshModifier, // RefreshModifier
373 nullptr, // MenuItemGroupModifier
374 nullptr, // SearchControllerModifier
375 nullptr, // SideBarModifier
376 nullptr, // PatternLockControllerModifier
377 nullptr, // TextTimerControllerModifier
378 nullptr, // TextClockControllerModifier
379 nullptr, // RichEditorControllerModifier
380 nullptr, // TextAreaControllerModifier
381 OHOS::Ace::NG::NodeModifier::GetCJUIRelativeContainerModifier, // RelativeContainerModifier
382 OHOS::Ace::NG::NodeModifier::GetCJUINodeContentModifier,
383 OHOS::Ace::NG::NodeModifier::GetCJUIParticleModifier,
384 OHOS::Ace::NG::NodeModifier::GetCJUISymbolGlyphModifier,
385 OHOS::Ace::NG::NodeModifier::GetCJUISymbolSpanModifier,
386
387 #ifdef MODEL_COMPONENT_SUPPORTED
388 OHOS::Ace::NG::NodeModifier::GetCJUIComponent3DModifier,
389 #else
390 nullptr,
391 #endif
392
393 OHOS::Ace::NG::NodeModifier::GetCJUIContainerSpanModifier,
394 };
395 return &modifiers;
396 }
397 }
398