using System;
using System.Text;
using System.ComponentModel;
namespace DevComponents.DotNetBar
{
///
/// Indicates spacing for an user interface element either padding or margins.
///
[ToolboxItem(false),TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
public class Spacing
{
#region Events
public event EventHandler SpacingChanged;
#endregion
#region Private Variables
private int m_Left = 0;
private int m_Right = 0;
private int m_Top = 0;
private int m_Bottom = 0;
#endregion
#region Internal Implementation
///
/// Gets or sets the amount of the space on the left side.
///
[Browsable(true), DefaultValue(0), Description("Indicates the amount of the space on the left side."), DevCoSerialize()]
public int Left
{
get { return m_Left; }
set
{
m_Left = value;
OnSpacingChanged();
}
}
///
/// Gets or sets the amount of the space on the right side.
///
[Browsable(true), DefaultValue(0), Description("Indicates the amount of the space on the right side."), DevCoSerialize()]
public int Right
{
get { return m_Right; }
set
{
m_Right = value;
OnSpacingChanged();
}
}
///
/// Gets or sets the amount of the space on the top.
///
[Browsable(true), DefaultValue(0), Description("Indicates the amount of the space on the top."), DevCoSerialize()]
public int Top
{
get { return m_Top; }
set
{
m_Top = value;
OnSpacingChanged();
}
}
///
/// Gets or sets the amount of the space on the bottom.
///
[Browsable(true), DefaultValue(0), Description("Indicates the amount of the space on the bottom."), DevCoSerialize()]
public int Bottom
{
get { return m_Bottom; }
set
{
m_Bottom = value;
OnSpacingChanged();
}
}
private void OnSpacingChanged()
{
if (SpacingChanged != null)
SpacingChanged(this, new EventArgs());
}
///
/// Gets total horizontal spacing.
///
[Browsable(false)]
public int Horizontal
{
get { return Left + Right; }
}
///
/// Gets total vertical spacing.
///
[Browsable(false)]
public int Vertical
{
get { return Top + Bottom; }
}
///
/// Gets whether all memebers of class are set to 0.
///
[Browsable(false)]
public bool IsEmpty
{
get { return (m_Left==0 && m_Right==0 && m_Top==0 && m_Bottom==0); }
}
#endregion
}
}