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