
Replace {sp} with space when svgText elements are deserialized. Added error handling for missing genmac macros. Changed lookup to internal to check for missing genmac macros.
147 lines
3.6 KiB
C#
147 lines
3.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
using System.Drawing.Drawing2D;
|
|
using System.Xml.Serialization;
|
|
using System.ComponentModel;
|
|
|
|
namespace Volian.Svg.Library
|
|
{
|
|
public partial class SvgText : SvgShapePart
|
|
{
|
|
#region ctor
|
|
public SvgText() { ;}
|
|
public SvgText(PointF location, string text, Font font, Color fillColor)
|
|
{
|
|
_X.Value = location.X;
|
|
_Y.Value = location.Y;
|
|
Text = text;
|
|
Font = font;
|
|
FillColor = fillColor;
|
|
LineColor = Color.Empty;
|
|
LineWidth = new SvgMeasurement(0);
|
|
}
|
|
#endregion
|
|
#region Location
|
|
private SvgJustify _Justify = SvgJustify.Left;
|
|
[XmlAttribute("Justify")]
|
|
public SvgJustify Justify
|
|
{
|
|
get { return _Justify; }
|
|
set { _Justify = value; }
|
|
}
|
|
private SvgMeasurement _X = new SvgMeasurement();
|
|
[XmlIgnore]
|
|
public SvgMeasurement X
|
|
{
|
|
get { return _X; }
|
|
set { _X = value; }
|
|
}
|
|
[XmlAttribute("x")]
|
|
[Browsable(false)]
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public string X_XmlSurrogate
|
|
{
|
|
get { return SvgXmlConverter<SvgMeasurement>.GetString(_X); }
|
|
set { _X = SvgXmlConverter<SvgMeasurement>.GetObject(value); }
|
|
}
|
|
private SvgMeasurement _Y = new SvgMeasurement();
|
|
[XmlIgnore]
|
|
public SvgMeasurement Y
|
|
{
|
|
get { return _Y; }
|
|
set { _Y = value; }
|
|
}
|
|
[XmlAttribute("y")]
|
|
[Browsable(false)]
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public string Y_XmlSurrogate
|
|
{
|
|
get { return SvgXmlConverter<SvgMeasurement>.GetString(_Y); }
|
|
set { _Y = SvgXmlConverter<SvgMeasurement>.GetObject(value); }
|
|
}
|
|
#endregion
|
|
#region Text
|
|
private string _Text;
|
|
[XmlText()]
|
|
public string Text
|
|
{
|
|
get { return _Text; }
|
|
set { _Text = value.Replace("{sp}"," "); }
|
|
}
|
|
#endregion
|
|
#region Font Settings
|
|
private SvgFontSettings _MyFontSettings = new SvgFontSettings();
|
|
[XmlIgnore]
|
|
public Font Font
|
|
{
|
|
get
|
|
{
|
|
if (_MyFontSettings.Font.Size < 10)
|
|
Console.WriteLine("It didn't work!");
|
|
return _MyFontSettings.Font;
|
|
}
|
|
set
|
|
{
|
|
if (value.Size < 10)
|
|
Console.WriteLine("It didn't work!");
|
|
_MyFontSettings.Font = value;
|
|
}
|
|
}
|
|
[System.ComponentModel.DefaultValueAttribute("")]
|
|
[XmlAttribute("font-family")]
|
|
public string FontFamily
|
|
{
|
|
get { return _MyFontSettings.FontFamily; }
|
|
set { _MyFontSettings.FontFamily = value; }
|
|
}
|
|
[System.ComponentModel.DefaultValueAttribute("")]
|
|
[XmlAttribute("font-size")]
|
|
public string FontSize
|
|
{
|
|
get { return _MyFontSettings.FontSize; }
|
|
set { _MyFontSettings.FontSize = value; }
|
|
}
|
|
[System.ComponentModel.DefaultValueAttribute("")]
|
|
[XmlAttribute("font-style")]
|
|
public string SVGFontStyle
|
|
{
|
|
get { return _MyFontSettings.SVGFontStyle; }
|
|
set { _MyFontSettings.SVGFontStyle = value; }
|
|
}
|
|
[System.ComponentModel.DefaultValueAttribute("")]
|
|
[XmlAttribute("font-weight")]
|
|
public string FontWeight
|
|
{
|
|
get { return _MyFontSettings.FontWeight; }
|
|
set { _MyFontSettings.FontWeight = value; }
|
|
}
|
|
[System.ComponentModel.DefaultValueAttribute("")]
|
|
[XmlAttribute("text-decoration")]
|
|
public string TextDecoration
|
|
{
|
|
get { return _MyFontSettings.TextDecoration; }
|
|
set { _MyFontSettings.TextDecoration = value; }
|
|
}
|
|
#endregion
|
|
#region Setup Inheritance
|
|
override internal void SetupInheritance(SvgInheritedSettings myParentsSettings)
|
|
{
|
|
base.SetupInheritance(myParentsSettings);
|
|
_MyFontSettings.MyParentsSettings = myParentsSettings.MyFontSettings;
|
|
}
|
|
#endregion
|
|
public override string ToString()
|
|
{
|
|
return string.Format("({0}, {1}) - '{2}'",this.X,this.Y,this.Text);
|
|
}
|
|
}
|
|
public enum SvgJustify
|
|
{
|
|
Left = 0,
|
|
Center = 1,
|
|
Right =2
|
|
}
|
|
}
|