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