1 /* 2 * Copyright (c) 2022 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 23 namespace OHOS::Ace::Framework { 24 25 class ViewAbstractModelImpl : public ViewAbstractModel { 26 public: 27 ~ViewAbstractModelImpl() override = default; 28 29 static void SwapBackBorder(const RefPtr<Decoration>& decoration); 30 static OnDragFunc ToDragFunc(NG::OnDragStartFunc&& onDragStart); 31 32 void SetWidth(const Dimension& width) override; 33 void SetHeight(const Dimension& height) override; ClearWidthOrHeight(bool isWidth)34 void ClearWidthOrHeight(bool isWidth) override {}; 35 void SetMinWidth(const Dimension& minWidth) override; 36 void SetMinHeight(const Dimension& minHeight) override; 37 void SetMaxWidth(const Dimension& maxWidth) override; 38 void SetMaxHeight(const Dimension& maxHeight) override; 39 40 void SetBackgroundColor(const Color& color) override; 41 void SetBackgroundImage(const std::string& src, RefPtr<ThemeConstants> themeConstant) override; 42 void SetBackgroundImageRepeat(const ImageRepeat& imageRepeat) override; 43 void SetBackgroundImageSize(const BackgroundImageSize& bgImgSize) override; 44 void SetBackgroundImagePosition(const BackgroundImagePosition& bgImgPosition) override; 45 void SetBackgroundBlurStyle(const BlurStyleOption& bgBlurStyle) override; 46 void SetPadding(const Dimension& value) override; 47 void SetPaddings(const std::optional<Dimension>& top, const std::optional<Dimension>& bottom, 48 const std::optional<Dimension>& left, const std::optional<Dimension>& right) override; 49 void SetMargin(const Dimension& value) override; 50 void SetMargins(const std::optional<Dimension>& top, const std::optional<Dimension>& bottom, 51 const std::optional<Dimension>& left, const std::optional<Dimension>& right) override; 52 void SetBorderRadius(const Dimension& value) override; 53 void SetBorderRadius(const std::optional<Dimension>& radiusTopLeft, const std::optional<Dimension>& radiusTopRight, 54 const std::optional<Dimension>& radiusBottomLeft, const std::optional<Dimension>& radiusBottomRight) override; 55 void SetBorderColor(const Color& value) override; 56 void SetBorderColor(const std::optional<Color>& colorLeft, const std::optional<Color>& colorRight, 57 const std::optional<Color>& colorTop, const std::optional<Color>& colorBottom) override; 58 void SetBorderWidth(const Dimension& value) override; 59 void SetBorderWidth(const std::optional<Dimension>& left, const std::optional<Dimension>& right, 60 const std::optional<Dimension>& top, const std::optional<Dimension>& bottom) override; 61 void SetBorderStyle(const BorderStyle& value) override; 62 void SetBorderStyle(const std::optional<BorderStyle>& styleLeft, const std::optional<BorderStyle>& styleRight, 63 const std::optional<BorderStyle>& styleTop, const std::optional<BorderStyle>& styleBottom) override; 64 void SetBorderImage(const RefPtr<BorderImage>& borderImage, uint8_t bitset) override; 65 void SetBorderImageGradient(const NG::Gradient& gradient) override; 66 67 void SetLayoutPriority(int32_t priority) override; 68 void SetLayoutWeight(int32_t value) override; 69 void SetLayoutDirection(TextDirection value) override; 70 void SetAspectRatio(float ratio) override; 71 void SetAlign(const Alignment& alignment) override; 72 void SetAlignRules(const std::map<AlignDirection, AlignRule>& alignRules) override; 73 void SetUseAlign( 74 AlignDeclarationPtr declaration, AlignDeclaration::Edge edge, const std::optional<Dimension>& offset) override; 75 void SetGrid(std::optional<uint32_t> span, std::optional<int32_t> offset, 76 GridSizeType type = GridSizeType::UNDEFINED) override; 77 void SetZIndex(int32_t value) override; 78 79 void SetPosition(const Dimension& x, const Dimension& y) override; 80 void SetOffset(const Dimension& x, const Dimension& y) override; 81 void MarkAnchor(const Dimension& x, const Dimension& y) override; 82 83 void SetScale(float x, float y, float z) override; 84 void SetPivot(const Dimension& x, const Dimension& y) override; 85 void SetTranslate(const Dimension& x, const Dimension& y, const Dimension& z) override; 86 void SetRotate(float x, float y, float z, float angle) override; 87 void SetTransformMatrix(const std::vector<float>& matrix) override; 88 89 void SetOpacity(double opacity, bool passThrough = false) override; 90 void SetTransition(const NG::TransitionOptions& transitionOptions, bool passThrough = false) override; 91 void SetOverlay(const std::string& text, const std::optional<Alignment>& align, 92 const std::optional<Dimension>& offsetX, const std::optional<Dimension>& offsetY) override; 93 void SetVisibility(VisibleType visible, std::function<void(int32_t)>&& changeEventFunc) override; 94 void SetSharedTransition( 95 const std::string& shareId, const std::shared_ptr<SharedTransitionOption>& option) override; 96 void SetGeometryTransition(const std::string& id) override; 97 void SetMotionPath(const MotionPathOption& option) override; 98 99 void SetFlexBasis(const Dimension& value) override; 100 void SetAlignSelf(FlexAlign value) override; 101 void SetFlexShrink(float value) override; 102 void SetFlexGrow(float value) override; 103 void SetDisplayIndex(int32_t value) override; 104 105 void SetLinearGradient(const NG::Gradient& gradient) override; 106 void SetSweepGradient(const NG::Gradient& gradient) override; 107 void SetRadialGradient(const NG::Gradient& gradient) override; 108 109 void SetClipShape(const RefPtr<BasicShape>& shape) override; 110 void SetClipEdge(bool isClip) override; 111 void SetMask(const RefPtr<BasicShape>& shape) override; 112 113 void SetBackdropBlur(const Dimension& radius) override; 114 void SetFrontBlur(const Dimension& radius) override; 115 void SetBackShadow(const std::vector<Shadow>& shadows) override; 116 void SetColorBlend(const Color& value) override; 117 void SetWindowBlur(float progress, WindowBlurStyle blurStyle) override; 118 void SetBrightness(const Dimension& value) override; 119 void SetGrayScale(const Dimension& value) override; 120 void SetContrast(const Dimension& value) override; 121 void SetSaturate(const Dimension& value) override; 122 void SetSepia(const Dimension& value) override; 123 void SetInvert(const Dimension& value) override; 124 void SetHueRotate(float value) override; 125 126 void SetOnClick(GestureEventFunc&& tapEventFunc, ClickEventFunc&& clickEventFunc) override; 127 void SetOnTouch(TouchEventFunc&& touchEventFunc) override; 128 void SetOnKeyEvent(OnKeyCallbackFunc&& onKeyCallback) override; 129 void SetOnMouse(OnMouseEventFunc&& onMouseEventFunc) override; 130 void SetOnHover(OnHoverEventFunc&& onHoverEventFunc) override; 131 void SetOnDelete(std::function<void()>&& onDeleteCallback) override; 132 void SetOnAppear(std::function<void()>&& onAppearCallback) override; 133 void SetOnDisAppear(std::function<void()>&& onDisAppearCallback) override; 134 void SetOnAccessibility(std::function<void(const std::string&)>&& onAccessibilityCallback) override; 135 void SetOnRemoteMessage(RemoteCallback&& onRemoteCallback) override; 136 void SetOnFocusMove(std::function<void(int32_t)>&& onFocusMoveCallback) override; 137 void SetOnFocus(OnFocusFunc&& onFocusCallback) override; 138 void SetOnBlur(OnBlurFunc&& onBlurCallback) override; 139 void SetOnDragStart(NG::OnDragStartFunc&& onDragStart) override; 140 void SetOnDragEnter(NG::OnDragDropFunc&& onDragEnter) override; 141 void SetOnDragLeave(NG::OnDragDropFunc&& onDragLeave) override; 142 void SetOnDragMove(NG::OnDragDropFunc&& onDragMove) override; 143 void SetOnDrop(NG::OnDragDropFunc&& onDrop) override; 144 void SetOnVisibleChange( 145 std::function<void(bool, double)>&& onVisibleChange, const std::vector<double>& ratios) override; 146 void SetOnAreaChanged( 147 std::function<void(const Rect& oldRect, const Offset& oldOrigin, const Rect& rect, const Offset& origin)>&& 148 onAreaChanged) override; 149 150 void SetResponseRegion(const std::vector<DimensionRect>& responseRegion) override; 151 void SetEnabled(bool enabled) override; 152 void SetTouchable(bool touchable) override; 153 void SetFocusable(bool focusable) override; 154 void SetFocusNode(bool focus) override; 155 void SetTabIndex(int32_t index) override; 156 void SetFocusOnTouch(bool isSet) override; 157 void SetDefaultFocus(bool isSet) override; 158 void SetGroupDefaultFocus(bool isSet) override; 159 void SetInspectorId(const std::string& inspectorId) override; 160 void SetRestoreId(int32_t restoreId) override; 161 void SetDebugLine(const std::string& line) override; 162 void SetHoverEffect(HoverEffectType hoverEffect) override; 163 void SetHitTestMode(NG::HitTestMode hitTestMode) override; 164 165 void BindPopup(const RefPtr<PopupParam>& param, const RefPtr<AceType>& customNode) override; 166 void BindMenu(std::vector<NG::OptionParam>&& params, std::function<void()>&& buildFunc) override; 167 void BindContextMenu(ResponseType type, std::function<void()>&& buildFunc) override; 168 169 void SetAccessibilityGroup(bool accessible) override; 170 void SetAccessibilityText(const std::string& text) override; 171 void SetAccessibilityDescription(const std::string& description) override; 172 void SetAccessibilityImportance(const std::string& importance) override; 173 }; 174 175 } // namespace OHOS::Ace::Framework 176 #endif // FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_JS_VIEW_MODELS_VIEW_ABSTRACT_MODEL_IMPL_H 177