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 /*--ark web()--*/ SetHtmlTextV2(const ArkWebString & htmlText)155 virtual bool SetHtmlTextV2(const ArkWebString& htmlText) { return false; } 156 157 /*--ark web()--*/ SetPlainTextV2(const ArkWebString & plainText)158 virtual bool SetPlainTextV2(const ArkWebString& plainText) { return false; } 159 160 /*--ark web()--*/ GetHtmlTextV2(ArkWebString & data)161 virtual bool GetHtmlTextV2(ArkWebString& data) { return false; } 162 163 /*--ark web()--*/ GetPlainTextV2(ArkWebString & data)164 virtual bool GetPlainTextV2(ArkWebString& data) { return false; } 165 166 /*--ark web()--*/ SetCustomDataV2(ArkWebUInt8VectorMap & data)167 virtual bool SetCustomDataV2(ArkWebUInt8VectorMap& data) { return false; } 168 169 /*--ark web()--*/ GetUriV2(ArkWebString & data)170 virtual bool GetUriV2(ArkWebString& data) { return false; } 171 172 /*--ark web()--*/ GetCustomDataV2(ArkWebUInt8VectorMap & data)173 virtual bool GetCustomDataV2(ArkWebUInt8VectorMap& data) { return false; } 174 }; 175 176 /*--ark web(source=webview)--*/ 177 class ArkPasteDataAdapter : public virtual ArkWebBaseRefCounted { 178 public: 179 /*--ark web()--*/ 180 virtual void AddHtmlRecord(const ArkWebString& html) = 0; 181 182 /*--ark web()--*/ 183 virtual void AddTextRecord(const ArkWebString& text) = 0; 184 185 /*--ark web()--*/ 186 virtual ArkWebStringVector GetMimeTypes() = 0; 187 188 /*--ark web()--*/ 189 virtual void GetPrimaryHtml(void* data) = 0; 190 191 /*--ark web()--*/ 192 virtual void GetPrimaryText(void* data) = 0; 193 194 /*--ark web()--*/ 195 virtual void GetPrimaryMimeType(void* data) = 0; 196 197 /*--ark web()--*/ 198 virtual ArkWebRefPtr<ArkPasteDataRecordAdapter> GetRecordAt(size_t index) = 0; 199 200 /*--ark web()--*/ 201 virtual size_t GetRecordCount() = 0; 202 203 /*--ark web()--*/ 204 virtual ArkPasteRecordVector AllRecords() = 0; 205 }; 206 207 } // namespace OHOS::ArkWeb 208 209 #endif // ARK_PASTEBOARD_CLIENT_ADAPTER_H 210