/// <summary> /// Constructor with setup parameters /// </summary> public KekuleJsWinFormsBrowserMsft( KekuleJsControlMode renderMode, Control containingControl) { RendererMode = renderMode; ContainingControl = containingControl; if (renderMode == KekuleJsControlMode.OffScreenSvg) // create browser control and navigate to a blank page so the Browser.Document is defined { Browser = new WebBrowser(); // create the browser to contain the generated SVG Browser.ScrollBarsEnabled = false; Browser.ScriptErrorsSuppressed = JavaScriptManager.SuppressJavaScriptErrors; Browser.ObjectForScripting = new JavaScriptManager(this); // create ScriptManager that can call back to this JavaScriptInterface instance from within web page JavaScript WindowsMessageFilter BrowserRtClickMessageFilter; // to catch rt-click within Scilligence Webbrowser control //BrowserRtClickMessageFilter = // WindowsMessageFilter.CreateRightClickMessageFilter(Browser, BrowserControlRightMouseButtonMessageReceived); BrowserWrapper = new WebBrowserWrapper(Browser); BrowserWrapper.NavigateAndWait("about:blank"); // create initial blank page } if (Debug) { DebugLog.Message("KekuleJsWinFormsBrowserMsft instance created" + IdText); } return; }
/// <summary> /// Initialize WebBrowser control /// </summary> /// <param name="webBrowserContainer"></param> /// <param name="webBrowser"></param> /// <param name="statusTextBox"></param> public void InitializeWebBrowserControl( WebBrowser webBrowser, Control webBrowserContainer, TextEdit statusTextBox) { WebPlayerApiIsAvailable = false; WebBrowser = webBrowser; WebBrowser.ScriptErrorsSuppressed = true; //JavaScriptManager.SuppressJavaScriptErrors; WbContainer = webBrowserContainer; StatusTextBox = statusTextBox; WebBrowser.ObjectForScripting = new ScriptManager(this); // create ScriptManager that can call back to this JavaScriptInterface instance from within web page JavaScript WebBrowserWrapper = new WebBrowserWrapper(WebBrowser); return; }
/// <summary> /// Create WinForms.ChromiumWebBrowser and navigate to the initial page /// </summary> public void LoadInitialPage() { if (Browser != null) { return; } string url = ""; if (RendererMode == KekuleJsControlMode.OffScreenBitmap) { url = ServicesIniFile.ReadWithException("KekuleJsRendererUrl"); } else if (RendererMode == KekuleJsControlMode.BrowserViewOnly) { url = ServicesIniFile.ReadWithException("KekuleJsRendererUrl"); } else if (RendererMode == KekuleJsControlMode.BrowserEditor) { url = ServicesIniFile.ReadWithException("KekuleJsEditorUrl"); } if (Debug) { DebugLog.Message("Loading initial " + RendererMode + " mode page: " + url + IdText); } Browser = new WebBrowser(); // create the browser Browser.Location = new Point(0, 0); Browser.Size = new Size(256, 256); Browser.Dock = DockStyle.None; Browser.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right); Browser.Name = "WebBrowser"; Browser.ScrollBarsEnabled = false; Browser.ScriptErrorsSuppressed = JavaScriptManager.SuppressJavaScriptErrors; Browser.ObjectForScripting = new JavaScriptManager(this); // create ScriptManager that can call back to this JavaScriptInterface instance from within web page JavaScript // The following three events are also in WebBrowserWrapper (not needed here) Browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Browser_DocumentCompleted); Browser.Navigated += new WebBrowserNavigatedEventHandler(this.WebBrowser_Navigated); Browser.Navigating += new WebBrowserNavigatingEventHandler(this.WebBrowser_Navigating); Browser.ProgressChanged += new WebBrowserProgressChangedEventHandler(Browser_ProgressChanged); Browser.StatusTextChanged += new EventHandler(WebBrowserStatusTextChanged); Browser.Resize += new EventHandler(WebBrowser_Resize); Browser.SizeChanged += new EventHandler(Browser_SizeChanged); if (ContainingControl != null) { Browser.Size = ContainingControl.Size; ContainingControl.Controls.Clear(); ContainingControl.Controls.Add(Browser); } else { Browser.Size = new Size(1024, 768); } BrowserWrapper = new WebBrowserWrapper(Browser); BrowserWrapper.NavigateAndWait(url); // navigate to the initial page ResizeRendering(); if (Debug) { DebugLog.Message("Browser created, initial page loaded" + IdText); } return; }