public AssetSchemeHandler(BrowserConfig config, CefRequest request) { this.config = config; isComplete = false; length = remaining = -1; }
public BrowserSource(XElement configElement) { this.configElement = configElement; this.browserConfig = new BrowserConfig(); this.textureMap = new Dictionary<IntPtr, Texture>(); UpdateSettings(); }
public ConfigDialog(XElement dataElement) { InitializeComponent(); this.dataElement = dataElement; config = new BrowserConfig(); config.Reload(dataElement); cssEditor = new TextEditor { FontFamily = new FontFamily("Consolas"), SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("CSS"), ShowLineNumbers = true, Options = { ConvertTabsToSpaces = true, IndentationSize = 2 } }; templateEditor = new TextEditor { FontFamily = new FontFamily("Consolas"), SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("HTML"), ShowLineNumbers = true, Options = { ConvertTabsToSpaces = true, IndentationSize = 2 } }; advancedPropertiesCheckBox.IsChecked = config.BrowserSourceSettings.IsShowingAdvancedProperties; SetTabVisibility(advancedTab, config.BrowserSourceSettings.IsShowingAdvancedProperties); SetTabVisibility(templateTab, config.BrowserSourceSettings.IsApplyingTemplate); url.Text = config.BrowserSourceSettings.Url; cssEditor.Text = config.BrowserSourceSettings.CSS; templateEditor.Text = config.BrowserSourceSettings.Template; widthText.Text = config.BrowserSourceSettings.Width.ToString(); heightText.Text = config.BrowserSourceSettings.Height.ToString(); opacitySlider.Value = config.BrowserSourceSettings.Opacity; fpsTextBox.Text = config.BrowserSourceSettings.Fps.ToString(); applyTemplateCheckBox.IsChecked = config.BrowserSourceSettings.IsApplyingTemplate; instanceSettings.SelectedObject = config.BrowserInstanceSettings; cssGrid.Children.Add(cssEditor); templateGrid.Children.Add(templateEditor); }
public override bool ShowConfiguration(XElement data) { ConfigDialog dialog = new ConfigDialog(data); if (dialog.ShowDialog().GetValueOrDefault(false)) { BrowserConfig config = new BrowserConfig(); config.Reload(data); data.Parent.SetFloat("cx", (float)config.BrowserSourceSettings.Width); data.Parent.SetFloat("cy", (float)config.BrowserSourceSettings.Height); return true; } else { return false; } }
public bool CreateBrowser(BrowserSource browserSource, BrowserConfig browserConfig) { Debug.Assert(Status == BrowserStatus.Initial); InitClient(browserSource); Debug.Assert(browserClient != null); Debug.Assert(browserConfig != null); BrowserConfig = browserConfig; CefWindowInfo windowInfo = CefWindowInfo.Create(); windowInfo.TransparentPainting = true; windowInfo.SetAsOffScreen(IntPtr.Zero); windowInfo.Width = (int)browserConfig.BrowserSourceSettings.Width; windowInfo.Height = (int)browserConfig.BrowserSourceSettings.Height; windowInfo.MenuHandle = IntPtr.Zero; windowInfo.ParentHandle = IntPtr.Zero; String base64EncodedDataUri = "data:text/css;charset=utf-8;base64,"; String base64EncodedCss = Convert.ToBase64String(Encoding.UTF8.GetBytes(browserConfig.BrowserSourceSettings.CSS)); BrowserInstanceSettings settings = AbstractSettings.DeepClone(BrowserSettings.Instance.InstanceSettings); settings.MergeWith(browserConfig.BrowserInstanceSettings); CefBrowserSettings browserSettings = new CefBrowserSettings { AcceleratedCompositing = settings.AcceleratedCompositing, ApplicationCache = settings.ApplicationCache, AuthorAndUserStyles = settings.AuthorAndUserStyles, CaretBrowsing = settings.CaretBrowsing, CursiveFontFamily = settings.CursiveFontFamily, Databases = settings.Databases, DefaultEncoding = settings.DefaultEncoding, DefaultFixedFontSize = settings.DefaultFixedFontSize, DefaultFontSize = settings.DefaultFontSize, DeveloperTools = settings.DeveloperTools, FantasyFontFamily = settings.FantasyFontFamily, FileAccessFromFileUrls = settings.FileAccessFromFileUrls, FixedFontFamily = settings.FixedFontFamily, ImageLoading = settings.ImageLoading, ImageShrinkStandaloneToFit = settings.ImageShrinkStandaloneToFit, Java = settings.Java, JavaScript = settings.JavaScript, JavaScriptAccessClipboard = settings.JavaScriptAccessClipboard, JavaScriptCloseWindows = settings.JavaScriptCloseWindows, JavaScriptDomPaste = settings.JavaScriptDomPaste, JavaScriptOpenWindows = settings.JavaScriptOpenWindows, LocalStorage = settings.LocalStorage, MinimumFontSize = settings.MinimumFontSize, MinimumLogicalFontSize = settings.MinimumLogicalFontSize, PageCache = settings.PageCache, Plugins = settings.Plugins, RemoteFonts = settings.RemoteFonts, SansSerifFontFamily = settings.SansSerifFontFamily, SerifFontFamily = settings.SerifFontFamily, StandardFontFamily = settings.StandardFontFamily, //TabToLinks = settings.TabToLinks, //TextAreaResize = settings.TextAreaResize, UniversalAccessFromFileUrls = settings.UniversalAccessFromFileUrls, UserStyleSheetLocation = base64EncodedDataUri + base64EncodedCss, WebGL = settings.WebGL, WebSecurity = settings.WebSecurity, }; String url = browserConfig.BrowserSourceSettings.Url; if (browserConfig.BrowserSourceSettings.IsApplyingTemplate) { String resolvedTemplate = browserConfig.BrowserSourceSettings.Template; resolvedTemplate = resolvedTemplate.Replace("$(FILE)", browserConfig.BrowserSourceSettings.Url); resolvedTemplate = resolvedTemplate.Replace("$(WIDTH)", browserConfig.BrowserSourceSettings.Width.ToString()); resolvedTemplate = resolvedTemplate.Replace("$(HEIGHT)", browserConfig.BrowserSourceSettings.Height.ToString()); url = "http://absolute"; } // must be sync invoke because wrapper can be destroyed before it is run try { // Since the event methods can be called before the next statement // set the status before we call it Status = BrowserStatus.Creating; CefBrowserHost.CreateBrowser(windowInfo, browserClient, browserSettings, url); } catch (InvalidOperationException e) { API.Instance.Log("BrowserWrapper::CreateBrowser failed; {0}", e.Message); UninitClient(); return false; } BrowserManager.Instance.IncrementBrowserInstanceCount(); return true; }