Example #1
0
        private string GetFileName(string Language, string[] Rows, out string Title)
        {
            StringBuilder sb = new StringBuilder();

            foreach (string Row in Rows)
            {
                sb.AppendLine(Row);
            }

            string Xml = sb.ToString();
            int    i   = Language.IndexOf(':');

            if (i > 0)
            {
                Title    = Language.Substring(i + 1).Trim();
                Language = Language.Substring(0, i).TrimEnd();
            }
            else
            {
                Title = string.Empty;
            }

            sb.Append(Language);

            string Hash = Hashes.ComputeSHA256HashString(Encoding.UTF8.GetBytes(sb.ToString()));

            string LayoutFolder = Path.Combine(contentRootFolder, "Layout");
            string FileName     = Path.Combine(LayoutFolder, Hash);
            string PngFileName  = FileName + ".png";

            if (!File.Exists(PngFileName))
            {
                try
                {
                    XmlDocument Doc = new XmlDocument();
                    Doc.LoadXml(Xml);

                    Layout2DDocument LayoutDoc = new Layout2DDocument(Doc);
                    RenderSettings   Settings  = new RenderSettings()
                    {
                        ImageSize = RenderedImageSize.ResizeImage                           // TODO: Theme colors, font, etc.
                    };

                    using (SKImage Img = LayoutDoc.Render(Settings, out Map[] _))                       // TODO: Maps
Example #2
0
 /// <summary>
 /// Creates a new instance of the layout element.
 /// </summary>
 /// <param name="Document">Document containing the new element.</param>
 /// <param name="Parent">Parent element.</param>
 /// <returns>New instance.</returns>
 public override ILayoutElement Create(Layout2DDocument Document, ILayoutElement Parent)
 {
     return(new ImageInternal(Document, Parent));
 }
Example #3
0
 /// <summary>
 /// Dilation filter
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Dilate(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #4
0
 /// <summary>
 /// Represents a segment of text in flowing text.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Text(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #5
0
 /// <summary>
 /// Abstract base class of elements that do spatial distribution of children.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public SpatialDistribution(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #6
0
 /// <summary>
 /// Draws a line to a point, relative to the origio of the current container
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public LineTo(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #7
0
 /// <summary>
 /// A point, relative to the origo (of the current container)
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public RelOrigo(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #8
0
 /// <summary>
 /// Generates layout elements by looping through a set or vector of values.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public ForEach(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #9
0
 /// <summary>
 /// Draws a ellipse arc to a point, relative to the origio of the current container
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public EllipseArcTo(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #10
0
 protected virtual void Test(string FileName)
 {
     Layout2DDocument.FromFile("Xml\\" + FileName);
 }
Example #11
0
 /// <summary>
 /// Creates a new instance of the layout element.
 /// </summary>
 /// <param name="Document">Document containing the new element.</param>
 /// <param name="Parent">Parent element.</param>
 /// <returns>New instance.</returns>
 public abstract ILayoutElement Create(Layout2DDocument Document, ILayoutElement Parent);
Example #12
0
 /// <summary>
 /// Abstract base class for layout elements.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public LayoutElement(Layout2DDocument Document, ILayoutElement Parent)
 {
     this.document = Document;
     this.parent   = Parent;
 }
Example #13
0
 /// <summary>
 /// A point, relative to the last point
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public RelLast(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #14
0
 /// <summary>
 /// Replays the segments of another path.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Replay(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #15
0
 /// <summary>
 /// Abstract base class of dynamic layout containers (i.e. containers that can
 /// generate child elements dynamically).
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public DynamicContainer(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #16
0
 /// <summary>
 /// Draws a conic curve to a point, relative to the end of the last segment
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public ConicToRel(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #17
0
 /// <summary>
 /// Creates a new instance of the layout element.
 /// </summary>
 /// <param name="Document">Document containing the new element.</param>
 /// <param name="Parent">Parent element.</param>
 /// <returns>New instance.</returns>
 public override ILayoutElement Create(Layout2DDocument Document, ILayoutElement Parent)
 {
     return(new ConicToRel(Document, Parent));
 }
Example #18
0
 /// <summary>
 /// Abstract base class for figures with two points.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public FigurePoint2(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #19
0
 /// <summary>
 /// A rectangle
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Rectangle(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #20
0
 /// <summary>
 /// An arrow
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Arrow(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #21
0
 /// <summary>
 /// Defines a shape for use elsewhere in the layout.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Shape(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #22
0
 /// <summary>
 /// Layout to show, if none of the cases apply.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Otherwise(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #23
0
 /// <summary>
 /// An image defined in a file.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public ImageFile(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #24
0
        protected override void Test(string FileName, params KeyValuePair <string, object>[] ContentAttachments)
        {
            Layout2DDocument Doc      = Layout2DDocument.FromFile("Xml\\" + FileName + ".xml", ContentAttachments);
            RenderSettings   Settings = new RenderSettings();

            using (SKImage Image = Doc.Render(Settings, out Map[] _))
Example #25
0
 /// <summary>
 /// Abstract base class for layout elements with two points and a weight.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Point2Weight(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #26
0
		/// <summary>
		/// Creates a new instance of the layout element.
		/// </summary>
		/// <param name="Document">Document containing the new element.</param>
		/// <param name="Parent">Parent element.</param>
		/// <returns>New instance.</returns>
		public override ILayoutElement Create(Layout2DDocument Document, ILayoutElement Parent)
		{
			return new CircleArcToRel(Document, Parent);
		}
Example #27
0
 /// <summary>
 /// Ordering child elements vertically.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Vertical(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #28
0
 /// <summary>
 /// Draws a circle arc to a point, relative to the end of the last segment
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public CircleArcToRel(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }
Example #29
0
 /// <summary>
 /// Creates a new instance of the layout element.
 /// </summary>
 /// <param name="Document">Document containing the new element.</param>
 /// <param name="Parent">Parent element.</param>
 /// <returns>New instance.</returns>
 public override ILayoutElement Create(Layout2DDocument Document, ILayoutElement Parent)
 {
     return(new Dilate(Document, Parent));
 }
Example #30
0
 /// <summary>
 /// Represents an unformatted text label.
 /// </summary>
 /// <param name="Document">Layout document containing the element.</param>
 /// <param name="Parent">Parent element.</param>
 public Label(Layout2DDocument Document, ILayoutElement Parent)
     : base(Document, Parent)
 {
 }