#if FRAMEWORK20
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using DevComponents.DotNetBar;
namespace DevComponents.Editors
{
    public class VisualLabel : VisualItem
    {
        #region Private Variables
        #endregion
        #region Events
        #endregion
        #region Constructor
        #endregion
        #region Internal Implementation
        private Padding _TextPadding = new Padding(0);
        /// 
        /// Gets or sets the amount of padding added to text.
        /// 
        public Padding TextPadding
        {
            get { return _TextPadding; }
            set { _TextPadding = value; InvalidateArrange(); }
        }
        private string _Text = "";
        /// 
        /// Gets or sets the text displayed by the label.
        /// 
        public string Text
        {
            get { return _Text; }
            set
            {
                if (value == null) value = "";
                if (_Text != value)
                {
                    _Text = value;
                    InvalidateArrange();
                }
            }
        }
        public override void PerformLayout(PaintInfo p)
        {
            Size size = Size.Empty;
            Graphics g = p.Graphics;
            Font font = p.DefaultFont;
            eTextFormat textFormat = eTextFormat.Default | eTextFormat.GlyphOverhangPadding | eTextFormat.LeftAndRightPadding;
            if (_Text.Length > 0)
            {
                if (Text.Trim().Length == 0)
                {
                    size = TextDrawing.MeasureString(g, Text.Replace(' ', '-'), font, 0, textFormat);
                    size.Width = (int)(size.Width);
                }
                else
                    size = TextDrawing.MeasureString(g, Text, font, 0, textFormat);
            }
            size.Height += _TextPadding.Vertical;
            size.Width += _TextPadding.Horizontal;
            this.Size = size;
            base.PerformLayout(p);
        }
        protected override void OnPaint(PaintInfo p)
        {
            Graphics g = p.Graphics;
            Font font = p.DefaultFont;
            Rectangle r = this.RenderBounds;
            eTextFormat textFormat = eTextFormat.Default | eTextFormat.NoPadding;
            Color color = p.ForeColor;
            r.X += _TextPadding.Left;
            r.Y += _TextPadding.Top;
            if (!GetIsEnabled(p))
                color = p.DisabledForeColor;
            if (_Text.Length > 0)
                TextDrawing.DrawString(g, _Text, font, color, r, textFormat);
            base.OnPaint(p);
        }
        #endregion
    }
}
#endif