diff --git a/frameworks/core/interfaces/native/implementation/global_scope_ohos_font_accessor.cpp b/frameworks/core/interfaces/native/implementation/global_scope_ohos_font_accessor.cpp index 646639eab2fcb7823416521bf5ac1daef182cf06..7e018c6f54036f4beed3b541bfe07c9d873dacf7 100644 --- a/frameworks/core/interfaces/native/implementation/global_scope_ohos_font_accessor.cpp +++ b/frameworks/core/interfaces/native/implementation/global_scope_ohos_font_accessor.cpp @@ -20,12 +20,12 @@ namespace OHOS::Ace::NG::Converter { template<> -void AssignCast(std::optional& dst, const Ark_Resource& src) +void AssignCast(std::optional& dst, const Ark_Resource& src) { ResourceConverter converter(src); auto resourceString = converter.ToString(); if (resourceString) { - Ark_Resource_Simple temp; + SimpleResource temp; temp.content = resourceString.value(); temp.bundleName = converter.BundleName(); temp.moduleName = converter.ModuleName(); @@ -36,11 +36,11 @@ void AssignCast(std::optional& dst, const Ark_Resource& src } } template<> -void AssignCast(std::optional& dst, const Ark_String& src) +void AssignCast(std::optional& dst, const Ark_String& src) { std::string str = Converter::Convert(src); if (!str.empty()) { - Ark_Resource_Simple temp; + SimpleResource temp; temp.content = str; dst = temp; } @@ -59,7 +59,7 @@ void RegisterFontImpl(const Ark_FontOptions* options) if (auto familyNameOpt = Converter::OptConvert(options->familyName); familyNameOpt) { familyName = !familyNameOpt->families.empty() ? familyNameOpt->families.front() : ""; } - if (auto familySrcOpt = Converter::OptConvert(options->familySrc); + if (auto familySrcOpt = Converter::OptConvert(options->familySrc); familySrcOpt) { familySrc = familySrcOpt->content; bundleName = familySrcOpt->bundleName; diff --git a/frameworks/core/interfaces/native/implementation/image_analyzer_controller_accessor.cpp b/frameworks/core/interfaces/native/implementation/image_analyzer_controller_accessor.cpp index 184bcaba63cfb5652dc8e3f96ca09ec9eaed104e..7c805fa801d9fab218210f9626994cd10d017b06 100644 --- a/frameworks/core/interfaces/native/implementation/image_analyzer_controller_accessor.cpp +++ b/frameworks/core/interfaces/native/implementation/image_analyzer_controller_accessor.cpp @@ -34,17 +34,6 @@ void AssignArkValue(Ark_ImageAnalyzerType& dst, const ImageAnalyzerType& src) break; } } - -void AssignArkValue(Array_ImageAnalyzerType& dst, const std::vector& src) -{ - std::vector array; - std::transform(src.begin(), src.end(), std::back_inserter(array), - [](auto val) { return Converter::ArkValue(val); }); - - dst.array = reinterpret_cast(array.data()); - dst.length = Converter::ArkValue(static_cast(src.size())); -} - } // OHOS::Ace::NG::Converter namespace OHOS::Ace::NG::GeneratedModifier { diff --git a/frameworks/core/interfaces/native/implementation/image_attachment_accessor.cpp b/frameworks/core/interfaces/native/implementation/image_attachment_accessor.cpp index ab3cdfb2e6b12a0223ded8946b11eacb438db52a..d97f18d2e9222af138946450b37e3dba340662a2 100644 --- a/frameworks/core/interfaces/native/implementation/image_attachment_accessor.cpp +++ b/frameworks/core/interfaces/native/implementation/image_attachment_accessor.cpp @@ -83,7 +83,7 @@ template<> RefPtr Convert(const Ark_ResourceImageAttachmentOptions& value) { ImageSpanOptions imageOptions; - auto resourceStrOpt = Converter::OptConvert(value.resourceValue); + auto resourceStrOpt = Converter::OptConvert(value.resourceValue); if (resourceStrOpt.has_value()) { imageOptions.bundleName = resourceStrOpt->bundleName; imageOptions.moduleName = resourceStrOpt->moduleName; diff --git a/frameworks/core/interfaces/native/implementation/styled_string.h b/frameworks/core/interfaces/native/implementation/styled_string.h index aad7ef44e096311481d343028d2a9b86628ad8f3..dc6197fb2e1a9d7aee196dba0d34d1db58c6378d 100644 --- a/frameworks/core/interfaces/native/implementation/styled_string.h +++ b/frameworks/core/interfaces/native/implementation/styled_string.h @@ -31,8 +31,8 @@ namespace OHOS::Ace::NG::Converter { inline RefPtr Convert(const Ark_SpanStyle& src) { return Convert>(Ark_StyleOptions { - .start = ArkValue(src.start), - .length = ArkValue(src.length), + .start = ArkValue(Convert(src.start)), + .length = ArkValue(Convert(src.length)), .styledKey = src.styledKey, .styledValue = src.styledValue, }); diff --git a/frameworks/core/interfaces/native/implementation/text_field_ops_accessor.cpp b/frameworks/core/interfaces/native/implementation/text_field_ops_accessor.cpp index 6272033d28970c79e40b1293093eae3d3ec34cac..9c9025c3fd31691910a2a36cb438f9765eda28a7 100644 --- a/frameworks/core/interfaces/native/implementation/text_field_ops_accessor.cpp +++ b/frameworks/core/interfaces/native/implementation/text_field_ops_accessor.cpp @@ -55,8 +55,9 @@ Ark_NativePointer RegisterTextFieldValueCallbackImpl(Ark_NativePointer node, LOGW("container is null"); return; } - std::variant u8Content = UtfUtils::Str16DebugToStr8(content); - auto arkResourceContent = Converter::ArkValue(u8Content, &ctx); + auto u8Content = UtfUtils::Str16DebugToStr8(content); + auto arkResourceContent = Converter::ArkCreate(u8Content, + Converter::ResourceType::STRING, &ctx); arkResourceContent.bundleName = Converter::ArkValue(container->GetBundleName(), &ctx); arkResourceContent.moduleName = Converter::ArkValue(container->GetModuleName(), &ctx); arkResourceContent.type = resourceType; @@ -95,7 +96,7 @@ Ark_NativePointer TextFieldOpsSetWidthImpl(Ark_NativePointer node, // TextFieldModel::GetInstance()->SetWidthAuto(frameNode, true); // return; // } - + return {}; } Ark_NativePointer TextFieldOpsSetHeightImpl(Ark_NativePointer node, diff --git a/frameworks/core/interfaces/native/implementation/text_input_modifier.cpp b/frameworks/core/interfaces/native/implementation/text_input_modifier.cpp index c5fc660b24574f6376a0eec03175ba95ff23aec6..a529264b4ba4bffa4e7b56242019093aaf9eb514 100644 --- a/frameworks/core/interfaces/native/implementation/text_input_modifier.cpp +++ b/frameworks/core/interfaces/native/implementation/text_input_modifier.cpp @@ -592,9 +592,9 @@ void CancelButton0Impl(Ark_NativePointer node, Validator::ValidateNonPercent(iconSize); TextFieldModelStatic::SetCancelIconSize(frameNode, iconSize); // set icon src - auto iconSrcOpt = Converter::OptConvert(optIconOptions->src); + auto iconSrcOpt = Converter::OptConvert(optIconOptions->src); if (!iconSrcOpt) { - iconSrcOpt = Converter::Ark_Resource_Simple(); + iconSrcOpt = Converter::SimpleResource(); } TextFieldModelStatic::SetCanacelIconSrc(frameNode, iconSrcOpt->content, iconSrcOpt->bundleName, iconSrcOpt->moduleName); diff --git a/frameworks/core/interfaces/native/utility/ace_engine_types.h b/frameworks/core/interfaces/native/utility/ace_engine_types.h index 05f5c37ce6d92914f6e4f4302e5139e2c35f9354..0ca7caf396f095882cae6218d5b78ddee78be5d2 100644 --- a/frameworks/core/interfaces/native/utility/ace_engine_types.h +++ b/frameworks/core/interfaces/native/utility/ace_engine_types.h @@ -53,6 +53,12 @@ enum class ResourceType : uint32_t { RAWFILE = 30000 }; +struct SimpleResource { + std::string content; + std::string bundleName; + std::string moduleName; +}; + struct RadioStyle { std::optional checkedBackgroundColor; std::optional uncheckedBorderColor; diff --git a/frameworks/core/interfaces/native/utility/converter.cpp b/frameworks/core/interfaces/native/utility/converter.cpp index e08b719251fe9f602b1443ce3c71e7007d6f9d93..29722a6c45800d758edcf226cf7684a69e2a2174 100644 --- a/frameworks/core/interfaces/native/utility/converter.cpp +++ b/frameworks/core/interfaces/native/utility/converter.cpp @@ -137,7 +137,7 @@ namespace { return; } } - + std::string replaceContentStr; if (shortHolderType) { replaceContentStr = GetReplaceContentStr(searchTime, type, params, containCount); @@ -145,7 +145,7 @@ namespace { replaceContentStr = GetReplaceContentStr(OHOS::Ace::Framework::StringToInt(pos) - 1, type, params, containCount); } - + originStr.replace(matches[0].first - originStr.begin(), matches[0].length(), replaceContentStr); start = originStr.begin() + matches.prefix().length() + replaceContentStr.length(); end = originStr.end(); @@ -646,20 +646,20 @@ SheetHeight Convert(const Ark_SheetSize& src) return detent; } -template<> -SheetHeight Convert(const Ark_Length& src) +static SheetHeight SheetHeightFromDimension(std::optional src) { SheetHeight detent; - detent.sheetMode.reset(); - detent.height = Convert(src); - Validator::ValidateNonNegative(detent.height); - if (!detent.height.has_value()) { - detent.sheetMode = NG::SheetMode::LARGE; - detent.height.reset(); - } + Validator::ValidateNonNegative(src); + detent.height = src; return detent; } +template<> +SheetHeight Convert(const Ark_Length& src) +{ + return SheetHeightFromDimension(OptConvert(src)); +} + template<> SysOptions Convert(const Ark_SystemAdaptiveOptions& src) { @@ -716,79 +716,48 @@ std::vector Convert(const Ark_ShadowOptions& src) } template<> -std::vector Convert(const Array_LayoutSafeAreaType& src) -{ - std::vector dst; - auto length = Converter::Convert(src.length); - for (int i = 0; i < length; i++) { - auto value = Converter::Convert(*(src.array + i)); - dst.push_back(value); - } - return dst; -} - -template<> -std::vector Convert(const Array_LayoutSafeAreaEdge& src) -{ - std::vector dst; - auto length = Converter::Convert(src.length); - for (int i = 0; i < length; i++) { - auto value = Converter::Convert(*(src.array + i)); - dst.push_back(value); - } - return dst; -} - -template<> -std::vector Convert(const Array_NavigationMenuItem& src) +NG::BarItem Convert(const Ark_NavigationMenuItem& src) { - std::vector dst; - auto length = Converter::Convert(src.length); - for (int i = 0; i < length; i++) { - auto menuItem = *(src.array + i); - NG::BarItem item; - item.text = Converter::OptConvert(menuItem.value).value_or(""); - item.icon = Converter::OptConvert(menuItem.icon); - // iconSymbol is not dealed - item.isEnabled = Converter::OptConvert(menuItem.isEnabled); - if (menuItem.action.tag != InteropTag::INTEROP_TAG_UNDEFINED) { - auto targetNode = AceType::WeakClaim(NG::ViewStackProcessor::GetInstance()->GetMainFrameNode()); - auto actionCallback = [changeCallback = CallbackHelper(menuItem.action.value), node = targetNode]() { - PipelineContext::SetCallBackNode(node); - changeCallback.Invoke(); - }; - item.action = actionCallback; - } - dst.push_back(item); + auto menuItem = src; + NG::BarItem item; + item.text = Converter::OptConvert(menuItem.value).value_or(""); + item.icon = Converter::OptConvert(menuItem.icon); + // iconSymbol is not dealt + item.isEnabled = Converter::OptConvert(menuItem.isEnabled); + auto optCallback = Converter::GetOpt(menuItem.action); + if (optCallback) { + auto targetNode = AceType::WeakClaim(NG::ViewStackProcessor::GetInstance()->GetMainFrameNode()); + auto actionCallback = [changeCallback = CallbackHelper(*optCallback), node = targetNode]() { + PipelineContext::SetCallBackNode(node); + changeCallback.Invoke(); + }; + item.action = actionCallback; } - return dst; + return item; } template<> -std::vector Convert(const Array_ToolbarItem& src) +NG::BarItem Convert(const Ark_ToolbarItem& src) { - std::vector dst; - auto length = Converter::Convert(src.length); - for (int i = 0; i < length; i++) { - auto toolbarItem = *(src.array + i); - NG::BarItem item; - item.text = Converter::OptConvert(toolbarItem.value).value_or(""); - item.icon = Converter::OptConvert(toolbarItem.icon); - //item.iconSymbol = Converter::OptConvert)>>(toolbarItem.symbolIcon); - if (toolbarItem.action.tag != InteropTag::INTEROP_TAG_UNDEFINED) { - auto targetNode = AceType::WeakClaim(NG::ViewStackProcessor::GetInstance()->GetMainFrameNode()); - auto actionCallback = [changeCallback = CallbackHelper(toolbarItem.action.value), node = targetNode]() { - PipelineContext::SetCallBackNode(node); - changeCallback.Invoke(); - }; - item.action = actionCallback; - } - item.status = Converter::Convert(toolbarItem.status); - item.activeIcon = Converter::OptConvert(toolbarItem.activeIcon); - //item.activeIconSymbol = Converter::OptConvert)>>(toolbarItem.activeSymbolIcon); - dst.push_back(item); + auto toolbarItem = src; + NG::BarItem item; + item.text = Converter::OptConvert(toolbarItem.value).value_or(""); + item.icon = Converter::OptConvert(toolbarItem.icon); + //item.iconSymbol = Converter::OptConvert)>>(toolbarItem.symbolIcon); + auto optCallback = Converter::GetOpt(toolbarItem.action); + if (optCallback) { + auto targetNode = AceType::WeakClaim(NG::ViewStackProcessor::GetInstance()->GetMainFrameNode()); + auto actionCallback = [changeCallback = CallbackHelper(*optCallback), node = targetNode]() { + PipelineContext::SetCallBackNode(node); + changeCallback.Invoke(); + }; + item.action = actionCallback; } - return dst; + item.status = Converter::OptConvert(toolbarItem.status) + .value_or(NavToolbarItemStatus::NORMAL); + item.activeIcon = Converter::OptConvert(toolbarItem.activeIcon); + //item.activeIconSymbol = Converter::OptConvert)>>(toolbarItem.activeSymbolIcon); + return item; } @@ -796,34 +765,22 @@ template<> Dimension Convert(const Ark_String& src) { auto str = Convert(src); - return Dimension::FromString(str); + return StringUtils::StringToDimension(str, true); } template<> -CalcDimension Convert(const Ark_Length& src) +CalcDimension Convert(const Ark_String& src) { - return Convert(src); + auto str = Convert(src); + return StringUtils::StringToCalcDimension(str, true); } template<> -CalcDimension Convert(const Ark_LengthMetrics& src) +CalcDimension Convert(const Ark_Length& src) { return Convert(src); } -template<> -CalcDimension Convert(const Ark_String& src) -{ - auto str = Convert(src); - if (!str.empty()) { - char firstChar = str[0]; - if (firstChar < '0' || firstChar > '9') { - return CalcDimension(str); - } - } - return Dimension::FromString(str); -} - template<> CalcDimension Convert(const Ark_Number& src) { @@ -833,7 +790,10 @@ CalcDimension Convert(const Ark_Number& src) template<> std::pair Convert(const Ark_Tuple_Dimension_Dimension& src) { - return { Converter::Convert(src.value0), Converter::Convert(src.value1) }; + return { + Converter::OptConvert(src.value0).value_or(Dimension()), + Converter::OptConvert(src.value1).value_or(Dimension()), + }; } template<> @@ -842,13 +802,6 @@ Dimension Convert(const Ark_Number& src) return Dimension(Converter::Convert(src), DimensionUnit::VP); } -template<> -StringArray Convert(const Ark_CustomObject& src) -{ - LOGE("Convert [Ark_CustomObject] to [StringArray] is not supported"); - return StringArray(); -} - template<> Color Convert(const Ark_Number& src) { @@ -865,31 +818,10 @@ Color Convert(const Ark_String& src) template<> std::tuple Convert(const Ark_String& src) { - auto str = Convert(src); - auto dimension = Dimension::FromString(str); + auto dimension = Convert(src); return std::make_tuple(dimension.Value(), static_cast(dimension.Unit())); } -template<> -Ark_CharPtr Convert(const Ark_Undefined& src) -{ - return ""; -} - -template<> -Ark_CharPtr Convert(const Ark_Function& src) -{ - LOGE("Convert [Ark_Function/CustomBuilder] to [Ark_CharPtr] is not valid."); - return ""; -} - -template<> -Ark_CharPtr Convert(const Ark_CustomObject& src) -{ - LOGE("Convert [Ark_CustomObject] to [Ark_CharPtr] is not valid."); - return ""; -} - template<> float Convert(const Ark_Float32& src) { @@ -988,13 +920,6 @@ BorderStyleProperty Convert(const Ark_BorderStyle& src) return property; } -template<> -Dimension Convert(const Ark_CustomObject& src) -{ - LOGW("Convert [Ark_CustomObject] to [Dimension] is not supported"); - return Dimension(); -} - template<> DimensionOffset Convert(const Ark_Offset& src) { @@ -1648,13 +1573,9 @@ NG::NavigationBarOptions Convert(const Ark_NavigationToolbarOptions& src) } template<> -NavToolbarItemStatus Convert(const Opt_ToolbarItemStatus& src) +NavToolbarItemStatus Convert(const Ark_ToolbarItemStatus& src) { - NavToolbarItemStatus status = NavToolbarItemStatus::NORMAL; - if (src.tag != InteropTag::INTEROP_TAG_UNDEFINED) { - status = static_cast(src.value); - } - return status; + return static_cast(src); } template<> @@ -1698,21 +1619,12 @@ Rect Convert(const Ark_RectResult& src) ); } -template<> -ShapePoint Convert(const Ark_Point& src) -{ - return ShapePoint(Converter::Convert(src.x), Converter::Convert(src.y)); -} - template<> ShapePoint Convert(const Ark_ShapePoint& src) { - ShapePoint point = {0.0_vp, 0.0_vp}; - auto x = Converter::OptConvert(src.value0); - auto y = Converter::OptConvert(src.value1); - point.first = x.value_or(0.0_vp); - point.second = y.value_or(0.0_vp); - return point; + return ShapePoint( + Converter::OptConvert(src.value0).value_or(0.0_vp), + Converter::OptConvert(src.value1).value_or(0.0_vp)); } template<> @@ -2492,6 +2404,12 @@ CalcLength Convert(const Ark_Length& src) return CalcLength(Convert(src)); } +template<> +CalcDimension Convert(const Ark_LengthMetrics& src) +{ + return CalcDimension(Convert(src)); +} + template<> CalcLength Convert(const Ark_LengthMetrics& src) { @@ -3264,56 +3182,32 @@ NG::NavigationBarOptions Convert(const Ark_NavigationTitleOptions& src) } template<> -void AssignCast(std::optional& dst, const Opt_NavigationAnimatedTransition& src) +void AssignCast(std::optional& dst, const Ark_NavigationAnimatedTransition& src) { - NG::NavigationTransition transition; + NG::NavigationTransition transition{}; dst = transition; - if (src.tag == InteropTag::INTEROP_TAG_UNDEFINED) { - dst->isValid = false; - return; - } dst->isValid = true; - if (src.value.isInteractive.tag != InteropTag::INTEROP_TAG_UNDEFINED) { - dst->interactive = Converter::Convert(src.value.isInteractive.value); - } else { - dst->interactive = false; - } - if (src.value.timeout.tag != InteropTag::INTEROP_TAG_UNDEFINED) { - dst->timeout = Converter::Convert(src.value.timeout.value); - } + dst->interactive = Converter::OptConvert(src.isInteractive).value_or(false); + dst->timeout = Converter::OptConvert(src.timeout).value_or(dst->timeout); if (!dst->interactive) { dst->timeout = dst->timeout < 0 ? 1000 : dst->timeout; } - if (src.value.onTransitionEnd.tag != InteropTag::INTEROP_TAG_UNDEFINED) { - auto onTransitionEnd = [callback = CallbackHelper(src.value.onTransitionEnd.value)](bool success) { + auto optCallback = Converter::GetOpt(src.onTransitionEnd); + if (optCallback) { + auto onTransitionEnd = [callback = CallbackHelper(*optCallback)](bool success) { auto isSuccess = Converter::ArkValue(success); callback.Invoke(isSuccess); }; dst->endCallback = std::move(onTransitionEnd); } - auto transitionCallback = [callback = CallbackHelper(src.value.transition)](const RefPtr& transitionProxy) { + auto transitionCallback = [callback = CallbackHelper(src.transition)]( + const RefPtr& transitionProxy) { auto transition = Converter::ArkValue(transitionProxy); callback.Invoke(transition); }; dst->transition = std::move(transitionCallback); } -template<> -void AssignCast(std::optional>& dst, - const Opt_Array_NavDestinationTransition& src) -{ - std::vector allTransitions; - if (src.tag == InteropTag::INTEROP_TAG_UNDEFINED) { - return; - } - int length = src.value.length; - for (int i = 0; i < length; i++) { - NG::NavDestinationTransition indexValue = Converter::Convert(src.value.array[i]); - allTransitions.push_back(indexValue); - } - dst = allTransitions; -} - template<> NG::NavDestinationTransition Convert(const Ark_NavDestinationTransition& src) { @@ -3333,22 +3227,11 @@ NG::NavDestinationTransition Convert(const Ark_NavDestinationTransition& src) } template<> -void AssignCast(std::optional& dst, const Opt_ShapePoint& src) +void AssignCast(std::optional& dst, const Ark_LevelOrder& src) { - if (src.tag != InteropTag::INTEROP_TAG_UNDEFINED) { - dst = Converter::Convert(src.value); - } -} - -template<> -void AssignCast(std::optional& dst, const Opt_LevelOrder& src) -{ - dst = std::make_optional(NG::LevelOrder::ORDER_DEFAULT); - if (src.tag != InteropTag::INTEROP_TAG_UNDEFINED) { - auto peer = reinterpret_cast(src.value); - if (peer && peer->levelOrder) { - dst = std::make_optional(peer->levelOrder->GetOrder()); - } + auto peer = src; + if (peer && peer->levelOrder) { + dst = std::make_optional(peer->levelOrder->GetOrder()); } } diff --git a/frameworks/core/interfaces/native/utility/converter.h b/frameworks/core/interfaces/native/utility/converter.h index d46b1baab9454a215d18501c3ce739c5c9cebcca..423dcfeed6f82329c3df68fbc942ab976f574080 100644 --- a/frameworks/core/interfaces/native/utility/converter.h +++ b/frameworks/core/interfaces/native/utility/converter.h @@ -37,6 +37,7 @@ #include "core/components/common/properties/paint_state.h" #include "core/components/common/properties/shadow.h" #include "core/components/common/properties/text_style.h" +#include "core/components/dialog/dialog_properties.h" #include "core/components/scroll/scroll_controller_base.h" #include "core/components/web/web_event.h" #include "core/components/web/web_property.h" @@ -47,7 +48,6 @@ #include "core/components_ng/pattern/navigation/navigation_options.h" #include "core/components_ng/pattern/navigation/navigation_transition_proxy.h" #include "core/components_ng/pattern/overlay/level_order.h" -#include "core/components/dialog/dialog_properties.h" #include "core/components_ng/pattern/overlay/sheet_presentation_pattern.h" #include "core/components_ng/pattern/particle/particle_model.h" #include "core/components_ng/pattern/scrollable/scrollable_paint_property.h" @@ -62,25 +62,18 @@ #include "core/components_ng/property/gradient_property.h" #include "core/components_ng/property/measure_property.h" #include "core/components_v2/list/list_properties.h" +#include "core/gestures/gesture_info.h" #include "core/image/image_source_info.h" - -#include "ace_engine_types.h" #include "core/interfaces/native/implementation/circle_shape_peer.h" #include "core/interfaces/native/implementation/ellipse_shape_peer.h" #include "core/interfaces/native/implementation/path_shape_peer.h" #include "core/interfaces/native/implementation/pixel_map_peer.h" #include "core/interfaces/native/implementation/rect_shape_peer.h" #include "core/interfaces/native/utility/generated/converter_generated.h" -#include "converter_union.h" #include "interfaces/inner_api/ace/ai/image_analyzer.h" -#include "core/gestures/gesture_info.h" -#define ARK_TAG_UNDEFINED INTEROP_TAG_UNDEFINED -#define ARK_TAG_OBJECT INTEROP_TAG_OBJECT -#define ARK_TAG_RESOURCE INTEROP_TAG_RESOURCE -#define ARK_TAG_INT32 INTEROP_TAG_INT32 -#define ARK_TAG_FLOAT32 INTEROP_TAG_FLOAT32 -#define ARK_TAG_LENGTH INTEROP_TAG_LENGTH +#include "ace_engine_types.h" +#include "converter_union.h" namespace OHOS::Ace { struct TextDetectConfig; @@ -149,6 +142,18 @@ namespace Converter { } } + template + std::vector Squash(const std::vector>& src) + { + std::vector result; + for (auto&& item : src) { + if (item.has_value()) { + result.push_back(std::move(*item)); + } + } + return result; + } + template To Convert(const From& src) { @@ -295,6 +300,13 @@ namespace Converter { return src.tag == INTEROP_TAG_FLOAT32 ? static_cast(src.f32) : src.i32; } + template<> + inline long long Convert(const Ark_Number& src) + { + LOGE("Ark_Number doesn`t support int64_t type"); + return static_cast(Convert(src)); + } + template<> inline long Convert(const Ark_Number& src) { @@ -460,13 +472,6 @@ namespace Converter { ResourceConverter converter(src); dst = converter.ToInt(); } - struct Ark_Resource_Simple { - std::string content; - std::string bundleName; - std::string moduleName; - }; - template<> void AssignCast(std::optional& dst, const Ark_Resource& src); - template<> void AssignCast(std::optional& dst, const Ark_String& src); template<> void AssignTo(std::optional &dst, const Ark_ResourceColor& src); @@ -478,6 +483,7 @@ namespace Converter { template<> Ark_CharPtr Convert(const Ark_CustomObject& src); template<> Ark_CharPtr Convert(const Ark_Function& src); template<> Ark_CharPtr Convert(const Ark_Undefined& src); + template<> BindSheetDismissReason Convert(const Ark_DismissReason& src); template<> BlurOption Convert(const Ark_BlurOptions& src); template<> BlurStyleOption Convert(const Ark_BackgroundBlurStyleOptions& src); template<> BlurStyleOption Convert(const Ark_ForegroundBlurStyleOptions& src); @@ -544,17 +550,20 @@ namespace Converter { template<> ListItemGroupIndex Convert(const Ark_VisibleListContentInfo& src); template<> ListItemIndex Convert(const Ark_VisibleListContentInfo& src); template<> MenuOptionsParam Convert(const Ark_TextMenuItem& src); - template<> NG::NavDestinationTransition Convert(const Ark_NavDestinationTransition& src); - template<> NG::NavToolbarItemStatus Convert(const Opt_ToolbarItemStatus& src); + template<> NG::BarItem Convert(const Ark_NavigationMenuItem& src); + template<> NG::BarItem Convert(const Ark_ToolbarItem& src); + template<> NG::NavToolbarItemStatus Convert(const Ark_ToolbarItemStatus& src); template<> NG::NavigationBackgroundOptions Convert(const Ark_MoreButtonOptions& src); template<> NG::NavigationBackgroundOptions Convert(const Ark_NavigationTitleOptions& src); template<> NG::NavigationBackgroundOptions Convert(const Ark_NavigationToolbarOptions& src); template<> NG::NavigationBarOptions Convert(const Ark_NavigationTitleOptions& src); template<> NG::NavigationBarOptions Convert(const Ark_NavigationToolbarOptions& src); + template<> NavDestinationTransition Convert(const Ark_NavDestinationTransition& src); template<> NavigationOptions Convert(const Ark_NavigationOptions& src); template<> NestedScrollOptions Convert(const Ark_NestedScrollOptions& src); template<> OHOS::Ace::TextMetrics Convert(const Ark_TextMetrics& src); template<> OptionParam Convert(const Ark_MenuElement& src); + template<> OverlayOptions Convert(const Ark_OverlayOptions& src); template<> PaddingProperty Convert(const Ark_Length& src); template<> PaddingProperty Convert(const Ark_LengthMetrics& src); template<> PaddingProperty Convert(const Ark_LocalizedPadding& src); @@ -599,7 +608,9 @@ namespace Converter { template<> RefPtr Convert(const Ark_PixelMap& src); template<> RefPtr Convert(const Ark_Rect& src); template<> RefPtr Convert(const Ark_RoundRect& src); + template<> RotateOptions Convert(const Ark_RotateOptions& src); template<> ScaleOpt Convert(const Ark_ScaleOptions& src); + template<> ScaleOptions Convert(const Ark_ScaleOptions& src); template<> ScrollFrameResult Convert(const Ark_ScrollResult& src); template<> SelectionOptions Convert(const Ark_SelectionOptions& options); template<> Shadow Convert(const Ark_Int32& src); @@ -635,23 +646,16 @@ namespace Converter { template<> std::tuple Convert(const Ark_String& src); template<> std::u16string Convert(const Ark_String& src); template<> std::vector Convert(const Array_ImageAnalyzerType& src); - template<> std::vector Convert(const Array_NavigationMenuItem& src); - template<> std::vector Convert(const Array_ToolbarItem& src); template<> std::vector Convert(const Ark_ShadowOptions& src); + template<> std::vector> Convert(const Array_DateRange& src); template<> std::vector Convert(const Ark_Buffer& src); - template<> std::vector Convert(const Array_LayoutSafeAreaEdge& src); - template<> std::vector Convert(const Array_LayoutSafeAreaType& src); template<> uint32_t Convert(const Ark_LayoutSafeAreaEdge& src); template<> uint32_t Convert(const Ark_LayoutSafeAreaType& src); - template<> OverlayOptions Convert(const Ark_OverlayOptions& src); - template<> BindSheetDismissReason Convert(const Ark_DismissReason& src); - template<> RotateOptions Convert(const Ark_RotateOptions& src); - template<> ScaleOptions Convert(const Ark_ScaleOptions& src); - template<> std::vector> Convert(const Array_DateRange& src); // SORTED_SECTION: No multiline declarations, please! template<> void AssignCast(std::optional& dst, const Ark_ResolutionQuality& src); template<> void AssignCast(std::optional& dst, const Ark_AccessibilityHoverType& src); + template<> void AssignCast(std::optional& dst, const Ark_LengthMetricsUnit& src); template<> void AssignCast(std::optional& dst, const Ark_AdaptiveColor& src); template<> void AssignCast(std::optional& dst, const Ark_Alignment& src); template<> void AssignCast(std::optional& dst, const Ark_PlayMode& src); @@ -663,6 +667,7 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_DismissReason& src); template<> void AssignCast(std::optional& dst, const Ark_BlendApplyType& src); template<> void AssignCast(std::optional& dst, const Ark_BlendMode& src); + template<> void AssignCast(std::optional& dst, const Ark_BlurOnKeyboardHideMode& src); template<> void AssignCast(std::optional& dst, const Ark_BlurStyle& src); template<> void AssignCast(std::optional& dst, const Ark_BlurStyleActivePolicy& src); template<> void AssignCast(std::optional& dst, const Ark_BlurStyle& src); @@ -672,31 +677,33 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_ButtonStyleMode& src); template<> void AssignCast(std::optional& dst, const Ark_ButtonType& src); template<> void AssignCast(std::optional& dst, const Ark_CancelButtonStyle& src); - template<> void AssignCast(std::optional& dst, const Ark_LengthMetricsUnit& src); template<> void AssignCast(std::optional& dst, const Ark_ChainEdgeEffect& src); template<> void AssignCast(std::optional& dst, const Ark_ChainStyle& src); template<> void AssignCast(std::optional& dst, const Ark_CancelButtonStyle& src); + template<> void AssignCast(std::optional& dst, const Ark_ColorMetrics& src); template<> void AssignCast(std::optional& dst, const Ark_String& src); template<> void AssignCast(std::optional& dst, const enum Ark_Color& src); template<> void AssignCast(std::optional& dst, const Ark_ContentClipMode& src); template<> void AssignCast(std::optional& dst, const Ark_ControlSize& src); template<> void AssignCast(std::optional& dst, const Ark_CopyOptions& src); template<> void AssignCast(std::optional& dst, const Ark_CrownSensitivity& src); - template<> void AssignCast(std::optional>& dst, const Ark_Curve& src); template<> void AssignCast(std::optional& dst, const Ark_DataPanelType& src); + template<> void AssignCast(std::optional& dst, const Ark_DatePickerMode& src); template<> void AssignCast(std::optional& dst, const Ark_DateTimeOptions& src); template<> void AssignCast(std::optional& dst, const Ark_DialogAlignment& src); template<> void AssignCast(std::optional& dst, const Ark_DialogButtonDirection& src); template<> void AssignCast(std::optional& dst, const Ark_DialogButtonStyle& src); - template<> void AssignCast(std::optional& dst, const Ark_DistributionType& src); template<> void AssignCast(std::optional& dst, const Ark_ArrowPointPosition& src); template<> void AssignCast(std::optional& dst, const Ark_LengthUnit& src); template<> void AssignCast(std::optional& dst, const Ark_BarState& src); + template<> void AssignCast(std::optional& dst, const Ark_DistributionType& src); + template<> void AssignCast(std::optional& dst, const Ark_DividerMode& src); template<> void AssignCast(std::optional& dst, const Ark_DragBehavior& src); template<> void AssignCast(std::optional& dst, const Ark_DragPreviewMode& src); template<> void AssignCast(std::optional& dst, const Ark_DraggingSizeChangeEffect& src); template<> void AssignCast(std::optional& dst, const Ark_DynamicRangeMode& src); template<> void AssignCast(std::optional& dst, const Ark_EdgeEffect& src); + template<> void AssignCast(std::optional& dst, const Ark_EffectType& src); template<> void AssignCast(std::optional& dst, const Ark_EllipsisMode& src); template<> void AssignCast(std::optional& dst, const Ark_FinishCallbackType& src); template<> void AssignCast(std::optional& dst, const Ark_FlexAlign& src); @@ -714,6 +721,7 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_GestureMode& src); template<> void AssignCast(std::optional& dst, const Ark_LinearGradient& src); template<> void AssignCast(std::optional& dst, const Ark_GradientDirection& src); + template<> void AssignCast(std::optional& dst, const Ark_HapticFeedbackMode& src); template<> void AssignCast(std::optional& dst, const Ark_HitTestMode& src); template<> void AssignCast(std::optional& dst, const Ark_HoverEffect& src); template<> void AssignCast(std::optional& dst, const Ark_HoverModeAreaType& src); @@ -723,11 +731,13 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_ImageInterpolation& src); template<> void AssignCast(std::optional& dst, const Ark_ImageRenderMode& src); template<> void AssignCast(std::optional& dst, const Ark_ImageRepeat& src); + template<> void AssignCast(std::optional& dst, const Ark_ImmersiveMode& src); template<> void AssignCast(std::optional& dst, const Ark_TextContentStyle& src); template<> void AssignCast(std::optional& dst, const Ark_TextInputStyle& src); template<> void AssignCast(std::optional& dst, const Ark_KeyboardAppearance& src); template<> void AssignCast(std::optional& dst, const Ark_LaunchMode& src); template<> void AssignCast(std::optional& dst, const Ark_LayoutStyle& src); + template<> void AssignCast(std::optional& dst, const Ark_LevelMode& src); template<> void AssignCast(std::optional& dst, const Ark_LineBreakStrategy& src); template<> void AssignCast(std::optional& dst, const Ark_LineCapStyle& src); template<> void AssignCast(std::optional& dst, const Ark_LineCapStyle& src); @@ -740,19 +750,12 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_MixedMode& src); template<> void AssignCast(std::optional& dst, const Ark_ModalTransition& src); template<> void AssignCast(std::optional& dst, const Ark_ModifierKey& src); - template<> void AssignCast(std::optional& dst, const Opt_NavigationAnimatedTransition& src); - template<> void AssignCast(std::optional>& dst, - const Opt_Array_NavDestinationTransition& src); template<> void AssignCast(std::optional& dst, const Ark_NavDestinationMode& src); template<> void AssignCast(std::optional& dst, const Ark_NavRouteMode& src); template<> void AssignCast(std::optional& dst, const Ark_NavigationOptions& src); template<> void AssignCast(std::optional& dst, const Ark_NavigationTitleOptions& src); + template<> void AssignCast(std::optional& dst, const Ark_NavigationAnimatedTransition& src); template<> void AssignCast(std::optional& dst, const Ark_WebNavigationType& src); - template<> void AssignCast(std::optional& dst, const Ark_SourceType& src); - template<> void AssignCast(std::optional& dst, const Ark_SourceTool& src); - template<> void AssignCast(std::optional& dst, const Ark_TouchType& src); - template<> void AssignCast(std::optional& dst, const Ark_HapticFeedbackMode& src); - template<> void AssignCast(std::optional& dst, const Ark_DividerMode& src); template<> void AssignCast(std::optional& dst, const Ark_NestedScrollMode& src); template<> void AssignCast(std::optional& dst, const Ark_EffectDirection& src); template<> void AssignCast(std::optional& dst, const Ark_EffectFillStyle& src); @@ -760,22 +763,20 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_EffectScope& src); template<> void AssignCast(std::optional& dst, const Ark_SymbolEffectStrategy& src); template<> void AssignCast(std::optional& dst, const Ark_OverScrollMode& src); - template<> void AssignCast(std::optional& dst, const Ark_BlurOnKeyboardHideMode& src); template<> void AssignCast(std::optional& dst, const Ark_PanDirection& src); template<> void AssignCast(std::optional& dst, const Ark_PanelMode& src); + template<> void AssignCast(std::optional& dst, const Ark_DisturbanceFieldShape& src); template<> void AssignCast(std::optional& dst, const Ark_ParticleEmitterShape& src); template<> void AssignCast(std::optional& dst, const Ark_ParticleType& src); - template<> void AssignCast(std::optional& dst, const Ark_ParticleUpdater& src); - template<> void AssignCast(std::optional& dst, const Ark_DisturbanceFieldShape& src); - template<> void AssignCast(std::optional& dst, const Ark_DatePickerMode& src); template<> void AssignCast(std::optional& dst, const Ark_Date& src); template<> void AssignCast(std::optional& dst, const Ark_Date& src); template<> void AssignCast(std::optional& dst, const Ark_Placement& src); template<> void AssignCast(std::optional& dst, const Ark_RectHeightStyle& src); template<> void AssignCast(std::optional& dst, const Ark_RectWidthStyle& src); + template<> void AssignCast(std::optional>& dst, const Ark_Curve& src); + template<> void AssignCast(std::optional>& dst, const Ark_String& src); template<> void AssignCast(std::optional& dst, const Ark_RenderMode& src); - template<> void AssignCast(std::optional& dst, - const Ark_SymbolRenderingStrategy& src); + template<> void AssignCast(std::optional& dst, const Ark_SymbolRenderingStrategy& src); template<> void AssignCast(std::optional& dst, const Ark_ResponseType& src); template<> void AssignCast(std::optional& dst, const Ark_WebResponseType& src); template<> void AssignCast(std::optional& dst, const Ark_ScrollAlign& src); @@ -792,10 +793,14 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_SheetMode& src); template<> void AssignCast(std::optional& dst, const Ark_SheetSize& src); template<> void AssignCast(std::optional& dst, const Ark_SheetType& src); + template<> void AssignCast(std::optional& dst, const Ark_Resource& src); + template<> void AssignCast(std::optional& dst, const Ark_String& src); template<> void AssignCast(std::optional& dst, const Ark_SliderBlockType& src); template<> void AssignCast(std::optional& dst, const Ark_SliderChangeMode& src); template<> void AssignCast(std::optional& dst, const Ark_SliderInteraction& src); template<> void AssignCast(std::optional& dst, const Ark_SliderStyle& src); + template<> void AssignCast(std::optional& dst, const Ark_SourceTool& src); + template<> void AssignCast(std::optional& dst, const Ark_SourceType& src); template<> void AssignCast(std::optional& dst, const Ark_SslError& src); template<> void AssignCast(std::optional& dst, const Ark_SubMenuExpandingMode& src); template<> void AssignCast(std::optional& dst, const Ark_SwipeActionState& src); @@ -822,7 +827,9 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_ThemeColorMode& src); template<> void AssignCast(std::optional& dst, const Ark_ThreatType& src); template<> void AssignCast(std::optional& dst, const Ark_TimePickerFormat& src); + template<> void AssignCast(std::optional& dst, const Ark_TouchType& src); template<> void AssignCast(std::optional& dst, const Ark_TransitionEdge& src); + template<> void AssignCast(std::optional& dst, const Ark_ParticleUpdater& src); template<> void AssignCast(std::optional& dst, const Ark_UnderlineColor& src); template<> void AssignCast(std::optional& dst, const Ark_EditMode& src); template<> void AssignCast(std::optional& dst, const Ark_ListItemAlign& src); @@ -842,6 +849,7 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_WebLayoutMode& src); template<> void AssignCast(std::optional& dst, const Ark_WordBreak& src); template<> void AssignCast(std::optional& dst, const Ark_XComponentType& src); + template<> void AssignCast(std::optional& dst, const Ark_LevelOrder& src); template<> void AssignCast(std::optional& dst, const Ark_String& src); template<> void AssignCast(std::optional& dst, const Ark_PageFlipMode& src); template<> void AssignCast(std::optional& dst, const Ark_FunctionKey& src); @@ -849,17 +857,12 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_Resource& src); template<> void AssignCast(std::optional& dst, const Ark_Number& src); + // Long declarations goes below. DO NOT ADD SHORT DECLARATIONS HERE! template<> void AssignCast( std::optional& dst, const Ark_RenderProcessNotRespondingReason& src); template<> void AssignCast(std::optional& dst, const Ark_SharedTransitionEffectType& src); - template<> void AssignCast(std::optional& dst, const Opt_ShapePoint& src); - template<> void AssignCast(std::optional& dst, const Opt_LevelOrder& src); - template<> void AssignCast(std::optional& dst, const Ark_LevelMode& src); - template<> void AssignCast(std::optional& dst, const Ark_ImmersiveMode& src); - template<> void AssignCast(std::optional>& dst, const Ark_String& src); - template<> void AssignCast(std::optional& dst, const Ark_ColorMetrics& src); - template<> void AssignCast(std::optional& dst, const Ark_EffectType& src); + // DO NOT ADD SHORT DECLARATIONS HERE! template std::optional GetOpt(const From& src) diff --git a/frameworks/core/interfaces/native/utility/generated/converter_generated.h b/frameworks/core/interfaces/native/utility/generated/converter_generated.h index 1e2dadf838d5a4dbffeb86465ee5a5971002f3db..c4c1ca04b1b24eed2be5ba57b60aeb593f63778d 100644 --- a/frameworks/core/interfaces/native/utility/generated/converter_generated.h +++ b/frameworks/core/interfaces/native/utility/generated/converter_generated.h @@ -4929,6 +4929,8 @@ ASSIGN_OPT(Opt_CheckBoxModifierBuilder) ASSIGN_OPT(Opt_RatingModifierBuilder) ASSIGN_OPT(Opt_ToggleModifierBuilder) ASSIGN_OPT(Opt_SliderModifierBuilder) +ASSIGN_OPT(Opt_LevelOrder) +ASSIGN_OPT(Opt_NavigationAnimatedTransition) #undef ASSIGN_OPT } diff --git a/frameworks/core/interfaces/native/utility/reverse_converter.cpp b/frameworks/core/interfaces/native/utility/reverse_converter.cpp index 5042da9112f0a543b25530e539f8bd33b651371d..027afda750418a726082543d401e5d61b7f3e45c 100644 --- a/frameworks/core/interfaces/native/utility/reverse_converter.cpp +++ b/frameworks/core/interfaces/native/utility/reverse_converter.cpp @@ -125,7 +125,7 @@ void AssignArkValue(Ark_CaretOffset& dst, const NG::OffsetF& src) void AssignArkValue(Ark_DragEvent& dragEvent, const RefPtr& info) { - const auto peer = GeneratedModifier::GetFullAPI()->getAccessors()->getDragEventAccessor()->ctor(); + const auto peer = PeerUtils::CreatePeer(); peer->dragInfo = info; dragEvent = peer; } @@ -322,15 +322,6 @@ void AssignArkValue(Ark_Length& dst, const CalcLength& src) dst = ArkValue(src.GetDimension()); } -void AssignArkValue(Ark_Int32& dst, const Ark_Number& src) -{ - if (src.tag == INTEROP_TAG_INT32) { - dst = src.i32; - } else { - dst = static_cast(src.f32); - } -} - void AssignArkValue(Ark_Number& dst, const int32_t& src) { dst.tag = INTEROP_TAG_INT32; @@ -583,21 +574,6 @@ void AssignArkValue(Ark_SpanStyle& dst, const RefPtr& src) } } -void AssignArkValue(Ark_Resource& dst, const std::variant& src, ConvContext *ctx) -{ - dst.id = ArkValue(-1); - dst.params = ArkValue(); - if (auto name = std::get_if(&src); name) { - CHECK_NULL_VOID(ctx); - std::vector vecName { *name }; - auto arkName = Converter::ArkValue(vecName, ctx); - dst.params = Converter::ArkValue(arkName, ctx); - } else if (auto id = std::get_if(&src); id) { - dst.id = ArkValue(*id); - } - dst.type = ArkValue(static_cast(ResourceType::FLOAT)); -} - void AssignArkValue(Ark_FontInfo& dst, const FontInfo& src, ConvContext *ctx) { dst.path = ArkValue(src.path, ctx); @@ -693,7 +669,7 @@ void AssignArkValue(Ark_TouchObject& dst, const OHOS::Ace::TouchLocationInfo& sr dst.x = ArkValue(PipelineBase::Px2VpWithCurrentDensity(localOffset.GetX())); dst.y = ArkValue(PipelineBase::Px2VpWithCurrentDensity(localOffset.GetY())); - + dst.pressedTime = ArkValue(src.GetPressedTime().time_since_epoch().count()); dst.pressure = ArkValue(PipelineBase::Px2VpWithCurrentDensity(src.GetForce())); @@ -766,8 +742,7 @@ void AssignArkValue(Ark_Resource& dst, const ResourceObject& src, ConvContext *c paramsArray.push_back(*param.value); } } - auto arkArray = Converter::ArkValue(paramsArray, ctx); - dst.params = Converter::ArkValue(arkArray, ctx); + dst.params = Converter::ArkValue(paramsArray, ctx); dst.type = Converter::ArkValue(src.GetType()); } @@ -855,14 +830,14 @@ void AssignArkValue(Ark_RichEditorImageSpanStyleResult& dst, const ImageStyleRes void AssignArkValue(Ark_NavDestinationContext& dst, const RefPtr& src) { - auto peer = GeneratedModifier::GetFullAPI()->getAccessors()->getNavDestinationContextAccessor()->ctor(); + const auto peer = PeerUtils::CreatePeer(); peer->SetHandler(src); dst = peer; } void AssignArkValue(Ark_NavigationTransitionProxy& dst, const RefPtr& src) { - auto peer = GeneratedModifier::GetFullAPI()->getAccessors()->getNavigationTransitionProxyAccessor()->ctor(); + const auto peer = PeerUtils::CreatePeer(); peer->SetHandler(src); dst = peer; } @@ -907,4 +882,30 @@ void AssignArkValue(Ark_NavigationOperation& dst, const NG::NavigationOperation& { dst = static_cast(src); } + + +template<> +Ark_Resource ArkCreate(int64_t id, ResourceType type) +{ + return { + .id = ArkValue(id), + .type = ArkValue(static_cast(type)), + .moduleName = ArkValue(""), + .bundleName = ArkValue(""), + .params = ArkValue(), + }; +} + +template<> +Ark_Resource ArkCreate(std::string name, ResourceType type, ConvContext *ctx) +{ + std::vector params = { ArkValue(name, ctx) }; + return { + .id = ArkValue(static_cast(-1)), + .type = ArkValue(static_cast(type)), + .moduleName = ArkValue(""), + .bundleName = ArkValue(""), + .params = ArkValue(params, ctx), + }; +} } // namespace OHOS::Ace::NG::Converter diff --git a/frameworks/core/interfaces/native/utility/reverse_converter.h b/frameworks/core/interfaces/native/utility/reverse_converter.h index 7946cb9fb731a5dbcac95d553aa5f3fb15263fae..d72a0782b5525c0832c1bcee2316ec2502cc7f3a 100644 --- a/frameworks/core/interfaces/native/utility/reverse_converter.h +++ b/frameworks/core/interfaces/native/utility/reverse_converter.h @@ -69,8 +69,8 @@ #include "core/interfaces/native/implementation/hover_event_peer.h" #include "core/interfaces/native/implementation/key_event_peer.h" #include "core/interfaces/native/implementation/mouse_event_peer.h" -#include "core/interfaces/native/implementation/navigation_transition_proxy_peer.h" #include "core/interfaces/native/implementation/nav_destination_context_peer.h" +#include "core/interfaces/native/implementation/navigation_transition_proxy_peer.h" #include "core/interfaces/native/implementation/submit_event_peer.h" #include "core/interfaces/native/implementation/swipe_recognizer_peer.h" #include "core/interfaces/native/implementation/touch_event_peer.h" @@ -182,6 +182,7 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_AnimationMode& dst, const TabAnimateMode& src); void AssignArkValue(Ark_Area& dst, const BaseEventInfo& src); void AssignArkValue(Ark_Axis& dst, const Axis& src); + void AssignArkValue(Ark_AxisAction& dst, const AxisAction& src); void AssignArkValue(Ark_AxisModel& dst, const AxisModel& src); void AssignArkValue(Ark_BarMode& dst, const TabBarMode& src); void AssignArkValue(Ark_BarPosition& dst, const BarPosition& src); @@ -218,12 +219,6 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_GestureControl_GestureType &dst, const GestureTypeName &src); void AssignArkValue(Ark_GestureInfo &dst, const GestureInfo &src); void AssignArkValue(Ark_GestureRecognizer &dst, const RefPtr& src); - void AssignArkValue(Ark_TapRecognizer &dst, const RefPtr& src); - void AssignArkValue(Ark_LongPressRecognizer &dst, const RefPtr& src); - void AssignArkValue(Ark_PanRecognizer &dst, const RefPtr& src); - void AssignArkValue(Ark_PinchRecognizer &dst, const RefPtr& src); - void AssignArkValue(Ark_SwipeRecognizer &dst, const RefPtr& src); - void AssignArkValue(Ark_RotationRecognizer &dst, const RefPtr& src); void AssignArkValue(Ark_GestureRecognizerState &dst, const NG::RefereeState& src); void AssignArkValue(Ark_Header& dst, const Header& src, ConvContext *ctx); void AssignArkValue(Ark_HistoricalPoint& dst, const OHOS::Ace::TouchLocationInfo& src); @@ -241,7 +236,6 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_KeyboardOptions& dst, const KeyboardOptions& src, ConvContext *ctx); void AssignArkValue(Ark_LayoutStyle& dst, const LayoutStyle& src); void AssignArkValue(Ark_LeadingMarginPlaceholder& dst, const LeadingMargin& src); - void AssignArkValue(Ark_Number& dst, const LeadingMargin& src); void AssignArkValue(Ark_Length& dst, const CalcLength& src); void AssignArkValue(Ark_Length& dst, const Dimension& src); void AssignArkValue(Ark_Length& dst, const double& src); @@ -249,6 +243,7 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_Length& dst, const int& src); void AssignArkValue(Ark_Length& dst, const std::string& src); void AssignArkValue(Ark_LengthMetrics& dst, const Dimension& src); + void AssignArkValue(Ark_LengthMetricsCustom& dst, const CalcDimension& src); void AssignArkValue(Ark_LengthMetricsUnit& dst, const OHOS::Ace::CanvasUnit& src); void AssignArkValue(Ark_LengthUnit& dst, const DimensionUnit& src); void AssignArkValue(Ark_LineBreakStrategy& dst, const LineBreakStrategy& src); @@ -259,27 +254,27 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_ListItemGroupStyle& dst, const V2::ListItemGroupStyle& src); void AssignArkValue(Ark_ListItemStyle& dst, const V2::ListItemStyle& src); void AssignArkValue(Ark_LocationButtonOnClickResult& dst, const SecurityComponentHandleResult& src); + void AssignArkValue(Ark_LongPressRecognizer &dst, const RefPtr& src); void AssignArkValue(Ark_MarqueeState& dst, int32_t src); void AssignArkValue(Ark_MenuPolicy& dst, const MenuPolicy& src); void AssignArkValue(Ark_MessageLevel& dst, const MessageLevel& src); void AssignArkValue(Ark_MouseAction& dst, const MouseAction& src); void AssignArkValue(Ark_MouseButton& dst, const MouseButton& src); - void AssignArkValue(Ark_AxisAction& dst, const AxisAction& src); + void AssignArkValue(Ark_NativeEmbedInfo& dst, const EmbedInfo& src); + void AssignArkValue(Ark_NativeEmbedStatus& dst, const NativeEmbedStatus& src); void AssignArkValue(Ark_NavContentInfo& dst, const RefPtr& src); void AssignArkValue(Ark_NavDestinationContext& dst, const RefPtr& src); - void AssignArkValue(Ark_NavigationTransitionProxy& dst, const RefPtr& src); - void AssignArkValue(Ark_NavigationOperation& dst, const NG::NavigationOperation& src); void AssignArkValue(Ark_NavigationMode& dst, NG::NavigationMode& src); - void AssignArkValue(Ark_NativeEmbedInfo& dst, const EmbedInfo& src); - void AssignArkValue(Ark_NativeEmbedStatus& dst, const NativeEmbedStatus& src); void AssignArkValue(Ark_NavigationMode& dst, const NavigationMode& src); + void AssignArkValue(Ark_NavigationOperation& dst, const NG::NavigationOperation& src); void AssignArkValue(Ark_NavigationTitleMode& dst, const NavigationTitleMode& src); + void AssignArkValue(Ark_NavigationTransitionProxy& dst, const RefPtr& src); void AssignArkValue(Ark_NestedScrollMode& dst, const NestedScrollMode& src); void AssignArkValue(Ark_NestedScrollOptions& dst, const NestedScrollOptions& src); void AssignArkValue(Ark_Number& dst, const Dimension& src); + void AssignArkValue(Ark_Number& dst, const LeadingMargin& src); void AssignArkValue(Ark_Number& dst, const double& src); void AssignArkValue(Ark_Number& dst, const float& src); - void AssignArkValue(Ark_Int32& dst, const Ark_Number& src); void AssignArkValue(Ark_Number& dst, const int32_t& src); void AssignArkValue(Ark_Number& dst, const long long& src); void AssignArkValue(Ark_Number& dst, const long& src); @@ -287,10 +282,11 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_OffsetResult& dst, const Offset& src); void AssignArkValue(Ark_Padding& dst, const PaddingProperty& src); void AssignArkValue(Ark_PanDirection& dst, const PanDirection& src); + void AssignArkValue(Ark_PanRecognizer &dst, const RefPtr& src); void AssignArkValue(Ark_PanelMode& dst, const PanelMode& src); void AssignArkValue(Ark_PasteButtonOnClickResult& dst, const SecurityComponentHandleResult& src); + void AssignArkValue(Ark_PinchRecognizer &dst, const RefPtr& src); void AssignArkValue(Ark_Position& dst, const OffsetF& src); - void AssignArkValue(Ark_LengthMetricsCustom& dst, const CalcDimension& src); void AssignArkValue(Ark_PositionWithAffinity& dst, const PositionWithAffinity& src); void AssignArkValue(Ark_PreviewText& dst, const PreviewText& src, ConvContext *ctx); void AssignArkValue(Ark_PreviewText& dst, const PreviewTextInfo& src, ConvContext *ctx); @@ -303,10 +299,9 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_RenderProcessNotRespondingReason& dst, const RenderProcessNotRespondingReason& src); void AssignArkValue(Ark_Resource& dst, const Ark_Length& src); void AssignArkValue(Ark_Resource& dst, const ResourceObject& src, ConvContext *ctx); - void AssignArkValue(Ark_Resource& dst, const std::variant& src, ConvContext *ctx); void AssignArkValue(Ark_RichEditorChangeValue& dst, const RichEditorChangeValue& src, ConvContext *ctx); void AssignArkValue(Ark_RichEditorDeleteDirection& dst, const RichEditorDeleteDirection& src); - void AssignArkValue(Ark_RichEditorDeleteValue& dst, const RichEditorDeleteValue& src, Converter::ConvContext *ctx); + void AssignArkValue(Ark_RichEditorDeleteValue& dst, const RichEditorDeleteValue& src, ConvContext *ctx); void AssignArkValue(Ark_RichEditorImageSpanResult& dst, const ResultObject& src, ConvContext *ctx); void AssignArkValue(Ark_RichEditorImageSpanResult& dst, const RichEditorAbstractSpanResult& src, ConvContext *ctx); void AssignArkValue(Ark_RichEditorImageSpanStyleResult& dst, const ImageStyleResult& src); @@ -326,6 +321,7 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_RichEditorTextStyleResult& dst, const RichEditorAbstractSpanResult& src, ConvContext *ctx); void AssignArkValue(Ark_RichEditorTextStyleResult& dst, const TextStyleResult& src, ConvContext *ctx); void AssignArkValue(Ark_RichEditorUrlStyle& dst, const std::u16string& src, ConvContext *ctx); + void AssignArkValue(Ark_RotationRecognizer &dst, const RefPtr& src); void AssignArkValue(Ark_SaveButtonOnClickResult& dst, const SecurityComponentHandleResult& src); void AssignArkValue(Ark_ScrollAlign& dst, const ScrollAlign& src); void AssignArkValue(Ark_ScrollSnapAlign& dst, const V2::ScrollSnapAlign& src); @@ -353,6 +349,8 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_SwipeActionState& dst, const SwipeActionState& src); void AssignArkValue(Ark_SwipeDirection &dst, const OHOS::Ace::SwipeDirection &src); void AssignArkValue(Ark_SwipeEdgeEffect& dst, const V2::SwipeEdgeEffect& src); + void AssignArkValue(Ark_SwipeRecognizer &dst, const RefPtr& src); + void AssignArkValue(Ark_TapRecognizer &dst, const RefPtr& src); void AssignArkValue(Ark_TextAlign& dst, const TextAlign& src); void AssignArkValue(Ark_TextBackgroundStyle& dst, const TextBackgroundStyle& src, ConvContext *ctx); void AssignArkValue(Ark_TextBox& dst, const ParagraphManager::TextBox& src); @@ -360,12 +358,6 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_TextDecorationType& dst, const OHOS::Ace::TextDecoration& src); void AssignArkValue(Ark_TextDeleteDirection& dst, const TextDeleteDirection& src); void AssignArkValue(Ark_TextDirection& dst, const Ace::TextDirection& src); - void AssignArkValue(Ark_UIFontFallbackInfo& dst, const FallbackInfo& src, ConvContext* ctx); - void AssignArkValue(Ark_UIFontFallbackGroupInfo& dst, const FallbackGroup& src, ConvContext* ctx); - void AssignArkValue(Ark_UIFontAdjustInfo& dst, const AdjustInfo& src); - void AssignArkValue(Ark_UIFontAliasInfo& dst, const AliasInfo& src, ConvContext* ctx); - void AssignArkValue(Ark_UIFontGenericInfo& dst, const FontGenericInfo& src, ConvContext* ctx); - void AssignArkValue(Ark_UIFontConfig& dst, const FontConfigJsonInfo& src, ConvContext* ctx); void AssignArkValue(Ark_TextMenuItem& dst, const NG::MenuItemParam& src, ConvContext* ctx); void AssignArkValue(Ark_TextMetrics& dst, const OHOS::Ace::TextMetrics& src); void AssignArkValue(Ark_TextOverflow& dst, const TextOverflow& src); @@ -380,18 +372,24 @@ namespace OHOS::Ace::NG::Converter { void AssignArkValue(Ark_TransitionEffect& dst, const RefPtr& src); void AssignArkValue(Ark_Tuple_Dimension_Dimension& dst, const std::pair& src); void AssignArkValue(Ark_Tuple_Number_Number& dst, const Point& src); - void AssignArkValue(Ark_uiObserver_NavigationInfo& dst, const std::shared_ptr& src); + void AssignArkValue(Ark_UIFontAdjustInfo& dst, const AdjustInfo& src); + void AssignArkValue(Ark_UIFontAliasInfo& dst, const AliasInfo& src, ConvContext* ctx); + void AssignArkValue(Ark_UIFontConfig& dst, const FontConfigJsonInfo& src, ConvContext* ctx); + void AssignArkValue(Ark_UIFontFallbackGroupInfo& dst, const FallbackGroup& src, ConvContext* ctx); + void AssignArkValue(Ark_UIFontFallbackInfo& dst, const FallbackInfo& src, ConvContext* ctx); + void AssignArkValue(Ark_UIFontGenericInfo& dst, const FontGenericInfo& src, ConvContext* ctx); void AssignArkValue(Ark_UnifiedData& arkData, const RefPtr& data); void AssignArkValue(Ark_ViewportFit& dst, const ViewportFit& src); void AssignArkValue(Ark_VisibleListContentInfo& dst, const ListItemGroupIndex& src); void AssignArkValue(Ark_VisibleListContentInfo& dst, const ListItemIndex& src); void AssignArkValue(Ark_WebNavigationType& dst, const NavigationType& src); void AssignArkValue(Ark_WordBreak& dst, const WordBreak& src); - void AssignArkValue(Array_ImageAnalyzerType& dst, const std::vector& src); - void AssignArkValue(Array_Number& dst, const std::vector& src); + void AssignArkValue(Ark_uiObserver_NavigationInfo& dst, const std::shared_ptr& src); // SORTED_SECTION template<> Ark_LengthMetrics ArkCreate(Ark_LengthUnit unit, float value); + template<> Ark_Resource ArkCreate(int64_t id, ResourceType type); + template<> Ark_Resource ArkCreate(std::string name, ResourceType type, ConvContext *ctx); // ATTENTION!!! Add AssignArkValue implementations above this line! @@ -402,6 +400,13 @@ namespace OHOS::Ace::NG::Converter { dst = src; } + template && std::is_pointer_v && std::is_assignable_v, int> = 0> + void AssignArkValue(To& dst, const From& src) + { + dst = src; + } + // Adapter for simple types. Checking for optionals to avoid ambiguous resolution. template::value && diff --git a/test/unittest/capi/accessors/accessor_test_fixtures.cpp b/test/unittest/capi/accessors/accessor_test_fixtures.cpp index cbba687b852ac7bfb4e72fb435c93bbb15d54170..08cec9d0227d084d49db336cbe8f27a3288a8b43 100644 --- a/test/unittest/capi/accessors/accessor_test_fixtures.cpp +++ b/test/unittest/capi/accessors/accessor_test_fixtures.cpp @@ -201,7 +201,7 @@ const std::vector> testFixtureDim { "-0.8_pct", Converter::ArkValue(-0.8_pct), -0.8_pct } }; -const std::vector> resourceInitTable = { +const std::vector> resourceInitTable = { { DIMENSIONS_RES_NON_NEG_0_ID, DIMENSIONS_RES_NON_NEG_0_STR, 123._vp }, { DIMENSIONS_RES_NON_NEG_1_ID, DIMENSIONS_RES_NON_NEG_1_STR, 0._vp }, { DIMENSIONS_RES_NON_NEG_2_ID, DIMENSIONS_RES_NON_NEG_2_STR, 1.23_vp }, diff --git a/test/unittest/capi/accessors/accessor_test_fixtures.h b/test/unittest/capi/accessors/accessor_test_fixtures.h index 8a60e681e9722c38a064033384c1934cf3a0e6b6..5429201f9319b777b0484850757872b8469d5f1e 100644 --- a/test/unittest/capi/accessors/accessor_test_fixtures.h +++ b/test/unittest/capi/accessors/accessor_test_fixtures.h @@ -140,7 +140,7 @@ extern const std::vector> testFixtur extern const std::vector testFixtureFloatValues; extern const std::vector> testFixtureEnumArkDragBehaviorValues; -extern const std::vector> resourceInitTable; +extern const std::vector> resourceInitTable; extern const std::vector> testFixtureVerticalAlignValidValues; diff --git a/test/unittest/capi/accessors/image_attachment_accessor_test.cpp b/test/unittest/capi/accessors/image_attachment_accessor_test.cpp index 0e302f97220815acb51e1cdb7b705ecfabf4c0e8..6c4be454a1422262349e0bb7a29c2216ac95eea5 100755 --- a/test/unittest/capi/accessors/image_attachment_accessor_test.cpp +++ b/test/unittest/capi/accessors/image_attachment_accessor_test.cpp @@ -222,10 +222,10 @@ HWTEST_F(ImageAttachmentAccessorTest, ctorTestSizeResources, TestSize.Level1) for (auto& [num_id, str_id, expected] : resourceInitTable) { auto expectPointer = std::get_if(&expected); ASSERT_TRUE(expectPointer); - auto sizeResource = ArkValue(Ark_Length { .type = Ark_Tag::ARK_TAG_RESOURCE, .resource = num_id }); + auto sizeResource = ArkValue(static_cast(num_id)); Ark_SizeOptions size { - .width = ArkValue(sizeResource), - .height = ArkValue(sizeResource), + .width = sizeResource, + .height = sizeResource, }; Ark_ImageAttachmentInterface content { .size = ArkValue(size), diff --git a/test/unittest/capi/accessors/length_metrics_accessor_test.cpp b/test/unittest/capi/accessors/length_metrics_accessor_test.cpp index 8dad82c9473182284c31b5e47d61b753c7c7f015..b30f11c9fcad08772ad4ece30d13cde7949867ef 100755 --- a/test/unittest/capi/accessors/length_metrics_accessor_test.cpp +++ b/test/unittest/capi/accessors/length_metrics_accessor_test.cpp @@ -157,16 +157,14 @@ HWTEST_F(LengthMetricsAccessorTest, ResourceTest, TestSize.Level1) Converter::ConvContext ctx; auto expectPointer = std::get_if(&expected); ASSERT_TRUE(expectPointer); - std::variant resource = num_id; - auto resourceNum = Converter::ArkValue(resource, &ctx); + auto resourceNum = Converter::ArkCreate(num_id, Converter::ResourceType::FLOAT); auto pointerNum = reinterpret_cast(accessor_->resource(&resourceNum)); ASSERT_TRUE(pointerNum); EXPECT_EQ(pointerNum->value.ToString(), expectPointer->ToString()) << "Input value is: " << num_id << ", method: resource"; accessor_->destroyPeer(pointerNum); - resource = str_id; - auto resourceStr = Converter::ArkValue(resource, &ctx); + auto resourceStr = Converter::ArkCreate(str_id, Converter::ResourceType::FLOAT, &ctx); auto pointerStr = reinterpret_cast(accessor_->resource(&resourceStr)); ASSERT_TRUE(pointerStr); EXPECT_EQ(pointerStr->value.ToString(), expectPointer->ToString()) <<