From d4b98f7a3278a74b2d7059e3747d69f86ad9fc21 Mon Sep 17 00:00:00 2001 From: hehongyang3 Date: Wed, 20 Aug 2025 22:39:41 +0800 Subject: [PATCH] =?UTF-8?q?fix=20renderFit=E3=80=81clickEffect=E3=80=81pro?= =?UTF-8?q?gressMask?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hehongyang3 Change-Id: Ib686ed98db733bed88300c4e54fbe52cd1094303 --- .../arkui-ohos/src/component/common.ts | 99 ++++--------------- .../base/view_abstract_model_static.cpp | 34 ++++--- .../implementation/common_method_modifier.cpp | 2 - 3 files changed, 39 insertions(+), 96 deletions(-) diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/common.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/common.ts index 9ecf348cd29..85016e26812 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/common.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/common.ts @@ -1253,7 +1253,7 @@ export class KeyEventInternal implements MaterializedBase,KeyEvent { } export class ProgressMaskInternal { public static fromPtr(ptr: KPointer): ProgressMask { - const obj : ProgressMask = new ProgressMask(undefined, undefined, undefined) + const obj : ProgressMask = new ProgressMask() obj.peer = new Finalizable(ptr, ProgressMask.getFinalizer()) return obj } @@ -1291,12 +1291,11 @@ export class ProgressMask implements MaterializedBase { thisSerializer.release() return retval } - constructor(value?: number, total?: number, color?: ResourceColor) { - if (((value) !== (undefined)) || ((total) !== (undefined)) || ((color) !== (undefined))) - { - const ctorPtr : KPointer = ProgressMask.ctor_progressmask((value)!, (total)!, (color)!) - this.peer = new Finalizable(ctorPtr, ProgressMask.getFinalizer()) - } + constructor(value: number, total: number, color: ResourceColor) { + const ctorPtr : KPointer = ProgressMask.ctor_progressmask((value)!, (total)!, (color)!) + this.peer = new Finalizable(ctorPtr, ProgressMask.getFinalizer()) + } + constructor() { } static getFinalizer(): KPointer { return ArkUIGeneratedNativeModule._ProgressMask_getFinalizer() @@ -4349,28 +4348,18 @@ export class ArkCommonMethodPeer extends PeerNode { ArkUIGeneratedNativeModule._CommonMethod_aspectRatio(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) thisSerializer.release() } - clickEffect0Attribute(value: ClickEffect | undefined): void { + clickEffect0Attribute(value: ClickEffect | null | undefined): void { const thisSerializer : Serializer = Serializer.hold() let value_type : int32 = RuntimeType.UNDEFINED - value_type = runtimeType(value) - thisSerializer.writeInt8(value_type as int32) - if ((RuntimeType.UNDEFINED) != (value_type)) { - const value_value = value! - thisSerializer.writeClickEffect(value_value) + if (value !== null) { + value_type = runtimeType(value) } - ArkUIGeneratedNativeModule._CommonMethod_clickEffect0(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) - thisSerializer.release() - } - clickEffect1Attribute(value: ClickEffect | undefined): void { - const thisSerializer : Serializer = Serializer.hold() - let value_type : int32 = RuntimeType.UNDEFINED - value_type = runtimeType(value) thisSerializer.writeInt8(value_type as int32) if ((RuntimeType.UNDEFINED) != (value_type)) { const value_value = value! thisSerializer.writeClickEffect(value_value) } - ArkUIGeneratedNativeModule._CommonMethod_clickEffect1(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) + ArkUIGeneratedNativeModule._CommonMethod_clickEffect0(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) thisSerializer.release() } onDragStartAttribute(value: ((event: DragEvent,extraParams?: string) => CustomBuilder | DragItemInfo) | undefined): void { @@ -4867,39 +4856,6 @@ export class ArkCommonMethodPeer extends PeerNode { ArkUIGeneratedNativeModule._CommonMethod_maskShape0(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) thisSerializer.release() } - maskShape1Attribute(value: CircleShape | EllipseShape | PathShape | RectShape | undefined): void { - const thisSerializer : Serializer = Serializer.hold() - let value_type : int32 = RuntimeType.UNDEFINED - value_type = runtimeType(value) - thisSerializer.writeInt8(value_type as int32) - if ((RuntimeType.UNDEFINED) != (value_type)) { - const value_value = value! - let value_value_type : int32 = RuntimeType.UNDEFINED - value_value_type = runtimeType(value_value) - if (TypeChecker.isCircleShape(value_value)) { - thisSerializer.writeInt8(0 as int32) - const value_value_0 = value_value as CircleShape - thisSerializer.writeCircleShape(value_value_0) - } - else if (TypeChecker.isEllipseShape(value_value)) { - thisSerializer.writeInt8(1 as int32) - const value_value_1 = value_value as EllipseShape - thisSerializer.writeEllipseShape(value_value_1) - } - else if (TypeChecker.isPathShape(value_value)) { - thisSerializer.writeInt8(2 as int32) - const value_value_2 = value_value as PathShape - thisSerializer.writePathShape(value_value_2) - } - else if (TypeChecker.isRectShape(value_value)) { - thisSerializer.writeInt8(3 as int32) - const value_value_3 = value_value as RectShape - thisSerializer.writeRectShape(value_value_3) - } - } - ArkUIGeneratedNativeModule._CommonMethod_maskShape1(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) - thisSerializer.release() - } keyAttribute(value: string | undefined): void { const thisSerializer : Serializer = Serializer.hold() let value_type : int32 = RuntimeType.UNDEFINED @@ -8120,7 +8076,7 @@ export interface CommonMethod { return this; } aspectRatio(value: number | undefined): this {return this;} - clickEffect(value: ClickEffect | undefined): this {return this;} + clickEffect(value: ClickEffect | null | undefined): this {return this;} onDragStart(value: ((event: DragEvent,extraParams?: string) => CustomBuilder | DragItemInfo) | undefined): this {return this;} onDragEnter(value: ((event: DragEvent,extraParams?: string) => void) | undefined): this {return this;} onDragMove(value: ((event: DragEvent,extraParams?: string) => void) | undefined): this {return this;} @@ -8713,7 +8669,7 @@ export class ArkCommonMethodStyle implements CommonMethod { public aspectRatio(value: number | undefined): this { return this } - public clickEffect(value: ClickEffect | undefined): this { + public clickEffect(value: ClickEffect | null | undefined): this { return this } public onDragStart(value: ((event: DragEvent,extraParams?: string) => CustomBuilder | DragItemInfo) | undefined): this { @@ -10456,20 +10412,10 @@ export class ArkCommonMethodComponent extends ComponentBase implements CommonMet } return this } - public clickEffect(value: ClickEffect | undefined): this { + public clickEffect(value: ClickEffect | null | undefined): this { if (this.checkPriority("clickEffect")) { - const value_type = runtimeType(value) - if ((RuntimeType.OBJECT == value_type) || (RuntimeType.UNDEFINED == value_type)) { - const value_casted = value as (ClickEffect | undefined) - this.getPeer()?.clickEffect0Attribute(value_casted) - return this - } - if ((RuntimeType.OBJECT == value_type) || (RuntimeType.UNDEFINED == value_type)) { - const value_casted = value as (ClickEffect | undefined) - this.getPeer()?.clickEffect1Attribute(value_casted) - return this - } - throw new Error("Can not select appropriate overload") + const value_casted = value as (ClickEffect | null | undefined) + this.getPeer()?.clickEffect0Attribute(value_casted) } return this } @@ -10956,18 +10902,9 @@ export class ArkCommonMethodComponent extends ComponentBase implements CommonMet } public renderFit(value: RenderFit | undefined): this { if (this.checkPriority("renderFit")) { - const value_type = runtimeType(value) - if ((RuntimeType.OBJECT == value_type) || (RuntimeType.OBJECT == value_type)) { - const value_casted = value as (RenderFit | undefined) - this.getPeer()?.renderFit0Attribute(value_casted) - return this - } - if ((RuntimeType.OBJECT == value_type) || (RuntimeType.OBJECT == value_type)) { - const value_casted = value as (RenderFit | undefined) - this.getPeer()?.renderFit1Attribute(value_casted) - return this - } - throw new Error("Can not select appropriate overload") + const value_casted = value as (RenderFit | undefined) + this.getPeer()?.renderFit0Attribute(value_casted) + return this } return this } diff --git a/frameworks/core/components_ng/base/view_abstract_model_static.cpp b/frameworks/core/components_ng/base/view_abstract_model_static.cpp index 48e2c16197a..4520d0e50d6 100644 --- a/frameworks/core/components_ng/base/view_abstract_model_static.cpp +++ b/frameworks/core/components_ng/base/view_abstract_model_static.cpp @@ -1242,19 +1242,27 @@ void ViewAbstractModelStatic::SetPivot(FrameNode* frameNode, const std::optional void ViewAbstractModelStatic::SetRotate(FrameNode* frameNode, const std::vector>& value) { - // CHECK_NULL_VOID(frameNode); - // NG::Vector5F rotateVec = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; - // int32_t indX = 0; - // int32_t indY = 1; - // int32_t indZ = 2; - // int32_t indA = 3; - // int32_t indP = 4; - // rotateVec.x = (value.size() > indX && value[indX].has_value()) ? value[indX].value() : DEFAULT_ROTATE_VEC.x; - // rotateVec.y = (value.size() > indY && value[indY].has_value()) ? value[indY].value() : DEFAULT_ROTATE_VEC.y; - // rotateVec.z = (value.size() > indZ && value[indZ].has_value()) ? value[indZ].value() : DEFAULT_ROTATE_VEC.z; - // rotateVec.w = (value.size() > indA && value[indA].has_value()) ? value[indA].value() : DEFAULT_ROTATE_VEC.w; - // rotateVec.v = (value.size() > indP && value[indP].has_value()) ? value[indP].value() : DEFAULT_ROTATE_VEC.v; - // ACE_UPDATE_NODE_RENDER_CONTEXT(TransformRotate, rotateVec, frameNode); + constexpr size_t requiredSize = 5; + if (value.size() != requiredSize) { + return; + } + NG::Vector5F rotateVec = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; + const NG::Vector5F DEFAULT_ROTATE_VEC = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; + constexpr int32_t indX = 0; + constexpr int32_t indY = 1; + constexpr int32_t indZ = 2; + constexpr int32_t indA = 3; + constexpr int32_t indP = 4; + if (!value[indX] && !value[indY] && !value[indZ]) { + rotateVec.z = 1.0f; + } else { + rotateVec.x = value[indX].has_value() ? value[indX].value() : DEFAULT_ROTATE_VEC.x; + rotateVec.y = value[indY].has_value() ? value[indY].value() : DEFAULT_ROTATE_VEC.y; + rotateVec.z = value[indZ].has_value() ? value[indZ].value() : DEFAULT_ROTATE_VEC.z; + } + rotateVec.w = value[indA].has_value() ? value[indA].value() : DEFAULT_ROTATE_VEC.w; + rotateVec.v = value[indP].has_value() ? value[indP].value() : DEFAULT_ROTATE_VEC.v; + ACE_UPDATE_NODE_RENDER_CONTEXT(TransformRotate, rotateVec, frameNode); } void ViewAbstractModelStatic::SetBackdropBlur(FrameNode *frameNode, const std::optional& radius, diff --git a/frameworks/core/interfaces/native/implementation/common_method_modifier.cpp b/frameworks/core/interfaces/native/implementation/common_method_modifier.cpp index 734b8c2489b..29d59095126 100644 --- a/frameworks/core/interfaces/native/implementation/common_method_modifier.cpp +++ b/frameworks/core/interfaces/native/implementation/common_method_modifier.cpp @@ -1261,8 +1261,6 @@ RotateOpt Convert(const Ark_RotateOptions& src) auto centerX = OptConvert(src.centerX); auto centerY = OptConvert(src.centerY); - Validator::ValidateNonPercent(centerX); - Validator::ValidateNonPercent(centerY); auto center = DimensionOffset(Dimension(0.5f, DimensionUnit::PERCENT), Dimension(0.5f, DimensionUnit::PERCENT)); center.SetZ(Dimension(0.5f, DimensionUnit::PERCENT)); if (centerX.has_value()) { -- Gitee