[WebView] [TCSACR-219] Add view APIs (#675)
[platform/core/csapi/tizenfx.git] / src / Tizen.WebView / Interop / Interop.ChromiumEwk.View.cs
1 /*
2  * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18 using System.Runtime.InteropServices;
19 using Tizen.WebView;
20
21 internal static partial class Interop
22 {
23     internal static partial class ChromiumEwk
24     {
25         [DllImport(Libraries.ChromiumEwk)]
26         internal static extern IntPtr ewk_view_add(IntPtr evas);
27
28         [DllImport(Libraries.ChromiumEwk)]
29         internal static extern IntPtr ewk_view_context_get(IntPtr obj);
30
31         [DllImport(Libraries.ChromiumEwk)]
32         internal static extern IntPtr ewk_view_settings_get(IntPtr obj);
33
34         [DllImport(Libraries.ChromiumEwk)]
35         internal static extern IntPtr ewk_view_back_forward_list_get(IntPtr obj);
36
37         [DllImport(Libraries.ChromiumEwk)]
38         internal static extern void ewk_view_back_forward_list_clear(IntPtr obj);
39
40         [DllImport(Libraries.ChromiumEwk)]
41         [return: MarshalAs(UnmanagedType.U1)]
42         internal static extern bool ewk_view_url_set(IntPtr obj, string url);
43
44         [DllImport(Libraries.ChromiumEwk, EntryPoint = "ewk_view_url_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
45         internal static extern IntPtr _ewk_view_url_get(IntPtr obj);
46
47         internal static string ewk_view_url_get(IntPtr obj)
48         {
49             IntPtr ptr = _ewk_view_url_get(obj);
50             return Marshal.PtrToStringAnsi(ptr);
51         }
52
53         [DllImport(Libraries.ChromiumEwk)]
54         [return: MarshalAs(UnmanagedType.U1)]
55         internal static extern bool ewk_view_html_string_load(IntPtr obj, string html, string baseUrl, string unreachableUrl);
56
57         [DllImport(Libraries.ChromiumEwk)]
58         [return: MarshalAs(UnmanagedType.U1)]
59         internal static extern bool ewk_view_reload(IntPtr obj);
60
61         [DllImport(Libraries.ChromiumEwk)]
62         [return: MarshalAs(UnmanagedType.U1)]
63         internal static extern bool ewk_view_stop(IntPtr obj);
64
65         [DllImport(Libraries.ChromiumEwk)]
66         [return: MarshalAs(UnmanagedType.U1)]
67         internal static extern bool ewk_view_back(IntPtr obj);
68
69         [DllImport(Libraries.ChromiumEwk)]
70         [return: MarshalAs(UnmanagedType.U1)]
71         internal static extern bool ewk_view_forward(IntPtr obj);
72
73         [DllImport(Libraries.ChromiumEwk)]
74         [return: MarshalAs(UnmanagedType.U1)]
75         internal static extern bool ewk_view_back_possible(IntPtr obj);
76
77         [DllImport(Libraries.ChromiumEwk)]
78         [return: MarshalAs(UnmanagedType.U1)]
79         internal static extern bool ewk_view_forward_possible(IntPtr obj);
80
81         internal delegate void ScriptExcuteCallback(IntPtr obj, IntPtr resultValue, IntPtr userData);
82
83         [DllImport(Libraries.ChromiumEwk)]
84         [return: MarshalAs(UnmanagedType.U1)]
85         internal static extern bool ewk_view_script_execute(IntPtr obj, string script, ScriptExcuteCallback callback, IntPtr userData);
86
87         [DllImport(Libraries.ChromiumEwk, EntryPoint = "ewk_view_title_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
88         internal static extern IntPtr _ewk_view_title_get(IntPtr obj);
89
90         internal static string ewk_view_title_get(IntPtr obj)
91         {
92             IntPtr ptr = _ewk_view_title_get(obj);
93             return Marshal.PtrToStringAnsi(ptr);
94         }
95
96         [DllImport(Libraries.ChromiumEwk, EntryPoint = "ewk_view_user_agent_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
97         internal static extern IntPtr _ewk_view_user_agent_get(IntPtr obj);
98
99         internal static string ewk_view_user_agent_get(IntPtr obj)
100         {
101             IntPtr ptr = _ewk_view_user_agent_get(obj);
102             return Marshal.PtrToStringAnsi(ptr);
103         }
104
105         [DllImport(Libraries.ChromiumEwk)]
106         [return: MarshalAs(UnmanagedType.U1)]
107         internal static extern bool ewk_view_user_agent_set(IntPtr obj, string userAgent);
108
109         [DllImport(Libraries.ChromiumEwk)]
110         [return: MarshalAs(UnmanagedType.U1)]
111         internal static extern bool ewk_view_focus_set(IntPtr obj, bool focused);
112
113         [DllImport(Libraries.ChromiumEwk)]
114         [return: MarshalAs(UnmanagedType.U1)]
115         internal static extern bool ewk_view_focus_get(IntPtr obj);
116
117         [DllImport(Libraries.ChromiumEwk)]
118         [return: MarshalAs(UnmanagedType.U1)]
119         internal static extern bool ewk_view_contents_size_get(IntPtr obj, out int width, out int height);
120
121         [DllImport(Libraries.ChromiumEwk)]
122         [return: MarshalAs(UnmanagedType.U1)]
123         internal static extern bool ewk_view_fullscreen_exit(IntPtr obj);
124
125         [DllImport(Libraries.ChromiumEwk)]
126         internal static extern double ewk_view_load_progress_get(IntPtr obj);
127
128         [DllImport(Libraries.ChromiumEwk)]
129         internal static extern void ewk_view_orientation_send(IntPtr obj, Orientation orientation);
130
131         [DllImport(Libraries.ChromiumEwk)]
132         internal static extern void ewk_view_suspend(IntPtr obj);
133
134         [DllImport(Libraries.ChromiumEwk)]
135         internal static extern void ewk_view_resume(IntPtr obj);
136
137         [DllImport(Libraries.ChromiumEwk)]
138         internal static extern double ewk_view_scale_get(IntPtr obj);
139
140         [DllImport(Libraries.ChromiumEwk)]
141         [return: MarshalAs(UnmanagedType.U1)]
142         internal static extern bool ewk_view_scale_set(IntPtr obj, double scaleFactor, int cX, int cY);
143
144         [DllImport(Libraries.ChromiumEwk)]
145         [return: MarshalAs(UnmanagedType.U1)]
146         internal static extern bool ewk_view_visibility_set(IntPtr obj, bool enable);
147
148         [DllImport(Libraries.ChromiumEwk)]
149         [return: MarshalAs(UnmanagedType.U1)]
150         internal static extern bool ewk_view_scroll_pos_get(IntPtr obj, out int X, out int Y);
151
152         [DllImport(Libraries.ChromiumEwk)]
153         [return: MarshalAs(UnmanagedType.U1)]
154         internal static extern bool ewk_view_scroll_set(IntPtr obj, int X, int Y);
155
156         [DllImport(Libraries.ChromiumEwk)]
157         internal static extern void ewk_view_scroll_by(IntPtr obj, int X, int Y);
158
159         [DllImport(Libraries.ChromiumEwk)]
160         [return: MarshalAs(UnmanagedType.U1)]
161         internal static extern bool ewk_view_text_find(IntPtr obj, string text, FindOption option, int maxMatchCount);
162
163         [DllImport(Libraries.ChromiumEwk)]
164         [return: MarshalAs(UnmanagedType.U1)]
165         internal static extern bool ewk_view_url_request_set(IntPtr obj, string url, HttpMethod method, IntPtr headers, string body);
166
167         [StructLayout(LayoutKind.Sequential, CharSet =CharSet.Ansi)]
168         internal struct ScriptMessage
169         {
170             public IntPtr name;
171             public IntPtr body;
172         }
173
174         internal delegate void ScriptMessageCallback(IntPtr obj, ScriptMessage message);
175
176         [DllImport(Libraries.ChromiumEwk)]
177         [return: MarshalAs(UnmanagedType.U1)]
178         internal static extern bool ewk_view_javascript_message_handler_add(IntPtr obj, ScriptMessageCallback callback, string name);
179
180         [DllImport(Libraries.ChromiumEwk)]
181         [return: MarshalAs(UnmanagedType.U1)]
182         internal static extern bool ewk_view_evaluate_javascript(IntPtr obj, string name, string result);
183     }
184 }