• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2023 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 "base/geometry/dimension.h"
23 #include "base/geometry/matrix4.h"
24 #include "base/geometry/ng/offset_t.h"
25 #include "base/geometry/ng/rect_t.h"
26 #include "base/geometry/ng/vector.h"
27 #include "base/memory/referenced.h"
28 #include "core/components/common/layout/constants.h"
29 #include "core/components/common/layout/grid_layout_info.h"
30 #include "core/components/common/properties/alignment.h"
31 #include "core/components/common/properties/decoration.h"
32 #include "core/components/common/properties/motion_path_option.h"
33 #include "core/components/common/properties/placement.h"
34 #include "core/components/common/properties/popup_param.h"
35 #include "core/components/common/properties/shared_transition_option.h"
36 #include "core/components_ng/event/gesture_event_hub.h"
37 #include "core/components_ng/pattern/menu/menu_pattern.h"
38 #include "core/components_ng/property/border_property.h"
39 #include "core/components_ng/property/calc_length.h"
40 #include "core/components_ng/property/gradient_property.h"
41 #include "core/components_ng/property/measure_property.h"
42 #include "core/components_ng/property/overlay_property.h"
43 #include "core/components_ng/property/progress_mask_property.h"
44 #include "core/components_ng/property/transition_property.h"
45 
46 namespace OHOS::Ace::NG {
47 struct OptionParam {
48     std::string value;
49     std::string icon;
50     bool enabled = true;
51     std::function<void()> action;
52 
53     OptionParam() = default;
OptionParamOptionParam54     OptionParam(const std::string &valueParam, const std::string &iconParam, const std::function<void()> &actionParam)
55         : value(valueParam), icon(iconParam), enabled(true), action(actionParam)
56     {}
OptionParamOptionParam57     OptionParam(const std::string &valueParam, const std::string &iconParam, bool enabledParam,
58         const std::function<void()> &actionParam)
59         : value(valueParam), icon(iconParam), enabled(enabledParam), action(actionParam)
60     {}
OptionParamOptionParam61     OptionParam(const std::string &valueParam, const std::function<void()> &actionParam)
62         : value(valueParam), icon(""), enabled(true), action(actionParam)
63     {}
64 
65     ~OptionParam() = default;
66 };
67 
68 struct MenuParam {
69     std::string title;
70     OffsetF positionOffset;
71     bool setShow = false;
72     bool isShow = false;
73     std::function<void(const std::string&)> onStateChange;
74     std::optional<Placement> placement;
75     std::function<void()> onAppear;
76     std::function<void()> onDisappear;
77     std::function<void()> aboutToAppear;
78     std::function<void()> aboutToDisappear;
79     std::optional<bool> enableArrow;
80     std::optional<Dimension> arrowOffset;
81     bool isAboveApps = false;
82     bool isShowInSubWindow = false;
83     MenuType type = MenuType::MENU;
84     MenuPreviewMode previewMode = MenuPreviewMode::NONE;
85     MenuPreviewAnimationOptions previewAnimationOptions;
86     std::optional<EffectOption> backgroundEffectOption;
87     std::optional<Color> backgroundColor;
88     std::optional<int32_t> backgroundBlurStyle;
89 };
90 
91 class ACE_FORCE_EXPORT ViewAbstract {
92 public:
93     static void SetWidth(const CalcLength &width);
94     static void SetHeight(const CalcLength &height);
95     static void ClearWidthOrHeight(bool isWidth);
96     static void SetMinWidth(const CalcLength &minWidth);
97     static void SetMinHeight(const CalcLength &minHeight);
98     static void SetMaxWidth(const CalcLength &maxWidth);
99     static void SetMaxHeight(const CalcLength &maxHeight);
100     static void ResetMinSize(bool resetWidth);
101     static void ResetMaxSize(bool resetWidth);
102 
103     static void SetAspectRatio(float ratio);
104     static void ResetAspectRatio();
105     static void SetLayoutWeight(float value);
106     static void SetPixelRound(uint8_t value);
107     static void SetLayoutDirection(TextDirection value);
108 
109     static void SetBackgroundColor(const Color &color);
110     static void SetBackgroundImage(const ImageSourceInfo &src);
111     static void SetBackgroundImageRepeat(const ImageRepeat &imageRepeat);
112     static void SetBackgroundImageSize(const BackgroundImageSize &bgImgSize);
113     static void SetBackgroundImagePosition(const BackgroundImagePosition &bgImgPosition);
114     static void SetBackgroundBlurStyle(const BlurStyleOption &bgBlurStyle);
115     static void SetBackgroundEffect(const EffectOption &effectOption);
116     static void SetForegroundBlurStyle(const BlurStyleOption &fgBlurStyle);
117     static void SetSphericalEffect(double radio);
118     static void SetPixelStretchEffect(PixStretchEffectOption &option);
119     static void SetLightUpEffect(double radio);
120     static void SetPadding(const CalcLength &value);
121     static void SetPadding(const PaddingProperty &value);
122     static void SetMargin(const CalcLength &value);
123     static void SetMargin(const PaddingProperty &value);
124     static void SetBorderRadius(const BorderRadiusProperty &value);
125     static void SetBorderRadius(const Dimension &value);
126     static void SetBorderColor(const Color &value);
127     static void SetBorderColor(const BorderColorProperty &value);
128     static void SetBorderWidth(const Dimension &value);
129     static void SetBorderWidth(const BorderWidthProperty &value);
130     static void SetBorderStyle(const BorderStyle &value);
131     static void SetBorderStyle(const BorderStyleProperty &value);
132     static void SetOpacity(double opacity);
133     static void SetAllowDrop(const std::set<std::string> &allowDrop);
134     static void SetDragPreview(const NG::DragDropInfo& info);
135 
136     static void SetBorderImage(const RefPtr<BorderImage> &borderImage);
137     static void SetBorderImageSource(const std::string &bdImageSrc);
138 
139     // outer border
140     static void SetOuterBorderRadius(const BorderRadiusProperty& value);
141     static void SetOuterBorderRadius(const Dimension& value);
142     static void SetOuterBorderColor(const Color& value);
143     static void SetOuterBorderColor(const BorderColorProperty& value);
144     static void SetOuterBorderWidth(const Dimension& value);
145     static void SetOuterBorderWidth(const BorderWidthProperty& value);
146     static void SetOuterBorderStyle(const BorderStyle& value);
147     static void SetOuterBorderStyle(const BorderStyleProperty& value);
148 
149     static void SetHasBorderImageSlice(bool tag);
150     static void SetHasBorderImageWidth(bool tag);
151     static void SetHasBorderImageOutset(bool tag);
152     static void SetHasBorderImageRepeat(bool tag);
153     static void SetBorderImageGradient(const NG::Gradient &gradient);
154 
155     // customBackground
156     static void SetBackgroundAlign(const Alignment &align);
157 
158     // decoration
159     static void SetBackdropBlur(const Dimension &radius, const BlurOption &blurOption);
160     static void SetLinearGradientBlur(const NG::LinearGradientBlurPara& blurPara);
161     static void SetDynamicLightUp(float rate, float lightUpDegree);
162     static void SetFrontBlur(const Dimension &radius, const BlurOption &blurOption);
163     static void SetBackShadow(const Shadow &shadow);
164     static void SetBlendMode(BlendMode blendMode);
165     static void SetBlendApplyType(BlendApplyType blendApplyType);
166 
167     // graphics
168     static void SetBrightness(const Dimension &value);
169     static void SetGrayScale(const Dimension &value);
170     static void SetContrast(const Dimension &value);
171     static void SetSaturate(const Dimension &value);
172     static void SetSepia(const Dimension &value);
173     static void SetInvert(const InvertVariant &value);
174     static void SetHueRotate(float value);
175     static void SetColorBlend(const Color &value);
176     static void SetSystemBarEffect(bool systemBarEffect);
177 
178     // gradient
179     static void SetLinearGradient(const NG::Gradient &gradient);
180     static void SetSweepGradient(const NG::Gradient &gradient);
181     static void SetRadialGradient(const NG::Gradient &gradient);
182 
183     // layout
184     static void SetAlign(Alignment alignment);
185     static void SetAlignRules(const std::map<AlignDirection, AlignRule> &alignRules);
186     static void SetBias(const BiasPair& biasPair);
187     static void SetVisibility(VisibleType visible);
188     static void SetGrid(std::optional<int32_t> span, std::optional<int32_t> offset,
189         GridSizeType type = GridSizeType::UNDEFINED);
190 
191     // position
192     static void SetPosition(const OffsetT<Dimension> &value);
193     static void SetOffset(const OffsetT<Dimension> &value);
194     static void MarkAnchor(const OffsetT<Dimension> &value);
195 
196     // render position
197     static void SetZIndex(int32_t value);
198     // renderGroup
199     static void SetRenderGroup(bool isRenderGroup);
200     // renderFit, i.e. gravity
201     static void SetRenderFit(RenderFit renderFit);
202 
203     // transform
204     static void SetScale(const NG::VectorF &value);
205     static void SetPivot(const DimensionOffset &value);
206     static void SetTranslate(const NG::TranslateOptions &value);
207     static void SetRotate(const NG::Vector5F &value);
208 
209     static void SetTransformMatrix(const Matrix4 &matrix);
210 
211     // event
212     static void SetOnClick(GestureEventFunc &&clickEventFunc);
213     static void SetOnGestureJudgeBegin(GestureJudgeFunc &&gestureJudgeFunc);
214     static void SetOnTouch(TouchEventFunc &&touchEventFunc);
215     static void SetOnMouse(OnMouseEventFunc &&onMouseEventFunc);
216     static void SetOnHover(OnHoverFunc &&onHoverEventFunc);
217     static void SetHoverEffect(HoverEffectType hoverEffect);
218     static void SetHoverEffectAuto(HoverEffectType hoverEffect);
219     static void SetEnabled(bool enabled);
220     static void SetFocusable(bool focusable);
221     static void SetOnFocus(OnFocusFunc &&onFocusCallback);
222     static void SetOnBlur(OnBlurFunc &&onBlurCallback);
223     static void SetOnKeyEvent(OnKeyCallbackFunc &&onKeyCallback);
224     static void SetTabIndex(int32_t index);
225     static void SetFocusOnTouch(bool isSet);
226     static void SetDefaultFocus(bool isSet);
227     static void SetGroupDefaultFocus(bool isSet);
228     static void SetOnAppear(std::function<void()> &&onAppear);
229     static void SetOnDisappear(std::function<void()> &&onDisappear);
230     static void SetOnAreaChanged(std::function<void(const RectF &oldRect, const OffsetF &oldOrigin, const RectF &rect,
231         const OffsetF &origin)> &&onAreaChanged);
232     static void SetOnVisibleChange(std::function<void(bool, double)> &&onVisibleChange,
233         const std::vector<double> &ratioList);
234     static void SetResponseRegion(const std::vector<DimensionRect> &responseRegion);
235     static void SetMouseResponseRegion(const std::vector<DimensionRect> &mouseResponseRegion);
236     static void SetTouchable(bool touchable);
237     static void SetHitTestMode(HitTestMode hitTestMode);
238     static void SetOnTouchTestFunc(NG::OnChildTouchTestFunc&& onChildTouchTest);
239     static void SetDraggable(bool draggable);
240     static void SetDragPreviewOptions(const DragPreviewOption& previewOption);
241     static void SetOnDragStart(
242         std::function<DragDropInfo(const RefPtr<OHOS::Ace::DragEvent> &, const std::string &)> &&onDragStart);
243     static void SetOnDragEnter(
244         std::function<void(const RefPtr<OHOS::Ace::DragEvent> &, const std::string &)> &&onDragEnter);
245     static void SetOnDragLeave(
246         std::function<void(const RefPtr<OHOS::Ace::DragEvent> &, const std::string &)> &&onDragLeave);
247     static void SetOnDragMove(
248         std::function<void(const RefPtr<OHOS::Ace::DragEvent> &, const std::string &)> &&onDragMove);
249     static void SetOnDrop(std::function<void(const RefPtr<OHOS::Ace::DragEvent> &, const std::string &)> &&onDrop);
250 
251     static void SetOnDragEnd(std::function<void(const RefPtr<OHOS::Ace::DragEvent> &)> &&onDragEnd);
252     static void SetMonopolizeEvents(bool monopolizeEvents);
253 
254     // flex properties
255     static void SetAlignSelf(FlexAlign value);
256     static void SetFlexShrink(float value);
257     static void ResetFlexShrink();
258     static void SetFlexGrow(float value);
259     static void SetFlexBasis(const Dimension &value);
260     static void SetDisplayIndex(int32_t value);
261     static void SetKeyboardShortcut(const std::string &value, const std::vector<ModifierKey> &keys,
262         std::function<void()> &&onKeyboardShortcutAction);
263     // obscured
264     static void SetObscured(const std::vector<ObscuredReasons> &reasons);
265 
266     // Bind properties
267     static void BindPopup(const RefPtr<PopupParam> &param, const RefPtr<FrameNode> &targetNode,
268         const RefPtr<UINode> &customNode);
269     static void BindMenuWithItems(std::vector<OptionParam> &&params, const RefPtr<FrameNode> &targetNode,
270         const NG::OffsetF &offset, const MenuParam &menuParam);
271     static void BindMenuWithCustomNode(const RefPtr<UINode> &customNode, const RefPtr<FrameNode> &targetNode,
272         const NG::OffsetF &offset, const MenuParam &menuParam, const RefPtr<UINode> &previewCustomNode = nullptr);
273     static void ShowMenu(
274         int32_t targetId, const NG::OffsetF& offset, bool isShowInSubWindow, bool isContextMenu = false);
275     // inspector
276     static void SetInspectorId(const std::string &inspectorId);
277     // auto event param
278     static void SetAutoEventParam(const std::string& param);
279     // restore
280     static void SetRestoreId(int32_t restoreId);
281     // inspector debugLine
282     static void SetDebugLine(const std::string &line);
283     // transition
284     static void SetTransition(const TransitionOptions &options);
285     static void SetChainedTransition(const RefPtr<NG::ChainedTransitionEffect> &effect);
286     // sharedTransition
287     static void SetSharedTransition(const std::string &shareId, const std::shared_ptr<SharedTransitionOption> &option);
288     // geometryTransition
289     static void SetGeometryTransition(const std::string &id, bool followWithoutTransition = false);
290     // clip and mask
291     static void SetClipShape(const RefPtr<BasicShape> &basicShape);
292     static void SetClipEdge(bool isClip);
293     static void SetMask(const RefPtr<BasicShape> &basicShape);
294     // overlay
295     static void SetOverlay(const NG::OverlayOptions &overlay);
296     // motionPath
297     static void SetMotionPath(const MotionPathOption &motionPath);
298     // progress mask
299     static void SetProgressMask(const RefPtr<ProgressMaskProperty> &progress);
300 
301     static void Pop();
302 
303     // Disable event
304     static void DisableOnClick();
305     static void DisableOnTouch();
306     static void DisableOnKeyEvent();
307     static void DisableOnHover();
308     static void DisableOnMouse();
309     static void DisableOnAppear();
310     static void DisableOnDisAppear();
311     static void DisableOnAreaChange();
312     static void DisableOnFocus();
313     static void DisableOnBlur();
314 
315     // useEffect
316     static void SetUseEffect(bool useEffect);
317 
318     static void SetFreeze(bool freeze);
319 
320     // useShadowBatching
321     static void SetUseShadowBatching(bool useShadowBatching);
322 
323     // foregroundColor
324     static void SetForegroundColor(const Color& color);
325     static void SetForegroundColorStrategy(const ForegroundColorStrategy& strategy);
326 
327     // clickEffect
328     static void SetClickEffectLevel(const ClickEffectLevel& level, float scaleValue);
329 
330     // custom animatable property
331     static void CreateAnimatablePropertyFloat(
332         const std::string& propertyName, float value, const std::function<void(float)>& onCallbackEvent);
333     static void UpdateAnimatablePropertyFloat(const std::string& propertyName, float value);
334     static void CreateAnimatableArithmeticProperty(const std::string& propertyName,
335         RefPtr<CustomAnimatableArithmetic>& value,
336         std::function<void(const RefPtr<CustomAnimatableArithmetic>&)>& onCallbackEvent);
337     static void UpdateAnimatableArithmeticProperty(
338         const std::string& propertyName, RefPtr<CustomAnimatableArithmetic>& value);
339     static void UpdateSafeAreaExpandOpts(const SafeAreaExpandOpts& opts);
340 
341     // global light
342     static void SetLightPosition(
343         const CalcDimension& positionX, const CalcDimension& positionY, const CalcDimension& positionZ);
344     static void SetLightIntensity(float value);
345     static void SetLightIlluminated(uint32_t value);
346     static void SetIlluminatedBorderWidth(const Dimension& value);
347     static void SetBloom(float value);
348 
349     static void SetBackgroundColor(FrameNode* frameNode, const Color& color);
350     static void SetWidth(FrameNode* frameNode, const CalcLength& width);
351     static void SetHeight(FrameNode* frameNode, const CalcLength& height);
352     static void ClearWidthOrHeight(FrameNode* frameNode, bool isWidth);
353     static void SetBorderRadius(FrameNode* frameNode, const BorderRadiusProperty& value);
354     static void SetBorderRadius(FrameNode* frameNode, const Dimension& value);
355     static void SetBorderWidth(FrameNode* frameNode, const BorderWidthProperty& value);
356     static void SetBorderWidth(FrameNode* frameNode, const Dimension& value);
357     static void SetBorderColor(FrameNode* frameNode, const BorderColorProperty& value);
358     static void SetBorderColor(FrameNode* frameNode, const Color& value);
359     static void SetOuterBorderColor(FrameNode* frameNode, const Color& value);
360     static void SetOuterBorderColor(FrameNode* frameNode, const BorderColorProperty& value);
361     static void SetOuterBorderRadius(FrameNode* frameNode, const Dimension& value);
362     static void SetOuterBorderRadius(FrameNode* frameNode, const BorderRadiusProperty& value);
363     static void SetOuterBorderWidth(FrameNode* frameNode, const Dimension& value);
364     static void SetOuterBorderWidth(FrameNode* frameNode, const BorderWidthProperty& value);
365     static void SetOuterBorderStyle(FrameNode* frameNode, const BorderStyleProperty& value);
366     static void SetOuterBorderStyle(FrameNode* frameNode, const BorderStyle& value);
367     static void SetBorderStyle(FrameNode* frameNode, const BorderStyle& value);
368     static void SetBorderStyle(FrameNode* frameNode, const BorderStyleProperty& value);
369     static void SetBackShadow(FrameNode* frameNode, const Shadow& shadow);
370     static void SetPosition(FrameNode* frameNode, const OffsetT<Dimension>& value);
371     static void SetTransformMatrix(FrameNode* frameNode, const Matrix4& matrix);
372     static void SetHitTestMode(FrameNode* frameNode, HitTestMode hitTestMode);
373     static void SetOpacity(FrameNode* frameNode, double opacity);
374     static void SetZIndex(FrameNode* frameNode, int32_t value);
375     static void SetAlign(FrameNode* frameNode, Alignment alignment);
376     static void SetBackdropBlur(FrameNode* frameNode, const Dimension& radius);
377     static void SetInvert(FrameNode* frameNode, const InvertVariant& invert);
378     static void SetSepia(FrameNode* frameNode, const Dimension& sepia);
379     static void SetSaturate(FrameNode* frameNode, const Dimension& saturate);
380     static void SetColorBlend(FrameNode* frameNode, const Color& colorBlend);
381     static void SetGrayScale(FrameNode* frameNode, const Dimension& grayScale);
382     static void SetContrast(FrameNode* frameNode, const Dimension& contrast);
383     static void SetBrightness(FrameNode* frameNode, const Dimension& brightness);
384     static void SetFrontBlur(FrameNode* frameNode, const Dimension& radius);
385     static void SetHueRotate(FrameNode* frameNode, float hueRotate);
386     static void SetLinearGradient(FrameNode* frameNode, const NG::Gradient& gradient);
387     static void SetSweepGradient(FrameNode* frameNode, const NG::Gradient& gradient);
388     static void SetRadialGradient(FrameNode* frameNode, const NG::Gradient& gradient);
389     static void SetOverlay(FrameNode* frameNode, const NG::OverlayOptions& overlay);
390     static void SetBorderImage(FrameNode* frameNode, const RefPtr<BorderImage>& borderImage);
391     static void SetBorderImageSource(FrameNode* frameNode, const std::string& bdImageSrc);
392     static void SetHasBorderImageSlice(FrameNode* frameNode, bool tag);
393     static void SetHasBorderImageWidth(FrameNode* frameNode, bool tag);
394     static void SetHasBorderImageOutset(FrameNode* frameNode, bool tag);
395     static void SetHasBorderImageRepeat(FrameNode* frameNode, bool tag);
396     static void SetBorderImageGradient(FrameNode* frameNode, const NG::Gradient& gradient);
397     static void SetForegroundBlurStyle(FrameNode* frameNode, const BlurStyleOption& fgBlurStyle);
398     static void SetLinearGradientBlur(FrameNode* frameNode, const NG::LinearGradientBlurPara& blurPara);
399     static void SetBackgroundBlurStyle(FrameNode* frameNode, const BlurStyleOption& bgBlurStyle);
400     static void SetBackgroundImagePosition(FrameNode* frameNode, const BackgroundImagePosition& bgImgPosition);
401     static void SetBackgroundImageSize(FrameNode* frameNode, const BackgroundImageSize& bgImgSize);
402     static void SetBackgroundImage(FrameNode* frameNode, const ImageSourceInfo& src);
403     static void SetBackgroundImageRepeat(FrameNode* frameNode, const ImageRepeat& imageRepeat);
404     static void SetTranslate(FrameNode* frameNode, const NG::TranslateOptions& value);
405     static void SetScale(FrameNode* frameNode, const NG::VectorF& value);
406     static void SetPivot(FrameNode* frameNode, const DimensionOffset& value);
407     static void SetGeometryTransition(FrameNode* frameNode, const std::string& id, bool followWithoutTransition);
408     static void SetRotate(FrameNode* frameNode, const NG::Vector5F& value);
409     static void SetClipEdge(FrameNode* frameNode, bool isClip);
410     static void SetClipShape(FrameNode* frameNode, const RefPtr<BasicShape>& basicShape);
411     static void SetPixelStretchEffect(FrameNode* frameNode, PixStretchEffectOption& option);
412     static void SetLightUpEffect(FrameNode* frameNode, double radio);
413     static void SetSphericalEffect(FrameNode* frameNode, double radio);
414     static void SetRenderGroup(FrameNode* frameNode, bool isRenderGroup);
415     static void SetRenderFit(FrameNode* frameNode, RenderFit renderFit);
416     static void SetUseEffect(FrameNode* frameNode, bool useEffect);
417     static void SetForegroundColor(FrameNode* frameNode, const Color& color);
418     static void SetForegroundColorStrategy(FrameNode* frameNode, const ForegroundColorStrategy& strategy);
419     static void SetMotionPath(FrameNode* frameNode, const MotionPathOption& motionPath);
420     static void SetFocusOnTouch(FrameNode* frameNode, bool isSet);
421     static void SetGroupDefaultFocus(FrameNode* frameNode, bool isSet);
422     static void SetFocusable(FrameNode* frameNode, bool focusable);
423     static void SetTouchable(FrameNode* frameNode, bool touchable);
424     static void SetDefaultFocus(FrameNode* frameNode, bool isSet);
425     static void SetDisplayIndex(FrameNode* frameNode, int32_t value);
426     static void SetOffset(FrameNode* frameNode, const OffsetT<Dimension>& value);
427     static void MarkAnchor(FrameNode* frameNode, const OffsetT<Dimension>& value);
428     static void SetVisibility(FrameNode* frameNode, VisibleType visible);
429     static void SetMargin(FrameNode* frameNode, const CalcLength& value);
430     static void SetMargin(FrameNode* frameNode, const PaddingProperty& value);
431     static void SetPadding(FrameNode* frameNode, const CalcLength& value);
432     static void SetPadding(FrameNode* frameNode, const PaddingProperty& value);
433     static void SetLayoutDirection(FrameNode* frameNode, TextDirection value);
434     static void UpdateSafeAreaExpandOpts(FrameNode* frameNode, const SafeAreaExpandOpts& opts);
435     static void SetAspectRatio(FrameNode* frameNode, float ratio);
436     static void SetAlignSelf(FrameNode* frameNode, FlexAlign value);
437     static void SetFlexBasis(FrameNode* frameNode, const Dimension& value);
438     static void ResetFlexShrink(FrameNode* frameNode);
439     static void SetFlexShrink(FrameNode* frameNode, float value);
440     static void SetFlexGrow(FrameNode* frameNode, float value);
441     static void SetLayoutWeight(FrameNode* frameNode, int32_t value);
442     static void ResetMaxSize(FrameNode* frameNode, bool resetWidth);
443     static void ResetMinSize(FrameNode* frameNode, bool resetWidth);
444     static void SetMinWidth(FrameNode* frameNode, const CalcLength& minWidth);
445     static void SetMaxWidth(FrameNode* frameNode, const CalcLength& maxWidth);
446     static void SetMinHeight(FrameNode* frameNode, const CalcLength& minHeight);
447     static void SetMaxHeight(FrameNode* frameNode, const CalcLength& maxHeight);
448     static void SetAlignRules(FrameNode* frameNode, const std::map<AlignDirection, AlignRule>& alignRules);
449     static void SetGrid(FrameNode* frameNode, std::optional<int32_t> span, std::optional<int32_t> offset,
450         GridSizeType type = GridSizeType::UNDEFINED);
451     static void ResetAspectRatio(FrameNode* frameNode);
452     static void SetAllowDrop(FrameNode* frameNode, const std::set<std::string>& allowDrop);
453     static void SetInspectorId(FrameNode* frameNode, const std::string& inspectorId);
454     static void SetRestoreId(FrameNode* frameNode, int32_t restoreId);
455     static void SetTabIndex(FrameNode* frameNode, int32_t index);
456     static void SetObscured(FrameNode* frameNode, const std::vector<ObscuredReasons>& reasons);
457     static void SetBackgroundEffect(FrameNode* frameNode, const EffectOption &effectOption);
458     static void SetDynamicLightUp(FrameNode* frameNode, float rate, float lightUpDegree);
459     static void SetDragPreviewOptions(FrameNode* frameNode, const DragPreviewOption& previewOption);
460     static void SetResponseRegion(FrameNode* frameNode, const std::vector<DimensionRect>& responseRegion);
461     static void SetMouseResponseRegion(FrameNode* frameNode, const std::vector<DimensionRect>& mouseResponseRegion);
462     static void SetSharedTransition(
463         FrameNode* frameNode, const std::string& shareId, const std::shared_ptr<SharedTransitionOption>& option);
464     static void SetTransition(FrameNode* frameNode, const TransitionOptions& options);
465     static void SetChainedTransition(FrameNode* frameNode, const RefPtr<NG::ChainedTransitionEffect>& effect);
466     static void SetMask(FrameNode* frameNode, const RefPtr<BasicShape>& basicShape);
467     static void SetProgressMask(FrameNode* frameNode, const RefPtr<ProgressMaskProperty>& progress);
468     static void SetEnabled(FrameNode* frameNode, bool enabled);
469     static void SetUseShadowBatching(FrameNode* frameNode, bool useShadowBatching);
470     static void SetBlendMode(FrameNode* frameNode, BlendMode blendMode);
471     static void SetBlendApplyType(FrameNode* frameNode, BlendApplyType blendApplyType);
472     static void SetMonopolizeEvents(FrameNode* frameNode, bool monopolizeEvents);
473     static void SetDraggable(FrameNode* frameNode, bool draggable);
474     static void SetHoverEffect(FrameNode* frameNode, HoverEffectType hoverEffect);
475     static void SetClickEffectLevel(FrameNode* frameNode, const ClickEffectLevel& level, float scaleValue);
476     static void SetKeyboardShortcut(FrameNode* frameNode, const std::string& value,
477         const std::vector<ModifierKey>& keys, std::function<void()>&& onKeyboardShortcutAction);
478 
479     static void SetOnFocus(FrameNode* frameNode, OnFocusFunc &&onFocusCallback);
480     static void SetOnBlur(FrameNode* frameNode, OnBlurFunc &&onBlurCallback);
481 private:
482     static void AddDragFrameNodeToManager();
483 };
484 } // namespace OHOS::Ace::NG
485 
486 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_BASE_VIEW_ABSTRACT_H
487