1237 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			1237 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Drawing;
 | 
						|
using System.Drawing.Design;
 | 
						|
using System.Windows.Forms;
 | 
						|
using DevComponents.DotNetBar.Charts.Primitives;
 | 
						|
using DevComponents.DotNetBar.Charts.Style;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Charts
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Represents a base chart.
 | 
						|
    /// </summary>
 | 
						|
    [TypeConverter(typeof(BlankExpandableObjectConverter))]
 | 
						|
    public class BaseChart : ChartContainer
 | 
						|
    {
 | 
						|
        #region Static variables
 | 
						|
 | 
						|
        // DNB base color palettes
 | 
						|
 | 
						|
        static public Color[] PaletteLight = new Color[] { 
 | 
						|
            ColorFactory.GetColor(136, 189, 230),  ColorFactory.GetColor(251, 178, 88),
 | 
						|
            ColorFactory.GetColor(144, 205, 151),  ColorFactory.GetColor(246, 170, 201),
 | 
						|
            ColorFactory.GetColor(191, 165, 84),   ColorFactory.GetColor(188, 153, 199),
 | 
						|
            ColorFactory.GetColor(237, 221, 70),   ColorFactory.GetColor(240, 126, 110),
 | 
						|
            ColorFactory.GetColor(140, 140, 140), };
 | 
						|
 | 
						|
        static public Color[] PaletteMedium = new Color[] { 
 | 
						|
            ColorFactory.GetColor(93, 165, 218),   ColorFactory.GetColor(250, 164, 58),
 | 
						|
            ColorFactory.GetColor(96, 189, 104),   ColorFactory.GetColor(241, 124, 176),
 | 
						|
            ColorFactory.GetColor(178, 145, 47),   ColorFactory.GetColor(178, 118, 178),
 | 
						|
            ColorFactory.GetColor(222, 207, 63),   ColorFactory.GetColor(241, 88, 84),
 | 
						|
            ColorFactory.GetColor(77, 77, 77), };
 | 
						|
 | 
						|
        static public Color[] PaletteDark = new Color[] { 
 | 
						|
            ColorFactory.GetColor(38, 93, 171),    ColorFactory.GetColor(223, 92, 36),
 | 
						|
            ColorFactory.GetColor(5, 151, 72),     ColorFactory.GetColor(229, 18, 111),
 | 
						|
            ColorFactory.GetColor(157, 114, 42),   ColorFactory.GetColor(123, 58, 150),
 | 
						|
            ColorFactory.GetColor(199, 180, 46),   ColorFactory.GetColor(203, 32, 39),
 | 
						|
            ColorFactory.GetColor(0, 0, 0), };
 | 
						|
 | 
						|
        // Excel 2016 colors palettes
 | 
						|
 | 
						|
        static public Color[] PaletteColor1 = new Color[] { 
 | 
						|
            ColorFactory.GetColor(79, 129, 189),       // Medium Blue
 | 
						|
            ColorFactory.GetColor(192, 80, 77),        // Red
 | 
						|
            ColorFactory.GetColor(155, 187, 89),       // Green
 | 
						|
            ColorFactory.GetColor(128, 100, 162),      // Purple
 | 
						|
            ColorFactory.GetColor(75, 172, 198),       // Light Blue
 | 
						|
            ColorFactory.GetColor(247, 150, 70), };    // Orange
 | 
						|
 | 
						|
        static public Color[] PaletteColor2 = new Color[] { 
 | 
						|
            ColorFactory.GetColor(79, 129, 180),       // Medium Blue
 | 
						|
            ColorFactory.GetColor(155, 187, 89),       // Green
 | 
						|
            ColorFactory.GetColor(75, 172, 198),       // Light Blue
 | 
						|
            ColorFactory.GetColor(44, 76, 116),        // Dark Blue
 | 
						|
            ColorFactory.GetColor(95, 117, 48),        // Dark Green
 | 
						|
            ColorFactory.GetColor(39, 106, 124), };    // Dark Cyan
 | 
						|
 | 
						|
        static public Color[] PaletteColor3 = new Color[] { 
 | 
						|
            ColorFactory.GetColor(192, 80, 77),        // Red
 | 
						|
            ColorFactory.GetColor(128, 100, 162),      // Purple
 | 
						|
            ColorFactory.GetColor(247, 150, 70),       // Orange
 | 
						|
            ColorFactory.GetColor(119, 44, 42),        // Dark Red
 | 
						|
            ColorFactory.GetColor(77, 59, 98),         // Dark Purple
 | 
						|
            ColorFactory.GetColor(182, 87, 8), };      // Dark Orange
 | 
						|
 | 
						|
        static public Color[] PaletteColor4 = new Color[] { 
 | 
						|
            ColorFactory.GetColor(247, 150, 70),       // Orange
 | 
						|
            ColorFactory.GetColor(75, 172, 198),       // Light Blue
 | 
						|
            ColorFactory.GetColor(128, 100, 162),      // Purple
 | 
						|
            ColorFactory.GetColor(182, 87, 8),         // Dark Orange
 | 
						|
            ColorFactory.GetColor(39, 106, 124),       // Dark Cyan
 | 
						|
            ColorFactory.GetColor(77, 59, 98), };      // Dark Purple
 | 
						|
 | 
						|
        // Monochrome
 | 
						|
 | 
						|
        static public Color[] PaletteMonoBlue = new Color[] { 
 | 
						|
            ColorFactory.GetColor(56, 93, 138),    ColorFactory.GetColor(66, 109, 161),
 | 
						|
            ColorFactory.GetColor(75, 123, 180),   ColorFactory.GetColor(115, 148, 197),
 | 
						|
            ColorFactory.GetColor(161, 180, 212),  ColorFactory.GetColor(194, 205, 225), };
 | 
						|
 | 
						|
        static public Color[] PaletteMonoRed = new Color[] { 
 | 
						|
            ColorFactory.GetColor(140, 56, 54),    ColorFactory.GetColor(164, 67, 64),
 | 
						|
            ColorFactory.GetColor(183, 76, 73),    ColorFactory.GetColor(200, 161, 160),
 | 
						|
            ColorFactory.GetColor(214, 180, 212),  ColorFactory.GetColor(226, 194, 194), };
 | 
						|
 | 
						|
        static public Color[] PaletteMonoGreen = new Color[] { 
 | 
						|
            ColorFactory.GetColor(113, 137, 63),   ColorFactory.GetColor(132, 159, 75),
 | 
						|
            ColorFactory.GetColor(148, 178, 85),   ColorFactory.GetColor(169, 195, 121),
 | 
						|
            ColorFactory.GetColor(192, 210, 164),  ColorFactory.GetColor(213, 224, 196), };
 | 
						|
 | 
						|
        static public Color[] PaletteMonoPurple = new Color[] { 
 | 
						|
            ColorFactory.GetColor(92, 71, 118),    ColorFactory.GetColor(108, 84, 138),
 | 
						|
            ColorFactory.GetColor(122, 95, 154),   ColorFactory.GetColor(148, 128, 174),
 | 
						|
            ColorFactory.GetColor(179, 168, 196),  ColorFactory.GetColor(205, 198, 215), };
 | 
						|
 | 
						|
        static public Color[] PaletteMonoTeal = new Color[] { 
 | 
						|
           ColorFactory.GetColor(53, 125, 145),   ColorFactory.GetColor(63, 146, 169),
 | 
						|
           ColorFactory.GetColor(71, 164, 189),   ColorFactory.GetColor(112, 183, 205),
 | 
						|
           ColorFactory.GetColor(160, 202, 217),  ColorFactory.GetColor(193, 219, 229), };
 | 
						|
 | 
						|
        static public Color[] PaletteMonoOrange = new Color[] { 
 | 
						|
            ColorFactory.GetColor(182, 109, 49),   ColorFactory.GetColor(211, 127, 58),
 | 
						|
            ColorFactory.GetColor(236, 143, 66),   ColorFactory.GetColor(248, 165, 110),
 | 
						|
            ColorFactory.GetColor(249, 190, 158),  ColorFactory.GetColor(251, 211, 193), };
 | 
						|
 | 
						|
        static public Color[] PaletteMonoGray = new Color[] { 
 | 
						|
            ColorFactory.GetColor(95, 95, 95),     ColorFactory.GetColor(179, 179, 179),
 | 
						|
            ColorFactory.GetColor(137, 137, 137),  ColorFactory.GetColor(33, 33, 33),
 | 
						|
            ColorFactory.GetColor(218, 218, 218),  ColorFactory.GetColor(170, 170, 170), };
 | 
						|
 | 
						|
        // Palette groups
 | 
						|
 | 
						|
        static public Color[][] PaletteGroups = new Color[][] { 
 | 
						|
            PaletteColor1, PaletteColor2, PaletteColor3, PaletteColor4,
 | 
						|
 | 
						|
            PaletteMonoBlue, PaletteMonoRed, PaletteMonoGreen,
 | 
						|
            PaletteMonoPurple, PaletteMonoTeal, PaletteMonoOrange, PaletteMonoGray,
 | 
						|
 | 
						|
            PaletteLight, PaletteMedium, PaletteDark, };
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Private variables
 | 
						|
 | 
						|
        private States _States;
 | 
						|
 | 
						|
        private object _DataSource;
 | 
						|
        private string _DataMember;
 | 
						|
        private DataBinder _DataBinder;
 | 
						|
 | 
						|
        private string _DataPropertyNameSeries;
 | 
						|
        private string _DataPropertyNameX;
 | 
						|
        private CustomCollection<string> _DataPropertyNamesY;
 | 
						|
 | 
						|
        private ChartBaseSeriesCollection _BaseSeries;
 | 
						|
 | 
						|
        private object _BoundSource;
 | 
						|
 | 
						|
        private List<ChartLegendItem> _LegendData;
 | 
						|
 | 
						|
        private PaletteGroup _PaletteGroup = PaletteGroup.Color1;
 | 
						|
        private Color[] _CustomPalette;
 | 
						|
 | 
						|
        private int _SeriesPointCount;
 | 
						|
        private int _SeriesLayoutCount;
 | 
						|
 | 
						|
        private SeriesDisplayOrder _SeriesDisplayOrder = SeriesDisplayOrder.NotSet;
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        public BaseChart()
 | 
						|
        {
 | 
						|
            InitDefaultStates();
 | 
						|
 | 
						|
            VScrollBar.Inverted = true;
 | 
						|
        }
 | 
						|
 | 
						|
        #region InitDefaultStates
 | 
						|
 | 
						|
        private void InitDefaultStates()
 | 
						|
        {
 | 
						|
            SetState(States.SeriesRangeChanged, true);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Public properties
 | 
						|
 | 
						|
        #region AutoGenSeriesCollection
 | 
						|
 | 
						|
        ///<summary>
 | 
						|
        /// Gets or sets whether series definitions are automatically generated.
 | 
						|
        /// from the associated bound data.
 | 
						|
        ///</summary>
 | 
						|
        [DefaultValue(false), Category("Data")]
 | 
						|
        [Description("Indicates whether series definitions are automatically generated from the associated bound data.")]
 | 
						|
        public bool AutoGenSeriesCollection
 | 
						|
        {
 | 
						|
            get { return (TestState(States.AutoGenSeriesCollection)); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != AutoGenSeriesCollection)
 | 
						|
                {
 | 
						|
                    SetState(States.AutoGenSeriesCollection, value);
 | 
						|
 | 
						|
                    OnPropertyChangedEx("AutoGenSeriesCollection", VisualChangeType.Layout);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region BaseSeries
 | 
						|
 | 
						|
        [Browsable(false)]
 | 
						|
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | 
						|
        public ChartBaseSeriesCollection BaseSeries
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                if (_BaseSeries == null)
 | 
						|
                    _BaseSeries = GetBaseSeries();
 | 
						|
 | 
						|
                return (_BaseSeries);
 | 
						|
            }
 | 
						|
 | 
						|
            set { _BaseSeries = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GetBaseSeries
 | 
						|
 | 
						|
        internal virtual ChartBaseSeriesCollection GetBaseSeries()
 | 
						|
        {
 | 
						|
            throw new NotImplementedException();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region CustomPalette
 | 
						|
 | 
						|
        ///<summary>
 | 
						|
        /// Gets or sets the custom palette for the chart.
 | 
						|
        ///</summary>
 | 
						|
        [DefaultValue(null), Category("Appearance")]
 | 
						|
        [Description("Indicates the custom palette for the chart.")]
 | 
						|
        public virtual Color[] CustomPalette
 | 
						|
        {
 | 
						|
            get { return (_CustomPalette); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                _CustomPalette = value;
 | 
						|
 | 
						|
                OnPropertyChangedEx("CustomPalette", VisualChangeType.Layout);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DataMember
 | 
						|
 | 
						|
        ///<summary>
 | 
						|
        /// Gets or sets the name of the list or table
 | 
						|
        /// in the data source that the Chart is bound to.
 | 
						|
        ///</summary>
 | 
						|
        [DefaultValue(null), Category("Data")]
 | 
						|
        [Description("Indicates the name of the list or table in the data source that the Chart is bound to.")]
 | 
						|
        public string DataMember
 | 
						|
        {
 | 
						|
            get { return (_DataMember); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_DataBinder != null)
 | 
						|
                    _DataBinder.Clear();
 | 
						|
 | 
						|
                _DataMember = value;
 | 
						|
 | 
						|
                NeedToUpdateBindings = true;
 | 
						|
 | 
						|
                OnPropertyChangedEx("DataMember", VisualChangeType.Layout);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DataSource
 | 
						|
 | 
						|
        ///<summary>
 | 
						|
        /// Gets or sets the data source that the Chart is bound to
 | 
						|
        ///</summary>
 | 
						|
        [DefaultValue(null), AttributeProvider(typeof(IListSource)), Category("Data")]
 | 
						|
        [Description("Indicates the data source that the Chart is bound to.")]
 | 
						|
        public object DataSource
 | 
						|
        {
 | 
						|
            get { return (_DataSource); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_DataBinder != null)
 | 
						|
                    _DataBinder.Clear();
 | 
						|
 | 
						|
                _DataSource = value;
 | 
						|
 | 
						|
                NeedToUpdateBindings = true;
 | 
						|
 | 
						|
                OnPropertyChangedEx("DataSource", VisualChangeType.Layout);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DataPropertyNameSeries
 | 
						|
 | 
						|
        ///<summary>
 | 
						|
        /// Gets or sets the default name of the data field to which the Series Name is bound.
 | 
						|
        ///</summary>
 | 
						|
        [DefaultValue(null), Category("Data")]
 | 
						|
        [Description("Indicates the default name of the data field to which the Series Name is bound.")]
 | 
						|
        public string DataPropertyNameSeries
 | 
						|
        {
 | 
						|
            get { return (_DataPropertyNameSeries); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _DataPropertyNameSeries)
 | 
						|
                {
 | 
						|
                    _DataPropertyNameSeries = value;
 | 
						|
 | 
						|
                    NeedToUpdateBindings = true;
 | 
						|
 | 
						|
                    InvalidateLayout();
 | 
						|
 | 
						|
                    OnPropertyChangedEx("DataPropertyNameSeries", VisualChangeType.Layout);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DataPropertyNameX
 | 
						|
 | 
						|
        ///<summary>
 | 
						|
        /// Gets or sets the default name of the data field to which the X-Axis data is bound.
 | 
						|
        ///</summary>
 | 
						|
        [DefaultValue(null), Category("Data")]
 | 
						|
        [Description("Indicates the default name of the data field to which the X-Axis data is bound.")]
 | 
						|
        public string DataPropertyNameX
 | 
						|
        {
 | 
						|
            get { return (_DataPropertyNameX); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _DataPropertyNameX)
 | 
						|
                {
 | 
						|
                    _DataPropertyNameX = value;
 | 
						|
 | 
						|
                    NeedToUpdateBindings = true;
 | 
						|
 | 
						|
                    InvalidateLayout();
 | 
						|
 | 
						|
                    OnPropertyChangedEx("DataPropertyNameX", VisualChangeType.Layout);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DataPropertyNamesY
 | 
						|
 | 
						|
        ///<summary>
 | 
						|
        /// Gets or sets the default names of the data fields to which the Y-Axis data is bound.
 | 
						|
        ///</summary>
 | 
						|
        [DefaultValue(null), Category("Data")]
 | 
						|
        [Description("Indicates the default names of the data fields to which the Y-Axis data is bound.")]
 | 
						|
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
 | 
						|
        [Editor("System.Windows.Forms.Design.StringCollectionEditor, System.Design, Version= 2.0.0.0, Culture=neutral," +
 | 
						|
             "PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
 | 
						|
        public CustomCollection<string> DataPropertyNamesY
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                if (_DataPropertyNamesY == null)
 | 
						|
                {
 | 
						|
                    _DataPropertyNamesY = new CustomCollection<string>();
 | 
						|
 | 
						|
                    _DataPropertyNamesY.CollectionChanged += DataPropertyNamesY_CollectionChanged;
 | 
						|
                }
 | 
						|
 | 
						|
                return (_DataPropertyNamesY);
 | 
						|
            }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _DataPropertyNamesY)
 | 
						|
                {
 | 
						|
                    if (_DataPropertyNamesY != null)
 | 
						|
                    {
 | 
						|
                        _DataPropertyNamesY.Clear();
 | 
						|
 | 
						|
                        _DataPropertyNamesY.CollectionChanged -= DataPropertyNamesY_CollectionChanged;
 | 
						|
                    }
 | 
						|
 | 
						|
                    _DataPropertyNamesY = value;
 | 
						|
 | 
						|
                    if (_DataPropertyNamesY != null)
 | 
						|
                        _DataPropertyNamesY.CollectionChanged += DataPropertyNamesY_CollectionChanged;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("DataPropertyNamesY", Style.VisualChangeType.Layout);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        void DataPropertyNamesY_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
 | 
						|
        {
 | 
						|
            NeedToUpdateBindings = true;
 | 
						|
 | 
						|
            InvalidateLayout();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region EnableDiscreteBoundItems
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether discrete bound item suport is enabled.
 | 
						|
        /// This property permits each List bound item to be a separate object type.
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false)]
 | 
						|
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | 
						|
        public bool EnableDiscreteBoundItems
 | 
						|
        {
 | 
						|
            get { return (TestState(States.EnableDiscreteBoundItems)); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != EnableDiscreteBoundItems)
 | 
						|
                {
 | 
						|
                    SetState(States.EnableDiscreteBoundItems, value);
 | 
						|
 | 
						|
                    OnPropertyChangedEx("EnableDiscreteBoundItems", VisualChangeType.Layout);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region PaletteGroup
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the palette color group to use (Light/Medium/Dark/Color1/MonoBlue/etc).
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(PaletteGroup.Color1), Category("Appearance")]
 | 
						|
        [Description("Indicates the palette color group to use (Light/Medium/Dark/Color1/MonoBlue/etc.).")]
 | 
						|
        public virtual PaletteGroup PaletteGroup
 | 
						|
        {
 | 
						|
            get { return (_PaletteGroup); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _PaletteGroup)
 | 
						|
                {
 | 
						|
                    _PaletteGroup = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("PaletteGroup", VisualChangeType.Layout);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ReversePaletteColors
 | 
						|
 | 
						|
        ///<summary>
 | 
						|
        /// Gets or sets whether default palette colors are utilized in reverse order.
 | 
						|
        ///</summary>
 | 
						|
        [DefaultValue(false), Category("Behavior")]
 | 
						|
        [Description("Indicates whether default palette colors are utilized in reverse order.")]
 | 
						|
        public virtual bool ReversePaletteColors
 | 
						|
        {
 | 
						|
            get { return (TestState(States.ReversePaletteColors)); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != ReversePaletteColors)
 | 
						|
                {
 | 
						|
                    SetState(States.ReversePaletteColors, value);
 | 
						|
 | 
						|
                    OnPropertyChangedEx("ReversePaletteColors", VisualChangeType.Layout);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SeriesDisplayOrder
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the order in which the charts series are displayed.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(SeriesDisplayOrder.NotSet), Category("Display")]
 | 
						|
        [Description("Indicates the order in which the charts series are displayed.")]
 | 
						|
        public SeriesDisplayOrder SeriesDisplayOrder
 | 
						|
        {
 | 
						|
            get { return (_SeriesDisplayOrder); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (value != _SeriesDisplayOrder)
 | 
						|
                {
 | 
						|
                    _SeriesDisplayOrder = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("SeriesDisplayOrder", VisualChangeType.Layout);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SeriesRangeChanged
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Signals to the chart that an underlying chart series data has changed.
 | 
						|
        /// </summary>
 | 
						|
        [Browsable(false)]
 | 
						|
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | 
						|
        public bool SeriesRangeChanged
 | 
						|
        {
 | 
						|
            get { return (TestState(States.SeriesRangeChanged)); }
 | 
						|
            set { SetState(States.SeriesRangeChanged, value); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Internal properties
 | 
						|
 | 
						|
        #region DataBinder
 | 
						|
 | 
						|
        internal DataBinder DataBinder
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                if (_DataBinder == null)
 | 
						|
                    _DataBinder = new DataBinder(this);
 | 
						|
 | 
						|
                return (_DataBinder);
 | 
						|
            }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_DataBinder != null)
 | 
						|
                    _DataBinder.Clear();
 | 
						|
 | 
						|
                _DataBinder = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region LegendData
 | 
						|
 | 
						|
        internal List<ChartLegendItem> LegendData
 | 
						|
        {
 | 
						|
            get { return (_LegendData); }
 | 
						|
            set { _LegendData = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region NeedToUpdateBindings
 | 
						|
 | 
						|
        internal bool NeedToUpdateBindings
 | 
						|
        {
 | 
						|
            get { return (TestState(States.NeedToUpdateBindings)); }
 | 
						|
            set { SetState(States.NeedToUpdateBindings, value); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SeriesLayoutCount
 | 
						|
 | 
						|
        internal int SeriesLayoutCount
 | 
						|
        {
 | 
						|
            get { return (_SeriesLayoutCount); }
 | 
						|
            set { _SeriesLayoutCount = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SeriesPointCount
 | 
						|
 | 
						|
        internal int SeriesPointCount
 | 
						|
        {
 | 
						|
            get { return (_SeriesPointCount); }
 | 
						|
            set { _SeriesPointCount = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region VisibleSeriesCount
 | 
						|
 | 
						|
        internal int VisibleSeriesCount
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                int count = 0;
 | 
						|
 | 
						|
                ChartBaseSeriesCollection baseSeries = BaseSeries;
 | 
						|
 | 
						|
                foreach (BaseSeries series in baseSeries)
 | 
						|
                {
 | 
						|
                    if (series.Visible == true)
 | 
						|
                        count++;
 | 
						|
                }
 | 
						|
 | 
						|
                return (count);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DisplayedSeriesCount
 | 
						|
 | 
						|
        internal int DisplayedSeriesCount
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                int count = 0;
 | 
						|
 | 
						|
                ChartBaseSeriesCollection baseSeries = BaseSeries;
 | 
						|
 | 
						|
                foreach (BaseSeries series in baseSeries)
 | 
						|
                {
 | 
						|
                    if (series.Visible == true)
 | 
						|
                    {
 | 
						|
                        if (Legend.Visible == false ||
 | 
						|
                            (series.ShowCheckBoxInLegend == false || series.CheckedInLegend == true))
 | 
						|
                        {
 | 
						|
                            count++;
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
                return (count);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region RenderFrameBackground
 | 
						|
 | 
						|
        protected virtual void RenderFrameBackground(
 | 
						|
            Graphics g, Rectangle bounds, ContainerVisualStyle cstyle)
 | 
						|
        {
 | 
						|
            ChartControl chartControl = ChartControl;
 | 
						|
 | 
						|
            if (chartControl.DoPreRenderFrameBackgroundEvent(g, this, bounds) == false)
 | 
						|
            {
 | 
						|
                cstyle.RenderBackground(g, bounds);
 | 
						|
 | 
						|
                chartControl.DoPostRenderFrameBackgroundEvent(g, this, bounds);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region UpdateDataBindings
 | 
						|
 | 
						|
        protected void UpdateDataBindings()
 | 
						|
        {
 | 
						|
            if (NeedToUpdateBindings == true)
 | 
						|
            {
 | 
						|
                NeedToUpdateBindings = false;
 | 
						|
 | 
						|
                DataBinder.Clear();
 | 
						|
 | 
						|
                object boundSource = null;
 | 
						|
 | 
						|
                if (DataSource != null)
 | 
						|
                    _BoundSource = DataBinder.DataConnect(DataSource, DataMember);
 | 
						|
 | 
						|
                if (boundSource != null)
 | 
						|
                    ChartControl.DoChartDataBindingCompleteEvent(this, boundSource);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region FinalizeDataBindings
 | 
						|
 | 
						|
        protected void FinalizeDataBindings()
 | 
						|
        {
 | 
						|
            if (_BoundSource != null)
 | 
						|
            {
 | 
						|
                ChartControl.DoChartDataBindingCompleteEvent(this, _BoundSource);
 | 
						|
 | 
						|
                _BoundSource = null;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DataCompare
 | 
						|
 | 
						|
        internal int DataCompare(object value1, object value2)
 | 
						|
        {
 | 
						|
            if (value1 == value2)
 | 
						|
                return (0);
 | 
						|
 | 
						|
            if (value1 == null)
 | 
						|
                return (-1);
 | 
						|
 | 
						|
            if (value2 == null)
 | 
						|
                return (1);
 | 
						|
 | 
						|
            if (value1.GetType() == value2.GetType())
 | 
						|
            {
 | 
						|
                IComparable icompa = value1 as IComparable;
 | 
						|
 | 
						|
                if (icompa == null)
 | 
						|
                    throw new Exception("Values must support IComparable");
 | 
						|
 | 
						|
                return (icompa.CompareTo(value2));
 | 
						|
            }
 | 
						|
 | 
						|
            double v1 = Convert.ToDouble(value1);
 | 
						|
            double v2 = Convert.ToDouble(value2);
 | 
						|
 | 
						|
            return (v1.CompareTo(v2));
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GetAutoGenSeriesType
 | 
						|
 | 
						|
        internal virtual SeriesType GetAutoGenSeriesType()
 | 
						|
        {
 | 
						|
            throw new NotImplementedException();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GetAutoGenSeriesNameCount
 | 
						|
 | 
						|
        internal virtual int GetAutoGenSeriesNameCount()
 | 
						|
        {
 | 
						|
            throw new NotImplementedException();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GetNewSeries
 | 
						|
 | 
						|
        internal virtual BaseSeries GetNewSeries()
 | 
						|
        {
 | 
						|
            throw new NotImplementedException();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region AddChartSeries
 | 
						|
 | 
						|
        internal virtual void AddChartSeries(BaseSeries series)
 | 
						|
        {
 | 
						|
            throw new NotImplementedException();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GetPaletteColor
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the series default Palette color.
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public Color GetPaletteColor(int index)
 | 
						|
        {
 | 
						|
            return (GetPaletteColor(index, PaletteGroup));
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the series default Palette color from the
 | 
						|
        /// specified PaletteGroup.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="index"></param>
 | 
						|
        /// <param name="group"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public Color GetPaletteColor(int index, PaletteGroup group)
 | 
						|
        {
 | 
						|
            if (group == PaletteGroup.NotSet)
 | 
						|
                group = PaletteGroup.Color1;
 | 
						|
 | 
						|
            Color[] palette = (group == PaletteGroup.Custom)
 | 
						|
                ? CustomPalette : PaletteGroups[(int)group];
 | 
						|
 | 
						|
            return (GetPaletteColor(index, palette, ReversePaletteColors));
 | 
						|
        }
 | 
						|
 | 
						|
        internal Color GetPaletteColor(
 | 
						|
            int index, Color[] palette, bool reversePaletteColors)
 | 
						|
        {
 | 
						|
            if (palette == null || palette.Length == 0)
 | 
						|
                palette = PaletteColor1;
 | 
						|
 | 
						|
            int n = index % palette.Length;
 | 
						|
 | 
						|
            if (reversePaletteColors == true)
 | 
						|
                n = (palette.Length - n - 1);
 | 
						|
 | 
						|
            index = index % (palette.Length * 3);
 | 
						|
 | 
						|
            Color color = palette[n];
 | 
						|
 | 
						|
            if (color.IsEmpty == false)
 | 
						|
            {
 | 
						|
                n = index / palette.Length;
 | 
						|
 | 
						|
                if (n > 0)
 | 
						|
                {
 | 
						|
                    int z = (int)(Math.Ceiling(n * .75d));
 | 
						|
 | 
						|
                    float fn = (float)(z) * .05f;
 | 
						|
 | 
						|
                    if ((n % 2) == 0)
 | 
						|
                        color = ControlPaint.Light(color, fn);
 | 
						|
                    else
 | 
						|
                        color = ControlPaint.Dark(color, fn);
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            return (color);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GetShadowBounds
 | 
						|
 | 
						|
        internal Rectangle GetShadowBounds(Rectangle bounds)
 | 
						|
        {
 | 
						|
            bounds.Width -= 3;
 | 
						|
            bounds.Height -= 3;
 | 
						|
 | 
						|
            return (bounds);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Style handling
 | 
						|
 | 
						|
        #region ApplyStyles
 | 
						|
 | 
						|
        public override void ApplyStyles(BaseVisualStyle style)
 | 
						|
        {
 | 
						|
            base.ApplyStyles(style);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ClearEffectiveStyles
 | 
						|
 | 
						|
        protected override void ClearEffectiveStyles()
 | 
						|
        {
 | 
						|
            base.ClearEffectiveStyles();
 | 
						|
 | 
						|
            ChartBaseSeriesCollection baseSeries = BaseSeries;
 | 
						|
 | 
						|
            foreach (BaseSeries series in baseSeries)
 | 
						|
                series.InvalidateStyle();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ILegendData
 | 
						|
 | 
						|
        #region GetLegendData
 | 
						|
 | 
						|
        public override List<ChartLegendItem> GetLegendData()
 | 
						|
        {
 | 
						|
            LegendData = new List<ChartLegendItem>();
 | 
						|
 | 
						|
            ChartBaseSeriesCollection baseSeries = BaseSeries;
 | 
						|
 | 
						|
            foreach (BaseSeries series in baseSeries)
 | 
						|
            {
 | 
						|
                if (series.Visible == true)
 | 
						|
                {
 | 
						|
                    List<ChartLegendItem> items = series.GetLegendItems();
 | 
						|
 | 
						|
                    if (items != null && items.Count > 0)
 | 
						|
                        _LegendData.AddRange(items);
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            return (_LegendData);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region OnSeriesCheckStateChanged
 | 
						|
 | 
						|
        internal virtual void OnSeriesCheckStateChanged(string property)
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Copy/CopyTo
 | 
						|
 | 
						|
        public override ChartVisualElement Copy()
 | 
						|
        {
 | 
						|
            BaseChart copy = new BaseChart();
 | 
						|
 | 
						|
            CopyTo(copy);
 | 
						|
 | 
						|
            return (copy);
 | 
						|
        }
 | 
						|
 | 
						|
        public override void CopyTo(ChartVisualElement copy)
 | 
						|
        {
 | 
						|
            BaseChart c = copy as BaseChart;
 | 
						|
 | 
						|
            if (c != null)
 | 
						|
            {
 | 
						|
                base.CopyTo(c);
 | 
						|
 | 
						|
                c.AutoGenSeriesCollection = AutoGenSeriesCollection;
 | 
						|
 | 
						|
                if (_CustomPalette != null)
 | 
						|
                {
 | 
						|
                    c.CustomPalette = new Color[CustomPalette.Length];
 | 
						|
 | 
						|
                    CustomPalette.CopyTo(c.CustomPalette, 0);
 | 
						|
                }
 | 
						|
 | 
						|
                c.DataMember = DataMember;
 | 
						|
                c.DataSource = DataSource;
 | 
						|
                c.DataPropertyNameSeries = DataPropertyNameSeries;
 | 
						|
                c.DataPropertyNameX = DataPropertyNameX;
 | 
						|
                c.DataPropertyNamesY = DataPropertyNamesY;
 | 
						|
                c.EnableDiscreteBoundItems = EnableDiscreteBoundItems;
 | 
						|
 | 
						|
                c.PaletteGroup = PaletteGroup;
 | 
						|
                c.ReversePaletteColors = ReversePaletteColors;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GetSerialData
 | 
						|
 | 
						|
        internal override SerialElementCollection GetSerialData(string serialName)
 | 
						|
        {
 | 
						|
            SerialElementCollection sec = new SerialElementCollection();
 | 
						|
 | 
						|
            if (serialName != null)
 | 
						|
            {
 | 
						|
                if (serialName.Equals("") == true)
 | 
						|
                    serialName = "BaseChart";
 | 
						|
 | 
						|
                sec.AddStartElement(serialName);
 | 
						|
            }
 | 
						|
 | 
						|
            sec.AddValue("AutoGenSeriesCollection", AutoGenSeriesCollection, false);
 | 
						|
 | 
						|
            if (_CustomPalette != null && _CustomPalette.Length > 0)
 | 
						|
            {
 | 
						|
                sec.AddStartElement("CustomPalette count=\"" + _CustomPalette.Length + "\"");
 | 
						|
 | 
						|
                foreach (Color color in _CustomPalette)
 | 
						|
                    sec.AddValue("PaletteColor", color);
 | 
						|
 | 
						|
                sec.AddEndElement("CustomPalette");
 | 
						|
            }
 | 
						|
 | 
						|
            sec.AddDataValue("DataSource", DataSource, null);
 | 
						|
            sec.AddValue("DataMember", DataMember, null);
 | 
						|
 | 
						|
            sec.AddValue("DataPropertyNameSeries", DataPropertyNameSeries, null);
 | 
						|
            sec.AddValue("DataPropertyNameX", DataPropertyNameX, null);
 | 
						|
 | 
						|
            if (_DataPropertyNamesY != null && _DataPropertyNamesY.Count > 0)
 | 
						|
            {
 | 
						|
                sec.AddStartElement("DataPropertyNamesYs count=\"" + _DataPropertyNamesY.Count + "\"");
 | 
						|
 | 
						|
                foreach (string s in _DataPropertyNamesY)
 | 
						|
                    sec.AddValue("DataPropertyNamesY", s);
 | 
						|
 | 
						|
                sec.AddEndElement("DataPropertyNamesYs");
 | 
						|
            }
 | 
						|
 | 
						|
            sec.AddValue("EnableDiscreteBoundItems", EnableDiscreteBoundItems, false);
 | 
						|
 | 
						|
            sec.AddValue("PaletteGroup", PaletteGroup, PaletteGroup.Color1);
 | 
						|
            sec.AddValue("ReversePaletteColors", ReversePaletteColors, false);
 | 
						|
 | 
						|
            sec.AddElement(base.GetSerialData(null));
 | 
						|
 | 
						|
            if (serialName != null)
 | 
						|
                sec.AddEndElement(serialName);
 | 
						|
 | 
						|
            return (sec);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region PutSerialData
 | 
						|
 | 
						|
        #region ProcessValue
 | 
						|
 | 
						|
        internal override void ProcessValue(SerialElement se)
 | 
						|
        {
 | 
						|
            switch (se.Name)
 | 
						|
            {
 | 
						|
                case "AutoGenSeriesCollection":
 | 
						|
                    AutoGenSeriesCollection = bool.Parse(se.StringValue);
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "DataMember":
 | 
						|
                    DataMember = se.StringValue;
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "DataSource":
 | 
						|
                    DataSource = se.DataValue;
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "DataPropertyNameSeries":
 | 
						|
                    DataPropertyNameSeries = se.StringValue;
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "DataPropertyNameX":
 | 
						|
                    DataPropertyNameX = se.StringValue;
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "DataPropertyNamesY":
 | 
						|
                    DataPropertyNamesY.Add(se.StringValue);
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "EnableDiscreteBoundItems":
 | 
						|
                    EnableDiscreteBoundItems = bool.Parse(se.StringValue);
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "PaletteColor":
 | 
						|
                    CustomPalette[se.ValueIndex] = se.GetValueColor();
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "PaletteGroup":
 | 
						|
                    PaletteGroup = (PaletteGroup)se.GetValueEnum(typeof(PaletteGroup));
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "ReversePaletteColors":
 | 
						|
                    ReversePaletteColors = bool.Parse(se.StringValue);
 | 
						|
                    break;
 | 
						|
 | 
						|
                default:
 | 
						|
                    base.ProcessValue(se);
 | 
						|
                    break;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ProcessCollection
 | 
						|
 | 
						|
        internal override void ProcessCollection(SerialElement se)
 | 
						|
        {
 | 
						|
            SerialElementCollection sec = se.Sec;
 | 
						|
 | 
						|
            switch (se.Name)
 | 
						|
            {
 | 
						|
                case "ChartContainers":
 | 
						|
                    sec.PutSerialData(this);
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "CustomPalette":
 | 
						|
                    if (se.ArrayCount > 0)
 | 
						|
                    {
 | 
						|
                        CustomPalette = new Color[se.ArrayCount];
 | 
						|
 | 
						|
                        sec.PutSerialData(this);
 | 
						|
                    }
 | 
						|
                    break;
 | 
						|
 | 
						|
                case "DataPropertyNamesYs":
 | 
						|
                    if (se.ArrayCount > 0)
 | 
						|
                    {
 | 
						|
                        DataPropertyNamesY = new CustomCollection<string>(se.ArrayCount);
 | 
						|
 | 
						|
                        sec.PutSerialData(this);
 | 
						|
                    }
 | 
						|
                    break;
 | 
						|
 | 
						|
                default:
 | 
						|
                    base.ProcessCollection(se);
 | 
						|
                    break;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region States
 | 
						|
 | 
						|
        [Flags]
 | 
						|
        private enum States : uint
 | 
						|
        {
 | 
						|
            AutoGenSeriesCollection = (1U << 0),
 | 
						|
            EnableDiscreteBoundItems = (1U << 1),
 | 
						|
            ReversePaletteColors = (1U << 2),
 | 
						|
 | 
						|
            //------------
 | 
						|
 | 
						|
            SeriesRangeChanged = (1U << 3),
 | 
						|
            NeedToUpdateBindings = (1U << 4),
 | 
						|
            IsSelected = (1U << 5),
 | 
						|
        }
 | 
						|
 | 
						|
        #region TestState
 | 
						|
 | 
						|
        private bool TestState(States state)
 | 
						|
        {
 | 
						|
            return ((_States & state) == state);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SetState
 | 
						|
 | 
						|
        private void SetState(States state, bool value)
 | 
						|
        {
 | 
						|
            if (value == true)
 | 
						|
                _States |= state;
 | 
						|
            else
 | 
						|
                _States &= ~state;
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region IDisposable
 | 
						|
 | 
						|
        public override void Dispose()
 | 
						|
        {
 | 
						|
            base.Dispose();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
 | 
						|
    #region enums
 | 
						|
 | 
						|
    #region PaletteGroup
 | 
						|
 | 
						|
    public enum PaletteGroup
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// NotSet.
 | 
						|
        /// </summary>
 | 
						|
        NotSet = -1,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Colorful 'Color1' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        Color1,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Colorful 'Color2' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        Color2,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Colorful 'Color3' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        Color3,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Colorful 'Color4' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        Color4,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Monochromatic 'Blue' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        MonoBlue,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Monochromatic 'Red' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        MonoRed,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Monochromatic 'Green' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        MonoGreen,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Monochromatic 'Purple' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        MonoPurple,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Monochromatic 'Teal' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        MonoTeal,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Monochromatic 'Orange' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        MonoOrange,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Monochromatic 'Gray' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        MonoGray,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Colorful 'Light' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        Light,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Colorful 'Medium' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        Medium,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Colorful 'Dark' toned pallete
 | 
						|
        /// </summary>
 | 
						|
        Dark,
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  Custom pallete (CustomPalette property)
 | 
						|
        /// </summary>
 | 
						|
        Custom
 | 
						|
    }
 | 
						|
 | 
						|
    #endregion
 | 
						|
 | 
						|
    #endregion
 | 
						|
 | 
						|
}
 |