Release 4.0.0-preview1-00051
[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
20 internal static partial class Interop
21 {
22     internal static partial class ChromiumEwk
23     {
24         [DllImport(Libraries.ChromiumEwk)]
25         internal static extern IntPtr ewk_view_add(IntPtr evas);
26
27         [DllImport(Libraries.ChromiumEwk)]
28         internal static extern IntPtr ewk_view_context_get(IntPtr obj);
29
30         [DllImport(Libraries.ChromiumEwk)]
31         internal static extern IntPtr ewk_view_settings_get(IntPtr obj);
32
33         [DllImport(Libraries.ChromiumEwk)]
34         [return: MarshalAs(UnmanagedType.U1)]
35         internal static extern bool ewk_view_url_set(IntPtr obj, string url);
36
37         [DllImport(Libraries.ChromiumEwk, EntryPoint = "ewk_view_url_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
38         internal static extern IntPtr _ewk_view_url_get(IntPtr obj);
39
40         internal static string ewk_view_url_get(IntPtr obj)
41         {
42             IntPtr ptr = _ewk_view_url_get(obj);
43             return Marshal.PtrToStringAnsi(ptr);
44         }
45
46         [DllImport(Libraries.ChromiumEwk)]
47         [return: MarshalAs(UnmanagedType.U1)]
48         internal static extern bool ewk_view_html_string_load(IntPtr obj, string html, string baseUrl, string unreachableUrl);
49
50         [DllImport(Libraries.ChromiumEwk)]
51         [return: MarshalAs(UnmanagedType.U1)]
52         internal static extern bool ewk_view_reload(IntPtr obj);
53
54         [DllImport(Libraries.ChromiumEwk)]
55         [return: MarshalAs(UnmanagedType.U1)]
56         internal static extern bool ewk_view_stop(IntPtr obj);
57
58         [DllImport(Libraries.ChromiumEwk)]
59         [return: MarshalAs(UnmanagedType.U1)]
60         internal static extern bool ewk_view_back(IntPtr obj);
61
62         [DllImport(Libraries.ChromiumEwk)]
63         [return: MarshalAs(UnmanagedType.U1)]
64         internal static extern bool ewk_view_forward(IntPtr obj);
65
66         [DllImport(Libraries.ChromiumEwk)]
67         [return: MarshalAs(UnmanagedType.U1)]
68         internal static extern bool ewk_view_back_possible(IntPtr obj);
69
70         [DllImport(Libraries.ChromiumEwk)]
71         [return: MarshalAs(UnmanagedType.U1)]
72         internal static extern bool ewk_view_forward_possible(IntPtr obj);
73
74         internal delegate void ScriptExcuteCallback(IntPtr obj, IntPtr resultValue, IntPtr userData);
75
76         [DllImport(Libraries.ChromiumEwk)]
77         [return: MarshalAs(UnmanagedType.U1)]
78         internal static extern bool ewk_view_script_execute(IntPtr obj, string script, ScriptExcuteCallback callback, IntPtr userData);
79
80         [DllImport(Libraries.ChromiumEwk, EntryPoint = "ewk_view_title_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
81         internal static extern IntPtr _ewk_view_title_get(IntPtr obj);
82
83         internal static string ewk_view_title_get(IntPtr obj)
84         {
85             IntPtr ptr = _ewk_view_url_get(obj);
86             return Marshal.PtrToStringAnsi(ptr);
87         }
88
89         [DllImport(Libraries.ChromiumEwk, EntryPoint = "ewk_view_user_agent_get", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, CharSet = CharSet.Ansi)]
90         internal static extern IntPtr _ewk_view_user_agent_get(IntPtr obj);
91
92         internal static string ewk_view_user_agent_get(IntPtr obj)
93         {
94             IntPtr ptr = _ewk_view_user_agent_get(obj);
95             return Marshal.PtrToStringAnsi(ptr);
96         }
97
98         [DllImport(Libraries.ChromiumEwk)]
99         [return: MarshalAs(UnmanagedType.U1)]
100         internal static extern bool ewk_view_user_agent_set(IntPtr obj, string userAgent);
101
102         [DllImport(Libraries.ChromiumEwk)]
103         [return: MarshalAs(UnmanagedType.U1)]
104         internal static extern bool ewk_view_focus_set(IntPtr obj, bool focused);
105
106         [DllImport(Libraries.ChromiumEwk)]
107         [return: MarshalAs(UnmanagedType.U1)]
108         internal static extern bool ewk_view_focus_get(IntPtr obj);
109
110         [StructLayout(LayoutKind.Sequential, CharSet =CharSet.Ansi)]
111         internal struct ScriptMessage
112         {
113             public IntPtr name;
114             public IntPtr body;
115         }
116
117         internal delegate void ScriptMessageCallback(IntPtr obj, ScriptMessage message);
118
119         [DllImport(Libraries.ChromiumEwk)]
120         [return: MarshalAs(UnmanagedType.U1)]
121         internal static extern bool ewk_view_javascript_message_handler_add(IntPtr obj, ScriptMessageCallback callback, string name);
122
123         [DllImport(Libraries.ChromiumEwk)]
124         [return: MarshalAs(UnmanagedType.U1)]
125         internal static extern bool ewk_view_evaluate_javascript(IntPtr obj, string name, string result);
126     }
127 }