From c2b1ec06a4b9d39c712ad4f4faa5e3186afe0d67 Mon Sep 17 00:00:00 2001 From: Roman Sedaikin Date: Fri, 17 Jan 2025 13:10:29 +0300 Subject: [PATCH] ArkNavigation on callbacks. Signed-off-by: Roman Sedaikin --- arkoala-arkts/arkui/src/ArkNavigation.ts | 37 ++++++-- .../generated/ArkNavExtenderMaterialized.ts | 93 +++++++++++++++++++ .../generated/ArkNavPathStackMaterialized.ts | 30 ++++-- .../src/generated/SyntheticDeclarations.ts | 2 + .../arkts/ArkUIGeneratedNativeModule.ts | 3 + .../generated/peers/ArkNavDestinationPeer.ts | 2 +- .../arkui/src/handwritten/ArkNavPathStack.ts | 31 +------ arkoala-arkts/arkui/src/handwritten/index.ts | 1 - .../framework/native/src/DeserializerBase.h | 2 +- .../src/generated/arkoala_api_generated.h | 10 ++ .../native/src/generated/bridge_custom.cc | 1 + .../native/src/generated/bridge_generated.cc | 20 ++++ .../native/src/generated/dummy_impl.cc | 57 ++++++++++++ 13 files changed, 238 insertions(+), 51 deletions(-) create mode 100644 arkoala-arkts/arkui/src/generated/ArkNavExtenderMaterialized.ts diff --git a/arkoala-arkts/arkui/src/ArkNavigation.ts b/arkoala-arkts/arkui/src/ArkNavigation.ts index a220815f1..5335f5597 100644 --- a/arkoala-arkts/arkui/src/ArkNavigation.ts +++ b/arkoala-arkts/arkui/src/ArkNavigation.ts @@ -13,10 +13,7 @@ * limitations under the License. */ - -// WARNING! THIS FILE IS AUTO-GENERATED, DO NOT MAKE CHANGES, THEY WILL BE LOST ON NEXT GENERATION! - -import { mutableState, MutableState, NodeAttach, remember, rememberMutableState, StateContext } from "@koalaui/runtime" +import { contextLocalScope, mutableState, MutableState, NodeAttach, remember, rememberMutableState, StateContext } from "@koalaui/runtime" import { runtimeType, RuntimeType, isResource, isInstanceOf } from "./generated/peers/SerializerBase" import { ArkCommonMethodComponent } from "./generated/ArkCommon" import { ArkNavigationPeer } from "./peers/ArkNavigationPeer" @@ -26,6 +23,8 @@ import { CustomBuilder, SymbolGlyphModifier, BlurStyle, CommonMethod, LayoutSafe import { Length, ResourceStr, ResourceColor, Dimension, PX, VP, FP, LPX, Percentage } from "./generated/ArkUnitsInterfaces" import { NavPathStack } from "./generated/ArkNavPathStackMaterialized" import { PixelMap } from "./generated/ArkPixelMapMaterialized" +import { PathData } from "./handwritten/ArkNavPathStack" +import { NavExtender } from "./generated/ArkNavExtenderMaterialized" /** @memo:stable */ export class ArkNavigationComponent extends ArkCommonMethodComponent { @@ -357,11 +356,33 @@ export function ArkNavigation( style?.(receiver) content_?.() if (pathInfos != undefined) { - receiver._navDestination( - pathInfos!._extender.currentData.value.name, - pathInfos!._extender.currentData.value.param - ) + const data = rememberMutableState(PathData.EMPTY) + remember(() => { + const updater: (name: string) => void = + (name: string) => { + // Object deserialization is not implemented so param is empty array + const params = pathInfos!.getParamByName(name) + data.value = new PathData(name, params) + } + const value_casted = updater as (((name: string) => void)) + NavExtender.setUpdateStackCallback(pathInfos!, value_casted) + }) + withNavData(data.value, () => { + receiver._navDestination( + data.value.name, + data.value.param + ) + }) } receiver.applyAttributesFinish() }) } + +/** @memo */ +function withNavData( + pathInfo: PathData, + /** @memo */ + content_: () => void, +) { + contextLocalScope("NavPathStack", pathInfo, content_) +} diff --git a/arkoala-arkts/arkui/src/generated/ArkNavExtenderMaterialized.ts b/arkoala-arkts/arkui/src/generated/ArkNavExtenderMaterialized.ts new file mode 100644 index 000000000..b6f180612 --- /dev/null +++ b/arkoala-arkts/arkui/src/generated/ArkNavExtenderMaterialized.ts @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2024-2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +// WARNING! THIS FILE IS AUTO-GENERATED, DO NOT MAKE CHANGES, THEY WILL BE LOST ON NEXT GENERATION! + +import { NavPathStack, NavPathStackInternal } from "./ArkNavPathStackMaterialized" +import { Callback_String_Void, INTERFACE_NavExtender } from "./SyntheticDeclarations" +import { TypeChecker } from "#components" + +import { Finalizable } from "./Finalizable" +import { MaterializedBase } from "./MaterializedBase" +import { Serializer } from "./peers/Serializer" +import { isResource, isInstanceOf, runtimeType, RuntimeType, SerializerBase, registerCallback } from "./peers/SerializerBase" +import { ArkUIGeneratedNativeModule } from "#components" +import { wrapCallback, NativeBuffer } from "@koalaui/interop" +import { CallbackKind } from "./peers/CallbackKind" +import { CallbackTransformer } from "./peers/CallbackTransformer" + + +import { + int32, + float32 +} from "@koalaui/common" +import { + KInt, + KBoolean, + KFloat, + KUInt, + KStringPtr, + KPointer, + KNativePointer, + KInt32ArrayPtr, + KUint8ArrayPtr, + KFloat32ArrayPtr, + pointer +} from "@koalaui/interop" + + +export class NavExtender implements MaterializedBase { + peer?: Finalizable | undefined + getPeer(): Finalizable | undefined { + return this.peer + } + static ctor(): KPointer { + const retval = ArkUIGeneratedNativeModule._NavExtender_ctor() + return retval + } + constructor() { + // Constructor does not have parameters. + // It means that the static method call invokes ctor method as well + // when all arguments are undefined. + { + const ctorPtr : KPointer = NavExtender.ctor() + this.peer = new Finalizable(ctorPtr, NavExtender.getFinalizer()) + } + } + static getFinalizer(): KPointer { + return ArkUIGeneratedNativeModule._NavExtender_getFinalizer() + } + static setUpdateStackCallback(peer: NavPathStack, callback: ((parameter: string) => void)): void { + const peer_casted = peer as (NavPathStack) + const callback_casted = callback as (((parameter: string) => void)) + NavExtender.setUpdateStackCallback_serialize(peer_casted, callback_casted) + return + } + private static setUpdateStackCallback_serialize(peer: NavPathStack, callback: ((parameter: string) => void)): void { + const thisSerializer : Serializer = Serializer.hold() + thisSerializer.writeNavPathStack(peer) + thisSerializer.holdAndWriteCallback(callback) + ArkUIGeneratedNativeModule._NavExtender_setUpdateStackCallback(thisSerializer.asArray(), thisSerializer.length()) + thisSerializer.release() + } +} +export class NavExtenderInternal { + public static fromPtr(ptr: KPointer): NavExtender { + const obj : NavExtender = new NavExtender() + obj.peer = new Finalizable(ptr, NavExtender.getFinalizer()) + return obj + } +} diff --git a/arkoala-arkts/arkui/src/generated/ArkNavPathStackMaterialized.ts b/arkoala-arkts/arkui/src/generated/ArkNavPathStackMaterialized.ts index f7861c3d4..3c4e97786 100644 --- a/arkoala-arkts/arkui/src/generated/ArkNavPathStackMaterialized.ts +++ b/arkoala-arkts/arkui/src/generated/ArkNavPathStackMaterialized.ts @@ -48,10 +48,7 @@ import { pointer } from "@koalaui/interop" -import { NavPathStackExtender } from "../handwritten" - export class NavPathStack implements MaterializedBase,INTERFACE_NavPathStack { - _extender = new NavPathStackExtender() peer?: Finalizable getPeer(): Finalizable | undefined { return this.peer @@ -75,7 +72,6 @@ export class NavPathStack implements MaterializedBase,INTERFACE_NavPathStack { return ArkUIGeneratedNativeModule._NavPathStack_getFinalizer() } pushPath(info: NavPathInfo, animated?: boolean | undefined | NavigationOptions | undefined): void { - this._extender.push(info.name, info.param) const info_type = runtimeType(info) const animated_type = runtimeType(animated) if ((((RuntimeType.BOOLEAN == animated_type)) || ((RuntimeType.UNDEFINED == animated_type)))) { @@ -93,7 +89,6 @@ export class NavPathStack implements MaterializedBase,INTERFACE_NavPathStack { throw new Error("Can not select appropriate overload") } pushDestination(info: NavPathInfo, animated?: boolean | undefined | NavigationOptions | undefined): Promise { - this._extender.push(info.name, info.param) const info_type = runtimeType(info) const animated_type = runtimeType(animated) if ((((RuntimeType.BOOLEAN == animated_type)) || ((RuntimeType.UNDEFINED == animated_type)))) { @@ -192,7 +187,18 @@ export class NavPathStack implements MaterializedBase,INTERFACE_NavPathStack { return this.removeByNavDestinationId_serialize(navDestinationId_casted) } pop(result?: Object | boolean | undefined, animated?: boolean): NavPathInfo | undefined { - this._extender.pop() + const result_type = runtimeType(result) + const animated_type = runtimeType(animated) + if ((((RuntimeType.OBJECT == result_type))) && (((RuntimeType.BOOLEAN == animated_type)) || ((RuntimeType.UNDEFINED == animated_type)))) { + const result_casted = result as (Object) + const animated_casted = animated as (boolean | undefined) + this.pop1_serialize(result_casted, animated_casted) + } + if ((((RuntimeType.BOOLEAN == result_type)) || ((RuntimeType.UNDEFINED == result_type))) && (((RuntimeType.UNDEFINED == animated_type)))) { + const result_casted = result as (boolean | undefined) + this.pop0_serialize(result_casted) + } + // throw new Error("Can not select appropriate overload") return undefined } popToName(name: string, result?: Object | boolean | undefined, animated?: boolean): number { @@ -255,7 +261,8 @@ export class NavPathStack implements MaterializedBase,INTERFACE_NavPathStack { return this.getParamByIndex_serialize(index_casted) } getParamByName(name: string): Array { - return this._extender.getParamByName(name) + const name_casted = name as (string) + return this.getParamByName_serialize(name_casted) } getIndexByName(name: string): Array { const name_casted = name as (string) @@ -475,7 +482,8 @@ export class NavPathStack implements MaterializedBase,INTERFACE_NavPathStack { } const retval = ArkUIGeneratedNativeModule._NavPathStack_pop0(this.peer!.ptr, thisSerializer.asArray(), thisSerializer.length()) thisSerializer.release() - throw new Error("Object deserialization is not implemented.") + // throw new Error("Object deserialization is not implemented.") + return undefined } private pop1_serialize(result: Object, animated?: boolean): NavPathInfo | undefined { const thisSerializer : Serializer = Serializer.hold() @@ -489,7 +497,8 @@ export class NavPathStack implements MaterializedBase,INTERFACE_NavPathStack { } const retval = ArkUIGeneratedNativeModule._NavPathStack_pop1(this.peer!.ptr, thisSerializer.asArray(), thisSerializer.length()) thisSerializer.release() - throw new Error("Object deserialization is not implemented.") + // throw new Error("Object deserialization is not implemented.") + return undefined } private popToName0_serialize(name: string, animated?: boolean): number { const thisSerializer : Serializer = Serializer.hold() @@ -590,7 +599,8 @@ export class NavPathStack implements MaterializedBase,INTERFACE_NavPathStack { } private getParamByName_serialize(name: string): Array { const retval = ArkUIGeneratedNativeModule._NavPathStack_getParamByName(this.peer!.ptr, name) - throw new Error("Object deserialization is not implemented.") + // throw new Error("Object deserialization is not implemented.") + return new Array() } private getIndexByName_serialize(name: string): Array { const retval = ArkUIGeneratedNativeModule._NavPathStack_getIndexByName(this.peer!.ptr, name) diff --git a/arkoala-arkts/arkui/src/generated/SyntheticDeclarations.ts b/arkoala-arkts/arkui/src/generated/SyntheticDeclarations.ts index 0ddd605fe..89c5eb3cf 100644 --- a/arkoala-arkts/arkui/src/generated/SyntheticDeclarations.ts +++ b/arkoala-arkts/arkui/src/generated/SyntheticDeclarations.ts @@ -86,6 +86,8 @@ export interface INTERFACE_PixelMap { isEditable: int32; isStrideAlignment: int32; } +export interface INTERFACE_NavExtender { +} export interface INTERFACE_EventEmulator { } export interface Literal_Want_want { diff --git a/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ts b/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ts index a59c8234b..8a98b196d 100644 --- a/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ts +++ b/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ts @@ -1566,6 +1566,9 @@ export class ArkUIGeneratedNativeModule { native static _PixelMap_setIsEditable(ptr: KPointer, isEditable: KInt): void native static _PixelMap_getIsStrideAlignment(ptr: KPointer): int32 native static _PixelMap_setIsStrideAlignment(ptr: KPointer, isStrideAlignment: KInt): void + native static _NavExtender_ctor(): KPointer + native static _NavExtender_getFinalizer(): KPointer + native static _NavExtender_setUpdateStackCallback(thisArray: KUint8ArrayPtr, thisLength: int32): void native static _EventEmulator_ctor(): KPointer native static _EventEmulator_getFinalizer(): KPointer native static _EventEmulator_emitClickEvent(node: KPointer, thisArray: KUint8ArrayPtr, thisLength: int32): void diff --git a/arkoala-arkts/arkui/src/generated/peers/ArkNavDestinationPeer.ts b/arkoala-arkts/arkui/src/generated/peers/ArkNavDestinationPeer.ts index 7c2e9d6fa..a1e5ecf20 100644 --- a/arkoala-arkts/arkui/src/generated/peers/ArkNavDestinationPeer.ts +++ b/arkoala-arkts/arkui/src/generated/peers/ArkNavDestinationPeer.ts @@ -50,7 +50,7 @@ export class ArkNavDestinationPeer extends ArkCommonMethodPeer { } public static create(component?: ComponentBase, flags: int32 = 0): ArkNavDestinationPeer { const peerId = PeerNode.nextId() - const _peerPtr = ArkUIGeneratedNativeModule._NavDestination_construct(peerId, flags) + const _peerPtr = ArkUIGeneratedNativeModule._Stack_construct(peerId, flags) const _peer = new ArkNavDestinationPeer(_peerPtr, peerId, "NavDestination", flags) component?.setPeer(_peer) return _peer diff --git a/arkoala-arkts/arkui/src/handwritten/ArkNavPathStack.ts b/arkoala-arkts/arkui/src/handwritten/ArkNavPathStack.ts index e36bae566..c4912da13 100644 --- a/arkoala-arkts/arkui/src/handwritten/ArkNavPathStack.ts +++ b/arkoala-arkts/arkui/src/handwritten/ArkNavPathStack.ts @@ -12,9 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { GlobalStateManager, MutableState } from "@koalaui/runtime" -class PathData { +export class PathData { readonly name: string readonly param: Array = new Array() constructor(name: string, param: object | undefined) { @@ -24,32 +23,4 @@ class PathData { } } static readonly EMPTY: PathData = new PathData("", undefined) -} - -export class NavPathStackExtender { - private _stack: Array = new Array() - currentData: MutableState - - constructor() { - this.currentData = GlobalStateManager.instance.mutableState(PathData.EMPTY, true) - } - - push(path: string, param: Object|undefined): void { - this.currentData.value = new PathData(path, param) - this._stack.push(this.currentData.value) - } - - pop(): void { - this._stack.pop() - if (this._stack.length > 0) { - this.currentData.value = this._stack[this._stack.length - 1] - } else { - this.currentData.value = PathData.EMPTY - } - } - - getParamByName(name: string): Array { - return this._stack.length > 0 ? this._stack[this._stack.length - 1].param : PathData.EMPTY.param - } - } \ No newline at end of file diff --git a/arkoala-arkts/arkui/src/handwritten/index.ts b/arkoala-arkts/arkui/src/handwritten/index.ts index 3257b1680..51e7b1472 100644 --- a/arkoala-arkts/arkui/src/handwritten/index.ts +++ b/arkoala-arkts/arkui/src/handwritten/index.ts @@ -1,7 +1,6 @@ export * from "./ArkPageTransition" export * from "./ArkPageTransitionData" export * from "./Router" -export { NavPathStackExtender } from "./ArkNavPathStack" // TODO: implement this diff --git a/arkoala/framework/native/src/DeserializerBase.h b/arkoala/framework/native/src/DeserializerBase.h index a708c8a3c..6a6e38355 100644 --- a/arkoala/framework/native/src/DeserializerBase.h +++ b/arkoala/framework/native/src/DeserializerBase.h @@ -443,8 +443,8 @@ public: memcpy(&value, data + position, 8); #else int64_t value = *(int64_t *)(data + position); - position += 8; #endif + position += 8; return reinterpret_cast(value); } Ark_NativePointer readPointerOrDefault(Ark_NativePointer defaultValue) diff --git a/arkoala/framework/native/src/generated/arkoala_api_generated.h b/arkoala/framework/native/src/generated/arkoala_api_generated.h index 1dcff8320..e6bff5959 100644 --- a/arkoala/framework/native/src/generated/arkoala_api_generated.h +++ b/arkoala/framework/native/src/generated/arkoala_api_generated.h @@ -18101,6 +18101,15 @@ typedef struct GENERATED_ArkUIPixelMapAccessor { Ark_Int32 isStrideAlignment); } GENERATED_ArkUIPixelMapAccessor; +typedef struct NavExtenderPeer NavExtenderPeer; +typedef struct GENERATED_ArkUINavExtenderAccessor { + void (*destroyPeer)(NavExtenderPeer* peer); + Ark_NativePointer (*ctor)(); + Ark_NativePointer (*getFinalizer)(); + void (*setUpdateStackCallback)(const Ark_NavPathStack* peer, + const Callback_String_Void* callback); +} GENERATED_ArkUINavExtenderAccessor; + typedef struct EventEmulatorPeer EventEmulatorPeer; typedef struct GENERATED_ArkUIEventEmulatorAccessor { void (*destroyPeer)(EventEmulatorPeer* peer); @@ -20671,6 +20680,7 @@ typedef struct GENERATED_ArkUIAccessors { const GENERATED_ArkUIDrawingCanvasAccessor* (*getDrawingCanvasAccessor)(); const GENERATED_ArkUIFrameNodeAccessor* (*getFrameNodeAccessor)(); const GENERATED_ArkUIPixelMapAccessor* (*getPixelMapAccessor)(); + const GENERATED_ArkUINavExtenderAccessor* (*getNavExtenderAccessor)(); const GENERATED_ArkUIEventEmulatorAccessor* (*getEventEmulatorAccessor)(); const GENERATED_ArkUIActionSheetAccessor* (*getActionSheetAccessor)(); const GENERATED_ArkUIAlertDialogAccessor* (*getAlertDialogAccessor)(); diff --git a/arkoala/framework/native/src/generated/bridge_custom.cc b/arkoala/framework/native/src/generated/bridge_custom.cc index ab84e18a4..3c0407dc7 100644 --- a/arkoala/framework/native/src/generated/bridge_custom.cc +++ b/arkoala/framework/native/src/generated/bridge_custom.cc @@ -466,6 +466,7 @@ KVMObjectHandle impl_LoadUserView(KVMContext vm, const KStringPtr& viewClass, co if (className == "ViewLoaderApp") className = "Page.App"; if (className == "Page.ViewShoppingApp") className = "@koalaui.shopping.build.unmemoized.src.Page.ViewShoppingApp"; if (className == "Page.ViewTrivialApp") className = "@koalaui.user.build.unmemoized.src.Page.ViewTrivialApp"; + if (className == "Page.ViewNavigationApp") className = "@koalaui.user.build.unmemoized.src.Page.ViewNavigationApp"; std::replace(className.begin(), className.end(), '.', '/'); ets_class viewClassClass = env->FindClass(className.c_str()); if (!viewClassClass) { diff --git a/arkoala/framework/native/src/generated/bridge_generated.cc b/arkoala/framework/native/src/generated/bridge_generated.cc index 24cf774d1..9ed0b0f6d 100644 --- a/arkoala/framework/native/src/generated/bridge_generated.cc +++ b/arkoala/framework/native/src/generated/bridge_generated.cc @@ -20,6 +20,7 @@ #include "arkoala_api_generated.h" #include "Serializers.h" #include "events.h" +#include "interop-logging.h" const GENERATED_ArkUIAnyAPI* GetAnyImpl(int kind, int version, std::string* result = nullptr); @@ -18531,6 +18532,25 @@ void impl_PixelMap_setIsStrideAlignment(Ark_NativePointer thisPtr, Ark_Int32 isS } KOALA_INTEROP_V2(PixelMap_setIsStrideAlignment, Ark_NativePointer, Ark_Int32) +Ark_NativePointer impl_NavExtender_ctor() { + return GetAccessors()->getNavExtenderAccessor()->ctor(); +} +KOALA_INTEROP_0(NavExtender_ctor, Ark_NativePointer) + +Ark_NativePointer impl_NavExtender_getFinalizer() { + return GetAccessors()->getNavExtenderAccessor()->getFinalizer(); +} +KOALA_INTEROP_0(NavExtender_getFinalizer, Ark_NativePointer) + +void impl_NavExtender_setUpdateStackCallback(uint8_t* thisArray, int32_t thisLength) { + Deserializer thisDeserializer(thisArray, thisLength); + Ark_NavPathStack peer_value = static_cast(thisDeserializer.readNavPathStack());; + Callback_String_Void callback_value = {thisDeserializer.readCallbackResource(), reinterpret_cast(thisDeserializer.readPointerOrDefault(reinterpret_cast(getManagedCallbackCaller(Kind_Callback_String_Void)))), reinterpret_cast(thisDeserializer.readPointerOrDefault(reinterpret_cast(getManagedCallbackCallerSync(Kind_Callback_String_Void))))};; + auto rid = callback_value.resource.resourceId; + GetAccessors()->getNavExtenderAccessor()->setUpdateStackCallback((const Ark_NavPathStack*)&peer_value, (const Callback_String_Void*)&callback_value); +} +KOALA_INTEROP_V2(NavExtender_setUpdateStackCallback, uint8_t*, int32_t) + Ark_NativePointer impl_EventEmulator_ctor() { return GetAccessors()->getEventEmulatorAccessor()->ctor(); } diff --git a/arkoala/framework/native/src/generated/dummy_impl.cc b/arkoala/framework/native/src/generated/dummy_impl.cc index 4a81af330..e2f8c9fc5 100644 --- a/arkoala/framework/native/src/generated/dummy_impl.cc +++ b/arkoala/framework/native/src/generated/dummy_impl.cc @@ -20191,6 +20191,48 @@ namespace OHOS::Ace::NG::GeneratedModifier { appendGroupedLog(1, out); } } // PixelMapAccessor + namespace NavExtenderAccessor { + void DestroyPeerImpl(NavExtenderPeer* peer) + { + if (!needGroupedLog(1)) + return; + string out("destroyPeer("); + out.append(") \n"); + appendGroupedLog(1, out); + } + Ark_NativePointer CtorImpl() + { + if (!needGroupedLog(1)) + return (NavExtenderPeer*) 100; + string out("new NavExtender("); + out.append(") \n"); + out.append("[return (NavExtenderPeer*) 100] \n"); + appendGroupedLog(1, out); + return (NavExtenderPeer*) 100; + } + Ark_NativePointer GetFinalizerImpl() + { + if (!needGroupedLog(1)) + return fnPtr(dummyClassFinalizer); + string out("getFinalizer("); + out.append(") \n"); + out.append("[return fnPtr(dummyClassFinalizer)] \n"); + appendGroupedLog(1, out); + return fnPtr(dummyClassFinalizer); + } + void SetUpdateStackCallbackImpl(const Ark_NavPathStack* peer, + const Callback_String_Void* callback) + { + if (!needGroupedLog(1)) + return; + string out("setUpdateStackCallback("); + WriteToString(&out, peer); + out.append(", "); + WriteToString(&out, callback); + out.append(") \n"); + appendGroupedLog(1, out); + } + } // NavExtenderAccessor namespace EventEmulatorAccessor { void DestroyPeerImpl(EventEmulatorPeer* peer) { @@ -28425,6 +28467,20 @@ namespace OHOS::Ace::NG::GeneratedModifier { struct PixelMapPeer { virtual ~PixelMapPeer() = default; }; + const GENERATED_ArkUINavExtenderAccessor* GetNavExtenderAccessor() + { + static const GENERATED_ArkUINavExtenderAccessor NavExtenderAccessorImpl { + NavExtenderAccessor::DestroyPeerImpl, + NavExtenderAccessor::CtorImpl, + NavExtenderAccessor::GetFinalizerImpl, + NavExtenderAccessor::SetUpdateStackCallbackImpl, + }; + return &NavExtenderAccessorImpl; + } + + struct NavExtenderPeer { + virtual ~NavExtenderPeer() = default; + }; const GENERATED_ArkUIEventEmulatorAccessor* GetEventEmulatorAccessor() { static const GENERATED_ArkUIEventEmulatorAccessor EventEmulatorAccessorImpl { @@ -30106,6 +30162,7 @@ namespace OHOS::Ace::NG::GeneratedModifier { GetDrawingCanvasAccessor, GetFrameNodeAccessor, GetPixelMapAccessor, + GetNavExtenderAccessor, GetEventEmulatorAccessor, GetActionSheetAccessor, GetAlertDialogAccessor, -- Gitee