using System;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.Drawing;
using System.ComponentModel;
using DevComponents.DotNetBar.Controls;
using DevComponents.DotNetBar;
namespace DevComponents.Editors
{
///
/// Summary description for ComboItem.
///
[System.ComponentModel.ToolboxItem(false),System.ComponentModel.DesignTimeVisible(false)]
public class ComboItem:Component
{
private string m_Text="";
private int m_ImageIndex=-1;
private Image m_Image;
private StringFormat m_TextFormat;
private HorizontalAlignment m_ImagePosition=HorizontalAlignment.Left;
private string m_FontName="";
private FontStyle m_FontStyle=FontStyle.Regular;
private float m_FontSize=8;
private Color m_ForeColor=Color.Empty;
private Color m_BackColor=Color.Empty;
private object m_Tag;
internal ComboBoxEx m_ComboBox=null;
internal bool IsFontItem=false;
///
/// Creates new instance of ComboItem.
///
public ComboItem()
{
m_TextFormat=DevComponents.DotNetBar.BarFunctions.CreateStringFormat(); //new StringFormat(StringFormat.GenericDefault);
m_TextFormat.Alignment=StringAlignment.Near;
}
///
/// Initializes a new instance of the ComboItem class.
///
///
public ComboItem(string text) : this()
{
this.m_Text = text;
}
///
/// Initializes a new instance of the ComboItem class.
///
///
///
public ComboItem(string text, Color foreColor) : this()
{
this.m_Text = text;
this.m_ForeColor = foreColor;
}
///
/// Initializes a new instance of the ComboItem class.
///
///
///
///
public ComboItem(string text, Color foreColor, Color backColor)
: this()
{
this.m_Text = text;
this.m_ForeColor = foreColor;
this.m_BackColor = backColor;
}
///
/// Initializes a new instance of the ComboItem class.
///
///
///
public ComboItem(string text, Image image)
: this()
{
this.m_Text = text;
this.m_Image = image;
}
protected override void Dispose(bool disposing)
{
if (BarUtilities.DisposeItemImages && !this.DesignMode)
{
BarUtilities.DisposeImage(ref m_Image);
}
base.Dispose(disposing);
}
///
/// Gets or sets the text associated with this item.
///
[DefaultValue(""),Browsable(true), Localizable(true)]
public string Text
{
get
{
return m_Text;
}
set
{
m_Text=value;
}
}
///
/// Gets or sets the index value of the image assigned to the item.
///
[DefaultValue(-1), System.ComponentModel.Editor("DevComponents.DotNetBar.Design.ImageIndexEditor, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral, PublicKeyToken=90f470f34c89ccaf", typeof(System.Drawing.Design.UITypeEditor)), TypeConverter(typeof(System.Windows.Forms.ImageIndexConverter)), Localizable(true)]
public int ImageIndex
{
get
{
return m_ImageIndex;
}
set
{
m_ImageIndex=value;
}
}
///
/// Gets or sets the text alignment..
///
[DefaultValue(StringAlignment.Near)]
public StringAlignment TextAlignment
{
get
{
return m_TextFormat.Alignment;
}
set
{
m_TextFormat.Alignment=value;
}
}
///
/// Gets or sets the line alignment for the item.
///
[DefaultValue(StringAlignment.Near)]
public StringAlignment TextLineAlignment
{
get
{
return m_TextFormat.LineAlignment;
}
set
{
m_TextFormat.LineAlignment=value;
}
}
///
/// Gets or sets the value that encapsulates text layout information (such as alignment, orientation, tab stops, and clipping) and display manipulations.
///
[Browsable(false),DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public StringFormat TextFormat
{
get
{
return m_TextFormat;
}
set
{
m_TextFormat=value;
}
}
///
/// Gets or sets the image horizontal image position.
///
[DefaultValue(HorizontalAlignment.Left)]
public HorizontalAlignment ImagePosition
{
get
{
return m_ImagePosition;
}
set
{
m_ImagePosition=value;
}
}
///
/// Gets or sets the font name used to draw the item text.
///
[DefaultValue("")]
public String FontName
{
get
{
return m_FontName;
}
set
{
m_FontName=value;
}
}
///
/// Gets or sets the text color.
///
public Color ForeColor
{
get
{
return m_ForeColor;
}
set
{
m_ForeColor=value;
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public bool ShouldSerializeForeColor()
{
return !m_ForeColor.IsEmpty;
}
///
/// Gets or sets the background color of the item.
///
public Color BackColor
{
get
{
return m_BackColor;
}
set
{
m_BackColor=value;
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public bool ShouldSerializeBackColor()
{
return !m_BackColor.IsEmpty;
}
///
/// Specifies style information applied to text.
///
[DefaultValue(FontStyle.Regular)]
public System.Drawing.FontStyle FontStyle
{
get
{
return m_FontStyle;
}
set
{
m_FontStyle=value;
}
}
///
/// Gets the em-size of this Font object in design units.
///
[DefaultValue(8f)]
public float FontSize
{
get
{
return m_FontSize;
}
set
{
m_FontSize=value;
}
}
///
/// Gets or sets the image assigned to this item.
///
[DefaultValue(null), Localizable(true)]
public System.Drawing.Image Image
{
get
{
return m_Image;
}
set
{
m_Image=value;
}
}
///
/// Overridden. Returns a human-readable string representation of this object.
///
/// A string that represents this object.
public override string ToString()
{
return m_Text;
}
///
/// Gets or sets an object that contains data to associate with the item.
///
[Browsable(false),DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public object Tag
{
get
{
return m_Tag;
}
set
{
m_Tag=value;
}
}
[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
public System.Windows.Forms.ImageList ImageList
{
get
{
if(m_ComboBox!=null)
{
return m_ComboBox.Images;
}
return null;
}
}
[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
public ComboBoxEx Parent
{
get
{
return m_ComboBox;
}
}
private object _Value = null;
[DefaultValue(null), Category("Data"), TypeConverter(typeof(StringConverter)), Localizable(true)]
public object Value
{
get { return _Value; }
set { _Value = value; }
}
}
}