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> ¶m, const RefPtr<FrameNode> &targetNode, 268 const RefPtr<UINode> &customNode); 269 static void BindMenuWithItems(std::vector<OptionParam> &¶ms, 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