From 62c30bf90d6ba31023fa9c9e299e91d0d8086b19 Mon Sep 17 00:00:00 2001 From: HuangXW Date: Sat, 26 Jul 2025 17:18:07 +0800 Subject: [PATCH] fix tabs scroll-event issue Signed-off-by: HuangXW Change-Id: I7a804bea5f02c1f6396b3dc8ba4839d16d3edcd5 --- .../arkts/ArkUIGeneratedNativeModule.ts | 2 + .../arkui-ohos/src/component/index.ts | 1 + .../arkui-ohos/src/component/tabs.ts | 4 +- .../arkui-ohos/src/component/tabsExtender.ts | 31 ++++++++++++++ .../src/handwritten/TabsOpsHandWritten.ts | 6 +++ .../arkoala-arkts/components.gni | 1 + .../src/generated/arkoala_api_generated.h | 5 +++ .../native/src/generated/bridge_generated.cc | 4 ++ .../native/src/generated/dummy_impl.cc | 7 ++++ .../native/src/generated/real_impl.cc | 7 ++++ .../pattern/tabs/tabs_model_ng.cpp | 10 +++-- .../pattern/tabs/tabs_model_ng.h | 1 + .../pattern/tabs/tabs_model_static.cpp | 6 +++ .../pattern/tabs/tabs_model_static.h | 1 + .../interface/arkoala_api_generated.h | 5 +++ .../generated/interface/node_interface.gni | 1 + .../native/implementation/all_modifiers.cpp | 2 + .../implementation/tabs_extender_accessor.cpp | 40 +++++++++++++++++++ 18 files changed, 129 insertions(+), 5 deletions(-) create mode 100644 frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/tabsExtender.ts create mode 100644 frameworks/core/interfaces/native/implementation/tabs_extender_accessor.cpp diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts index 2e12b363515..4d411350e31 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts @@ -6420,6 +6420,8 @@ export class ArkUIGeneratedNativeModule { @ani.unsafe.Direct native static _TabsController_setTabBarOpacity(ptr: KPointer, opacity: number): void @ani.unsafe.Direct + native static _TabsExtender_ApplyAttributesFinish(node: KPointer): void + @ani.unsafe.Direct native static _TabContentTransitionProxy_ctor(): KPointer @ani.unsafe.Direct native static _TabContentTransitionProxy_getFinalizer(): KPointer diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/index.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/index.ts index 6088659bb0e..ffda08702c5 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/index.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/index.ts @@ -186,6 +186,7 @@ export * from "./symbolglyph" export * from "./tabContent" export * from "./tabs" export * from "./tabsops" +export * from "./tabsExtender" export * from "./test-api" export * from "./text" export * from "./textArea" diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/tabs.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/tabs.ts index fa9aca1ab63..d1102979ea4 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/tabs.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/tabs.ts @@ -31,7 +31,7 @@ import { EdgeEffect, PageFlipMode, Color } from "./enums" import { Callback_Number_Void } from "./alphabetIndexer" import { Resource } from "global.resource" import { NodeAttach, remember } from "@koalaui/runtime" -import { TabsOpsHandWritten } from "./../handwritten" +import { TabsOpsHandWritten, hookTabsApplyAttributesFinish } from "./../handwritten" export class TabsControllerInternal { public static fromPtr(ptr: KPointer): TabsController { @@ -1083,7 +1083,7 @@ export class ArkTabsComponent extends ArkCommonMethodComponent implements TabsAt public applyAttributesFinish(): void { // we call this function outside of class, so need to make it public - super.applyAttributesFinish() + hookTabsApplyAttributesFinish(this) } } /** @memo */ diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/tabsExtender.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/tabsExtender.ts new file mode 100644 index 00000000000..858f78d373c --- /dev/null +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/tabsExtender.ts @@ -0,0 +1,31 @@ +/* + * Copyright (c) 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 { TypeChecker, ArkUIGeneratedNativeModule } from "#components" +import { KPointer } from "@koalaui/interop" + +export class TabsExtender { + public static ApplyAttributesFinish(node: KPointer): void { + const node_casted = node as (KPointer) + TabsExtender.ApplyAttributesFinish_serialize(node_casted) + return + } + private static ApplyAttributesFinish_serialize(node: KPointer): void { + ArkUIGeneratedNativeModule._TabsExtender_ApplyAttributesFinish(node) + } +} diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/TabsOpsHandWritten.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/TabsOpsHandWritten.ts index 4c3f0ae7956..8218f935cde 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/TabsOpsHandWritten.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/handwritten/TabsOpsHandWritten.ts @@ -15,6 +15,8 @@ import { KPointer, InteropNativeModule } from "@koalaui/interop" import { TabsOps, BarMode, ScrollableBarModeOptions, BlurStyle, BackgroundBlurStyleOptions, Bindable } from "../component" +import { TabsExtender, ArkTabsComponent } from "../component" +import { ArkUIGeneratedNativeModule } from "#components" export class TabsOpsHandWritten { static hookTabsAttributeBarModeImpl(node: KPointer, value: BarMode | undefined, options: ScrollableBarModeOptions | undefined) { @@ -31,3 +33,7 @@ export class TabsOpsHandWritten { }) } } + +export function hookTabsApplyAttributesFinish(node: ArkTabsComponent) : void { + TabsExtender.ApplyAttributesFinish(node.getPeer().peer.ptr) +} diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/components.gni b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/components.gni index db93e2bc0a3..ce04eec0ee8 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/components.gni +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/components.gni @@ -277,6 +277,7 @@ arkui_files = [ "arkui-preprocessed/arkui/component/symbolSpan.ets", "arkui-preprocessed/arkui/component/symbolglyph.ets", "arkui-preprocessed/arkui/component/tabContent.ets", + "arkui-preprocessed/arkui/component/tabsExtender.ets", "arkui-preprocessed/arkui/component/tabs.ets", "arkui-preprocessed/arkui/component/tabsops.ets", "arkui-preprocessed/arkui/component/test-api.ets", diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/arkoala_api_generated.h b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/arkoala_api_generated.h index 47d3a6de14a..fcf04331deb 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/arkoala_api_generated.h +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/arkoala_api_generated.h @@ -23066,6 +23066,10 @@ typedef struct GENERATED_ArkUITabsModifier { const Callback_Number_Void* callback); } GENERATED_ArkUITabsModifier; +typedef struct GENERATED_ArkUITabsExtenderAccessor { + void (*ApplyAttributesFinish)(Ark_NativePointer node); +} GENERATED_ArkUITabsExtenderAccessor; + typedef struct GENERATED_ArkUITabContentModifier { Ark_NativePointer (*construct)(Ark_Int32 id, Ark_Int32 flags); @@ -28373,6 +28377,7 @@ typedef struct GENERATED_ArkUIAccessors { const GENERATED_ArkUIBuilderNodeOpsAccessor* (*getBuilderNodeOpsAccessor)(); const GENERATED_ArkUIPulseSymbolEffectAccessor* (*getPulseSymbolEffectAccessor)(); const GENERATED_ArkUITabsControllerAccessor* (*getTabsControllerAccessor)(); + const GENERATED_ArkUITabsExtenderAccessor* (*getTabsExtenderAccessor)(); const GENERATED_ArkUITabContentTransitionProxyAccessor* (*getTabContentTransitionProxyAccessor)(); const GENERATED_ArkUITextControllerAccessor* (*getTextControllerAccessor)(); const GENERATED_ArkUITextAreaControllerAccessor* (*getTextAreaControllerAccessor)(); diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/bridge_generated.cc b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/bridge_generated.cc index 7ec2ae0a71c..96c79396eee 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/bridge_generated.cc +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/bridge_generated.cc @@ -35394,6 +35394,10 @@ Ark_NativePointer impl_TabsOps_registerBarBackgroundBlurStyle(Ark_NativePointer return GetAccessors()->getTabsOpsAccessor()->registerBarBackgroundBlurStyle(node, (const Opt_BlurStyle*)&style_value, (const Opt_BackgroundBlurStyleOptions*)&options_value); } KOALA_INTEROP_DIRECT_3(TabsOps_registerBarBackgroundBlurStyle, Ark_NativePointer, Ark_NativePointer, KSerializerBuffer, int32_t) +void impl_TabsExtender_ApplyAttributesFinish(Ark_NativePointer node) { + GetAccessors()->getTabsExtenderAccessor()->ApplyAttributesFinish(node); +} +KOALA_INTEROP_DIRECT_V1(TabsExtender_ApplyAttributesFinish, Ark_NativePointer) void impl_IUIContext_freezeUINode0(const KStringPtr& id, Ark_Boolean isFrozen) { GetAccessors()->getIUIContextAccessor()->freezeUINode0((const Ark_String*) (&id), isFrozen); } diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc index edd3321a365..9bd4b1e76b0 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc @@ -46984,6 +46984,13 @@ namespace OHOS::Ace::NG::GeneratedModifier { struct TabsControllerPeer { virtual ~TabsControllerPeer() = default; }; + const GENERATED_ArkUITabsExtenderAccessor* GetTabsExtenderAccessor() + { + static const GENERATED_ArkUITabsExtenderAccessor TabsExtenderAccessorImpl { + TabsExtenderAccessor::ApplyAttributesFinishImpl, + }; + return &TabsExtenderAccessorImpl; + } const GENERATED_ArkUITabContentTransitionProxyAccessor* GetTabContentTransitionProxyAccessor() { static const GENERATED_ArkUITabContentTransitionProxyAccessor TabContentTransitionProxyAccessorImpl { diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/real_impl.cc b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/real_impl.cc index 6272bd61f48..8f25e6873ab 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/real_impl.cc +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/real_impl.cc @@ -24393,6 +24393,13 @@ namespace OHOS::Ace::NG::GeneratedModifier { struct TabsControllerPeer { virtual ~TabsControllerPeer() = default; }; + const GENERATED_ArkUITabsExtenderAccessor* GetTabsExtenderAccessor() + { + static const GENERATED_ArkUITabsExtenderAccessor TabsExtenderAccessorImpl { + TabsExtenderAccessor::ApplyAttributesFinishImpl, + }; + return &TabsExtenderAccessorImpl; + } const GENERATED_ArkUITabContentTransitionProxyAccessor* GetTabContentTransitionProxyAccessor() { static const GENERATED_ArkUITabContentTransitionProxyAccessor TabContentTransitionProxyAccessorImpl { diff --git a/frameworks/core/components_ng/pattern/tabs/tabs_model_ng.cpp b/frameworks/core/components_ng/pattern/tabs/tabs_model_ng.cpp index 20203ae3541..6def21b75d8 100644 --- a/frameworks/core/components_ng/pattern/tabs/tabs_model_ng.cpp +++ b/frameworks/core/components_ng/pattern/tabs/tabs_model_ng.cpp @@ -596,7 +596,13 @@ RefPtr TabsModelNG::GetSwiperPaintProperty() void TabsModelNG::Pop() { - auto tabsNode = AceType::DynamicCast(ViewStackProcessor::GetInstance()->GetMainFrameNode()); + HandleApplyAttributesFinish(ViewStackProcessor::GetInstance()->GetMainFrameNode()); + ViewStackProcessor::GetInstance()->PopContainer(); +} + +void TabsModelNG::HandleApplyAttributesFinish(FrameNode* frameNode) +{ + auto tabsNode = AceType::DynamicCast(frameNode); CHECK_NULL_VOID(tabsNode); auto tabsLayoutProperty = tabsNode->GetLayoutProperty(); CHECK_NULL_VOID(tabsLayoutProperty); @@ -636,8 +642,6 @@ void TabsModelNG::Pop() swiperNode->MarkModifyDone(); swiperNode->MarkDirtyNode(PROPERTY_UPDATE_MEASURE_SELF); - - ViewStackProcessor::GetInstance()->PopContainer(); } RefPtr TabsModelNG::GetOrCreateTabsNode( diff --git a/frameworks/core/components_ng/pattern/tabs/tabs_model_ng.h b/frameworks/core/components_ng/pattern/tabs/tabs_model_ng.h index ec7dc53155e..404b477f478 100644 --- a/frameworks/core/components_ng/pattern/tabs/tabs_model_ng.h +++ b/frameworks/core/components_ng/pattern/tabs/tabs_model_ng.h @@ -148,6 +148,7 @@ public: bool isModifier = false); static void HandleBackgroundBlurStyleInactiveColor(FrameNode* frameNode, const RefPtr& resObj, bool isModifier = false); + static void HandleApplyAttributesFinish(FrameNode* frameNode); private: static void InitTabsNode(RefPtr tabsNode, const RefPtr& swiperController); diff --git a/frameworks/core/components_ng/pattern/tabs/tabs_model_static.cpp b/frameworks/core/components_ng/pattern/tabs/tabs_model_static.cpp index 34f894aefae..c5289ee2ebc 100644 --- a/frameworks/core/components_ng/pattern/tabs/tabs_model_static.cpp +++ b/frameworks/core/components_ng/pattern/tabs/tabs_model_static.cpp @@ -38,6 +38,7 @@ #include "core/components_ng/pattern/tabs/tab_bar_paint_property.h" #include "core/components_ng/pattern/tabs/tab_bar_pattern.h" #include "core/components_ng/pattern/tabs/tabs_controller.h" +#include "core/components_ng/pattern/tabs/tabs_model_ng.h" #include "core/components_ng/pattern/tabs/tabs_node.h" #include "core/components_ng/pattern/tabs/tabs_pattern.h" #include "core/components_ng/pattern/text/text_pattern.h" @@ -806,4 +807,9 @@ void TabsModelStatic::SetOnChangeEvent(FrameNode* frameNode, std::functionSetOnIndexChangeEvent(std::move(onChangeEvent)); } + +void TabsModelStatic::ApplyAttributesFinish(FrameNode* frameNode) +{ + TabsModelNG::HandleApplyAttributesFinish(frameNode); +} } // namespace OHOS::Ace::NG diff --git a/frameworks/core/components_ng/pattern/tabs/tabs_model_static.h b/frameworks/core/components_ng/pattern/tabs/tabs_model_static.h index 8c27077e5b2..4ba1a8a0200 100644 --- a/frameworks/core/components_ng/pattern/tabs/tabs_model_static.h +++ b/frameworks/core/components_ng/pattern/tabs/tabs_model_static.h @@ -69,6 +69,7 @@ public: static void SetCachedMaxCount(FrameNode* frameNode, std::optional cachedMaxCount, std::optional cacheMode); static void SetOnChangeEvent(FrameNode* frameNode, std::function&& onChangeEvent); + static void ApplyAttributesFinish(FrameNode* frameNode); private: static RefPtr GetOrCreateTabsNode( diff --git a/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h b/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h index 8c6e972141b..97094f8b2c6 100644 --- a/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h +++ b/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h @@ -23065,6 +23065,10 @@ typedef struct GENERATED_ArkUITabsModifier { const Callback_Number_Void* callback); } GENERATED_ArkUITabsModifier; +typedef struct GENERATED_ArkUITabsExtenderAccessor { + void (*ApplyAttributesFinish)(Ark_NativePointer node); +} GENERATED_ArkUITabsExtenderAccessor; + typedef struct GENERATED_ArkUITabContentModifier { Ark_NativePointer (*construct)(Ark_Int32 id, Ark_Int32 flags); @@ -28374,6 +28378,7 @@ typedef struct GENERATED_ArkUIAccessors { const GENERATED_ArkUIBuilderNodeOpsAccessor* (*getBuilderNodeOpsAccessor)(); const GENERATED_ArkUIPulseSymbolEffectAccessor* (*getPulseSymbolEffectAccessor)(); const GENERATED_ArkUITabsControllerAccessor* (*getTabsControllerAccessor)(); + const GENERATED_ArkUITabsExtenderAccessor* (*getTabsExtenderAccessor)(); const GENERATED_ArkUITabContentTransitionProxyAccessor* (*getTabContentTransitionProxyAccessor)(); const GENERATED_ArkUITextControllerAccessor* (*getTextControllerAccessor)(); const GENERATED_ArkUITextAreaControllerAccessor* (*getTextAreaControllerAccessor)(); diff --git a/frameworks/core/interfaces/native/generated/interface/node_interface.gni b/frameworks/core/interfaces/native/generated/interface/node_interface.gni index 6ed451b38df..f262bd0beda 100644 --- a/frameworks/core/interfaces/native/generated/interface/node_interface.gni +++ b/frameworks/core/interfaces/native/generated/interface/node_interface.gni @@ -309,6 +309,7 @@ generated_sources = [ "implementation/tab_content_modifier.cpp", "implementation/tab_content_transition_proxy_accessor.cpp", "implementation/tabs_controller_accessor.cpp", + "implementation/tabs_extender_accessor.cpp", "implementation/tabs_modifier.cpp", "implementation/tabs_ops_accessor.cpp", "implementation/tap_gesture_event_accessor.cpp", diff --git a/frameworks/core/interfaces/native/implementation/all_modifiers.cpp b/frameworks/core/interfaces/native/implementation/all_modifiers.cpp index c211694c0c0..0c3820f7859 100644 --- a/frameworks/core/interfaces/native/implementation/all_modifiers.cpp +++ b/frameworks/core/interfaces/native/implementation/all_modifiers.cpp @@ -381,6 +381,7 @@ const GENERATED_ArkUIBounceSymbolEffectAccessor* GetBounceSymbolEffectAccessor() const GENERATED_ArkUIBuilderNodeOpsAccessor* GetBuilderNodeOpsAccessor(); const GENERATED_ArkUIPulseSymbolEffectAccessor* GetPulseSymbolEffectAccessor(); const GENERATED_ArkUITabsControllerAccessor* GetTabsControllerAccessor(); +const GENERATED_ArkUITabsExtenderAccessor* GetTabsExtenderAccessor(); const GENERATED_ArkUITabContentTransitionProxyAccessor* GetTabContentTransitionProxyAccessor(); const GENERATED_ArkUITextControllerAccessor* GetTextControllerAccessor(); const GENERATED_ArkUITextAreaControllerAccessor* GetTextAreaControllerAccessor(); @@ -750,6 +751,7 @@ const GENERATED_ArkUIAccessors* GENERATED_GetArkUIAccessors() GetBuilderNodeOpsAccessor, GetPulseSymbolEffectAccessor, GetTabsControllerAccessor, + GetTabsExtenderAccessor, GetTabContentTransitionProxyAccessor, GetTextControllerAccessor, GetTextAreaControllerAccessor, diff --git a/frameworks/core/interfaces/native/implementation/tabs_extender_accessor.cpp b/frameworks/core/interfaces/native/implementation/tabs_extender_accessor.cpp new file mode 100644 index 00000000000..71a7ec214b8 --- /dev/null +++ b/frameworks/core/interfaces/native/implementation/tabs_extender_accessor.cpp @@ -0,0 +1,40 @@ +/* + * Copyright (c) 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. + */ + + +#include "core/components_ng/base/frame_node.h" +#include "core/components_ng/pattern/tabs/tabs_model_static.h" +#include "core/interfaces/native/utility/converter.h" +#include "arkoala_api_generated.h" + +namespace OHOS::Ace::NG::GeneratedModifier { +namespace TabsExtenderAccessor { +void ApplyAttributesFinishImpl(Ark_NativePointer node) +{ + auto frameNode = reinterpret_cast(node); + CHECK_NULL_VOID(frameNode); + frameNode->MarkModifyDone(); + TabsModelStatic::ApplyAttributesFinish(frameNode); +} +} // TabsExtenderAccessor +const GENERATED_ArkUITabsExtenderAccessor* GetTabsExtenderAccessor() +{ + static const GENERATED_ArkUITabsExtenderAccessor TabsExtenderAccessorImpl { + TabsExtenderAccessor::ApplyAttributesFinishImpl, + }; + return &TabsExtenderAccessorImpl; +} + +} -- Gitee