• 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 "base/memory/ace_type.h"
16 #include "core/interfaces/native/node/api.h"
17 #include "core/interfaces/native/node/blank_modifier.h"
18 #include "core/interfaces/native/node/button_modifier.h"
19 #include "core/interfaces/native/node/checkbox_modifier.h"
20 #include "core/interfaces/native/node/checkboxgroup_modifier.h"
21 #include "core/interfaces/native/node/column_modifier.h"
22 #include "core/interfaces/native/node/column_split_modifier.h"
23 #include "core/interfaces/native/node/common_modifier.h"
24 #include "core/interfaces/native/node/counter_modifier.h"
25 #include "core/interfaces/native/node/date_picker_modifier.h"
26 #include "core/interfaces/native/node/divider_modifier.h"
27 #include "core/interfaces/native/node/grid_modifier.h"
28 #include "core/interfaces/native/node/grid_col_modifier.h"
29 #include "core/interfaces/native/node/grid_item_modifier.h"
30 #include "core/interfaces/native/node/grid_row_modifier.h"
31 #include "core/interfaces/native/node/hyperlink_modifier.h"
32 #include "core/interfaces/native/node/image_animator_modifier.h"
33 #include "core/interfaces/native/node/image_modifier.h"
34 #include "core/interfaces/native/node/image_span_modifier.h"
35 #include "core/interfaces/native/node/list_item_modifier.h"
36 #include "core/interfaces/native/node/menu_modifier.h"
37 #include "core/interfaces/native/node/menu_item_modifier.h"
38 #include "core/interfaces/native/node/nav_destination_modifier.h"
39 #include "core/interfaces/native/node/nav_router_modifier.h"
40 #include "core/interfaces/native/node/navigation_modifier.h"
41 #include "core/interfaces/native/node/navigator_modifier.h"
42 #include "core/interfaces/native/node/node_container_modifier.h"
43 #include "core/interfaces/native/node/panel_modifier.h"
44 #include "core/interfaces/native/node/pattern_lock_modifier.h"
45 #include "core/interfaces/native/node/progress_modifier.h"
46 #include "core/interfaces/native/node/render_node_modifier.h"
47 #include "core/interfaces/native/node/text_area_modifier.h"
48 #include "core/interfaces/native/node/text_input_modifier.h"
49 #include "core/interfaces/native/node/swiper_modifier.h"
50 #include "core/interfaces/native/node/text_modifier.h"
51 #include "core/interfaces/native/node/toggle_modifier.h"
52 #include "core/interfaces/native/node/radio_modifier.h"
53 #include "core/interfaces/native/node/rating_modifier.h"
54 #include "core/interfaces/native/node/rich_editor_modifier.h"
55 #include "core/interfaces/native/node/row_modifier.h"
56 #include "core/interfaces/native/node/row_split_modifier.h"
57 #include "core/interfaces/native/node/search_modifier.h"
58 #include "core/interfaces/native/node/select_modifier.h"
59 #include "core/interfaces/native/node/slider_modifier.h"
60 #include "core/interfaces/native/node/span_modifier.h"
61 #include "core/interfaces/native/node/stack_modifier.h"
62 #include "core/interfaces/native/node/stepper_item_modifier.h"
63 #include "core/interfaces/native/node/tabs_modifier.h"
64 #include "core/interfaces/native/node/textpicker_modifier.h"
65 #include "core/interfaces/native/node/timepicker_modifier.h"
66 #include "core/interfaces/native/node/video_modifier.h"
67 #include "core/interfaces/native/node/line_modifier.h"
68 #include "core/interfaces/native/node/path_modifier.h"
69 #include "core/interfaces/native/node/polygon_modifier.h"
70 #include "core/interfaces/native/node/polyline_modifier.h"
71 #include "core/interfaces/native/node/qrcode_modifier.h"
72 #include "core/interfaces/native/node/water_flow_modifier.h"
73 #include "core/interfaces/native/node/side_bar_container_modifier.h"
74 #include "core/interfaces/native/node/marquee_modifier.h"
75 #include "core/components/common/layout/constants.h"
76 #include "core/components_ng/base/frame_node.h"
77 #include "core/components_ng/base/view_abstract.h"
78 #include "core/pipeline/base/element_register.h"
79 #include "core/interfaces/native/node/calendar_picker_modifier.h"
80 #include "core/interfaces/native/node/alphabet_indexer_modifier.h"
81 #include "core/interfaces/native/node/data_panel_modifier.h"
82 #include "core/interfaces/native/node/gauge_modifier.h"
83 #include "core/interfaces/native/node/scroll_modifier.h"
84 #include "core/interfaces/native/node/common_shape_modifier.h"
85 #include "core/interfaces/native/node/shape_modifier.h"
86 #include "core/interfaces/native/node/rect_modifier.h"
87 #include "core/interfaces/native/node/list_modifier.h"
88 #include "core/interfaces/native/node/list_item_group_modifier.h"
89 #include "core/interfaces/native/node/text_timer_modifier.h"
90 #include "core/interfaces/native/node/loading_progress_modifier.h"
91 #include "core/interfaces/native/node/text_clock_modifier.h"
92 #ifdef PLUGIN_COMPONENT_SUPPORTED
93 #include "core/interfaces/native/node/plugin_modifier.h"
94 #endif
95 #ifdef XCOMPONENT_SUPPORTED
96 #include "core/interfaces/native/node/xcomponent_modifier.h"
97 #endif
98 #ifdef FORM_SUPPORTED
99 #include "core/interfaces/native/node/form_component_modifier.h"
100 #endif
101 
102 using namespace OHOS::Ace::NG;
103 
GetFrameNodeById(int nodeId)104 NodeHandle GetFrameNodeById(int nodeId)
105 {
106     auto node = OHOS::Ace::ElementRegister::GetInstance()->GetNodeById(nodeId);
107     return OHOS::Ace::AceType::RawPtr(node);
108 }
109 
GetUIState(NodeHandle node)110 int64_t GetUIState(NodeHandle node)
111 {
112     auto* frameNode = reinterpret_cast<FrameNode*>(node);
113     CHECK_NULL_RETURN(frameNode, 0);
114     auto eventHub = frameNode->GetEventHub<EventHub>();
115     CHECK_NULL_RETURN(eventHub, 0);
116     return eventHub->GetCurrentUIState();
117 }
118 
SetSupportedUIState(NodeHandle node,uint64_t state)119 void SetSupportedUIState(NodeHandle node, uint64_t state)
120 {
121     auto* frameNode = reinterpret_cast<FrameNode*>(node);
122     CHECK_NULL_VOID(frameNode);
123     auto eventHub = frameNode->GetEventHub<EventHub>();
124     CHECK_NULL_VOID(eventHub);
125     eventHub->AddSupportedState(static_cast<uint64_t>(state));
126 }
127 
128 static struct ArkUINodeAPI impl = {
129     GetFrameNodeById,
130     GetUIState,
131     SetSupportedUIState,
132     GetCommonModifier,
133     GetCheckboxGroupModifier,
134     GetCounterModifier,
135     GetRowModifier,
136     GetRowSplitModifier,
137     GetTextModifier,
138     GetButtonModifier,
139     GetToggleModifier,
140     GetImageSpanModifier,
141     GetBlankModifier,
142     GetSearchModifier,
143     GetSelectModifier,
144     GetRadioModifier,
145     GetCheckboxModifier,
146     GetTimepickerModifier,
147     GetTextpickerModifier,
148     GetRatingModifier,
149     GetSliderModifier,
150     GetDividerModifier,
151     GetStackModifier,
152     GetNavDestinationModifier,
153     GetGridModifier,
154     GetGridColModifier,
155     GetGridRowModifier,
156     GetPanelModifier,
157     GetTextAreaModifier,
158     GetNavigationModifier,
159     GetColumnModifier,
160     GetRichEditorModifier,
161     GetImageModifier,
162     GetVideoModifier,
163     GetNavigatorModifier,
164     GetNavRouterModifier,
165     GetNodeContainerModifier,
166     GetPatternLockModifier,
167     GetColumnSplitModifier,
168     GetLineModifier,
169     GetPathModifier,
170     GetPolygonModifier,
171     GetPolylineModifier,
172     GetSpanModifier,
173     GetImageAnimatorModifier,
174     GetSideBarContainerModifier,
175     GetCalendarPickerModifier,
176     GetTextInputModifier,
177     GetTabsModifier,
178     GetStepperItemModifier,
179     GetHyperlinkModifier,
180     GetMarqueeModifier,
181     GetMenuItemModifier,
182     GetMenuModifier,
183     GetDatePickerModifier,
184     GetWaterFlowModifier,
185     GetAlphabetIndexerModifier,
186     GetDataPanelModifier,
187     GetGaugeModifier,
188     GetScrollModifier,
189     GetGridItemModifier,
190     GetProgressModifier,
191     GetCommonShapeModifier,
192     GetShapeModifier,
193     GetRectModifier,
194     GetSwiperModifier,
195     GetListItemModifier,
196     GetListModifier,
197     GetListItemGroupModifier,
198     GetQRCodeModifier,
199     GetLoadingProgressModifier,
200     GetTextClockModifier,
201     GetTextTimerModifier,
202     GetRenderNodeModifier,
203 
204 #ifdef PLUGIN_COMPONENT_SUPPORTED
205     GetPluginModifier,
206 #endif
207 #ifdef XCOMPONENT_SUPPORTED
208     GetXComponentModifier,
209 #endif
210 #ifdef FORM_SUPPORTED
211     GetFormComponentModifier,
212 #endif
213 };
214 
GetArkUIInternalNodeAPI()215 ArkUINodeAPI* GetArkUIInternalNodeAPI()
216 {
217     return &impl;
218 }
219 
GetArkUINodeAPI()220 extern "C" ACE_FORCE_EXPORT ArkUINodeAPI* GetArkUINodeAPI()
221 {
222     return &impl;
223 }
224