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