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_PASTE_BUTTON_H 17 #define FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_JS_VIEW_JS_PASTE_BUTTON_H 18 19 #include "bridge/declarative_frontend/engine/bindings.h" 20 #include "bridge/declarative_frontend/engine/functions/js_function.h" 21 #include "bridge/declarative_frontend/jsview/js_interactable_view.h" 22 #include "bridge/declarative_frontend/jsview/js_sec_button_base.h" 23 #include "bridge/declarative_frontend/jsview/js_view_abstract.h" 24 #include "core/components_ng/pattern/security_component/paste_button/paste_button_common.h" 25 #include "core/event/mouse_event.h" 26 #include "core/gestures/click_recognizer.h" 27 28 namespace OHOS::Ace::Framework { 29 class JsPasteButtonClickFunction : public JsFunction { DECLARE_ACE_TYPE(JsPasteButtonClickFunction,JsFunction)30 DECLARE_ACE_TYPE(JsPasteButtonClickFunction, JsFunction) 31 public: 32 explicit JsPasteButtonClickFunction(const JSRef<JSFunc>& jsFunction) : 33 JsFunction(JSRef<JSObject>(), jsFunction) {} 34 ~JsPasteButtonClickFunction()35 ~JsPasteButtonClickFunction() override {}; Execute()36 void Execute() override 37 { 38 JsFunction::ExecuteJS(); 39 }; 40 41 void Execute(GestureEvent& info); 42 }; 43 44 class JSPasteButton : public JSViewAbstract, public JSInteractableView { 45 public: 46 static void JSBind(BindingTarget globalObj); 47 static bool ParseComponentStyle(const JSCallbackInfo& info, PasteButtonPasteDescription& text, 48 PasteButtonIconStyle& icon, int32_t& bg); 49 static void Create(const JSCallbackInfo& info); 50 static void JsOnClick(const JSCallbackInfo& info); 51 }; 52 } // namespace OHOS::Ace::Framework 53 #endif // FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_JS_VIEW_JS_PASTE_BUTTON_H 54