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