using ElectronNET.API.Entities; using System.Threading.Tasks; namespace ElectronNET.API { /// /// A BrowserView can be used to embed additional web content into a BrowserWindow. /// It is like a child window, except that it is positioned relative to its owning window. /// It is meant to be an alternative to the webview tag. /// public class BrowserView : ApiBase { protected override SocketTaskEventNameTypes SocketTaskEventNameType => SocketTaskEventNameTypes.DashesLowerFirst; protected override SocketTaskMessageNameTypes SocketTaskMessageNameType => SocketTaskMessageNameTypes.DashesLowerFirst; /// /// Gets the identifier. /// public override int Id { get; protected set; } /// /// Render and control web pages. /// public WebContents WebContents { get; internal set; } /// /// Resizes and moves the view to the supplied bounds relative to the window. /// (experimental) /// public Rectangle Bounds { get { return Task.Run(() => this.InvokeAsync()).Result; } set { BridgeConnector.Socket.Emit("browserView-bounds-set", Id, value); } } /// /// BrowserView /// internal BrowserView(int id) { Id = id; // Workaround: increase the Id so as not to conflict with BrowserWindow id // the backend detect about the value an BrowserView WebContents = new WebContents(id + 1000); } /// /// (experimental) /// /// public void SetAutoResize(AutoResizeOptions options) { BridgeConnector.Socket.Emit("browserView-setAutoResize", Id, options); } /// /// Color in #aarrggbb or #argb form. The alpha channel is optional. /// (experimental) /// /// Color in #aarrggbb or #argb form. The alpha channel is optional. public void SetBackgroundColor(string color) { BridgeConnector.Socket.Emit("browserView-setBackgroundColor", Id, color); } } }