public void UpdateContent(string html) { string pixmaps_path = new string [] { SparkleUI.AssetsPath, "pixmaps" }.Combine(); string icons_path = new string [] { SparkleUI.AssetsPath, "icons", "hicolor", "12x12", "status" }.Combine(); html = html.Replace("<!-- $a-hover-color -->", "#009ff8"); html = html.Replace("<!-- $a-color -->", "#0085cf"); html = html.Replace("<!-- $body-font-family -->", StyleContext.GetFont(StateFlags.Normal).Family); html = html.Replace("<!-- $body-font-size -->", (double)(StyleContext.GetFont(StateFlags.Normal).Size / 1024 + 3) + "px"); html = html.Replace("<!-- $body-color -->", SparkleUIHelpers.RGBAToHex(StyleContext.GetColor(StateFlags.Normal))); html = html.Replace("<!-- $body-background-color -->", SparkleUIHelpers.RGBAToHex(new TreeView().StyleContext.GetBackgroundColor(StateFlags.Normal))); html = html.Replace("<!-- $day-entry-header-font-size -->", (StyleContext.GetFont(StateFlags.Normal).Size / 1024 + 3) + "px"); html = html.Replace("<!-- $day-entry-header-background-color -->", SparkleUIHelpers.RGBAToHex(StyleContext.GetBackgroundColor(StateFlags.Normal))); html = html.Replace("<!-- $secondary-font-color -->", SparkleUIHelpers.RGBAToHex(StyleContext.GetColor(StateFlags.Insensitive))); html = html.Replace("<!-- $small-color -->", SparkleUIHelpers.RGBAToHex(StyleContext.GetColor(StateFlags.Insensitive))); html = html.Replace("<!-- $small-font-size -->", "90%"); html = html.Replace("<!-- $pixmaps-path -->", pixmaps_path); html = html.Replace("<!-- $document-added-background-image -->", "file://" + new string [] { icons_path, "document-added.png" }.Combine()); html = html.Replace("<!-- $document-edited-background-image -->", "file://" + new string [] { icons_path, "document-edited.png" }.Combine()); html = html.Replace("<!-- $document-deleted-background-image -->", "file://" + new string [] { icons_path, "document-deleted.png" }.Combine()); html = html.Replace("<!-- $document-moved-background-image -->", "file://" + new string [] { icons_path, "document-moved.png" }.Combine()); this.spinner.Stop(); this.scrolled_window.Remove(this.web_view); this.web_view.Dispose(); this.web_view = new WebView() { Editable = false }; this.web_view.LoadString(html, "text/html", "UTF-8", "file://"); this.web_view.NavigationRequested += WebViewNavigationRequested; this.scrolled_window.Add(this.web_view); this.content_wrapper.Remove(this.content_wrapper.Child); this.content_wrapper.Add(this.scrolled_window); this.scrolled_window.ShowAll(); }