• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef 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