1 /* 2 * Copyright (c) 2022-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_JS_VIEW_MODELS_VIEW_ABSTRACT_MODEL_IMPL_H 17 #define FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_JS_VIEW_MODELS_VIEW_ABSTRACT_MODEL_IMPL_H 18 19 #include "base/utils/macros.h" 20 #include "core/components_ng/base/view_abstract_model.h" 21 #include "core/components_ng/event/gesture_event_hub.h" 22 #include "core/components_ng/pattern/menu/menu_pattern.h" 23 #include "core/components_ng/property/progress_mask_property.h" 24 25 namespace OHOS::Ace::Framework { 26 27 class ViewAbstractModelImpl : public ViewAbstractModel { 28 public: 29 ~ViewAbstractModelImpl() override = default; 30 31 static void SwapBackBorder(const RefPtr<Decoration>& decoration); 32 static OnDragFunc ToDragFunc(NG::OnDragStartFunc&& onDragStart); 33 34 void SetWidth(const CalcDimension& width) override; 35 void SetHeight(const CalcDimension& height) override; ClearWidthOrHeight(bool isWidth)36 void ClearWidthOrHeight(bool isWidth) override {}; 37 void SetMinWidth(const CalcDimension& minWidth) override; 38 void SetMinHeight(const CalcDimension& minHeight) override; 39 void SetMaxWidth(const CalcDimension& maxWidth) override; 40 void SetMaxHeight(const CalcDimension& maxHeight) override; ResetMinSize(bool resetWidth)41 void ResetMinSize(bool resetWidth) override {}; ResetMaxSize(bool resetWidth)42 void ResetMaxSize(bool resetWidth) override {}; 43 44 void SetBackgroundColor(const Color& color) override; 45 void SetBackgroundImage(const ImageSourceInfo& src, RefPtr<ThemeConstants> themeConstant) override; 46 void SetBackgroundImageRepeat(const ImageRepeat& imageRepeat) override; 47 void SetBackgroundImageSize(const BackgroundImageSize& bgImgSize) override; 48 void SetBackgroundImagePosition(const BackgroundImagePosition& bgImgPosition) override; 49 void SetBackgroundBlurStyle(const BlurStyleOption& bgBlurStyle) override; 50 void SetPadding(const CalcDimension& value) override; 51 void SetPaddings(const std::optional<CalcDimension>& top, const std::optional<CalcDimension>& bottom, 52 const std::optional<CalcDimension>& left, const std::optional<CalcDimension>& right) override; 53 void SetMargin(const CalcDimension& value) override; 54 void SetMargins(const std::optional<CalcDimension>& top, const std::optional<CalcDimension>& bottom, 55 const std::optional<CalcDimension>& left, const std::optional<CalcDimension>& right) override; 56 void SetBorderRadius(const Dimension& value) override; 57 void SetBorderRadius(const std::optional<Dimension>& radiusTopLeft, const std::optional<Dimension>& radiusTopRight, 58 const std::optional<Dimension>& radiusBottomLeft, const std::optional<Dimension>& radiusBottomRight) override; 59 void SetBorderColor(const Color& value) override; 60 void SetBorderColor(const std::optional<Color>& colorLeft, const std::optional<Color>& colorRight, 61 const std::optional<Color>& colorTop, const std::optional<Color>& colorBottom) override; 62 void SetBorderWidth(const Dimension& value) override; 63 void SetBorderWidth(const std::optional<Dimension>& left, const std::optional<Dimension>& right, 64 const std::optional<Dimension>& top, const std::optional<Dimension>& bottom) override; 65 void SetBorderStyle(const BorderStyle& value) override; 66 void SetBorderStyle(const std::optional<BorderStyle>& styleLeft, const std::optional<BorderStyle>& styleRight, 67 const std::optional<BorderStyle>& styleTop, const std::optional<BorderStyle>& styleBottom) override; 68 void SetBorderImage(const RefPtr<BorderImage>& borderImage, uint8_t bitset) override; 69 void SetBorderImageGradient(const NG::Gradient& gradient) override; 70 SetOuterBorderRadius(const Dimension & value)71 void SetOuterBorderRadius(const Dimension& value) override {} SetOuterBorderRadius(const std::optional<Dimension> & radiusTopLeft,const std::optional<Dimension> & radiusTopRight,const std::optional<Dimension> & radiusBottomLeft,const std::optional<Dimension> & radiusBottomRight)72 void SetOuterBorderRadius(const std::optional<Dimension>& radiusTopLeft, 73 const std::optional<Dimension>& radiusTopRight, const std::optional<Dimension>& radiusBottomLeft, 74 const std::optional<Dimension>& radiusBottomRight) override {} SetOuterBorderColor(const Color & value)75 void SetOuterBorderColor(const Color& value) override {} SetOuterBorderColor(const std::optional<Color> & colorLeft,const std::optional<Color> & colorRight,const std::optional<Color> & colorTop,const std::optional<Color> & colorBottom)76 void SetOuterBorderColor(const std::optional<Color>& colorLeft, const std::optional<Color>& colorRight, 77 const std::optional<Color>& colorTop, const std::optional<Color>& colorBottom) override {} SetOuterBorderWidth(const Dimension & value)78 void SetOuterBorderWidth(const Dimension& value) override {} SetOuterBorderWidth(const std::optional<Dimension> & left,const std::optional<Dimension> & right,const std::optional<Dimension> & top,const std::optional<Dimension> & bottom)79 void SetOuterBorderWidth(const std::optional<Dimension>& left, const std::optional<Dimension>& right, 80 const std::optional<Dimension>& top, const std::optional<Dimension>& bottom) override {} SetOuterBorderStyle(const BorderStyle & value)81 void SetOuterBorderStyle(const BorderStyle& value) override {} SetOuterBorderStyle(const std::optional<BorderStyle> & styleLeft,const std::optional<BorderStyle> & styleRight,const std::optional<BorderStyle> & styleTop,const std::optional<BorderStyle> & styleBottom)82 void SetOuterBorderStyle(const std::optional<BorderStyle>& styleLeft, const std::optional<BorderStyle>& styleRight, 83 const std::optional<BorderStyle>& styleTop, const std::optional<BorderStyle>& styleBottom) override {} 84 85 void SetLayoutPriority(int32_t priority) override; 86 void SetPixelRound(uint8_t value) override; 87 void SetLayoutWeight(float value) override; 88 void SetLayoutDirection(TextDirection value) override; 89 void SetAspectRatio(float ratio) override; ResetAspectRatio()90 void ResetAspectRatio() override {}; 91 void SetAlign(const Alignment& alignment) override; 92 void SetAlignRules(const std::map<AlignDirection, AlignRule>& alignRules) override; SetBias(const BiasPair & biasPair)93 void SetBias(const BiasPair& biasPair) override {} 94 void SetUseAlign( 95 AlignDeclarationPtr declaration, AlignDeclaration::Edge edge, const std::optional<Dimension>& offset) override; 96 void SetGrid(std::optional<uint32_t> span, std::optional<int32_t> offset, 97 GridSizeType type = GridSizeType::UNDEFINED) override; 98 void SetZIndex(int32_t value) override; 99 100 void SetPosition(const Dimension& x, const Dimension& y) override; 101 void SetOffset(const Dimension& x, const Dimension& y) override; 102 void MarkAnchor(const Dimension& x, const Dimension& y) override; 103 104 void SetScale(float x, float y, float z) override; 105 void SetPivot(const Dimension& x, const Dimension& y, const Dimension& z) override; 106 void SetTranslate(const Dimension& x, const Dimension& y, const Dimension& z) override; 107 void SetRotate(float x, float y, float z, float angle, float perspective = 0.0f) override; 108 void SetTransformMatrix(const std::vector<float>& matrix) override; 109 110 void SetOpacity(double opacity, bool passThrough = false) override; 111 void SetTransition(const NG::TransitionOptions& transitionOptions, bool passThrough = false) override; 112 void SetChainedTransition(const RefPtr<NG::ChainedTransitionEffect>& effect, bool passThrough = false) override {}; 113 void SetOverlay(const std::string& text, const std::function<void()>&& buildFunc, 114 const std::optional<Alignment>& align, const std::optional<Dimension>& offsetX, 115 const std::optional<Dimension>& offsetY) override; 116 void SetVisibility(VisibleType visible, std::function<void(int32_t)>&& changeEventFunc) override; 117 void SetSharedTransition( 118 const std::string& shareId, const std::shared_ptr<SharedTransitionOption>& option) override; 119 void SetGeometryTransition(const std::string& id, bool followWithoutTransition = false) override; 120 void SetMotionPath(const MotionPathOption& option) override; SetRenderGroup(bool isRenderGroup)121 void SetRenderGroup(bool isRenderGroup) override {} SetRenderFit(RenderFit renderFit)122 void SetRenderFit(RenderFit renderFit) override {} 123 124 void SetFlexBasis(const Dimension& value) override; 125 void SetAlignSelf(FlexAlign value) override; 126 void SetFlexShrink(float value) override; 127 void SetFlexGrow(float value) override; 128 void SetDisplayIndex(int32_t value) override; ResetFlexShrink()129 void ResetFlexShrink() override {}; 130 131 void SetLinearGradient(const NG::Gradient& gradient) override; 132 void SetSweepGradient(const NG::Gradient& gradient) override; 133 void SetRadialGradient(const NG::Gradient& gradient) override; 134 135 void SetClipShape(const RefPtr<BasicShape>& shape) override; 136 void SetClipEdge(bool isClip) override; 137 void SetMask(const RefPtr<BasicShape>& shape) override; 138 139 void SetBackdropBlur(const Dimension& radius, const BlurOption& blurOption) override; SetLinearGradientBlur(NG::LinearGradientBlurPara blurPara)140 void SetLinearGradientBlur(NG::LinearGradientBlurPara blurPara) override {}; SetDynamicLightUp(float rate,float lightUpDegree)141 void SetDynamicLightUp(float rate, float lightUpDegree) override {}; 142 void SetFrontBlur(const Dimension& radius, const BlurOption& blurOption) override; 143 void SetBackShadow(const std::vector<Shadow>& shadows) override; 144 void SetBlendMode(BlendMode blendMode) override; 145 void SetBlendApplyType(BlendApplyType blendApplyType) override; 146 void SetColorBlend(const Color& value) override; 147 void SetWindowBlur(float progress, WindowBlurStyle blurStyle) override; 148 void SetBrightness(const Dimension& value) override; 149 void SetGrayScale(const Dimension& value) override; 150 void SetContrast(const Dimension& value) override; 151 void SetSaturate(const Dimension& value) override; 152 void SetSepia(const Dimension& value) override; 153 void SetInvert(const InvertVariant& invert) override; SetSystemBarEffect(bool)154 void SetSystemBarEffect(bool) override {}; 155 void SetHueRotate(float value) override; SetUseEffect(bool)156 void SetUseEffect(bool) override {} SetUseShadowBatching(bool)157 void SetUseShadowBatching(bool) override {} SetFreeze(bool)158 void SetFreeze(bool) override {} 159 SetClickEffectLevel(const ClickEffectLevel & level,float scaleValue)160 void SetClickEffectLevel(const ClickEffectLevel& level, float scaleValue) override {} 161 void SetOnClick(GestureEventFunc&& tapEventFunc, ClickEventFunc&& clickEventFunc) override; SetOnGestureJudgeBegin(NG::GestureJudgeFunc && gestureJudgeFunc)162 void SetOnGestureJudgeBegin(NG::GestureJudgeFunc&& gestureJudgeFunc) override {} 163 void SetOnTouch(TouchEventFunc&& touchEventFunc) override; 164 void SetOnKeyEvent(OnKeyCallbackFunc&& onKeyCallback) override; 165 void SetOnMouse(OnMouseEventFunc&& onMouseEventFunc) override; 166 void SetOnHover(OnHoverFunc&& onHoverEventFunc) override; 167 void SetOnDelete(std::function<void()>&& onDeleteCallback) override; 168 void SetOnAppear(std::function<void()>&& onAppearCallback) override; 169 void SetOnDisAppear(std::function<void()>&& onDisAppearCallback) override; 170 void SetOnAccessibility(std::function<void(const std::string&)>&& onAccessibilityCallback) override; 171 void SetOnRemoteMessage(RemoteCallback&& onRemoteCallback) override; 172 void SetOnFocusMove(std::function<void(int32_t)>&& onFocusMoveCallback) override; 173 void SetOnFocus(OnFocusFunc&& onFocusCallback) override; 174 void SetOnBlur(OnBlurFunc&& onBlurCallback) override; SetDraggable(bool draggable)175 void SetDraggable(bool draggable) override {} SetDragPreviewOptions(const NG::DragPreviewOption & previewOption)176 void SetDragPreviewOptions(const NG::DragPreviewOption& previewOption) override {}; 177 void SetOnDragStart(NG::OnDragStartFunc&& onDragStart) override; 178 void SetOnDragEnd(OnNewDragFunc&& onDragEnd) override; 179 void SetOnDragEnter(NG::OnDragDropFunc&& onDragEnter) override; 180 void SetOnDragLeave(NG::OnDragDropFunc&& onDragLeave) override; 181 void SetOnDragMove(NG::OnDragDropFunc&& onDragMove) override; 182 void SetOnDrop(NG::OnDragDropFunc&& onDrop) override; 183 void SetOnVisibleChange( 184 std::function<void(bool, double)>&& onVisibleChange, const std::vector<double>& ratios) override; 185 void SetOnAreaChanged( 186 std::function<void(const Rect& oldRect, const Offset& oldOrigin, const Rect& rect, const Offset& origin)>&& 187 onAreaChanged) override; 188 189 void SetResponseRegion(const std::vector<DimensionRect>& responseRegion) override; 190 void SetEnabled(bool enabled) override; 191 void SetTouchable(bool touchable) override; 192 void SetFocusable(bool focusable) override; 193 void SetFocusNode(bool focus) override; 194 void SetTabIndex(int32_t index) override; 195 void SetFocusOnTouch(bool isSet) override; 196 void SetDefaultFocus(bool isSet) override; 197 void SetGroupDefaultFocus(bool isSet) override; 198 void SetInspectorId(const std::string& inspectorId) override; 199 void SetRestoreId(int32_t restoreId) override; 200 void SetDebugLine(const std::string& line) override; 201 void SetHoverEffect(HoverEffectType hoverEffect) override; 202 void SetHitTestMode(NG::HitTestMode hitTestMode) override; SetOnTouchTestFunc(NG::OnChildTouchTestFunc && onChildTouchTest)203 void SetOnTouchTestFunc(NG::OnChildTouchTestFunc&& onChildTouchTest) override {}; SetKeyboardShortcut(const std::string & value,const std::vector<ModifierKey> & keys,std::function<void ()> && onKeyboardShortcutAction)204 void SetKeyboardShortcut(const std::string& value, const std::vector<ModifierKey>& keys, 205 std::function<void()>&& onKeyboardShortcutAction) override {}; SetObscured(const std::vector<ObscuredReasons> & reasons)206 void SetObscured(const std::vector<ObscuredReasons>& reasons) override {}; SetMonopolizeEvents(bool monopolizeEvents)207 void SetMonopolizeEvents(bool monopolizeEvents) override {}; 208 209 // Disable event. DisableOnClick()210 void DisableOnClick() override {}; DisableOnTouch()211 void DisableOnTouch() override {}; DisableOnKeyEvent()212 void DisableOnKeyEvent() override {}; DisableOnHover()213 void DisableOnHover() override {}; DisableOnMouse()214 void DisableOnMouse() override {}; DisableOnAppear()215 void DisableOnAppear() override {}; DisableOnDisAppear()216 void DisableOnDisAppear() override {}; DisableOnAreaChange()217 void DisableOnAreaChange() override {}; DisableOnFocus()218 void DisableOnFocus() override {}; DisableOnBlur()219 void DisableOnBlur() override {}; 220 221 void BindBackground(std::function<void()>&& buildFunc, const Alignment& align) override; 222 void BindPopup(const RefPtr<PopupParam>& param, const RefPtr<AceType>& customNode) override; 223 void BindMenu(std::vector<NG::OptionParam>&& params, std::function<void()>&& buildFunc, 224 const NG::MenuParam& menuParam) override; 225 226 void BindContextMenu(ResponseType type, std::function<void()>& buildFunc, const NG::MenuParam& menuParam, 227 std::function<void()>& previewBuildFunc) override; BindContentCover(bool isShow,std::function<void (const std::string &)> && callback,std::function<void ()> && buildFunc,NG::ModalStyle & modalStyle,std::function<void ()> && onAppear,std::function<void ()> && onDisappear)228 void BindContentCover(bool isShow, std::function<void(const std::string&)>&& callback, 229 std::function<void()>&& buildFunc, NG::ModalStyle& modalStyle, std::function<void()>&& onAppear, 230 std::function<void()>&& onDisappear) override {} BindSheet(bool isShow,std::function<void (const std::string &)> && callback,std::function<void ()> && buildFunc,std::function<void ()> && titleBuildFunc,NG::SheetStyle & sheetStyle,std::function<void ()> && onAppear,std::function<void ()> && onDisappear,std::function<void ()> && shouldDismiss)231 void BindSheet(bool isShow, std::function<void(const std::string&)>&& callback, 232 std::function<void()>&& buildFunc, std::function<void()>&& titleBuildFunc, NG::SheetStyle& sheetStyle, 233 std::function<void()>&& onAppear, std::function<void()>&& onDisappear, 234 std::function<void()>&& shouldDismiss) override {} DismissSheet()235 void DismissSheet() override {} 236 237 void SetAccessibilityGroup(bool accessible) override; 238 void SetAccessibilityText(const std::string& text) override; 239 void SetAccessibilityDescription(const std::string& description) override; 240 void SetAccessibilityImportance(const std::string& importance) override; 241 void SetAccessibilityVirtualNode(std::function<void()>&& buildFunc) override; 242 SetProgressMask(const RefPtr<NG::ProgressMaskProperty> & progress)243 void SetProgressMask(const RefPtr<NG::ProgressMaskProperty>& progress) override {} SetForegroundColor(const Color & color)244 void SetForegroundColor(const Color& color) override {} SetForegroundColorStrategy(const ForegroundColorStrategy & strategy)245 void SetForegroundColorStrategy(const ForegroundColorStrategy& strategy) override {} SetAllowDrop(const std::set<std::string> & allowDrop)246 void SetAllowDrop(const std::set<std::string>& allowDrop) override {} SetDragPreview(const NG::DragDropInfo & info)247 void SetDragPreview(const NG::DragDropInfo& info) override {} 248 CreateAnimatablePropertyFloat(const std::string & propertyName,float value,const std::function<void (float)> & onCallbackEvent)249 void CreateAnimatablePropertyFloat(const std::string& propertyName, float value, 250 const std::function<void(float)>& onCallbackEvent) override {}; UpdateAnimatablePropertyFloat(const std::string & propertyName,float value)251 void UpdateAnimatablePropertyFloat(const std::string& propertyName, float value) override {}; 252 CreateAnimatableArithmeticProperty(const std::string & propertyName,RefPtr<NG::CustomAnimatableArithmetic> & value,std::function<void (const RefPtr<NG::CustomAnimatableArithmetic> &)> & onCallbackEvent)253 void CreateAnimatableArithmeticProperty(const std::string& propertyName, 254 RefPtr<NG::CustomAnimatableArithmetic>& value, 255 std::function<void(const RefPtr<NG::CustomAnimatableArithmetic>&)>& onCallbackEvent) override {}; UpdateAnimatableArithmeticProperty(const std::string & propertyName,RefPtr<NG::CustomAnimatableArithmetic> & value)256 void UpdateAnimatableArithmeticProperty(const std::string& propertyName, 257 RefPtr<NG::CustomAnimatableArithmetic>& value) override {}; UpdateSafeAreaExpandOpts(const NG::SafeAreaExpandOpts & opts)258 void UpdateSafeAreaExpandOpts(const NG::SafeAreaExpandOpts& opts) override {}; 259 260 // global light SetLightPosition(const CalcDimension & positionX,const CalcDimension & positionY,const CalcDimension & positionZ)261 void SetLightPosition( 262 const CalcDimension& positionX, const CalcDimension& positionY, const CalcDimension& positionZ) override {}; SetLightIntensity(const float value)263 void SetLightIntensity(const float value) override {}; SetLightIlluminated(const uint32_t value)264 void SetLightIlluminated(const uint32_t value) override {}; SetIlluminatedBorderWidth(const Dimension & value)265 void SetIlluminatedBorderWidth(const Dimension& value) override {}; SetBloom(const float value)266 void SetBloom(const float value) override {}; 267 }; 268 269 } // namespace OHOS::Ace::Framework 270 #endif // FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_JS_VIEW_MODELS_VIEW_ABSTRACT_MODEL_IMPL_H 271