From 077aa046e2eacaadf1d245cf0d0b312b880a896b Mon Sep 17 00:00:00 2001 From: BasavarajPS <45586075+BasavarajPS@users.noreply.github.com> Date: Tue, 16 Apr 2019 04:56:52 +0530 Subject: [PATCH] [WebView][TCSACR-219] Add WebView Settings API (#610) Signed-off-by: basavarajps --- .../Interop/Interop.ChromiumEwk.Settings.cs | 48 ++++++++ src/Tizen.WebView/Tizen.WebView/Settings.cs | 116 ++++++++++++++++++ 2 files changed, 164 insertions(+) diff --git a/src/Tizen.WebView/Interop/Interop.ChromiumEwk.Settings.cs b/src/Tizen.WebView/Interop/Interop.ChromiumEwk.Settings.cs index ab7a5efe0..be58eb72f 100644 --- a/src/Tizen.WebView/Interop/Interop.ChromiumEwk.Settings.cs +++ b/src/Tizen.WebView/Interop/Interop.ChromiumEwk.Settings.cs @@ -56,5 +56,53 @@ internal static partial class Interop [DllImport(Libraries.ChromiumEwk)] internal static extern int ewk_settings_default_font_size_get(IntPtr settings); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_scripts_can_open_windows_set(IntPtr settings, bool enable); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_scripts_can_open_windows_get(IntPtr settings); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_force_zoom_set(IntPtr settings, bool enable); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_force_zoom_get(IntPtr settings); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_text_autosizing_enabled_set(IntPtr settings, bool enable); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_text_autosizing_enabled_get(IntPtr settings); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_text_zoom_enabled_set(IntPtr settings, bool enable); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_text_zoom_enabled_get(IntPtr settings); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_uses_keypad_without_user_action_set(IntPtr settings, bool enable); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_uses_keypad_without_user_action_get(IntPtr settings); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_extra_feature_set(IntPtr settings, string name, bool enable); + + [DllImport(Libraries.ChromiumEwk)] + [return: MarshalAs(UnmanagedType.U1)] + internal static extern bool ewk_settings_extra_feature_get(IntPtr settings, string name); } } diff --git a/src/Tizen.WebView/Tizen.WebView/Settings.cs b/src/Tizen.WebView/Tizen.WebView/Settings.cs index 88d7a74ad..9e2c43d32 100644 --- a/src/Tizen.WebView/Tizen.WebView/Settings.cs +++ b/src/Tizen.WebView/Tizen.WebView/Settings.cs @@ -15,6 +15,7 @@ */ using System; +using System.ComponentModel; namespace Tizen.WebView { @@ -98,5 +99,120 @@ namespace Tizen.WebView Interop.ChromiumEwk.ewk_settings_default_font_size_set(_handle, value); } } + + /// + /// Whether the scripts can open windows. + /// + /// 6 + public bool ScriptsCanOpenWindows + { + get + { + return Interop.ChromiumEwk.ewk_settings_scripts_can_open_windows_get(_handle); + } + + set + { + Interop.ChromiumEwk.ewk_settings_scripts_can_open_windows_set(_handle, value); + } + } + + /// + /// Enable or Disable force zoom. + /// + /// 6 + [EditorBrowsable(EditorBrowsableState.Never)] + public bool ForceZoom + { + get + { + return Interop.ChromiumEwk.ewk_settings_force_zoom_get(_handle); + } + + set + { + Interop.ChromiumEwk.ewk_settings_force_zoom_set(_handle, value); + } + } + + /// + /// Enable or Disable text autosizing. + /// + /// 6 + [EditorBrowsable(EditorBrowsableState.Never)] + public bool TextAutosizing + { + get + { + return Interop.ChromiumEwk.ewk_settings_text_autosizing_enabled_get(_handle); + } + + set + { + Interop.ChromiumEwk.ewk_settings_text_autosizing_enabled_set(_handle, value); + } + } + + /// + /// Enable or Disable text zoom. + /// + /// 6 + [EditorBrowsable(EditorBrowsableState.Never)] + public bool TextZoom + { + get + { + return Interop.ChromiumEwk.ewk_settings_text_zoom_enabled_get(_handle); + } + + set + { + Interop.ChromiumEwk.ewk_settings_text_zoom_enabled_set(_handle, value); + } + } + + /// + /// Enable or Disable the usage of keypad without user action. + /// + /// 6 + [EditorBrowsable(EditorBrowsableState.Never)] + public bool UseKeypadWithoutUserAction + { + get + { + return Interop.ChromiumEwk.ewk_settings_uses_keypad_without_user_action_get(_handle); + } + + set + { + Interop.ChromiumEwk.ewk_settings_uses_keypad_without_user_action_set(_handle, value); + } + } + + /// + /// Enable or Disable Extra feature such as "edge,enable", "zoom,enable", "longpress,enable" + /// "doubletap,enable" and "selection,magnifier". + /// + /// The name of the feature user wants to set or reset. + /// The boolean value to set or reset. + /// 6 + [EditorBrowsable(EditorBrowsableState.Never)] + public void SetExtraFeature(string name, bool enable) + { + Interop.ChromiumEwk.ewk_settings_extra_feature_set(_handle, name, enable); + } + + /// + /// Get status of Extra feature such as "edge,enable", "zoom,enable", "longpress,enable" + /// "doubletap,enable" and "selection,magnifier". + /// + /// The name of the feature user wants to know status. + /// Status true or false is returned. + /// 6 + [EditorBrowsable(EditorBrowsableState.Never)] + public bool GetExtraFeatureStatus(string name) + { + return Interop.ChromiumEwk.ewk_settings_extra_feature_get(_handle, name); + } } } -- 2.34.1