• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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