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