168 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using System.Drawing;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Xml.Serialization;
 | 
						|
 | 
						|
namespace Volian.Svg.Library
 | 
						|
{
 | 
						|
	public class SvgLineSettings
 | 
						|
	{
 | 
						|
		#region ctor
 | 
						|
		public SvgLineSettings() { ;}
 | 
						|
		public SvgLineSettings(Color myColor, SvgMeasurement myWidth)
 | 
						|
		{
 | 
						|
			_Stroke = ColorTranslator.ToHtml(myColor);
 | 
						|
			_StrokeWidth = myWidth.ToString();
 | 
						|
		}
 | 
						|
		//public SvgLineSettings(string myStroke, string myStrokeWidth)
 | 
						|
		//{
 | 
						|
		//  _Stroke = myStroke;
 | 
						|
		//  _StrokeWidth = myStrokeWidth;
 | 
						|
		//}
 | 
						|
		#endregion
 | 
						|
		#region Inheritance
 | 
						|
		private SvgLineSettings _MyParentsSettings = null;
 | 
						|
		public SvgLineSettings MyParentsSettings
 | 
						|
		{
 | 
						|
			get { return _MyParentsSettings; }
 | 
						|
			set 
 | 
						|
			{ 
 | 
						|
				_MyParentsSettings = value; 
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
		#region Internal Inherited Properties
 | 
						|
		protected string InheritedStroke
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				// Stroke = "", "0" - Default, otherwise the value
 | 
						|
				if (_Stroke != "" && _Stroke != "0") return _Stroke; // Current Value
 | 
						|
				if (_MyParentsSettings != null) return _MyParentsSettings.InheritedStroke;// Inherited
 | 
						|
				return "None"; // Default
 | 
						|
			}
 | 
						|
		}
 | 
						|
		protected string InheritedLineWidth
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				// StrokeWidth = "", "none" - Default, otherwise the value
 | 
						|
				if (_StrokeWidth != "" && _StrokeWidth != "none") return _StrokeWidth; // Current Value
 | 
						|
				if (_MyParentsSettings != null) return _MyParentsSettings.InheritedLineWidth; // Inherited
 | 
						|
				return "1PX"; // Default
 | 
						|
			}
 | 
						|
		}
 | 
						|
		//protected string InheritedOutlineWidth
 | 
						|
		//{
 | 
						|
		//  get
 | 
						|
		//  {
 | 
						|
		//    // StrokeWidth = "", "none" - Default, otherwise the value
 | 
						|
		//    if (_StrokeWidth != "" && _StrokeWidth.ToLower() != "none") return _StrokeWidth; // Current Value
 | 
						|
		//    if (_MyParent != null) return _MyParent.InheritedLineWidth; // Inherited
 | 
						|
		//    return "1PX"; // Default
 | 
						|
		//  }
 | 
						|
		//}
 | 
						|
		#endregion
 | 
						|
		#region Inherited Values
 | 
						|
		public SvgMeasurement LineWidth
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				// Stroke = "None" - Light, otherwise the value
 | 
						|
				// StrokeWidth = "None" Light, otherwise the value
 | 
						|
				string myStroke = InheritedStroke;
 | 
						|
				string myWidth = InheritedLineWidth;
 | 
						|
				//if (myStroke.ToLower() == "none" || myWidth.ToLower() == "none") // Light
 | 
						|
				//	return new SvgMeasurement(.001F, E_MeasurementUnits.PX);
 | 
						|
				SvgMeasurement myMeasurement = new SvgMeasurement(myWidth);
 | 
						|
				//myMeasurement.Value *= _Scale;
 | 
						|
				return myMeasurement;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				_StrokeWidth = value.ToString();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public SvgMeasurement OutlineWidth
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				// Stroke = "None" - Eliminate, otherwise the value
 | 
						|
				// StrokeWidth = "0" Eliminate, otherwise the value
 | 
						|
				string myStroke = InheritedStroke;
 | 
						|
				//string myWidth = InheritedOutlineWidth;
 | 
						|
				string myWidth = InheritedLineWidth;
 | 
						|
				if (myStroke.ToLower() == "none" || myWidth == "0") // Eliminate
 | 
						|
					return new SvgMeasurement(0, E_MeasurementUnits.PX);
 | 
						|
				SvgMeasurement myMeasurement = new SvgMeasurement(myWidth);
 | 
						|
				//myMeasurement.Value *= _Scale;
 | 
						|
				return myMeasurement;
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				_StrokeWidth = value.ToString();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public Color LineColor
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				// Stroke = "None" - Eliminate, otherwise the value
 | 
						|
				// StrokeWidth = "None" Eliminate, otherwise the value
 | 
						|
				string myStroke = InheritedStroke;
 | 
						|
				string myWidth = InheritedLineWidth;
 | 
						|
				if (myStroke.ToLower() == "none" || myWidth.ToLower() == "none" || myWidth == "0") // Light
 | 
						|
					return Color.LightGray;
 | 
						|
				return ColorTranslator.FromHtml(myStroke);
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				if (value == Color.Empty)
 | 
						|
					_Stroke = "none";
 | 
						|
				else
 | 
						|
					_Stroke = ColorTranslator.ToHtml(value);
 | 
						|
			}
 | 
						|
 | 
						|
		}
 | 
						|
		public Color OutlineColor
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				// Stroke = "None" - Eliminate, otherwise the value
 | 
						|
				// StrokeWidth = "0" Eliminate, otherwise the value
 | 
						|
				string myStroke = InheritedStroke;
 | 
						|
				//string myWidth = InheritedOutlineWidth;
 | 
						|
				string myWidth = InheritedLineWidth;
 | 
						|
				if (myStroke.ToLower() == "none" || myWidth == "0") // Eliminate
 | 
						|
					return Color.Empty;
 | 
						|
				return ColorTranslator.FromHtml(myStroke);
 | 
						|
			}
 | 
						|
			set
 | 
						|
			{
 | 
						|
				if (value == Color.Empty)
 | 
						|
					_Stroke = "none";
 | 
						|
				else
 | 
						|
					_Stroke = ColorTranslator.ToHtml(value);
 | 
						|
			}
 | 
						|
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
		#region Properties
 | 
						|
		private string _Stroke = string.Empty; // Default value is None
 | 
						|
		public string Stroke
 | 
						|
		{
 | 
						|
			get { return _Stroke; }
 | 
						|
			set { _Stroke = value; }
 | 
						|
		}
 | 
						|
		private string _StrokeWidth = string.Empty; // Default value is 1PX
 | 
						|
		public string StrokeWidth
 | 
						|
		{
 | 
						|
			get { return _StrokeWidth; }
 | 
						|
			set { _StrokeWidth = value; }
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
	}
 | 
						|
}
 |