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 ARK_PASTEBOARD_CLIENT_ADAPTER_H 17 #define ARK_PASTEBOARD_CLIENT_ADAPTER_H 18 #pragma once 19 20 #include "ohos_adapter/include/ark_paste_record_vector.h" 21 22 #include "base/include/ark_web_base_ref_counted.h" 23 #include "base/include/ark_web_types.h" 24 25 namespace OHOS::ArkWeb { 26 27 /*--ark web(source=webcore)--*/ 28 class ArkClipBoardImageDataAdapter : public virtual ArkWebBaseRefCounted { 29 public: 30 /*--ark web()--*/ 31 virtual int32_t GetColorType() = 0; 32 33 /*--ark web()--*/ 34 virtual int32_t GetAlphaType() = 0; 35 36 /*--ark web()--*/ 37 virtual uint32_t* GetData() = 0; 38 39 /*--ark web()--*/ 40 virtual size_t GetDataSize() = 0; 41 42 /*--ark web()--*/ 43 virtual size_t GetRowBytes() = 0; 44 45 /*--ark web()--*/ 46 virtual int32_t GetWidth() = 0; 47 48 /*--ark web()--*/ 49 virtual int32_t GetHeight() = 0; 50 51 /*--ark web()--*/ 52 virtual void SetColorType(int32_t color) = 0; 53 54 /*--ark web()--*/ 55 virtual void SetAlphaType(int32_t alpha) = 0; 56 57 /*--ark web()--*/ 58 virtual void SetData(uint32_t* data) = 0; 59 60 /*--ark web()--*/ 61 virtual void SetDataSize(size_t size) = 0; 62 63 /*--ark web()--*/ 64 virtual void SetRowBytes(size_t rowBytes) = 0; 65 66 /*--ark web()--*/ 67 virtual void SetWidth(int32_t width) = 0; 68 69 /*--ark web()--*/ 70 virtual void SetHeight(int32_t height) = 0; 71 }; 72 73 /*--ark web(source=webcore)--*/ 74 class ArkPasteBoardObserverAdapter : public virtual ArkWebBaseRefCounted { 75 public: 76 /*--ark web()--*/ 77 virtual void OnPasteBoardChanged() = 0; 78 }; 79 80 /*--ark web(source=webview)--*/ 81 class ArkPasteBoardClientAdapter : public virtual ArkWebBaseRefCounted { 82 public: 83 /*--ark web()--*/ 84 virtual bool GetPasteData(ArkPasteRecordVector& data) = 0; 85 86 /*--ark web()--*/ 87 virtual void SetPasteData(ArkPasteRecordVector& data, int32_t copyOption) = 0; 88 89 /*--ark web()--*/ 90 virtual bool HasPasteData() = 0; 91 92 /*--ark web()--*/ 93 virtual void Clear() = 0; 94 95 /*--ark web()--*/ 96 virtual int32_t OpenRemoteUri(const ArkWebString& path) = 0; 97 98 /*--ark web()--*/ 99 virtual bool IsLocalPaste() = 0; 100 101 /*--ark web()--*/ 102 virtual uint32_t GetTokenId() = 0; 103 104 /*--ark web()--*/ 105 virtual int32_t AddPasteboardChangedObserver(ArkWebRefPtr<ArkPasteBoardObserverAdapter> callback) = 0; 106 107 /*--ark web()--*/ 108 virtual void RemovePasteboardChangedObserver(int32_t callbackId) = 0; 109 }; 110 111 /*--ark web(source=webview)--*/ 112 class ArkPasteDataRecordAdapter : public virtual ArkWebBaseRefCounted { 113 public: 114 /*--ark web()--*/ 115 static ArkWebRefPtr<ArkPasteDataRecordAdapter> NewRecord(const ArkWebString& mimeType); 116 117 /*--ark web()--*/ 118 static ArkWebRefPtr<ArkPasteDataRecordAdapter> NewRecord( 119 const ArkWebString& mimeType, void* htmlText, void* plainText); 120 121 /*--ark web()--*/ 122 virtual bool SetHtmlText(void* htmlText) = 0; 123 124 /*--ark web()--*/ 125 virtual bool SetPlainText(void* plainText) = 0; 126 127 /*--ark web()--*/ 128 virtual bool SetImgData(ArkWebRefPtr<ArkClipBoardImageDataAdapter> imageData) = 0; 129 130 /*--ark web()--*/ 131 virtual ArkWebString GetMimeType() = 0; 132 133 /*--ark web()--*/ 134 virtual void GetHtmlText(void* data) = 0; 135 136 /*--ark web()--*/ 137 virtual void GetPlainText(void* data) = 0; 138 139 /*--ark web()--*/ 140 virtual bool GetImgData(ArkWebRefPtr<ArkClipBoardImageDataAdapter> imageData) = 0; 141 142 /*--ark web()--*/ 143 virtual bool SetUri(const ArkWebString& uriString) = 0; 144 145 /*--ark web()--*/ 146 virtual bool SetCustomData(void* data) = 0; 147 148 /*--ark web()--*/ 149 virtual void GetUri(void* data) = 0; 150 151 /*--ark web()--*/ 152 virtual void GetCustomData(void* data) = 0; 153 }; 154 155 /*--ark web(source=webview)--*/ 156 class ArkPasteDataAdapter : public virtual ArkWebBaseRefCounted { 157 public: 158 /*--ark web()--*/ 159 virtual void AddHtmlRecord(const ArkWebString& html) = 0; 160 161 /*--ark web()--*/ 162 virtual void AddTextRecord(const ArkWebString& text) = 0; 163 164 /*--ark web()--*/ 165 virtual ArkWebStringVector GetMimeTypes() = 0; 166 167 /*--ark web()--*/ 168 virtual void GetPrimaryHtml(void* data) = 0; 169 170 /*--ark web()--*/ 171 virtual void GetPrimaryText(void* data) = 0; 172 173 /*--ark web()--*/ 174 virtual void GetPrimaryMimeType(void* data) = 0; 175 176 /*--ark web()--*/ 177 virtual ArkWebRefPtr<ArkPasteDataRecordAdapter> GetRecordAt(size_t index) = 0; 178 179 /*--ark web()--*/ 180 virtual size_t GetRecordCount() = 0; 181 182 /*--ark web()--*/ 183 virtual ArkPasteRecordVector AllRecords() = 0; 184 }; 185 186 } // namespace OHOS::ArkWeb 187 188 #endif // ARK_PASTEBOARD_CLIENT_ADAPTER_H 189