diff --git a/ApplicationView/WidescreenPanel.cs b/ApplicationView/WidescreenPanel.cs index 791a15b5b..08be4cc27 100644 --- a/ApplicationView/WidescreenPanel.cs +++ b/ApplicationView/WidescreenPanel.cs @@ -61,7 +61,7 @@ namespace MatterHackers.MatterControl var library3DViewSplitter = new Splitter() { Padding = new BorderDouble(4), - SplitterDistance = 234, + SplitterDistance = 254, SplitterWidth = 10, SplitterBackground = ApplicationController.Instance.Theme.SplitterBackground }; diff --git a/Library/Providers/FileSystem/FileSystemContainer.cs b/Library/Providers/FileSystem/FileSystemContainer.cs index 8281f6445..fdeb0cb61 100644 --- a/Library/Providers/FileSystem/FileSystemContainer.cs +++ b/Library/Providers/FileSystem/FileSystemContainer.cs @@ -34,10 +34,8 @@ using System.Linq; using System.Text.RegularExpressions; using System.Threading.Tasks; using MatterHackers.Agg; -using MatterHackers.Agg.Image; using MatterHackers.Agg.PlatformAbstract; using MatterHackers.Agg.UI; -using MatterHackers.MatterControl.CustomWidgets; namespace MatterHackers.MatterControl.Library { diff --git a/Library/Providers/GeneratorItem.cs b/Library/Providers/GeneratorItem.cs index 545459ea8..fc41d40e1 100644 --- a/Library/Providers/GeneratorItem.cs +++ b/Library/Providers/GeneratorItem.cs @@ -42,10 +42,11 @@ namespace MatterHackers.MatterControl.Library this.IsProtected = true; } - public GeneratorItem(string name, Func collector) + public GeneratorItem(string name, Func collector, string category = null) { this.Name = name; this.Collector = collector; + this.Category = category; } public string ID => $"MatterHackers/ItemGenerator/{Name}".GetHashCode().ToString(); diff --git a/Library/Providers/LibraryConfig.cs b/Library/Providers/LibraryConfig.cs index 402fb84f6..335779984 100644 --- a/Library/Providers/LibraryConfig.cs +++ b/Library/Providers/LibraryConfig.cs @@ -65,7 +65,7 @@ namespace MatterHackers.MatterControl.Library /// /// Storage for plugin 'Creators' added via RegisterCreator /// - private CreatorsContainer registeredCreators; + //private CreatorsContainer registeredCreators; private List libraryProviders; @@ -73,19 +73,20 @@ namespace MatterHackers.MatterControl.Library public LibraryConfig() { - registeredCreators = new CreatorsContainer() - { - Name = "Creators", - ChildContainers = new List(), - Items = new List() - }; + //registeredCreators = new CreatorsContainer() + //{ + // Name = "Creators", + // ChildContainers = new List(), + // Items = new List() + //}; libraryProviders = new List() { + /* new DynamicContainerLink( registeredCreators.Name, StaticData.Instance.LoadIcon("icon_creator.png"), - () => registeredCreators), + () => registeredCreators), */ }; this.RootLibaryContainer = new RootLibraryContainer(libraryProviders); @@ -167,7 +168,19 @@ namespace MatterHackers.MatterControl.Library public void RegisterCreator(ILibraryContainerLink containerItem) { - registeredCreators.ChildContainers.Add(containerItem); + this.RootLibaryContainer.ChildContainers.Add(containerItem); + OnLibraryItemsChanged(); + } + + public void RegisterCreator(ILibraryContentItem libraryItem) + { + this.RootLibaryContainer.Items.Add(libraryItem); + OnLibraryItemsChanged(); + } + + public void RegisterCreator(ILibraryContentStream libraryItem) + { + this.RootLibaryContainer.Items.Add(libraryItem); OnLibraryItemsChanged(); } diff --git a/Library/Widgets/PrintLibraryWidget.cs b/Library/Widgets/PrintLibraryWidget.cs index 4771d3338..4b27a0010 100644 --- a/Library/Widgets/PrintLibraryWidget.cs +++ b/Library/Widgets/PrintLibraryWidget.cs @@ -367,6 +367,19 @@ namespace MatterHackers.MatterControl.PrintLibrary private void CreateMenuActions() { + menuActions.Add(new PrintItemAction() + { + Title = "Pin to Library", + AllowMultiple = false, + AllowContainers = true, + AllowProtected = true, + Action = (selectedLibraryItems, listView) => + { + Console.WriteLine(); + } + }); + + // edit menu item menuActions.Add(new PrintItemAction() { diff --git a/TextCreator/CardHolderTool/CardHolder.cs b/TextCreator/CardHolderTool/CardHolder.cs index cdb5de02e..91b4ad810 100644 --- a/TextCreator/CardHolderTool/CardHolder.cs +++ b/TextCreator/CardHolderTool/CardHolder.cs @@ -1,21 +1,18 @@ using System; using System.Collections.Generic; -using System.Diagnostics; -using MatterHackers.Csg; +using System.Linq; +using MatterHackers.Agg; using MatterHackers.Agg.Font; +using MatterHackers.Agg.UI; +using MatterHackers.Csg; using MatterHackers.Csg.Solids; using MatterHackers.Csg.Transform; -using MatterHackers.Csg.Processors; -using MatterHackers.VectorMath; -using MatterHackers.RenderOpenGl; using MatterHackers.DataConverters3D; -using MatterHackers.MatterControl.PartPreviewWindow; -using MatterHackers.Agg.UI; -using MatterHackers.MatterControl; using MatterHackers.Localizations; -using MatterHackers.Agg; using MatterHackers.MatterControl.CustomWidgets; -using System.Linq; +using MatterHackers.MatterControl.PartPreviewWindow; +using MatterHackers.RenderOpenGl; +using MatterHackers.VectorMath; namespace MatterHackers.MatterControl.SimplePartScripting { diff --git a/TextCreator/Library/TextLibraryContainer.cs b/TextCreator/Library/TextLibraryContainer.cs deleted file mode 100644 index 3f31ba7b7..000000000 --- a/TextCreator/Library/TextLibraryContainer.cs +++ /dev/null @@ -1,100 +0,0 @@ -/* -Copyright (c) 2016, Lars Brubaker, John Lewin -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -The views and conclusions contained in the software and documentation are those -of the authors and should not be interpreted as representing official policies, -either expressed or implied, of the FreeBSD Project. -*/ - -using System; -using System.Collections.Generic; -using System.Linq; -using MatterHackers.DataConverters3D; -using MatterHackers.Localizations; -using MatterHackers.MatterControl.CustomWidgets; -using MatterHackers.MatterControl.Plugins.BrailleBuilder; -using MatterHackers.MatterControl.Plugins.TextCreator; -using MatterHackers.Agg.PlatformAbstract; -using System.IO; - -namespace MatterHackers.MatterControl.Library -{ - public class TextLibraryContainer : LibraryContainer - { - private static IObject3D textItem; - private static IObject3D brailleItem; - - public TextLibraryContainer(string name) - { - this.Name = name; - this.ChildContainers = new List(); - this.Items = Generators.ToList(); - } - - internal static List Generators = new List() - { - new GeneratorItem("Text".Localize(), () => - { - if(textItem == null) - { - var generator = new TextGenerator(); - textItem = generator.CreateText( - "Text".Localize(), - 1, - .25, - 1, - true); - } - - return textItem; - }), - new GeneratorItem("Braille".Localize(), () => - { - if (brailleItem == null) - { - string braille = "Braille".Localize(); - - var generator = new BrailleGenerator(); - brailleItem = generator.CreateText( - braille, - 1, - .25, - true, - braille); - } - - return brailleItem; - }), - // TODO: Filepath won't work on Android. Needs to load from/to stream via custom type - new FileSystemFileItem(StaticData.Instance.MapPath(Path.Combine("Images", "mh-logo.png"))) - { - Name = "Image Converter".Localize() - } - }; - - public override void Dispose() - { - } - } -} \ No newline at end of file diff --git a/TextCreator/TextCreator.csproj b/TextCreator/TextCreator.csproj index 617b9dc4f..1f0549b70 100644 --- a/TextCreator/TextCreator.csproj +++ b/TextCreator/TextCreator.csproj @@ -142,7 +142,6 @@ - diff --git a/TextCreator/TextCreatorPlugin.cs b/TextCreator/TextCreatorPlugin.cs index bc1f92a98..8ff74e9d7 100644 --- a/TextCreator/TextCreatorPlugin.cs +++ b/TextCreator/TextCreatorPlugin.cs @@ -27,10 +27,15 @@ of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. */ +using System.IO; +using MatterHackers.Agg.PlatformAbstract; using MatterHackers.Agg.UI; +using MatterHackers.DataConverters3D; using MatterHackers.Localizations; using MatterHackers.MatterControl; using MatterHackers.MatterControl.Library; +using MatterHackers.MatterControl.Plugins.BrailleBuilder; +using MatterHackers.MatterControl.Plugins.TextCreator; using MatterHackers.MatterControl.PluginSystem; namespace MatterHackers.Plugins.EditorTools @@ -39,13 +44,47 @@ namespace MatterHackers.Plugins.EditorTools { public override void Initialize(GuiWidget application) { - string name = "Text Tools".Localize(); + string category = "Text Tools".Localize(); + var library = ApplicationController.Instance.Library; - ApplicationController.Instance.Library.RegisterCreator( - new DynamicContainerLink( - name, - LibraryProviderHelpers.LoadInvertIcon("FileDialog", "folder.png"), - () => new TextLibraryContainer(name))); + library.RegisterCreator( + new GeneratorItem( + "Text".Localize(), + () => + { + var generator = new TextGenerator(); + return generator.CreateText( + "Text".Localize(), + 1, + .25, + 1, + true); + }, + category)); + + library.RegisterCreator( + new GeneratorItem( + "Braille".Localize(), + () => + { + string braille = "Braille".Localize(); + var generator = new BrailleGenerator(); + return generator.CreateText( + braille, + 1, + .25, + true, + braille); + }, + category)); + + // TODO: Filepath won't work on Android. Needs to load from/to stream via custom type + library.RegisterCreator( + new FileSystemFileItem(StaticData.Instance.MapPath(Path.Combine("Images", "mh-logo.png"))) + { + Name = "Image Converter".Localize(), + Category = category + }); base.Initialize(application); }