1 /* 2 * Copyright (c) 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_JS_CANVAS_PATTERN_H 17 #define FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_JS_VIEW_JS_CANVAS_PATTERN_H 18 19 #include "base/memory/referenced.h" 20 #include "bridge/declarative_frontend/engine/bindings_defines.h" 21 #include "bridge/declarative_frontend/jsview/js_canvas_renderer.h" 22 #include "frameworks/bridge/declarative_frontend/jsview/js_canvas_renderer.h" 23 #include "frameworks/bridge/declarative_frontend/jsview/js_view_abstract.h" 24 #include "frameworks/core/components/common/properties/paint_state.h" 25 26 namespace OHOS::Ace::Framework { 27 class JSCanvasPattern : public Referenced { 28 public: 29 JSCanvasPattern() = default; 30 ~JSCanvasPattern() override = default; 31 32 static void JSBind(BindingTarget globalObj); 33 static void Constructor(const JSCallbackInfo& info); 34 static void Destructor(JSCanvasPattern* canvasPattern); 35 36 void JSSetTransform(const JSCallbackInfo& info); 37 38 TransformParam GetTransform() const; 39 void SetTransform(const TransformParam& transform); 40 SetCanvasRenderer(const WeakPtr<JSCanvasRenderer> & canvasRenderer)41 void SetCanvasRenderer(const WeakPtr<JSCanvasRenderer>& canvasRenderer) 42 { 43 canvasRenderWeak_ = canvasRenderer; 44 } 45 SetId(int32_t id)46 void SetId(int32_t id) 47 { 48 id_ = id; 49 } 50 GetId()51 int32_t GetId() const 52 { 53 return id_; 54 } 55 56 ACE_DISALLOW_COPY_AND_MOVE(JSCanvasPattern); 57 58 private: 59 int32_t id_ = 0; 60 TransformParam transform_; 61 WeakPtr<JSCanvasRenderer> canvasRenderWeak_; 62 }; 63 } // namespace OHOS::Ace::Framework 64 #endif // FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_JS_VIEW_JS_CANVAS_PATTERN_H 65 66