1 /*
2  * Copyright (c) 2022-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_BASE_VIEW_ABSTRACT_H
17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_BASE_VIEW_ABSTRACT_H
18 
19 #include <cstdint>
20 #include <functional>
21 
22 #include "modifier.h"
23 
24 #include "base/geometry/dimension.h"
25 #include "base/geometry/matrix4.h"
26 #include "base/geometry/ng/offset_t.h"
27 #include "base/geometry/ng/rect_t.h"
28 #include "base/geometry/ng/vector.h"
29 #include "base/memory/referenced.h"
30 #include "core/components/common/layout/constants.h"
31 #include "core/components/common/layout/grid_layout_info.h"
32 #include "core/components/common/layout/position_param.h"
33 #include "core/components/common/properties/alignment.h"
34 #include "core/components/common/properties/blend_mode.h"
35 #include "core/components/common/properties/decoration.h"
36 #include "core/components/common/properties/motion_path_option.h"
37 #include "core/components/common/properties/placement.h"
38 #include "core/components/common/properties/popup_param.h"
39 #include "core/components/common/properties/shadow.h"
40 #include "core/components/common/properties/shared_transition_option.h"
41 #include "core/components_ng/event/focus_box.h"
42 #include "core/components_ng/event/gesture_event_hub.h"
43 #include "core/components_ng/pattern/menu/menu_pattern.h"
44 #include "core/components_ng/property/border_property.h"
45 #include "core/components_ng/property/calc_length.h"
46 #include "core/components_ng/property/gradient_property.h"
47 #include "core/components_ng/property/measure_property.h"
48 #include "core/components_ng/property/menu_property.h"
49 #include "core/components_ng/property/overlay_property.h"
50 #include "core/components_ng/property/progress_mask_property.h"
51 #include "core/components_ng/property/transition_property.h"
52 
53 namespace OHOS::Ace::NG {
54 struct OptionParam {
55     std::string value;
56     std::string icon;
57     bool enabled = true;
58     std::function<void()> action;
59     std::function<void(WeakPtr<NG::FrameNode>)> symbol = nullptr;
60     std::optional<Dimension> symbolUserDefinedIdealFontSize = std::nullopt;
61 
62     // Used for security controls.
63     bool isPasteOption = false;
64 
65     OptionParam() = default;
OptionParamOptionParam66     OptionParam(const std::string& valueParam, const std::string& iconParam, const std::function<void()>& actionParam)
67         : value(valueParam), icon(iconParam), enabled(true), action(actionParam)
68     {}
OptionParamOptionParam69     OptionParam(const std::string& valueParam, const std::string& iconParam, bool enabledParam,
70         const std::function<void()>& actionParam)
71         : value(valueParam), icon(iconParam), enabled(enabledParam), action(actionParam)
72     {}
OptionParamOptionParam73     OptionParam(const std::string& valueParam, const std::function<void()>& actionParam)
74         : value(valueParam), icon(""), enabled(true), action(actionParam)
75     {}
OptionParamOptionParam76     OptionParam(const std::string& valueParam, const std::string& iconParam,
77         const std::function<void()>& actionParam, const std::function<void(WeakPtr<NG::FrameNode>)> symbol)
78         : value(valueParam), icon(iconParam), enabled(true), action(actionParam), symbol(symbol)
79     {}
OptionParamOptionParam80     OptionParam(const std::string& valueParam, const std::string& iconParam, bool enabledParam,
81         const std::function<void()>& actionParam, const std::function<void(WeakPtr<NG::FrameNode>)> symbol)
82         : value(valueParam), icon(iconParam), enabled(enabledParam), action(actionParam), symbol(symbol)
83     {}
84 
SetSymbolUserDefinedIdealFontSizeOptionParam85     void SetSymbolUserDefinedIdealFontSize(const Dimension& dimension)
86     {
87         symbolUserDefinedIdealFontSize = dimension;
88     }
89 
GetSymbolUserDefinedIdealFontSizeOptionParam90     Dimension GetSymbolUserDefinedIdealFontSize(const Dimension& defaultValue) const
91     {
92         if (!symbolUserDefinedIdealFontSize.has_value()) {
93             return defaultValue;
94         }
95         return symbolUserDefinedIdealFontSize.value();
96     }
97 
HasSymbolUserDefinedIdealFontSizeOptionParam98     bool HasSymbolUserDefinedIdealFontSize() const
99     {
100         return symbolUserDefinedIdealFontSize.has_value();
101     }
102 
103     ~OptionParam() = default;
104 };
105 
106 enum class OverlayType {
107     BUILDER = 0,
108     TEXT = 1,
109     COMPONENT_CONTENT = 2,
110     RESET = 3,
111 };
112 
113 class ACE_FORCE_EXPORT ViewAbstract {
114 public:
115     static void SetWidth(const CalcLength& width);
116     static void SetHeight(const CalcLength& height);
117     static void ClearWidthOrHeight(bool isWidth);
118     static void SetMinWidth(const CalcLength& minWidth);
119     static void SetMinHeight(const CalcLength& minHeight);
120     static void SetMaxWidth(const CalcLength& maxWidth);
121     static void SetMaxHeight(const CalcLength& maxHeight);
122     static void ResetMinSize(bool resetWidth);
123     static void ResetMaxSize(bool resetWidth);
124 
125     static void SetAspectRatio(float ratio);
126     static void ResetAspectRatio();
127     static void SetLayoutWeight(float value);
128     static void SetLayoutWeight(const NG::LayoutWeightPair& value);
129     static void SetPixelRound(uint16_t value);
130     static void SetLayoutDirection(TextDirection value);
131 
132     static void SetBackgroundColor(const Color& color);
133     static void SetBackgroundImage(const ImageSourceInfo& src);
134     static void SetBackgroundImageRepeat(const ImageRepeat& imageRepeat);
135     static void SetBackgroundImageSize(const BackgroundImageSize& bgImgSize);
136     static void SetBackgroundImagePosition(const BackgroundImagePosition& bgImgPosition);
137     static void SetBackgroundBlurStyle(const BlurStyleOption& bgBlurStyle);
138     static void SetMotionBlur(const MotionBlurOption &motionBlurOption);
139     static void SetBackgroundEffect(const EffectOption& effectOption);
140     static void SetBackgroundImageResizableSlice(const ImageResizableSlice& slice);
141     static void SetForegroundEffect(float radius);
142     static void SetForegroundBlurStyle(const BlurStyleOption& fgBlurStyle);
143     static void SetSphericalEffect(double radio);
144     static void SetPixelStretchEffect(PixStretchEffectOption& option);
145     static void SetLightUpEffect(double radio);
146     static void SetPadding(const CalcLength &value);
147     static void SetPadding(const PaddingProperty &value);
148     static void SetSafeAreaPadding(const CalcLength& value);
149     static void SetSafeAreaPadding(const PaddingProperty& value);
150     static void SetSafeAreaPadding(FrameNode* frameNode, const CalcLength& value);
151     static void SetSafeAreaPadding(FrameNode* frameNode, const PaddingProperty& value);
152     static void ResetSafeAreaPadding();
153     static void ResetSafeAreaPadding(FrameNode* frameNode);
154     static void SetMargin(const CalcLength &value);
155     static void SetMargin(const PaddingProperty &value);
156     static void SetBorderRadius(const BorderRadiusProperty &value);
157     static void SetBorderRadius(const Dimension &value);
158     static void SetBorderColor(const Color &value);
159     static void SetBorderColor(const BorderColorProperty &value);
160     static void SetBorderWidth(const Dimension &value);
161     static void SetBorderWidth(const BorderWidthProperty &value);
162     static void SetBorderStyle(const BorderStyle &value);
163     static void SetBorderStyle(const BorderStyleProperty &value);
164     static void SetDashGap(const Dimension &value);
165     static void SetDashGap(const BorderWidthProperty &value);
166     static void SetDashWidth(const Dimension &value);
167     static void SetDashWidth(const BorderWidthProperty &value);
168     static void SetOpacity(double opacity);
169     static void SetAllowDrop(const std::set<std::string>& allowDrop);
170     static void SetDrawModifier(const RefPtr<NG::DrawModifier>& drawModifier);
171     static void* GetFrameNode();
172     static void SetDragPreview(const NG::DragDropInfo& info);
173     static void SetBorderImage(const RefPtr<BorderImage>& borderImage);
174     static void SetBorderImageSource(
175         const std::string& bdImageSrc, const std::string& bundleName = "", const std::string& moduleName = "");
176 
177     // visual
178     static void SetVisualEffect(const OHOS::Rosen::VisualEffect* visualEffect);
179     static void SetBackgroundFilter(const OHOS::Rosen::Filter* backgroundFilter);
180     static void SetForegroundFilter(const OHOS::Rosen::Filter* foregroundFilter);
181     static void SetCompositingFilter(const OHOS::Rosen::Filter* compositingFilter);
182 
183     // outer border
184     static void SetOuterBorderRadius(const BorderRadiusProperty& value);
185     static void SetOuterBorderRadius(const Dimension& value);
186     static void SetOuterBorderColor(const Color& value);
187     static void SetOuterBorderColor(const BorderColorProperty& value);
188     static void SetOuterBorderWidth(const Dimension& value);
189     static void SetOuterBorderWidth(const BorderWidthProperty& value);
190     static void SetOuterBorderStyle(const BorderStyle& value);
191     static void SetOuterBorderStyle(const BorderStyleProperty& value);
192 
193     static void SetHasBorderImageSlice(bool tag);
194     static void SetHasBorderImageWidth(bool tag);
195     static void SetHasBorderImageOutset(bool tag);
196     static void SetHasBorderImageRepeat(bool tag);
197     static void SetBorderImageGradient(const NG::Gradient& gradient);
198 
199     // customBackground
200     static void SetBackgroundAlign(const Alignment& align);
201 
202     // decoration
203     static void SetBackdropBlur(const Dimension &radius, const BlurOption& blurOption);
204     static void SetLinearGradientBlur(const NG::LinearGradientBlurPara& blurPara);
205     static void SetDynamicLightUp(float rate, float lightUpDegree);
206     static void SetBgDynamicBrightness(const BrightnessOption& brightnessOption);
207     static void SetFgDynamicBrightness(const BrightnessOption& brightnessOption);
208     static void SetDynamicDim(float DimDegree);
209     static void SetFrontBlur(const Dimension &radius, const BlurOption &blurOption);
210     static void SetBackShadow(const Shadow &shadow);
211     static void SetBlendMode(BlendMode blendMode);
212     static void SetBlendApplyType(BlendApplyType blendApplyType);
213     static void SetBrightnessBlender(const OHOS::Rosen::BrightnessBlender* brightnessBlender);
214 
215     // graphics
216     static void SetBrightness(const Dimension& value);
217     static void SetGrayScale(const Dimension& value);
218     static void SetContrast(const Dimension& value);
219     static void SetSaturate(const Dimension& value);
220     static void SetSepia(const Dimension& value);
221     static void SetInvert(const InvertVariant& value);
222     static void SetHueRotate(float value);
223     static void SetColorBlend(const Color& value);
224     static void SetSystemBarEffect(bool systemBarEffect);
225     static void SetSystemBarEffect(FrameNode *frameNode, bool enable);
226 
227     // gradient
228     static void SetLinearGradient(const NG::Gradient& gradient);
229     static void SetSweepGradient(const NG::Gradient& gradient);
230     static void SetRadialGradient(const NG::Gradient& gradient);
231 
232     // layout
233     static void SetAlign(Alignment alignment);
234     static void SetAlignRules(const std::map<AlignDirection, AlignRule> &alignRules);
235     static void SetChainStyle(const ChainInfo& chainInfo);
236     static void SetBias(const BiasPair& biasPair);
237     static void SetVisibility(VisibleType visible);
238     static void SetGrid(
239         std::optional<int32_t> span, std::optional<int32_t> offset, GridSizeType type = GridSizeType::UNDEFINED);
240 
241     // position
242     static void SetPosition(const OffsetT<Dimension>& value);
243     static void SetOffset(const OffsetT<Dimension>& value);
244     static void SetPositionEdges(const EdgesParam& value);
245     static void SetOffsetEdges(const EdgesParam& value);
246     static void MarkAnchor(const OffsetT<Dimension>& value);
247     static void ResetPosition();
248 
249     // render position
250     static void SetZIndex(int32_t value);
251     // renderGroup
252     static void SetRenderGroup(bool isRenderGroup);
253     // renderFit, i.e. gravity
254     static void SetRenderFit(RenderFit renderFit);
255 
256     // transform
257     static void SetScale(const NG::VectorF& value);
258     static void SetPivot(const DimensionOffset& value);
259     static void SetTranslate(const NG::TranslateOptions& value);
260     static void SetRotate(const NG::Vector5F& value);
261 
262     static void SetTransformMatrix(const Matrix4& matrix);
263 
264     // event
265     static void SetOnClick(GestureEventFunc&& clickEventFunc,
266         double distanceThreshold = std::numeric_limits<double>::infinity());
267     static void SetOnGestureJudgeBegin(GestureJudgeFunc &&gestureJudgeFunc);
268     static void SetOnTouchIntercept(TouchInterceptFunc &&touchInterceptFunc);
269     static void SetShouldBuiltInRecognizerParallelWith(
270         NG::ShouldBuiltInRecognizerParallelWithFunc&& shouldBuiltInRecognizerParallelWithFunc);
271     static void SetOnGestureRecognizerJudgeBegin(
272         GestureRecognizerJudgeFunc&& gestureRecognizerJudgeFunc, bool exposeInnerGestureFlag);
273     static void SetOnTouch(TouchEventFunc&& touchEventFunc);
274     static void SetOnMouse(OnMouseEventFunc&& onMouseEventFunc);
275     static void SetOnHover(OnHoverFunc&& onHoverEventFunc);
276     static void SetOnAccessibilityHover(OnAccessibilityHoverFunc &&onAccessibilityHoverEventFunc);
277     static void SetHoverEffect(HoverEffectType hoverEffect);
278     static void SetHoverEffectAuto(HoverEffectType hoverEffect);
279     static void SetEnabled(bool enabled);
280     static void SetFocusable(bool focusable);
281     static void SetTabStop(bool tabStop);
282     static void SetOnFocus(OnFocusFunc&& onFocusCallback);
283     static void SetOnBlur(OnBlurFunc&& onBlurCallback);
284     static void SetOnKeyEvent(OnKeyConsumeFunc &&onKeyCallback);
285     static void SetTabIndex(int32_t index);
286     static void SetFocusOnTouch(bool isSet);
287     static void SetDefaultFocus(bool isSet);
288     static void SetGroupDefaultFocus(bool isSet);
289     static void SetFocusBoxStyle(const NG::FocusBoxStyle& style);
290     static void SetOnAppear(std::function<void()> &&onAppear);
291     static void SetOnDisappear(std::function<void()> &&onDisappear);
292     static void SetOnAttach(std::function<void()> &&onAttach);
293     static void SetOnDetach(std::function<void()> &&onDetach);
294     static void SetOnAreaChanged(std::function<void(const RectF &oldRect, const OffsetF &oldOrigin, const RectF &rect,
295         const OffsetF &origin)> &&onAreaChanged);
296     static void SetOnVisibleChange(std::function<void(bool, double)> &&onVisibleChange,
297         const std::vector<double> &ratioList);
298     static void SetOnSizeChanged(std::function<void(const RectF &oldRect, const RectF &rect)> &&onSizeChanged);
299     static void SetResponseRegion(const std::vector<DimensionRect> &responseRegion);
300     static void SetMouseResponseRegion(const std::vector<DimensionRect> &mouseResponseRegion);
301     static void SetTouchable(bool touchable);
302     static void SetHitTestMode(HitTestMode hitTestMode);
303     static void SetOnTouchTestFunc(NG::OnChildTouchTestFunc&& onChildTouchTest);
304     static void SetDraggable(bool draggable);
305     static void SetDragPreviewOptions(const DragPreviewOption& previewOption);
306     static void SetOnDragStart(
307         std::function<DragDropInfo(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDragStart);
308     static void SetOnPreDrag(
309         std::function<void(const PreDragStatus)> &&onPreDragFunc);
310     static void SetOnPreDrag(FrameNode* frameNode, std::function<void(const PreDragStatus)>&& onPreDragFunc);
311     static void SetOnDragEnter(
312         std::function<void(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDragEnter);
313     static void SetOnDragLeave(
314         std::function<void(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDragLeave);
315     static void SetOnDragMove(
316         std::function<void(const RefPtr<OHOS::Ace::DragEvent> &, const std::string &)> &&onDragMove);
317     static void SetOnDrop(std::function<void(const RefPtr<OHOS::Ace::DragEvent> &, const std::string &)> &&onDrop);
318     static void SetOnDrop(FrameNode* frameNode, NG::OnDragDropFunc&& onDrop);
319 
320     static void SetOnDragEnd(std::function<void(const RefPtr<OHOS::Ace::DragEvent> &)> &&onDragEnd);
321     static void SetOnDragEnd(
322         FrameNode* frameNode, std::function<void(const RefPtr<OHOS::Ace::DragEvent>&)>&& onDragEnd);
323     static void SetMonopolizeEvents(bool monopolizeEvents);
324     static void SetDragEventStrictReportingEnabled(bool dragEventStrictReportingEnabled);
325 
326     // flex properties
327     static void SetAlignSelf(FlexAlign value);
328     static void SetFlexShrink(float value);
329     static void ResetFlexShrink();
330     static void SetFlexGrow(float value);
331     static void SetFlexBasis(const Dimension& value);
332     static void SetDisplayIndex(int32_t value);
333     static void SetKeyboardShortcut(const std::string& value, const std::vector<ModifierKey>& keys,
334         std::function<void()>&& onKeyboardShortcutAction);
335     // obscured
336     static void SetObscured(const std::vector<ObscuredReasons>& reasons);
337     static void SetPrivacySensitive(bool flag);
338 
339     // Bind properties
340     static void BindPopup(
341         const RefPtr<PopupParam>& param, const RefPtr<FrameNode>& targetNode, const RefPtr<UINode> &customNode);
342     static void DismissDialog();
343     static void DismissPopup();
344     static void BindMenuWithItems(std::vector<OptionParam>&& params, const RefPtr<FrameNode>& targetNode,
345         const NG::OffsetF& offset, const MenuParam& menuParam);
346     static void BindMenuWithCustomNode(std::function<void()>&& buildFunc, const RefPtr<FrameNode>& targetNode,
347         const NG::OffsetF& offset, MenuParam menuParam, std::function<void()>&& previewBuildFunc);
348     static void ShowMenu(
349         int32_t targetId, const NG::OffsetF& offset, bool isShowInSubWindow, bool isContextMenu = false);
350     // inspector
351     static void SetInspectorId(const std::string& inspectorId);
352     // auto event param
353     static void SetAutoEventParam(const std::string& param);
354     // restore
355     static void SetRestoreId(int32_t restoreId);
356     // inspector debugLine
357     static void SetDebugLine(const std::string& line);
358     // transition
359     static void SetTransition(const TransitionOptions &options);
360     static void CleanTransition();
361     static void SetChainedTransition(
362         const RefPtr<NG::ChainedTransitionEffect>& effect, NG::TransitionFinishCallback&& finishCallback = nullptr);
363     // sharedTransition
364     static void SetSharedTransition(const std::string& shareId, const std::shared_ptr<SharedTransitionOption>& option);
365     // geometryTransition
366     static void SetGeometryTransition(const std::string &id,
367         bool followWithoutTransition = false, bool doRegisterSharedTransition = true);
368     // clip and mask
369     static void SetClipShape(const RefPtr<BasicShape>& basicShape);
370     static void SetClipEdge(bool isClip);
371     static void SetMask(const RefPtr<BasicShape>& basicShape);
372     // overlay
373     static void SetOverlay(const NG::OverlayOptions& overlay);
374     static void SetOverlayBuilder(std::function<void()>&& buildFunc,
375         const std::optional<Alignment>& align, const std::optional<Dimension>& offsetX,
376         const std::optional<Dimension>& offsetY);
377     static void SetOverlayComponentContent(const RefPtr<NG::FrameNode>& contentNode,
378         const std::optional<Alignment>& align, const std::optional<Dimension>& offsetX,
379         const std::optional<Dimension>& offsetY);
380     // motionPath
381     static void SetMotionPath(const MotionPathOption& motionPath);
382     // progress mask
383     static void SetProgressMask(const RefPtr<ProgressMaskProperty>& progress);
384 
385     static void Pop();
386 
387     // Disable event
388     static void DisableOnClick();
389     static void DisableOnTouch();
390     static void DisableOnKeyEvent();
391     static void DisableOnHover();
392     static void DisableOnAccessibilityHover();
393     static void DisableOnMouse();
394     static void DisableOnAppear();
395     static void DisableOnDisAppear();
396     static void DisableOnAttach();
397     static void DisableOnDetach();
398     static void DisableOnAreaChange();
399     static void DisableOnFocus();
400     static void DisableOnBlur();
401     static void DisableOnClick(FrameNode* frameNode);
402     static void DisableOnDragStart(FrameNode* frameNode);
403     static void DisableOnDragEnter(FrameNode* frameNode);
404     static void DisableOnDragMove(FrameNode* frameNode);
405     static void DisableOnDragLeave(FrameNode* frameNode);
406     static void DisableOnDrop(FrameNode* frameNode);
407     static void DisableOnDragEnd(FrameNode* frameNode);
408     static void DisableOnTouch(FrameNode* frameNode);
409     static void DisableOnKeyEvent(FrameNode* frameNode);
410     static void DisableOnHover(FrameNode* frameNode);
411     static void DisableOnMouse(FrameNode* frameNode);
412     static void DisableOnAppear(FrameNode* frameNode);
413     static void DisableOnDisappear(FrameNode* frameNode);
414     static void DisableOnAttach(FrameNode* frameNode);
415     static void DisableOnDetach(FrameNode* frameNode);
416     static void DisableOnFocus(FrameNode* frameNode);
417     static void DisableOnBlur(FrameNode* frameNode);
418     static void DisableOnAreaChange(FrameNode* frameNode);
419 
420     // useEffect
421     static void SetUseEffect(bool useEffect, EffectType effectType);
422 
423     static void SetFreeze(bool freeze);
424 
425     static void SetDisallowDropForcedly(bool isDisallowDropForcedly);
426 
427     // useShadowBatching
428     static void SetUseShadowBatching(bool useShadowBatching);
429 
430     // foregroundColor
431     static void SetForegroundColor(const Color& color);
432     static void SetForegroundColorStrategy(const ForegroundColorStrategy& strategy);
433 
434     // clickEffect
435     static void SetClickEffectLevel(const ClickEffectLevel& level, float scaleValue);
436 
437     // custom animatable property
438     static void CreateAnimatablePropertyFloat(
439         const std::string& propertyName, float value, const std::function<void(float)>& onCallbackEvent);
440     static void UpdateAnimatablePropertyFloat(const std::string& propertyName, float value);
441     static void CreateAnimatableArithmeticProperty(const std::string& propertyName,
442         RefPtr<CustomAnimatableArithmetic>& value,
443         std::function<void(const RefPtr<CustomAnimatableArithmetic>&)>& onCallbackEvent);
444     static void UpdateAnimatableArithmeticProperty(
445         const std::string& propertyName, RefPtr<CustomAnimatableArithmetic>& value);
446     static void UpdateSafeAreaExpandOpts(const SafeAreaExpandOpts& opts);
447 
448     // global light
449     static void SetLightPosition(
450         const CalcDimension& positionX, const CalcDimension& positionY, const CalcDimension& positionZ);
451     static void SetLightIntensity(float value);
452     static void SetLightColor(const Color& value);
453     static void SetLightIlluminated(uint32_t value);
454     static void SetIlluminatedBorderWidth(const Dimension& value);
455     static void SetBloom(float value);
456     static void SetLightPosition(FrameNode* frameNode,
457         const CalcDimension& positionX, const CalcDimension& positionY, const CalcDimension& positionZ);
458     static void SetLightIntensity(FrameNode* frameNode, float value);
459     static void SetLightColor(FrameNode* frameNode, const Color& value);
460     static void SetLightIlluminated(FrameNode* frameNode, uint32_t value);
461     static void SetIlluminatedBorderWidth(FrameNode* frameNode, const Dimension& value);
462     static void SetBloom(FrameNode* frameNode, float value);
463 
464     static void SetBackgroundColor(FrameNode* frameNode, const Color& color);
465     static void SetWidth(FrameNode* frameNode, const CalcLength& width);
466     static void SetHeight(FrameNode* frameNode, const CalcLength& height);
467     static void ClearWidthOrHeight(FrameNode* frameNode, bool isWidth);
468     static void SetBorderRadius(FrameNode* frameNode, const BorderRadiusProperty& value);
469     static void SetBorderRadius(FrameNode* frameNode, const Dimension& value);
470     static void SetBorderWidth(FrameNode* frameNode, const BorderWidthProperty& value);
471     static void SetBorderWidth(FrameNode* frameNode, const Dimension& value);
472     static void SetBorderColor(FrameNode* frameNode, const BorderColorProperty& value);
473     static void SetBorderColor(FrameNode* frameNode, const Color& value);
474     static void SetOuterBorderColor(FrameNode* frameNode, const Color& value);
475     static void SetOuterBorderColor(FrameNode* frameNode, const BorderColorProperty& value);
476     static void SetOuterBorderRadius(FrameNode* frameNode, const Dimension& value);
477     static void SetOuterBorderRadius(FrameNode* frameNode, const BorderRadiusProperty& value);
478     static void SetOuterBorderWidth(FrameNode* frameNode, const Dimension& value);
479     static void SetOuterBorderWidth(FrameNode* frameNode, const BorderWidthProperty& value);
480     static void SetOuterBorderStyle(FrameNode* frameNode, const BorderStyleProperty& value);
481     static void SetOuterBorderStyle(FrameNode* frameNode, const BorderStyle& value);
482     static void SetBorderStyle(FrameNode* frameNode, const BorderStyle& value);
483     static void SetBorderStyle(FrameNode* frameNode, const BorderStyleProperty& value);
484     static void SetDashGap(FrameNode* frameNode, const BorderWidthProperty& value);
485     static void SetDashGap(FrameNode* frameNode, const Dimension& value);
486     static void SetDashWidth(FrameNode* frameNode, const BorderWidthProperty& value);
487     static void SetDashWidth(FrameNode* frameNode, const Dimension& value);
488     static void SetBackShadow(FrameNode* frameNode, const Shadow& shadow);
489     static void SetPosition(FrameNode* frameNode, const OffsetT<Dimension>& value);
490     static void SetPositionEdges(FrameNode* frameNode, const EdgesParam& value);
491     static void ResetPosition(FrameNode* frameNode);
492     static void SetTransformMatrix(FrameNode* frameNode, const Matrix4& matrix);
493     static void SetHitTestMode(FrameNode* frameNode, HitTestMode hitTestMode);
494     static void SetOpacity(FrameNode* frameNode, double opacity);
495     static void SetZIndex(FrameNode* frameNode, int32_t value);
496     static void SetAlign(FrameNode* frameNode, Alignment alignment);
497     static void SetBackdropBlur(FrameNode* frameNode, const Dimension& radius, const BlurOption &blurOption);
498     static void SetInvert(FrameNode* frameNode, const InvertVariant& invert);
499     static void SetSepia(FrameNode* frameNode, const Dimension& sepia);
500     static void SetSaturate(FrameNode* frameNode, const Dimension& saturate);
501     static void SetColorBlend(FrameNode* frameNode, const Color& colorBlend);
502     static void SetGrayScale(FrameNode* frameNode, const Dimension& grayScale);
503     static void SetContrast(FrameNode* frameNode, const Dimension& contrast);
504     static void SetBrightness(FrameNode* frameNode, const Dimension& brightness);
505     static void SetFrontBlur(FrameNode* frameNode, const Dimension& radius, const BlurOption &blurOption);
506     static void SetHueRotate(FrameNode* frameNode, float hueRotate);
507     static void SetLinearGradient(FrameNode* frameNode, const NG::Gradient& gradient);
508     static void SetSweepGradient(FrameNode* frameNode, const NG::Gradient& gradient);
509     static void SetRadialGradient(FrameNode* frameNode, const NG::Gradient& gradient);
510     static void SetOverlay(FrameNode* frameNode, const NG::OverlayOptions& overlay);
511     static void SetBorderImage(FrameNode* frameNode, const RefPtr<BorderImage>& borderImage);
512     static void SetBorderImageSource(FrameNode* frameNode, const std::string& bdImageSrc);
513     static void SetHasBorderImageSlice(FrameNode* frameNode, bool tag);
514     static void SetHasBorderImageWidth(FrameNode* frameNode, bool tag);
515     static void SetHasBorderImageOutset(FrameNode* frameNode, bool tag);
516     static void SetHasBorderImageRepeat(FrameNode* frameNode, bool tag);
517     static void SetBorderImageGradient(FrameNode* frameNode, const NG::Gradient& gradient);
518     static void SetForegroundBlurStyle(FrameNode* frameNode, const BlurStyleOption& fgBlurStyle);
519     static void SetLinearGradientBlur(FrameNode* frameNode, const NG::LinearGradientBlurPara& blurPara);
520     static void SetMagnifier(FrameNode* frameNode, const MagnifierParams& magnifierOffset);
521     static void ReSetMagnifier(FrameNode* frameNode);
522     static void SetBackgroundBlurStyle(FrameNode* frameNode, const BlurStyleOption& bgBlurStyle);
523     static void SetBackgroundImagePosition(FrameNode* frameNode, const BackgroundImagePosition& bgImgPosition);
524     static void SetBackgroundImageSize(FrameNode* frameNode, const BackgroundImageSize& bgImgSize);
525     static void SetBackgroundImage(FrameNode* frameNode, const ImageSourceInfo& src);
526     static void SetBackgroundImageRepeat(FrameNode* frameNode, const ImageRepeat& imageRepeat);
527     static void SetTranslate(FrameNode* frameNode, const NG::TranslateOptions& value);
528     static void SetScale(FrameNode* frameNode, const NG::VectorF& value);
529     static void SetPivot(FrameNode* frameNode, const DimensionOffset& value);
530     static void SetGeometryTransition(FrameNode* frameNode, const std::string& id,
531         bool followWithoutTransition, bool doRegisterSharedTransition);
532     static const std::string GetGeometryTransition(FrameNode* frameNode,
533         bool* followWithoutTransition, bool* doRegisterSharedTransition);
534     static void SetRotate(FrameNode* frameNode, const NG::Vector5F& value);
535     static void SetClipEdge(FrameNode* frameNode, bool isClip);
536     static void SetClipShape(FrameNode* frameNode, const RefPtr<BasicShape>& basicShape);
537     static void SetPixelStretchEffect(FrameNode* frameNode, PixStretchEffectOption& option);
538     static void SetLightUpEffect(FrameNode* frameNode, double radio);
539     static void SetSphericalEffect(FrameNode* frameNode, double radio);
540     static void SetRenderGroup(FrameNode* frameNode, bool isRenderGroup);
541     static void SetRenderFit(FrameNode* frameNode, RenderFit renderFit);
542     static void SetUseEffect(FrameNode* frameNode, bool useEffect, EffectType effectType);
543     static void SetForegroundColor(FrameNode* frameNode, const Color& color);
544     static void SetForegroundColorStrategy(FrameNode* frameNode, const ForegroundColorStrategy& strategy);
545     static void SetMotionPath(FrameNode* frameNode, const MotionPathOption& motionPath);
546     static void SetFocusOnTouch(FrameNode* frameNode, bool isSet);
547     static void SetGroupDefaultFocus(FrameNode* frameNode, bool isSet);
548     static void SetFocusable(FrameNode* frameNode, bool focusable);
549     static void SetTabStop(FrameNode* frameNode, bool tabStop);
550     static void SetFocusType(FrameNode* frameNode, FocusType type);
551     static void SetTouchable(FrameNode* frameNode, bool touchable);
552     static void SetDefaultFocus(FrameNode* frameNode, bool isSet);
553     static void SetDisplayIndex(FrameNode* frameNode, int32_t value);
554     static void SetOffset(FrameNode* frameNode, const OffsetT<Dimension>& value);
555     static void SetOffsetEdges(FrameNode* frameNode, const EdgesParam& value);
556     static void MarkAnchor(FrameNode* frameNode, const OffsetT<Dimension>& value);
557     static void SetVisibility(FrameNode* frameNode, VisibleType visible);
558     static void SetMargin(FrameNode* frameNode, const CalcLength& value);
559     static void SetMargin(FrameNode* frameNode, const PaddingProperty& value);
560     static void SetPadding(FrameNode* frameNode, const CalcLength& value);
561     static void SetPadding(FrameNode* frameNode, const PaddingProperty& value);
562     static void SetLayoutDirection(FrameNode* frameNode, TextDirection value);
563     static void UpdateSafeAreaExpandOpts(FrameNode* frameNode, const SafeAreaExpandOpts& opts);
564     static void SetAspectRatio(FrameNode* frameNode, float ratio);
565     static void SetAlignSelf(FrameNode* frameNode, FlexAlign value);
566     static void SetFlexBasis(FrameNode* frameNode, const Dimension& value);
567     static void ResetFlexShrink(FrameNode* frameNode);
568     static void SetFlexShrink(FrameNode* frameNode, float value);
569     static void SetFlexGrow(FrameNode* frameNode, float value);
570     static void SetLayoutWeight(FrameNode* frameNode, float value);
571     static void SetLayoutWeight(FrameNode* frameNode, const NG::LayoutWeightPair& value);
572     static void ResetMaxSize(FrameNode* frameNode, bool resetWidth);
573     static void ResetMinSize(FrameNode* frameNode, bool resetWidth);
574     static void SetMinWidth(FrameNode* frameNode, const CalcLength& minWidth);
575     static void SetMaxWidth(FrameNode* frameNode, const CalcLength& maxWidth);
576     static void SetMinHeight(FrameNode* frameNode, const CalcLength& minHeight);
577     static void SetMaxHeight(FrameNode* frameNode, const CalcLength& maxHeight);
578     static void SetAlignRules(FrameNode* frameNode, const std::map<AlignDirection, AlignRule>& alignRules);
579     static void SetChainStyle(FrameNode* frameNode, const ChainInfo& chainInfo);
580     static ChainInfo GetChainStyle(FrameNode* frameNode);
581     static void ResetChainStyle(FrameNode* frameNode);
582     static void SetGrid(FrameNode* frameNode, std::optional<int32_t> span, std::optional<int32_t> offset,
583         GridSizeType type = GridSizeType::UNDEFINED);
584     static void ResetAspectRatio(FrameNode* frameNode);
585     static void SetAllowDrop(FrameNode* frameNode, const std::set<std::string>& allowDrop);
586     static void SetInspectorId(FrameNode* frameNode, const std::string& inspectorId);
587     static void SetRestoreId(FrameNode* frameNode, int32_t restoreId);
588     static void SetTabIndex(FrameNode* frameNode, int32_t index);
589     static void SetObscured(FrameNode* frameNode, const std::vector<ObscuredReasons>& reasons);
590     static void SetForegroundEffect(FrameNode* frameNode, float radius);
591     static void SetMotionBlur(FrameNode* frameNode, const MotionBlurOption &motionBlurOption);
592     static void SetBackgroundEffect(FrameNode* frameNode, const EffectOption &effectOption);
593     static void SetBackgroundImageResizableSlice(FrameNode* frameNode, const ImageResizableSlice& slice);
594     static void SetDynamicLightUp(FrameNode* frameNode, float rate, float lightUpDegree);
595     static void SetBgDynamicBrightness(FrameNode* frameNode, const BrightnessOption& brightnessOption);
596     static void SetFgDynamicBrightness(FrameNode* frameNode, const BrightnessOption& brightnessOption);
597     static void SetDragPreviewOptions(FrameNode* frameNode, const DragPreviewOption& previewOption);
598     static void SetDragPreview(FrameNode* frameNode, const DragDropInfo& dragDropInfo);
599     static void SetResponseRegion(FrameNode* frameNode, const std::vector<DimensionRect>& responseRegion);
600     static void SetMouseResponseRegion(FrameNode* frameNode, const std::vector<DimensionRect>& mouseResponseRegion);
601     static void SetSharedTransition(
602         FrameNode* frameNode, const std::string& shareId, const std::shared_ptr<SharedTransitionOption>& option);
603     static void SetTransition(FrameNode* frameNode, const TransitionOptions& options);
604     static void CleanTransition(FrameNode* frameNode);
605     static void SetChainedTransition(FrameNode* frameNode, const RefPtr<NG::ChainedTransitionEffect>& effect,
606         NG::TransitionFinishCallback&& finishCallback = nullptr);
607     static void SetMask(FrameNode* frameNode, const RefPtr<BasicShape>& basicShape);
608     static void SetProgressMask(FrameNode* frameNode, const RefPtr<ProgressMaskProperty>& progress);
609     static void SetEnabled(FrameNode* frameNode, bool enabled);
610     static void SetUseShadowBatching(FrameNode* frameNode, bool useShadowBatching);
611     static void SetBlendMode(FrameNode* frameNode, BlendMode blendMode);
612     static void SetBlendApplyType(FrameNode* frameNode, BlendApplyType blendApplyType);
613     static void SetBrightnessBlender(FrameNode* frameNode, const OHOS::Rosen::BrightnessBlender* brightnessBlender);
614     static void SetMonopolizeEvents(FrameNode* frameNode, bool monopolizeEvents);
615     static void SetDraggable(FrameNode* frameNode, bool draggable);
616     static void SetHoverEffect(FrameNode* frameNode, HoverEffectType hoverEffect);
617     static void SetClickEffectLevel(FrameNode* frameNode, const ClickEffectLevel& level, float scaleValue);
618     static void SetKeyboardShortcut(FrameNode* frameNode, const std::string& value,
619         const std::vector<ModifierKey>& keys, std::function<void()>&& onKeyboardShortcutAction);
620 
621     static void SetOnAppear(FrameNode* frameNode, std::function<void()> &&onAppear);
622     static void SetOnDisappear(FrameNode* frameNode, std::function<void()> &&onDisappear);
623     static void SetOnAttach(FrameNode* frameNode, std::function<void()> &&onAttach);
624     static void SetOnDetach(FrameNode* frameNode, std::function<void()> &&onDetach);
625     static void SetOnAreaChanged(FrameNode* frameNode, std::function<void(const RectF &oldRect,
626         const OffsetF &oldOrigin, const RectF &rect, const OffsetF &origin)> &&onAreaChanged);
627     static void SetOnFocus(FrameNode* frameNode, OnFocusFunc &&onFocusCallback);
628     static void SetOnBlur(FrameNode* frameNode, OnBlurFunc &&onBlurCallback);
629     static void SetOnClick(FrameNode* frameNode, GestureEventFunc&& clickEventFunc,
630         double distanceThreshold = std::numeric_limits<double>::infinity());
631     static void SetOnTouch(FrameNode* frameNode, TouchEventFunc &&touchEventFunc);
632     static void SetOnDragStart(FrameNode* frameNode,
633         std::function<DragDropInfo(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDragStart);
634     static void SetOnDragEnter(FrameNode* frameNode,
635         std::function<void(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDragEnter);
636     static void SetOnDragMove(FrameNode* frameNode,
637         std::function<void(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDragMove);
638     static void SetOnDragLeave(FrameNode* frameNode,
639         std::function<void(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDragLeave);
640     static void SetOnMouse(FrameNode* frameNode, OnMouseEventFunc &&onMouseEventFunc);
641     static void SetOnHover(FrameNode* frameNode, OnHoverFunc &&onHoverEventFunc);
642     static void SetOnKeyEvent(FrameNode* frameNode, OnKeyConsumeFunc &&onKeyCallback);
643     static void SetOnGestureJudgeBegin(FrameNode* frameNode, GestureJudgeFunc&& gestureJudgeFunc);
644     static void SetOnSizeChanged(
645         FrameNode* frameNode, std::function<void(const RectF& oldRect, const RectF& rect)>&& onSizeChanged);
646     static void SetOnGestureRecognizerJudgeBegin(
647         FrameNode* frameNode, GestureRecognizerJudgeFunc&& gestureRecognizerJudgeFunc);
648     static void SetShouldBuiltInRecognizerParallelWith(
649         FrameNode* frameNode, NG::ShouldBuiltInRecognizerParallelWithFunc&& shouldBuiltInRecognizerParallelWithFunc);
650     static void SetSystemColorModeChangeEvent(FrameNode* frameNode, std::function<void(int32_t)>&& onColorModeChange);
651     static void SetSystemFontChangeEvent(FrameNode* frameNode, std::function<void(float, float)>&& onFontChange);
652     static void SetFocusBoxStyle(FrameNode* frameNode, const NG::FocusBoxStyle& style);
653 
654     static bool GetFocusable(FrameNode* frameNode);
655     static bool GetTabStop(FrameNode* frameNode);
656     static bool GetDefaultFocus(FrameNode* frameNode);
657     static std::vector<DimensionRect> GetResponseRegion(FrameNode* frameNode);
658     static NG::OverlayOptions GetOverlay(FrameNode* frameNode);
659     static void SetNeedFocus(FrameNode* frameNode, bool value);
660     static bool GetNeedFocus(FrameNode* frameNode);
661     static double GetOpacity(FrameNode* frameNode);
662     static BorderWidthProperty GetBorderWidth(FrameNode* frameNode);
663     static BorderWidthProperty GetLayoutBorderWidth(FrameNode* frameNode);
664     static BorderRadiusProperty GetBorderRadius(FrameNode* frameNode);
665     static BorderColorProperty GetBorderColor(FrameNode* frameNode);
666     static BorderStyleProperty GetBorderStyle(FrameNode* frameNode);
667     static int GetZIndex(FrameNode* frameNode);
668     static VisibleType GetVisibility(FrameNode* frameNode);
669     static bool GetClip(FrameNode* frameNode);
670     static RefPtr<BasicShape> GetClipShape(FrameNode* frameNode);
671     static Matrix4 GetTransform(FrameNode* frameNode);
672     static HitTestMode GetHitTestBehavior(FrameNode* frameNode);
673     static OffsetT<Dimension> GetPosition(FrameNode* frameNode);
674     static std::optional<Shadow> GetShadow(FrameNode* frameNode);
675     static NG::Gradient GetSweepGradient(FrameNode* frameNode);
676     static NG::Gradient GetRadialGradient(FrameNode* frameNode);
677     static RefPtr<BasicShape> GetMask(FrameNode* frameNode);
678     static RefPtr<ProgressMaskProperty> GetMaskProgress(FrameNode* frameNode);
679     static BlendMode GetBlendMode(FrameNode* frameNode);
680     static TextDirection GetDirection(FrameNode* frameNode);
681     static std::map<AlignDirection, AlignRule> GetAlignRules(FrameNode* frameNode);
682     static FlexAlign GetAlignSelf(FrameNode* frameNode);
683     static void SetDragEventStrictReportingEnabled(int32_t instanceId, bool dragEventStrictReportingEnabled);
684     // used in JS FrameNode
685     static void SetJSFrameNodeOnClick(FrameNode* frameNode, GestureEventFunc&& clickEventFunc);
686     static void SetJSFrameNodeOnTouch(FrameNode* frameNode, TouchEventFunc&& touchEventFunc);
687     static void SetJSFrameNodeOnAppear(FrameNode* frameNode, std::function<void()>&& onAppear);
688     static void SetJSFrameNodeOnDisappear(FrameNode* frameNode, std::function<void()>&& onDisappear);
689     static void SetJSFrameNodeOnKeyCallback(FrameNode* frameNode, OnKeyCallbackFunc&& onKeyCallback);
690     static void SetJSFrameNodeOnFocusCallback(FrameNode* frameNode, OnFocusFunc&& onFocusCallback);
691     static void SetJSFrameNodeOnBlurCallback(FrameNode* frameNode, OnBlurFunc&& onBlurCallback);
692     static void SetJSFrameNodeOnHover(FrameNode* frameNode, OnHoverFunc&& onHoverEventFunc);
693     static void SetJSFrameNodeOnMouse(FrameNode* frameNode, OnMouseEventFunc&& onMouseEventFunc);
694     static void SetJSFrameNodeOnSizeChange(
695         FrameNode* frameNode, std::function<void(const RectF& oldRect, const RectF& rect)>&& onSizeChanged);
696     static void SetJSFrameNodeOnVisibleAreaApproximateChange(FrameNode* frameNode,
697         const std::function<void(bool, double)>&& jsCallback, const std::vector<double>& ratioList,
698         int32_t expectedUpdateInterval = 1000);
699     static void ClearJSFrameNodeOnClick(FrameNode* frameNode);
700     static void ClearJSFrameNodeOnTouch(FrameNode* frameNode);
701     static void ClearJSFrameNodeOnAppear(FrameNode* frameNode);
702     static void ClearJSFrameNodeOnDisappear(FrameNode* frameNode);
703     static void ClearJSFrameNodeOnKeyCallback(FrameNode* frameNode);
704     static void ClearJSFrameNodeOnFocusCallback(FrameNode* frameNode);
705     static void ClearJSFrameNodeOnBlurCallback(FrameNode* frameNode);
706     static void ClearJSFrameNodeOnHover(FrameNode* frameNode);
707     static void ClearJSFrameNodeOnMouse(FrameNode* frameNode);
708     static void ClearJSFrameNodeOnSizeChange(FrameNode* frameNode);
709     static void ClearJSFrameNodeOnVisibleAreaApproximateChange(FrameNode* frameNode);
710 
711     static float GetFlexGrow(FrameNode* frameNode);
712     static float GetFlexShrink(FrameNode* frameNode);
713     static Dimension GetFlexBasis(FrameNode* frameNode);
714     static Dimension GetMinWidth(FrameNode* frameNode);
715     static Dimension GetMaxWidth(FrameNode* frameNode);
716     static Dimension GetMinHeight(FrameNode* frameNode);
717     static Dimension GetMaxHeight(FrameNode* frameNode);
718     static Dimension GetGrayScale(FrameNode* frameNode);
719     static InvertVariant GetInvert(FrameNode* frameNode);
720     static Dimension GetSepia(FrameNode* frameNode);
721     static Dimension GetContrast(FrameNode* frameNode);
722     static Color GetForegroundColor(FrameNode* frameNode);
723     static Dimension GetFrontBlur(FrameNode* frameNode);
724     static NG::Gradient GetLinearGradient(FrameNode* frameNode);
725     static Alignment GetAlign(FrameNode* frameNode);
726     static NG::VectorF GetScale(FrameNode* frameNode);
727     static NG::Vector5F GetRotate(FrameNode* frameNode);
728     static Dimension GetBrightness(FrameNode* frameNode);
729     static Dimension GetSaturate(FrameNode* frameNode);
730     static BackgroundImagePosition GetBackgroundImagePosition(FrameNode* frameNode);
731     static Dimension GetWidth(FrameNode* frameNode);
732     static Dimension GetHeight(FrameNode* frameNode);
733     static Color GetBackgroundColor(FrameNode* frameNode);
734     static std::string GetBackgroundImageSrc(FrameNode* frameNode);
735     static ImageRepeat GetBackgroundImageRepeat(FrameNode* frameNode);
736     static PaddingProperty GetPadding(FrameNode* frameNode);
737     static std::optional<CalcSize> GetConfigSize(FrameNode* frameNode);
738     static std::string GetKey(FrameNode* frameNode);
739     static bool GetEnabled(FrameNode* frameNode);
740     static MarginProperty GetMargin(FrameNode* frameNode);
741     static TranslateOptions GetTranslate(FrameNode* frameNode);
742     static float GetAspectRatio(FrameNode* frameNode);
743     static BlendApplyType GetBlendApplyType(FrameNode* frameNode);
744     static void SetOnTouchIntercept(FrameNode* frameNode, TouchInterceptFunc &&touchInterceptFunc);
745     static float GetLayoutWeight(FrameNode* frameNode);
746     static int32_t GetDisplayIndex(FrameNode* frameNode);
747     static NG::BorderWidthProperty GetOuterBorderWidth(FrameNode* frameNode);
748     static void SetBias(FrameNode* frameNode, const BiasPair& biasPair);
749     static BiasPair GetBias(FrameNode* frameNode);
750     static RenderFit GetRenderFit(FrameNode* frameNode);
751     static BorderColorProperty GetOuterBorderColor(FrameNode* frameNode);
752     static bool GetRenderGroup(FrameNode* frameNode);
753     static void SetFocusScopeId(const std::string& focusScopeId, bool isGroup, bool arrowKeyStepOut);
754     static void SetFocusScopePriority(const std::string& focusScopeId, const uint32_t focusPriority);
755     static void SetFocusScopeId(FrameNode* frameNode, const std::string& focusScopeId, bool isGroup,
756         bool arrowKeyStepOut);
757     static void SetFocusScopePriority(FrameNode* frameNode, const std::string& focusScopeId,
758         const uint32_t focusPriority);
759     static void ResetBias(FrameNode* frameNode);
760     static void ResetAlignRules(FrameNode* frameNode);
761     static void SetOnVisibleChange(FrameNode* frameNode, std::function<void(bool, double)> &&onVisibleChange,
762         const std::vector<double> &ratioList);
763     static Color GetColorBlend(FrameNode* frameNode);
764     static void ResetAreaChanged(FrameNode* frameNode);
765     static void ResetVisibleChange(FrameNode* frameNode);
766     static void SetLayoutRect(FrameNode* frameNode, const NG::RectF& rect);
767     static void ResetLayoutRect(FrameNode* frameNode);
768     static NG::RectF GetLayoutRect(FrameNode* frameNode);
769     static bool GetFocusOnTouch(FrameNode* frameNode);
770     static void SetPixelRound(FrameNode* frameNode, uint16_t value);
771     static uint32_t GetSafeAreaExpandType(FrameNode* frameNode);
772     static uint32_t GetSafeAreaExpandEdges(FrameNode* frameNode);
773     static void SetPositionLocalizedEdges(bool needLocalized);
774     static void SetLocalizedMarkAnchor(bool needLocalized);
775     static void SetOffsetLocalizedEdges(bool needLocalized);
776     static void AddCustomProperty(UINode* frameNode, const std::string& key, const std::string& value);
777     static void RemoveCustomProperty(UINode* frameNode, const std::string& key);
778 
779 private:
780     static void AddDragFrameNodeToManager();
781     static void AddDragFrameNodeToManager(FrameNode* frameNode);
782     static void AddOverlayToFrameNode(const RefPtr<NG::FrameNode>& overlayNode,
783         const std::optional<Alignment>& align, const std::optional<Dimension>& offsetX,
784         const std::optional<Dimension>& offsetY);
785 };
786 } // namespace OHOS::Ace::NG
787 
788 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_BASE_VIEW_ABSTRACT_H
789