// Copyright (c) 2024 Vuplex Inc. All rights reserved. // // Licensed under the Vuplex Commercial Software Library License, you may // not use this file except in compliance with the License. You may obtain // a copy of the License at // // https://vuplex.com/commercial-library-license // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. namespace Vuplex.WebView { /// /// An interface implemented by a webview if it supports separate /// `KeyDown()` and `KeyUp()` methods. /// /// /// /// // Dispatch ctrl + shift + right arrow /// await webViewPrefab.WaitUntilInitialized(); /// var webViewWithKeyDownAndUp = webViewPrefab.WebView as IWithKeyDownAndUp; /// if (webViewWithKeyDownAndUp != null) { /// webViewWithKeyDownAndUp.KeyDown("ArrowRight", KeyModifier.Control | KeyModifier.Shift); /// webViewWithKeyDownAndUp.KeyUp("ArrowRight", KeyModifier.Control | KeyModifier.Shift); /// } /// /// public interface IWithKeyDownAndUp { /// /// Dispatches a key down event to the webview. /// /// /// A key can either be a single character representing /// a unicode character (e.g. "A", "b", "?") or a [JavaScript Key value](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values) /// (e.g. "ArrowUp", "Enter"). /// /// /// Modifier flags that can be used to trigger keyboard shortcuts. /// void KeyDown(string key, KeyModifier modifiers); /// /// Dispatches a key up event to the webview. /// /// /// A key can either be a single character representing /// a unicode character (e.g. "A", "b", "?") or a [JavaScript Key value](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values) /// (e.g. "ArrowUp", "Enter"). /// /// /// Modifier flags that can be used to trigger keyboard shortcuts. /// void KeyUp(string key, KeyModifier modifiers); } }