diff --git a/Library/Widgets/PrintLibraryWidget.cs b/Library/Widgets/PrintLibraryWidget.cs
index 8e5c94aef..73c823a0b 100644
--- a/Library/Widgets/PrintLibraryWidget.cs
+++ b/Library/Widgets/PrintLibraryWidget.cs
@@ -33,7 +33,7 @@ using System.IO;
using System.Linq;
#if !__ANDROID__
-using Markdig.Wpf;
+using Markdig.Agg;
#endif
using MatterHackers.Agg;
diff --git a/MatterControl.csproj b/MatterControl.csproj
index 3bfb50245..4b2b0b5a7 100644
--- a/MatterControl.csproj
+++ b/MatterControl.csproj
@@ -449,6 +449,7 @@
+
diff --git a/PartPreviewWindow/SelectedObjectPanel.cs b/PartPreviewWindow/SelectedObjectPanel.cs
index 26902b12d..6aae0ef82 100644
--- a/PartPreviewWindow/SelectedObjectPanel.cs
+++ b/PartPreviewWindow/SelectedObjectPanel.cs
@@ -151,8 +151,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
};
applyButton.Click += (s, e) =>
{
- scene.SelectedItem = null;
this.item.Apply(view3DWidget.Scene.UndoBuffer);
+ scene.SelectedItem = null;
};
scene.SelectionChanged += (s, e) => applyButton.Enabled = scene.SelectedItem?.CanApply == true;
toolbar.AddChild(applyButton);
@@ -165,8 +165,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
};
removeButton.Click += (s, e) =>
{
- scene.SelectedItem = null;
this.item.Remove(view3DWidget.Scene.UndoBuffer);
+ scene.SelectedItem = null;
};
scene.SelectionChanged += (s, e) => removeButton.Enabled = scene.SelectedItem?.CanRemove == true;
toolbar.AddChild(removeButton);
diff --git a/SetupWizard/DesignSpaceHelp.cs b/SetupWizard/DesignSpaceHelp.cs
index 21fe13a4f..ad26e9f59 100644
--- a/SetupWizard/DesignSpaceHelp.cs
+++ b/SetupWizard/DesignSpaceHelp.cs
@@ -30,6 +30,7 @@ either expressed or implied, of the FreeBSD Project.
using System;
using System.Collections.Generic;
using System.Linq;
+using Markdig.Agg;
using MatterHackers.Agg;
using MatterHackers.Agg.Image;
using MatterHackers.Agg.UI;
@@ -265,22 +266,7 @@ namespace MatterHackers.MatterControl
Padding = theme.DefaultContainerPadding
};
- var imageSequenceWidget = new ImageSequenceWidget(300, 200)
- {
- HAnchor = HAnchor.Stretch,
- VAnchor = VAnchor.Stretch,
- ImageSequence = sequence,
- BackgroundColor = theme.MinimalShade
- };
- rightPanel.AddChild(imageSequenceWidget);
-
- var title = new WrappedTextWidget("title", pointSize: 24, textColor: theme.Colors.PrimaryTextColor)
- {
- Margin = new BorderDouble(10, 4, 10, 10)
- };
- rightPanel.AddChild(title);
-
- var description = new WrappedTextWidget("details", pointSize: theme.DefaultFontSize, textColor: theme.Colors.PrimaryTextColor)
+ var description = new MarkdownWidget(new Uri("https://raw.githubusercontent.com/lunet-io/markdig/master/"))
{
Margin = new BorderDouble(10, 4, 10, 10),
};
@@ -295,11 +281,7 @@ namespace MatterHackers.MatterControl
{
if (treeView.SelectedNode.Tag is GuideAsset guide)
{
- title.Text = guide.Title;
- description.Text = guide.Description;
- imageSequenceWidget.ImageSequence = ApplicationController.Instance.GetProcessingSequence(Color.Black);
-
- ApplicationController.Instance.DownloadToImageSequenceAsync(imageSequenceWidget.ImageSequence, guide.AnimationUri);
+ description.Markdown = guide.Description;
}
};
diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp
index ea94ea134..b22228763 160000
--- a/Submodules/agg-sharp
+++ b/Submodules/agg-sharp
@@ -1 +1 @@
-Subproject commit ea94ea134352c58ab662b0f9162f107ef297abd5
+Subproject commit b22228763c87cb90dab2055a1f0a42b9f1597fc5
diff --git a/Utilities/MarkdigAgg/AggObjectRenderer.cs b/Utilities/MarkdigAgg/AggObjectRenderer.cs
index baea9ed91..a6e15b7b0 100644
--- a/Utilities/MarkdigAgg/AggObjectRenderer.cs
+++ b/Utilities/MarkdigAgg/AggObjectRenderer.cs
@@ -7,7 +7,7 @@ using Markdig.Syntax;
namespace Markdig.Renderers.Agg
{
///
- /// A base class for WPF rendering and Markdown objects.
+ /// A base class for Agg rendering and Markdown objects.
///
/// The type of the object.
///
diff --git a/Utilities/MarkdigAgg/Inlines/AggAutolinkInlineRenderer.cs b/Utilities/MarkdigAgg/Inlines/AggAutolinkInlineRenderer.cs
index e70817651..3e764e589 100644
--- a/Utilities/MarkdigAgg/Inlines/AggAutolinkInlineRenderer.cs
+++ b/Utilities/MarkdigAgg/Inlines/AggAutolinkInlineRenderer.cs
@@ -11,9 +11,9 @@ namespace Markdig.Renderers.Agg.Inlines
public class AutoLinkInlineX : AutoFit{ }
///
- /// A WPF renderer for a .
+ /// A Agg renderer for a .
///
- ///
+ ///
public class AggAutolinkInlineRenderer : AggObjectRenderer
{
///
diff --git a/Utilities/MarkdigAgg/Inlines/AggDelimiterInlineRenderer.cs b/Utilities/MarkdigAgg/Inlines/AggDelimiterInlineRenderer.cs
index fd757134f..a8d26de20 100644
--- a/Utilities/MarkdigAgg/Inlines/AggDelimiterInlineRenderer.cs
+++ b/Utilities/MarkdigAgg/Inlines/AggDelimiterInlineRenderer.cs
@@ -10,9 +10,9 @@ namespace Markdig.Renderers.Agg.Inlines
public class DelimiterInlineX : AutoFit{ }
///
- /// A WPF renderer for a .
+ /// A Agg renderer for a .
///
- ///
+ ///
public class AggDelimiterInlineRenderer : AggObjectRenderer
{
///
diff --git a/Utilities/MarkdigAgg/Inlines/AggEmphasisInlineRenderer.cs b/Utilities/MarkdigAgg/Inlines/AggEmphasisInlineRenderer.cs
index bff2cf594..bb4942c17 100644
--- a/Utilities/MarkdigAgg/Inlines/AggEmphasisInlineRenderer.cs
+++ b/Utilities/MarkdigAgg/Inlines/AggEmphasisInlineRenderer.cs
@@ -28,7 +28,7 @@ namespace Markdig.Renderers.Agg.Inlines
}
///
- /// A WPF renderer for an .
+ /// A Agg renderer for an .
///
///
public class AggEmphasisInlineRenderer : AggObjectRenderer
diff --git a/Utilities/MarkdigAgg/Inlines/AggLineBreakInlineRenderer.cs b/Utilities/MarkdigAgg/Inlines/AggLineBreakInlineRenderer.cs
index f0ef610c6..ba2ec1e00 100644
--- a/Utilities/MarkdigAgg/Inlines/AggLineBreakInlineRenderer.cs
+++ b/Utilities/MarkdigAgg/Inlines/AggLineBreakInlineRenderer.cs
@@ -11,9 +11,9 @@ namespace Markdig.Renderers.Agg.Inlines
public class LineBreakSoftX : AutoFit{ }
///
- /// A WPF renderer for a .
+ /// A Agg renderer for a .
///
- ///
+ ///
public class AggLineBreakInlineRenderer : AggObjectRenderer
{
///
diff --git a/Utilities/MarkdigAgg/Inlines/AggLinkInlineRenderer.cs b/Utilities/MarkdigAgg/Inlines/AggLinkInlineRenderer.cs
index 858930677..1b949f757 100644
--- a/Utilities/MarkdigAgg/Inlines/AggLinkInlineRenderer.cs
+++ b/Utilities/MarkdigAgg/Inlines/AggLinkInlineRenderer.cs
@@ -128,9 +128,9 @@ namespace Markdig.Renderers.Agg.Inlines
}
///
- /// A WPF renderer for a .
+ /// A Agg renderer for a .
///
- ///
+ ///
public class AggLinkInlineRenderer : AggObjectRenderer
{
///
diff --git a/Utilities/MarkdigAgg/Inlines/AggLiteralInlineRenderer.cs b/Utilities/MarkdigAgg/Inlines/AggLiteralInlineRenderer.cs
index 5b2b8f598..67efb2528 100644
--- a/Utilities/MarkdigAgg/Inlines/AggLiteralInlineRenderer.cs
+++ b/Utilities/MarkdigAgg/Inlines/AggLiteralInlineRenderer.cs
@@ -11,9 +11,9 @@ namespace Markdig.Renderers.Agg.Inlines
public class LiteralInlineX : AutoFit{ }
///
- /// A WPF renderer for a .
+ /// A Agg renderer for a .
///
- ///
+ ///
public class AggLiteralInlineRenderer : AggObjectRenderer
{
///
diff --git a/Utilities/MarkdigAgg/MarkdownExtensions.cs b/Utilities/MarkdigAgg/MarkdownExtensions.cs
index 44eb838b0..84b4e2133 100644
--- a/Utilities/MarkdigAgg/MarkdownExtensions.cs
+++ b/Utilities/MarkdigAgg/MarkdownExtensions.cs
@@ -5,7 +5,7 @@
using System;
// ReSharper disable once CheckNamespace
-namespace Markdig.Wpf
+namespace Markdig.Agg
{
///
/// Provides extension methods for to enable several Markdown extensions.
@@ -13,7 +13,7 @@ namespace Markdig.Wpf
public static class MarkdownExtensions
{
///
- /// Uses all extensions supported by Markdig.Wpf.
+ /// Uses all extensions supported by Markdig.Agg.
///
/// The pipeline.
/// The modified pipeline
diff --git a/Utilities/MarkdigAgg/MarkdownPage.cs b/Utilities/MarkdigAgg/MarkdownPage.cs
index d9a4fc230..d775bf0f1 100644
--- a/Utilities/MarkdigAgg/MarkdownPage.cs
+++ b/Utilities/MarkdigAgg/MarkdownPage.cs
@@ -9,99 +9,15 @@ using Markdig.Renderers;
using MatterHackers.Agg.UI;
using MatterHackers.MatterControl;
-namespace Markdig.Wpf
+namespace Markdig.Agg
{
public class MarkdownPage : DialogPage
{
- private static readonly MarkdownPipeline DefaultPipeline = new MarkdownPipelineBuilder().UseSupportedExtensions().Build();
-
- public MarkdownPipeline MarkdownPipeline { get; set; } = new MarkdownPipelineBuilder().UseSupportedExtensions().Build();
-
- private string _markDownText = null;
- private MarkdownPipeline _pipeLine = null;
- private Uri uri;
- private FlowLayoutWidget contentPanel;
-
public MarkdownPage()
{
this.WindowTitle = this.HeaderText = "Markdown Tests";
-
- uri = new Uri("https://raw.githubusercontent.com/lunet-io/markdig/master/readme.md");
-
- var webClient = new WebClient();
-
- var scrollableWidget = new ScrollableWidget(true)
- {
- HAnchor = HAnchor.Stretch,
- VAnchor = VAnchor.Stretch
- };
- scrollableWidget.ScrollArea.HAnchor = HAnchor.Stretch;
- scrollableWidget.ScrollArea.VAnchor = VAnchor.Fit;
- contentRow.AddChild(scrollableWidget);
-
- contentPanel = new FlowLayoutWidget(FlowDirection.TopToBottom)
- {
- HAnchor = HAnchor.Stretch,
- VAnchor = VAnchor.Fit
- };
-
- scrollableWidget.AddChild(contentPanel);
-
- this.Markdown = webClient.DownloadString(uri);
- }
-
- ///
- /// Gets or sets the markdown to display.
- ///
- public string Markdown
- {
- get => _markDownText;
- set
- {
- if (_markDownText != value)
- {
- _markDownText = value;
- this.RefreshDocument();
- }
- }
- }
-
- ///
- /// Gets or sets the markdown pipeline to use.
- ///
- public MarkdownPipeline Pipeline
- {
- get => _pipeLine ?? DefaultPipeline;
- set
- {
- if (_pipeLine != value)
- {
- _pipeLine = value;
- }
- }
- }
-
- private void RefreshDocument()
- {
- if (!string.IsNullOrEmpty(this.Markdown))
- {
-
- var pipeline = Pipeline ?? DefaultPipeline;
-
- contentPanel.CloseAllChildren();
-
- pipeline = pipeline ?? new MarkdownPipelineBuilder().Build();
-
- var renderer = new AggRenderer(contentPanel)
- {
- BaseUri = uri
- };
-
- pipeline.Setup(renderer);
-
- var document = Markdig.Markdown.Parse(this.Markdown, pipeline);
- renderer.Render(document);
- }
+ contentRow.AddChild(new MarkdownWidget(new Uri("https://raw.githubusercontent.com/lunet-io/markdig/master/"),
+ new Uri("https://raw.githubusercontent.com/lunet-io/markdig/master/readme.md")));
}
}
}
diff --git a/Utilities/MarkdigAgg/MarkdownWidget.cs b/Utilities/MarkdigAgg/MarkdownWidget.cs
new file mode 100644
index 000000000..71bf93c39
--- /dev/null
+++ b/Utilities/MarkdigAgg/MarkdownWidget.cs
@@ -0,0 +1,115 @@
+// Copyright (c) 2016-2017 Nicolas Musset. All rights reserved.
+// This file is licensed under the MIT license.
+// See the LICENSE.md file in the project root for more information.
+
+using System;
+using System.IO;
+using System.Net;
+using Markdig.Renderers;
+using MatterHackers.Agg.UI;
+using MatterHackers.MatterControl;
+using MatterHackers.VectorMath;
+
+namespace Markdig.Agg
+{
+ public class MarkdownWidget : ScrollableWidget
+ {
+ private static readonly MarkdownPipeline DefaultPipeline = new MarkdownPipelineBuilder().UseSupportedExtensions().Build();
+
+ private string _markDownText = null;
+ private MarkdownPipeline _pipeLine = null;
+ private Uri baseUri;
+ private FlowLayoutWidget contentPanel;
+
+ public MarkdownWidget(Uri baseUri, bool scrollContent = true)
+ : base(scrollContent)
+ {
+ this.baseUri = baseUri;
+
+ this.HAnchor = HAnchor.Stretch;
+ this.ScrollArea.HAnchor = HAnchor.Stretch;
+
+ if (scrollContent)
+ {
+ this.VAnchor = VAnchor.Stretch;
+ this.ScrollArea.VAnchor = VAnchor.Fit;
+ }
+ else
+ {
+ this.VAnchor = VAnchor.Fit;
+ this.ScrollArea.VAnchor = VAnchor.Fit;
+ }
+
+ contentPanel = new FlowLayoutWidget(FlowDirection.TopToBottom)
+ {
+ HAnchor = HAnchor.Stretch,
+ VAnchor = VAnchor.Fit
+ };
+
+ this.AddChild(contentPanel);
+ }
+
+ public MarkdownWidget(Uri baseUri, Uri contentUri, bool scrollContent = true)
+ : this(baseUri, scrollContent)
+ {
+ var webClient = new WebClient();
+ this.Markdown = webClient.DownloadString(contentUri);
+ }
+
+ ///
+ /// Gets or sets the markdown to display.
+ ///
+ public string Markdown
+ {
+ get => _markDownText;
+ set
+ {
+ if (_markDownText != value)
+ {
+ _markDownText = value;
+ this.RefreshDocument();
+ this.Width = 10;
+ this.ScrollPositionFromTop = Vector2.Zero;
+ }
+ }
+ }
+
+ ///
+ /// Gets or sets the markdown pipeline to use.
+ ///
+ public MarkdownPipeline Pipeline
+ {
+ get => _pipeLine ?? DefaultPipeline;
+ set
+ {
+ if (_pipeLine != value)
+ {
+ _pipeLine = value;
+ }
+ }
+ }
+
+ private void RefreshDocument()
+ {
+ if (!string.IsNullOrEmpty(this.Markdown))
+ {
+ var pipeline = Pipeline;
+
+ contentPanel.CloseAllChildren();
+
+ // why do we check the pipeline here?
+ pipeline = pipeline ?? new MarkdownPipelineBuilder().Build();
+
+ var renderer = new AggRenderer(contentPanel)
+ {
+ BaseUri = baseUri
+ };
+
+ pipeline.Setup(renderer);
+
+ var document = Markdig.Markdown.Parse(this.Markdown, pipeline);
+ renderer.Render(document);
+ }
+ }
+ }
+}