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 2e12b3635150a2ec4ad55780bb20de5bc0aa6810..4d411350e31385455af9938c9ffb5de1d461899e 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 6088659bb0ece651caaefd7c75ccb229db6667ca..ffda08702c52d84fb7b18cd9bf9244c2449f8e22 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 fa9aca1ab6351ca299bf7fd943fac7f50a89b4b0..d1102979ea44e4fe82ab24b69b3c6bf5da6dd84d 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 0000000000000000000000000000000000000000..858f78d373cf76a7243776d168cc7d40ffc02344 --- /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 4c3f0ae79560011e42b2a2eaeea47e84aa6aec6c..8218f935cde74a303f758766cab076af05c93256 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 db93e2bc0a3066233ea3d8eaee5fcafa995b7ef2..ce04eec0ee89ce0e105f945d91ee08a8b177333b 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 47d3a6de14add2b951171e662ee9340193edb73c..fcf04331deb8fed0e8c1e7a63084802166e5dd4e 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 7ec2ae0a71cf3bf5c911dccfe8096a31cdffdf22..96c79396eee9eeef90534365e01abae96b2f49c8 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 edd3321a365695256ebf5a8c6f1435f7eff7aacd..9bd4b1e76b0a03a361362638465214826040e7cf 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 6272bd61f4887db797bd32cac8463495289570a4..8f25e6873abc6ed02473cc37c9e311d53cce10ff 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 20203ae35411b445876b031687ad87d76341a413..6def21b75d8d11ba14e1cd4d8d8dbf528e0b3f80 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 ec7dc53155e1d549cc8972a3b605aabab47eacc2..404b477f478ed90c52ecc1690ce2dbcf8b2cb33d 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 34f894aefaece58c03535170e88b4695653f8a6c..c5289ee2ebc7d2ad310b213ce6c753952c4513ae 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 8c27077e5b2ab1f7a46826603fbcdca21a0f1903..4ba1a8a020038b2008ccebf0a5e4622d34804db1 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 8c6e972141ba1b9c346070a2df295453d2e3649f..97094f8b2c6338450f6352abb68e3074ff545c5c 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 6ed451b38dfb37a92ffe3967cb7f1b1e4edb09e1..f262bd0bedad35eea48693628dc0460e11f067ee 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 c211694c0c0a870997cf17e1cb68feeed494e0f0..0c3820f78596cc39be8d2faca1364b736c75002d 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 0000000000000000000000000000000000000000..71a7ec214b8ec838a833cba498676b7126555074 --- /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; +} + +}