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 FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_ENGINE_JSI_NATIVEMODULE_ARKTS_NATIVE_API_BRIDGE_H 17 #define FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_ENGINE_JSI_NATIVEMODULE_ARKTS_NATIVE_API_BRIDGE_H 18 19 #include "bridge/declarative_frontend/declarative_frontend.h" 20 #include "bridge/declarative_frontend/engine/functions/js_drag_function.h" 21 #include "bridge/declarative_frontend/engine/js_object_template.h" 22 #include "bridge/declarative_frontend/frontend_delegate_declarative.h" 23 #include "bridge/declarative_frontend/jsview/canvas/js_canvas_image_data.h" 24 #include "bridge/js_frontend/engine/jsi/ark_js_runtime.h" 25 #include "core/components/common/properties/text_style.h" 26 #include "core/interfaces/native/node/node_api.h" 27 28 namespace OHOS::Ace::NG { 29 using ArkUINativeModuleValue = panda::Local<panda::JSValueRef>; 30 using ArkUIRuntimeCallInfo = panda::JsiRuntimeCallInfo; 31 class ArkUINativeModule { 32 public: 33 static ArkUINativeModuleValue PreviewMockComponent(ArkUIRuntimeCallInfo* runtimeCallInfo); 34 static ArkUINativeModuleValue GetFrameNodeById(ArkUIRuntimeCallInfo* runtimeCallInfo); 35 static ArkUINativeModuleValue GetFrameNodeByUniqueId(ArkUIRuntimeCallInfo* runtimeCallInfo); 36 static ArkUINativeModuleValue GetPageInfoByUniqueId(ArkUIRuntimeCallInfo* runtimeCallInfo); 37 static ArkUINativeModuleValue GetNavigationInfoByUniqueId(ArkUIRuntimeCallInfo* runtimeCallInfo); 38 static ArkUINativeModuleValue GetArkUINativeModule(ArkUIRuntimeCallInfo* runtimeCallInfo); 39 static ArkUINativeModuleValue GetUIState(ArkUIRuntimeCallInfo* runtimeCallInfo); 40 static ArkUINativeModuleValue SetSupportedUIState(ArkUIRuntimeCallInfo* runtimeCallInfo); 41 static ArkUINativeModuleValue GetFrameNodeByKey(ArkUIRuntimeCallInfo* runtimeCallInfo); 42 static ArkUINativeModuleValue GetAttachedFrameNodeById(ArkUIRuntimeCallInfo* runtimeCallInfo); 43 static ArkUINativeModuleValue RequireDynamicSyncScene(ArkUIRuntimeCallInfo* runtimeCallInfo); 44 static ArkUINativeModuleValue SetFrameRateRange(ArkUIRuntimeCallInfo* runtimeCallInfo); 45 static ArkUINativeModuleValue SetMarqueeFrameRateRange(ArkUIRuntimeCallInfo* runtimeCallInfo); 46 private: 47 static void RegisterScrollableAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 48 static void RegisterButtonAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 49 static void RegisterToggleAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 50 static void RegisterDividerAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 51 static void RegisterNavigationAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 52 static void RegisterImageAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 53 static void RegisterNavRouterAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 54 static void RegisterNavigatorAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 55 static void RegisterNodeContainerAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 56 static void RegisterXComponentNodeAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 57 static void RegisterRenderNodeAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 58 static void RegisterFrameNodeAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 59 static void RegisterPanelAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 60 static void RegisterLineAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 61 static void RegisterPathAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 62 static void RegisterPolygonAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 63 static void RegisterPolylineAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 64 static void RegisterSideBarContainerAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 65 static void RegisterCalendarPickerAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 66 static void RegisterTabAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 67 static void RegisterStepperItemAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 68 static void RegisterHyperlinkAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 69 static void RegisterFormAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 70 static void RegisterMenuItemAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 71 static void RegisterMenuAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 72 static void RegisterMarqueeAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 73 static void RegisterDatePickerAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 74 static void RegisterAlphabetIndexerAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 75 static void RegisterGaugeAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 76 static void RegisterSelectAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 77 static void RegisterRadioAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 78 static void RegisterSliderAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 79 static void RegisterRatingAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 80 static void RegisterTimepickerAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 81 static void RegisterTextpickerAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 82 static void RegisterWaterFlowAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 83 static void RegisterCheckboxAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 84 static void RegisterDataPanelAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 85 static void RegisterScrollAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 86 static void RegisterGridItemAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 87 static void RegisterProgressAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 88 static void RegisterPluginAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 89 static void RegisterCommonShapeAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 90 static void RegisterShapeAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 91 static void RegisterRectAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 92 static void RegisterSwiperAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 93 static void RegisterListAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 94 static void RegisterGridAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 95 static void RegisterListItemGroupAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 96 static void RegisterQRCodeAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 97 static void RegisterLoadingProgressAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 98 static void RegisterTextClockAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 99 static void RegisterListItemAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 100 static void RegisterTextTimerAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 101 static void RegisterXComponentAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 102 static void RegisterTabContentAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 103 static void RegisterRefreshAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 104 static void RegisterFlexAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 105 static void RegisterResourceAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 106 static void RegisterBadgeAttributes(Local<panda::ObjectRef> object, EcmaVM* vm); 107 static void RegisterScrollBarAttributes(Local<panda::ObjectRef> object, EcmaVM *vm); 108 }; 109 } // namespace OHOS::Ace::NG 110 #endif // FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_ENGINE_JSI_NATIVEMODULE_ARKTS_NATIVE_API_BRIDGE_H 111