479 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			479 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.ComponentModel;
 | 
						|
using System.Drawing;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.SuperGrid.Style
 | 
						|
{
 | 
						|
    ///<summary>
 | 
						|
    /// FilterRowVisualStyles
 | 
						|
    ///</summary>
 | 
						|
    [TypeConverter(typeof(VisualStylesConverter))]
 | 
						|
    public class GroupByVisualStyles : VisualStyles<GroupByVisualStyle>
 | 
						|
    {
 | 
						|
    }
 | 
						|
 | 
						|
    ///<summary>
 | 
						|
    /// FilterRowVisualStyle
 | 
						|
    ///</summary>
 | 
						|
    [TypeConverter(typeof(VisualStylesConverter))]
 | 
						|
    public class GroupByVisualStyle : TextRowVisualStyle
 | 
						|
    {
 | 
						|
        #region Private variables
 | 
						|
 | 
						|
        private Color _GroupBoxBorderColor = Color.Empty;
 | 
						|
        private Color _GroupBoxConnectorColor = Color.Empty;
 | 
						|
        private Color _GroupBoxTextColor = Color.Empty;
 | 
						|
        private Background _GroupBoxBackground;
 | 
						|
 | 
						|
        private Color _WatermarkTextColor = Color.Empty;
 | 
						|
        private Font _WatermarkFont;
 | 
						|
 | 
						|
        private Background _InsertMarkerBackground;
 | 
						|
        private Color _InsertMarkerBorderColor = Color.Empty;
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Public properties
 | 
						|
 | 
						|
        #region GroupBoxBorderColor
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the GroupBox border color
 | 
						|
        /// </summary>
 | 
						|
        [Description("Indicates the GroupBox border color")]
 | 
						|
        public Color GroupBoxBorderColor
 | 
						|
        {
 | 
						|
            get { return (_GroupBoxBorderColor); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_GroupBoxBorderColor != value)
 | 
						|
                {
 | 
						|
                    _GroupBoxBorderColor = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("GroupBoxBorderColor", VisualChangeType.Render);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets whether property should be serialized.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private bool ShouldSerializeGroupBoxBorderColor()
 | 
						|
        {
 | 
						|
            return (_GroupBoxBorderColor.IsEmpty == false);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Resets property to its default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private void ResetGroupBoxBorderColor()
 | 
						|
        {
 | 
						|
            _GroupBoxBorderColor = Color.Empty;
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GroupBoxConnectorColor
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the GroupBox connector color
 | 
						|
        /// </summary>
 | 
						|
        [Description("Indicates the GroupBox connector color")]
 | 
						|
        public Color GroupBoxConnectorColor
 | 
						|
        {
 | 
						|
            get { return (_GroupBoxConnectorColor); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_GroupBoxConnectorColor != value)
 | 
						|
                {
 | 
						|
                    _GroupBoxConnectorColor = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("GroupBoxConnectorColor", VisualChangeType.Render);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets whether property should be serialized.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private bool ShouldSerializeGroupBoxConnectorColor()
 | 
						|
        {
 | 
						|
            return (_GroupBoxBorderColor.IsEmpty == false);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Resets property to its default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private void ResetGroupBoxConnectorColor()
 | 
						|
        {
 | 
						|
            _GroupBoxBorderColor = Color.Empty;
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GroupBoxBackground
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the GroupBox indicator background
 | 
						|
        /// </summary>
 | 
						|
        [Description("Indicates the RowHeader indicator background.")]
 | 
						|
        public Background GroupBoxBackground
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                if (_GroupBoxBackground == null)
 | 
						|
                {
 | 
						|
                    _GroupBoxBackground = Background.Empty;
 | 
						|
 | 
						|
                    UpdateChangeHandler(null, _GroupBoxBackground);
 | 
						|
                }
 | 
						|
 | 
						|
                return (_GroupBoxBackground);
 | 
						|
            }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_GroupBoxBackground != value)
 | 
						|
                {
 | 
						|
                    UpdateChangeHandler(_GroupBoxBackground, value);
 | 
						|
 | 
						|
                    _GroupBoxBackground = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("GroupBoxBackground", VisualChangeType.Render);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets whether property should be serialized.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private bool ShouldSerializeGroupBoxBackground()
 | 
						|
        {
 | 
						|
            return (_GroupBoxBackground != null &&
 | 
						|
                _GroupBoxBackground.IsEmpty == false);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Resets property to its default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private void ResetGroupBoxBackground()
 | 
						|
        {
 | 
						|
            GroupBoxBackground = null;
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region GroupBoxTextColor
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the GroupBox Text color
 | 
						|
        /// </summary>
 | 
						|
        [Description("Indicates the GroupBox Text color")]
 | 
						|
        public Color GroupBoxTextColor
 | 
						|
        {
 | 
						|
            get { return (_GroupBoxTextColor); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_GroupBoxTextColor != value)
 | 
						|
                {
 | 
						|
                    _GroupBoxTextColor = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("GroupBoxTextColor", VisualChangeType.Render);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets whether property should be serialized.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private bool ShouldSerializeGroupBoxTextColor()
 | 
						|
        {
 | 
						|
            return (_GroupBoxTextColor.IsEmpty == false);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Resets property to its default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private void ResetGroupBoxTextColor()
 | 
						|
        {
 | 
						|
            _GroupBoxTextColor = Color.Empty;
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region InsertMarkerBackground
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the Insert Marker background color
 | 
						|
        /// </summary>
 | 
						|
        [Description("Indicates the Insert Marker background color")]
 | 
						|
        public Background InsertMarkerBackground
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                if (_InsertMarkerBackground == null)
 | 
						|
                {
 | 
						|
                    _InsertMarkerBackground = Background.Empty;
 | 
						|
 | 
						|
                    UpdateChangeHandler(null, _InsertMarkerBackground);
 | 
						|
                }
 | 
						|
 | 
						|
                return (_InsertMarkerBackground);
 | 
						|
            }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_InsertMarkerBackground != value)
 | 
						|
                {
 | 
						|
                    UpdateChangeHandler(_InsertMarkerBackground, value);
 | 
						|
 | 
						|
                    _InsertMarkerBackground = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("InsertMarkerBackground", VisualChangeType.Render);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets whether property should be serialized.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private bool ShouldSerializeInsertMarkerBackground()
 | 
						|
        {
 | 
						|
            return (_InsertMarkerBackground != null &&
 | 
						|
                _InsertMarkerBackground.IsEmpty == false);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Resets property to its default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private void ResetInsertMarkerBackground()
 | 
						|
        {
 | 
						|
            InsertMarkerBackground = null;
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region InsertMarkerBorderColor
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the Insert Marker border color
 | 
						|
        /// </summary>
 | 
						|
        [Description("Indicates the Insert Marker border color")]
 | 
						|
        public Color InsertMarkerBorderColor
 | 
						|
        {
 | 
						|
            get { return (_InsertMarkerBorderColor); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_InsertMarkerBorderColor != value)
 | 
						|
                {
 | 
						|
                    _InsertMarkerBorderColor = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("InsertMarkerBorderColor", VisualChangeType.Render);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets whether property should be serialized.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private bool ShouldSerializeInsertMarkerBorderColor()
 | 
						|
        {
 | 
						|
            return (_InsertMarkerBorderColor.IsEmpty == false);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Resets property to its default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private void ResetInsertMarkerBorderColor()
 | 
						|
        {
 | 
						|
            _InsertMarkerBorderColor = Color.Empty;
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region WatermarkFont
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the style Watermark Font
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(null)]
 | 
						|
        [Description("Indicates the style Watermark Font")]
 | 
						|
        public Font WatermarkFont
 | 
						|
        {
 | 
						|
            get { return (_WatermarkFont); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_WatermarkFont != value)
 | 
						|
                {
 | 
						|
                    _WatermarkFont = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("WatermarkFont", VisualChangeType.Layout);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region WatermarkTextColor
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the Watermark Text color
 | 
						|
        /// </summary>
 | 
						|
        [Description("Indicates the Watermark Text color")]
 | 
						|
        public Color WatermarkTextColor
 | 
						|
        {
 | 
						|
            get { return (_WatermarkTextColor); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (_WatermarkTextColor != value)
 | 
						|
                {
 | 
						|
                    _WatermarkTextColor = value;
 | 
						|
 | 
						|
                    OnPropertyChangedEx("WatermarkTextColor", VisualChangeType.Render);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets whether property should be serialized.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private bool ShouldSerializeWatermarkTextColor()
 | 
						|
        {
 | 
						|
            return (_WatermarkTextColor.IsEmpty == false);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Resets property to its default value.
 | 
						|
        /// </summary>
 | 
						|
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						|
        private void ResetWatermarkTextColor()
 | 
						|
        {
 | 
						|
            _WatermarkTextColor = Color.Empty;
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ApplyStyle
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Applies the style to instance of this style.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="style">Style to apply.</param>
 | 
						|
        public void ApplyStyle(GroupByVisualStyle style)
 | 
						|
        {
 | 
						|
            if (style != null)
 | 
						|
            {
 | 
						|
                base.ApplyStyle(style);
 | 
						|
 | 
						|
                if (style.GroupBoxBorderColor.IsEmpty == false)
 | 
						|
                    GroupBoxBorderColor = style.GroupBoxBorderColor;
 | 
						|
 | 
						|
                if (style.GroupBoxConnectorColor.IsEmpty == false)
 | 
						|
                    GroupBoxConnectorColor = style.GroupBoxConnectorColor;
 | 
						|
 | 
						|
                if (style.GroupBoxTextColor.IsEmpty == false)
 | 
						|
                    GroupBoxTextColor = style.GroupBoxTextColor;
 | 
						|
 | 
						|
                if (style.GroupBoxBackground != null && style.GroupBoxBackground.IsEmpty == false)
 | 
						|
                    GroupBoxBackground = style.GroupBoxBackground.Copy();
 | 
						|
 | 
						|
                if (style.InsertMarkerBorderColor.IsEmpty == false)
 | 
						|
                    InsertMarkerBorderColor = style.InsertMarkerBorderColor;
 | 
						|
 | 
						|
                if (style.InsertMarkerBackground != null && style.InsertMarkerBackground.IsEmpty == false)
 | 
						|
                    InsertMarkerBackground = style.InsertMarkerBackground.Copy();
 | 
						|
 | 
						|
                if (style.WatermarkTextColor.IsEmpty == false)
 | 
						|
                    WatermarkTextColor = style.WatermarkTextColor;
 | 
						|
 | 
						|
                if (style.WatermarkFont != null)
 | 
						|
                    WatermarkFont = style.WatermarkFont;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Copy
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Returns the copy of the style.
 | 
						|
        /// </summary>
 | 
						|
        /// <returns>Copy of the style.</returns>
 | 
						|
        public new FilterRowVisualStyle Copy()
 | 
						|
        {
 | 
						|
            FilterRowVisualStyle copy = new FilterRowVisualStyle();
 | 
						|
 | 
						|
            CopyTo(copy);
 | 
						|
 | 
						|
            return (copy);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region CopyTo
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Returns the copy of the style.
 | 
						|
        /// </summary>
 | 
						|
        /// <returns>Copy of the style.</returns>
 | 
						|
        public void CopyTo(GroupByVisualStyle copy)
 | 
						|
        {
 | 
						|
            base.CopyTo(copy);
 | 
						|
 | 
						|
            copy.GroupBoxBorderColor = _GroupBoxBorderColor;
 | 
						|
            copy.GroupBoxTextColor = _GroupBoxTextColor;
 | 
						|
            copy.GroupBoxConnectorColor = _GroupBoxConnectorColor;
 | 
						|
 | 
						|
            if (_GroupBoxBackground != null)
 | 
						|
                copy.GroupBoxBackground = _GroupBoxBackground.Copy();
 | 
						|
 | 
						|
            copy.InsertMarkerBorderColor = _InsertMarkerBorderColor;
 | 
						|
 | 
						|
            if (_InsertMarkerBackground != null)
 | 
						|
                copy.InsertMarkerBackground = _InsertMarkerBackground.Copy();
 | 
						|
 | 
						|
            copy.WatermarkTextColor = _WatermarkTextColor;
 | 
						|
 | 
						|
            if (_WatermarkFont != null)
 | 
						|
                copy.Font = (Font)_WatermarkFont.Clone();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region IDisposable
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Dispose
 | 
						|
        /// </summary>
 | 
						|
        public override void Dispose()
 | 
						|
        {
 | 
						|
            GroupBoxBackground = null;
 | 
						|
            InsertMarkerBackground = null;
 | 
						|
 | 
						|
            base.Dispose();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
}
 |