2 * Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Collections;
19 using System.ComponentModel;
20 using System.Collections.Generic;
22 namespace Tizen.WebView
25 /// This class provides the properties of Back Forward list item of a specific WebView.
27 /// <since_tizen> 6 </since_tizen>
28 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
29 public class BackForwardListItem
31 private IntPtr _item_handle;
34 /// Creates a Back Forward List Item object.
36 /// <since_tizen> 6 </since_tizen>
37 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
38 internal BackForwardListItem(IntPtr handle)
40 _item_handle = handle;
44 /// Url of the back forward list item.
46 /// <since_tizen> 6 </since_tizen>
47 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
52 return Interop.ChromiumEwk.ewk_back_forward_list_item_url_get(_item_handle);
57 /// Title of the back forward list item.
59 /// <since_tizen> 6 </since_tizen>
60 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
65 return Interop.ChromiumEwk.ewk_back_forward_list_item_title_get(_item_handle);
70 /// Original Url of the back forward list item.
72 /// <since_tizen> 6 </since_tizen>
73 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
74 public string OriginalUrl
78 return Interop.ChromiumEwk.ewk_back_forward_list_item_original_url_get(_item_handle);
84 /// This class provides the properties of Back Forward list of a specific WebView.
86 /// <since_tizen> 6 </since_tizen>
87 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
88 public class BackForwardList
90 private IntPtr _list_handle;
92 internal BackForwardList(IntPtr handle)
94 _list_handle = handle;
98 /// Current item of the back forward list.
101 /// BackForward List can be null if there is no current item.
103 /// <since_tizen> 6 </since_tizen>
104 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
105 public BackForwardListItem CurrentItem
109 IntPtr itemPtr = Interop.ChromiumEwk.ewk_back_forward_list_current_item_get(_list_handle);
110 if(itemPtr != null) {
111 BackForwardListItem item = new BackForwardListItem(itemPtr);
121 /// Previous item of the back forward list and null if no previous item.
124 /// BackForward List can be null if there is no previous item.
126 /// <since_tizen> 6 </since_tizen>
127 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
128 public BackForwardListItem PreviousItem
132 IntPtr itemPtr = Interop.ChromiumEwk.ewk_back_forward_list_previous_item_get(_list_handle);
133 if(itemPtr != null) {
134 BackForwardListItem item = new BackForwardListItem(itemPtr);
144 /// Gets the back forward list count.
146 /// <since_tizen> 6 </since_tizen>
147 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
152 return Interop.ChromiumEwk.ewk_back_forward_list_count(_list_handle);
156 /// Gets the list containing the items preceding the current item
157 /// limited by limit.
159 /// <param name="limit"> limit The number of items to retrieve, if limit -1 all items preceding current item are returned.</param>
160 /// <returns>The list of the BackForwardListItem of back items.</returns>
161 /// <since_tizen> 6 </since_tizen>
162 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
163 public IList<BackForwardListItem> BackItems(int limit)
165 IntPtr list = Interop.ChromiumEwk.ewk_back_forward_list_n_back_items_copy(_list_handle, limit);
166 List<BackForwardListItem> backItemsList = new List<BackForwardListItem>();
168 var iter = Interop.Eina.eina_list_iterator_new(list);
169 for (IntPtr data; Interop.Eina.eina_iterator_next(iter, out data);) {
170 backItemsList.Add(new BackForwardListItem(data));
173 Interop.Eina.eina_iterator_free(iter);
174 Interop.Eina.eina_list_free(list);
176 return backItemsList;
180 /// Gets the list containing the items following the current item
181 /// limited by limit.
183 /// <param name="limit"> limit The number of items to retrieve, if limit is -1 all items following current item are returned.</param>
184 /// <returns>The list of the BackForwardListItem of forward items.</returns>
185 /// <since_tizen> 6 </since_tizen>
186 [Obsolete("Deprecated since API Level 10. Will be removed in API Level 12.")]
187 public IList<BackForwardListItem> ForwardItems(int limit)
189 IntPtr list = Interop.ChromiumEwk.ewk_back_forward_list_n_forward_items_copy(_list_handle, limit);
190 List<BackForwardListItem> forwardItemsList = new List<BackForwardListItem>();
192 var iter = Interop.Eina.eina_list_iterator_new(list);
193 for (IntPtr data; Interop.Eina.eina_iterator_next(iter, out data);) {
194 forwardItemsList.Add(new BackForwardListItem(data));
197 Interop.Eina.eina_iterator_free(iter);
198 Interop.Eina.eina_list_free(list);
200 return forwardItemsList;