diff --git a/frameworks/core/components_ng/pattern/button/button_model_static.cpp b/frameworks/core/components_ng/pattern/button/button_model_static.cpp index 01851f66ed8cef3fbc4a0e26e094496a16f34647..69fc4964f680b518a5a989f0199eac9814191c0f 100644 --- a/frameworks/core/components_ng/pattern/button/button_model_static.cpp +++ b/frameworks/core/components_ng/pattern/button/button_model_static.cpp @@ -258,7 +258,7 @@ void ButtonModelStatic::SetType(FrameNode* frameNode, const std::optional v void ButtonModelStatic::SetStateEffect(FrameNode* frameNode, const std::optional stateEffect) { CHECK_NULL_VOID(frameNode); - auto buttonEventHub = frameNode->GetEventHub(); + auto buttonEventHub = frameNode->GetOrCreateEventHub(); CHECK_NULL_VOID(buttonEventHub); if (stateEffect) { buttonEventHub->SetStateEffect(stateEffect.value()); diff --git a/frameworks/core/components_ng/pattern/checkbox/checkbox_model_static.cpp b/frameworks/core/components_ng/pattern/checkbox/checkbox_model_static.cpp index 1b47d2dddcd9542501582242ae1349fdcb3958bc..fbd96d9463579fa3b34242edb10497ec31ab198e 100644 --- a/frameworks/core/components_ng/pattern/checkbox/checkbox_model_static.cpp +++ b/frameworks/core/components_ng/pattern/checkbox/checkbox_model_static.cpp @@ -25,7 +25,7 @@ namespace OHOS::Ace::NG { void CheckBoxModelStatic::SetSelect(FrameNode* frameNode, const std::optional& isSelected) { CHECK_NULL_VOID(frameNode); - auto eventHub = frameNode->GetEventHub(); + auto eventHub = frameNode->GetOrCreateEventHub(); CHECK_NULL_VOID(eventHub); eventHub->SetCurrentUIState(UI_STATE_SELECTED, isSelected.value_or(false)); auto pattern = frameNode->GetPattern(); @@ -117,7 +117,7 @@ void CheckBoxModelStatic::SetCheckboxStyle(FrameNode* frameNode, const std::opti void CheckBoxModelStatic::SetChangeEvent(FrameNode* frameNode, ChangeEvent&& onChange) { CHECK_NULL_VOID(frameNode); - auto eventHub = frameNode->GetEventHub(); + auto eventHub = frameNode->GetOrCreateEventHub(); CHECK_NULL_VOID(eventHub); eventHub->SetChangeEvent(std::move(onChange)); } diff --git a/frameworks/core/components_ng/pattern/checkboxgroup/checkboxgroup_model_static.cpp b/frameworks/core/components_ng/pattern/checkboxgroup/checkboxgroup_model_static.cpp index 79c21ad6b4e6adf2c9e41ad3b9810af5d678aa63..624e3f425bcad4dd419db2fd9b9fa2427b0b0317 100644 --- a/frameworks/core/components_ng/pattern/checkboxgroup/checkboxgroup_model_static.cpp +++ b/frameworks/core/components_ng/pattern/checkboxgroup/checkboxgroup_model_static.cpp @@ -108,7 +108,7 @@ void CheckBoxGroupModelStatic::SetCheckboxGroupStyle( void CheckBoxGroupModelStatic::SetChangeEvent(FrameNode* frameNode, GroupChangeEvent&& changeEvent) { CHECK_NULL_VOID(frameNode); - auto eventHub = frameNode->GetEventHub(); + auto eventHub = frameNode->GetOrCreateEventHub(); CHECK_NULL_VOID(eventHub); eventHub->SetChangeEvent(std::move(changeEvent)); } diff --git a/frameworks/core/components_ng/pattern/counter/counter_model_static.cpp b/frameworks/core/components_ng/pattern/counter/counter_model_static.cpp index 56a0396c555fc326a5c71963979e7652875a9235..82cfad75d37165af8f75044f9e145dcd5a2b32c8 100644 --- a/frameworks/core/components_ng/pattern/counter/counter_model_static.cpp +++ b/frameworks/core/components_ng/pattern/counter/counter_model_static.cpp @@ -157,7 +157,7 @@ RefPtr CounterModelStatic::CreateButtonChild( { auto buttonNode = FrameNode::GetOrCreateFrameNode(V2::BUTTON_ETS_TAG, id, []() { return AceType::MakeRefPtr(); }); - buttonNode->GetEventHub()->SetStateEffect(true); + buttonNode->GetOrCreateEventHub()->SetStateEffect(true); buttonNode->GetLayoutProperty()->UpdateType(ButtonType::NORMAL); buttonNode->GetLayoutProperty()->UpdateCreateWithLabel(false); buttonNode->GetLayoutProperty()->UpdateUserDefinedIdealSize( diff --git a/frameworks/core/components_ng/pattern/folder_stack/folder_stack_model_ng_static.cpp b/frameworks/core/components_ng/pattern/folder_stack/folder_stack_model_ng_static.cpp index d186fc9cd84545edf10fa398d645a33d4a12cab7..ba48f103744af41768e63b965af3845e22af56d4 100644 --- a/frameworks/core/components_ng/pattern/folder_stack/folder_stack_model_ng_static.cpp +++ b/frameworks/core/components_ng/pattern/folder_stack/folder_stack_model_ng_static.cpp @@ -59,4 +59,21 @@ void FolderStackModelNGStatic::SetAlignment(FrameNode* frameNode, const std::opt ACE_UPDATE_NODE_LAYOUT_PROPERTY(LayoutProperty, Alignment, valueOpt.value_or(Alignment::CENTER), frameNode); } +void FolderStackModelNGStatic::SetOnFolderStateChange( + FrameNode* frameNode, std::function&& onChange) +{ + CHECK_NULL_VOID(frameNode); + auto eventHub = frameNode->GetOrCreateEventHub(); + CHECK_NULL_VOID(eventHub); + eventHub->SetOnFolderStateChange(std::move(onChange)); +} + +void FolderStackModelNGStatic::SetOnHoverStatusChange( + FrameNode* frameNode, std::function&& onChange) +{ + CHECK_NULL_VOID(frameNode); + auto eventHub = frameNode->GetOrCreateEventHub(); + CHECK_NULL_VOID(eventHub); + eventHub->SetOnHoverStatusChange(std::move(onChange)); +} } diff --git a/frameworks/core/components_ng/pattern/folder_stack/folder_stack_model_ng_static.h b/frameworks/core/components_ng/pattern/folder_stack/folder_stack_model_ng_static.h index b8c8712c6c11d2cc57248726e0bd38ebb92d5df8..b77125eaae66627aa059ef42258716f875dddb37 100644 --- a/frameworks/core/components_ng/pattern/folder_stack/folder_stack_model_ng_static.h +++ b/frameworks/core/components_ng/pattern/folder_stack/folder_stack_model_ng_static.h @@ -26,6 +26,10 @@ public: static RefPtr CreateFrameNode(int32_t nodeId); static void SetUpdateUpperItems(FrameNode* frameNode, const std::vector& itemId); static void SetAlignment(FrameNode* frameNode, const std::optional& valueOpt); + static void SetOnFolderStateChange( + FrameNode* frameNode, std::function&& onChange); + static void SetOnHoverStatusChange( + FrameNode* frameNode, std::function&& onChange); }; } diff --git a/frameworks/core/components_ng/pattern/picker/datepicker_model_static.cpp b/frameworks/core/components_ng/pattern/picker/datepicker_model_static.cpp index 0bbdfdba5b12eb6390fa5ce96d721940e246625c..c3fa61dfb2ff078d411b53277eb6cc07f0b117fa 100644 --- a/frameworks/core/components_ng/pattern/picker/datepicker_model_static.cpp +++ b/frameworks/core/components_ng/pattern/picker/datepicker_model_static.cpp @@ -21,7 +21,7 @@ namespace OHOS::Ace::NG { void DatePickerModelStatic::SetOnChange(FrameNode* frameNode, DateChangeEvent&& onChange) { CHECK_NULL_VOID(frameNode); - auto eventHub = frameNode->GetEventHub(); + auto eventHub = frameNode->GetOrCreateEventHub(); CHECK_NULL_VOID(eventHub); eventHub->SetOnChange(std::move(onChange)); } @@ -29,7 +29,7 @@ void DatePickerModelStatic::SetOnChange(FrameNode* frameNode, DateChangeEvent&& void DatePickerModelStatic::SetChangeEvent(FrameNode* frameNode, DateChangeEvent&& onChange) { CHECK_NULL_VOID(frameNode); - auto eventHub = frameNode->GetEventHub(); + auto eventHub = frameNode->GetOrCreateEventHub(); CHECK_NULL_VOID(eventHub); eventHub->SetChangeEvent(std::move(onChange)); } diff --git a/frameworks/core/interfaces/native/implementation/checkbox_modifier.cpp b/frameworks/core/interfaces/native/implementation/checkbox_modifier.cpp index 775e419d133a6ead826da7aab2116d9cc3b6dedb..4d0bcdc2cb9e3342ea7a359e9a80c99e9dbda98c 100644 --- a/frameworks/core/interfaces/native/implementation/checkbox_modifier.cpp +++ b/frameworks/core/interfaces/native/implementation/checkbox_modifier.cpp @@ -52,7 +52,7 @@ void SetCheckboxOptionsImpl(Ark_NativePointer node, CHECK_NULL_VOID(frameNode); CHECK_NULL_VOID(options); Converter::WithOptional(*options, [frameNode, node](const Ark_CheckboxOptions& options) { - auto eventHub = frameNode->GetEventHub(); + auto eventHub = frameNode->GetOrCreateEventHub(); CHECK_NULL_VOID(eventHub); auto name = Converter::OptConvert(options.name); diff --git a/frameworks/core/interfaces/native/implementation/folder_stack_modifier.cpp b/frameworks/core/interfaces/native/implementation/folder_stack_modifier.cpp index af9eaea1afbe5cabd0c174f9b3d515081c190227..5db1fdacc9b7b710bb78a0c5f40f557212556f19 100644 --- a/frameworks/core/interfaces/native/implementation/folder_stack_modifier.cpp +++ b/frameworks/core/interfaces/native/implementation/folder_stack_modifier.cpp @@ -72,7 +72,7 @@ void OnFolderStateChangeImpl(Ark_NativePointer node, eventInfo.foldStatus = Converter::ArkValue(folderEventInfo.GetFolderState()); arkCallback.Invoke(eventInfo); }; - FolderStackModelNG::SetOnFolderStateChange(frameNode, std::move(onChange)); + FolderStackModelNGStatic::SetOnFolderStateChange(frameNode, std::move(onChange)); } void OnHoverStatusChangeImpl(Ark_NativePointer node, const Opt_OnHoverStatusChangeCallback* value) @@ -89,7 +89,7 @@ void OnHoverStatusChangeImpl(Ark_NativePointer node, eventInfo.foldStatus = Converter::ArkValue(folderEventInfo.GetFolderState()); arkCallback.Invoke(eventInfo); }; - FolderStackModelNG::SetOnHoverStatusChange(frameNode, std::move(onChange)); + FolderStackModelNGStatic::SetOnHoverStatusChange(frameNode, std::move(onChange)); } void EnableAnimationImpl(Ark_NativePointer node, const Opt_Boolean* value) diff --git a/test/unittest/capi/modifiers/button_modifier_test.cpp b/test/unittest/capi/modifiers/button_modifier_test.cpp index 9827707894982cb061c778df95a0b267597a7dca..cf75441500ccdbc5738ce9ae13c8e183b318f2e4 100644 --- a/test/unittest/capi/modifiers/button_modifier_test.cpp +++ b/test/unittest/capi/modifiers/button_modifier_test.cpp @@ -62,7 +62,7 @@ namespace { const auto ATTRIBUTE_FONT_SIZE_DEFAULT_VALUE("0.00px"); const auto ATTRIBUTE_FONT_WEIGHT_DEFAULT_VALUE("FontWeight.Medium"); const auto ATTRIBUTE_FONT_STYLE_DEFAULT_VALUE("FontStyle.Normal"); - const auto ATTRIBUTE_MIN_FONT_SCALE_DEFAULT_VALUE(""); + const auto ATTRIBUTE_MIN_FONT_SCALE_DEFAULT_VALUE("0.850000"); const auto ATTRIBUTE_MAX_FONT_SCALE_DEFAULT_VALUE("2147483648.000000"); // typedefs