1539 lines
		
	
	
		
			55 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			1539 lines
		
	
	
		
			55 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						||
using System.Drawing;
 | 
						||
using System.ComponentModel;
 | 
						||
using System.Windows.Forms;
 | 
						||
using DevComponents.DotNetBar.Controls;
 | 
						||
using DevComponents.DotNetBar.Rendering;
 | 
						||
 | 
						||
namespace DevComponents.DotNetBar
 | 
						||
{
 | 
						||
	/// <summary>
 | 
						||
	/// Summary description for ComboBoxItem.
 | 
						||
	/// </summary>
 | 
						||
    [System.ComponentModel.ToolboxItem(false), DefaultEvent("Click"), System.ComponentModel.DesignTimeVisible(false), Designer("DevComponents.DotNetBar.Design.ComboBoxItemDesigner, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf")]
 | 
						||
	public class ComboBoxItem:ImageItem,IPersonalizedMenuItem
 | 
						||
	{
 | 
						||
		private Controls.ComboBoxEx m_ComboBox=null;
 | 
						||
		private int m_ComboWidth=64;
 | 
						||
		private bool m_MouseOver=false;
 | 
						||
		//private string m_ControlText="";
 | 
						||
		private bool m_AlwaysShowCaption;
 | 
						||
		private bool m_FontCombo=false;
 | 
						||
 | 
						||
		// IPersonalizedMenuItem Implementation
 | 
						||
		private eMenuVisibility m_MenuVisibility=eMenuVisibility.VisibleAlways;
 | 
						||
		private bool m_RecentlyUsed=false;
 | 
						||
		internal bool _CopyInProgress=false;
 | 
						||
 | 
						||
		private bool m_PreventEnterBeep=false;
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Occurs when underlining control ComboBox.Text property has changed.
 | 
						||
        /// </summary>
 | 
						||
        public event EventHandler ComboBoxTextChanged;
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Occurs when selected item on combo box has changed.
 | 
						||
        /// </summary>
 | 
						||
        public event EventHandler SelectedIndexChanged;
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Creates new instance of ComboBoxItem.
 | 
						||
		/// </summary>
 | 
						||
		public ComboBoxItem():this("","") {}
 | 
						||
		/// <summary>
 | 
						||
		/// Creates new instance of ComboBoxItem and assigns item name.
 | 
						||
		/// </summary>
 | 
						||
		/// <param name="sName">Item Name.</param>
 | 
						||
		public ComboBoxItem(string sName):this(sName,""){}
 | 
						||
		/// <summary>
 | 
						||
		/// Creates new instance of ComboBoxItem and assigns item name and item text.
 | 
						||
		/// </summary>
 | 
						||
		/// <param name="sName">Item Name</param>
 | 
						||
		/// <param name="ItemText">Item Text.</param>
 | 
						||
		public ComboBoxItem(string sName, string ItemText):base(sName,ItemText)
 | 
						||
		{
 | 
						||
			CreateComboBox();
 | 
						||
			m_ComboWidth=64;
 | 
						||
			m_SupportedOrientation=eSupportedOrientation.Horizontal;
 | 
						||
			this.IsAccessible=true;
 | 
						||
            this.AccessibleRole = AccessibleRole.ComboBox;
 | 
						||
		}
 | 
						||
		private void CreateComboBox()
 | 
						||
		{
 | 
						||
			if(m_ComboBox!=null)
 | 
						||
			{
 | 
						||
				m_ComboBox.Dispose();
 | 
						||
				m_ComboBox=null;
 | 
						||
			}
 | 
						||
            m_ComboBox = new Controls.ComboBoxEx();
 | 
						||
            m_ComboBox.IsStandalone = false;
 | 
						||
            m_ComboBox.TabStop = false;
 | 
						||
            m_ComboBox.TabIndex = 9999;
 | 
						||
            m_ComboBox.Style = this.Style;
 | 
						||
            m_ComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
 | 
						||
            m_ComboBox.IntegralHeight = false;
 | 
						||
            //m_ComboBox.ItemHeight = 13;
 | 
						||
            m_ComboBox.ThemeAware = false;
 | 
						||
            m_ComboBox.Visible = false;
 | 
						||
            m_ComboBox.Text = this.Text;
 | 
						||
            m_ComboBox.SelectionStart = 0;
 | 
						||
            m_ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
 | 
						||
 | 
						||
            m_ComboBox.LostFocus += new EventHandler(this.ComboLostFocus);
 | 
						||
            m_ComboBox.GotFocus += new EventHandler(this.ComboGotFocus);
 | 
						||
            m_ComboBox.MouseHover += new EventHandler(this.ComboMouseHover);
 | 
						||
            m_ComboBox.MouseEnter += new EventHandler(this.ComboMouseEnter);
 | 
						||
            m_ComboBox.MouseLeave += new EventHandler(this.ComboMouseLeave);
 | 
						||
            m_ComboBox.VisibleChanged += new EventHandler(ComboBoxVisibleChanged);
 | 
						||
            m_ComboBox.DropDownChange += new Controls.ComboBoxEx.OnDropDownChangeEventHandler(this.ComboDropDownChange);
 | 
						||
            m_ComboBox.TextChanged += new EventHandler(this.InternalComboTextChanged);
 | 
						||
            m_ComboBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ComboKeyDown);
 | 
						||
            m_ComboBox.SelectedIndexChanged += new System.EventHandler(this.ComboSelChanged);
 | 
						||
            m_ComboBox.PreventEnterBeep = m_PreventEnterBeep;
 | 
						||
            m_ComboBox.ParentItem = this;
 | 
						||
			if(m_FontCombo)
 | 
						||
				m_ComboBox.LoadFonts();
 | 
						||
 | 
						||
			if(this.ContainerControl!=null)
 | 
						||
			{
 | 
						||
				System.Windows.Forms.Control objCtrl=this.ContainerControl as System.Windows.Forms.Control;
 | 
						||
				if(objCtrl!=null)
 | 
						||
				{
 | 
						||
					objCtrl.Controls.Add(m_ComboBox);
 | 
						||
					m_ComboBox.Refresh();
 | 
						||
				}
 | 
						||
			}
 | 
						||
 | 
						||
			if(this.Displayed)
 | 
						||
			{
 | 
						||
				m_ComboBox.Visible=true;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		public override BaseItem Copy()
 | 
						||
		{
 | 
						||
			ComboBoxItem objCopy=new ComboBoxItem(this.Name);
 | 
						||
			this.CopyToItem(objCopy);
 | 
						||
			objCopy.DropDownStyle=this.DropDownStyle;
 | 
						||
			objCopy.AlwaysShowCaption=this.AlwaysShowCaption;
 | 
						||
			objCopy.FontCombo=this.FontCombo;
 | 
						||
			objCopy.ItemHeight=this.ItemHeight;
 | 
						||
            objCopy.Caption = this.Caption;
 | 
						||
            
 | 
						||
			return objCopy;
 | 
						||
		}
 | 
						||
		protected override void CopyToItem(BaseItem copy)
 | 
						||
		{
 | 
						||
			((ComboBoxItem)copy)._CopyInProgress=true;
 | 
						||
			try
 | 
						||
			{
 | 
						||
				ComboBoxItem objCopy=copy as ComboBoxItem;
 | 
						||
				base.CopyToItem(objCopy);
 | 
						||
 | 
						||
				
 | 
						||
				objCopy.ComboWidth=m_ComboWidth;
 | 
						||
				objCopy.FontCombo=m_FontCombo;
 | 
						||
				objCopy.PreventEnterBeep=m_PreventEnterBeep;
 | 
						||
                if (m_ComboBox != null)
 | 
						||
                {
 | 
						||
                    objCopy.DisplayMember = m_ComboBox.DisplayMember;
 | 
						||
 | 
						||
                    Controls.ComboBoxEx cb = objCopy.ComboBoxEx;
 | 
						||
                    if (!m_FontCombo)
 | 
						||
                    {
 | 
						||
                        foreach (object o in m_ComboBox.Items)
 | 
						||
                            cb.Items.Add(o);
 | 
						||
                    }
 | 
						||
                    cb.SelectedIndex = m_ComboBox.SelectedIndex;
 | 
						||
                }
 | 
						||
			}
 | 
						||
			finally
 | 
						||
			{
 | 
						||
				((ComboBoxItem)copy)._CopyInProgress=false;
 | 
						||
			}
 | 
						||
		}
 | 
						||
        protected override void Dispose(bool disposing)
 | 
						||
		{
 | 
						||
            base.Dispose(disposing);
 | 
						||
            // Control gets disposed by the parent control it is added to
 | 
						||
            //if (m_ComboBox != null)
 | 
						||
            //{
 | 
						||
            //    if (m_ComboBox.Parent == null && !m_ComboBox.IsDisposed)
 | 
						||
            //        m_ComboBox.Dispose();
 | 
						||
            //}
 | 
						||
		}
 | 
						||
        protected override System.Windows.Forms.AccessibleObject CreateAccessibilityInstance()
 | 
						||
        {
 | 
						||
            return m_ComboBox.AccessibilityObject;
 | 
						||
        }
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the accessible role of the item.
 | 
						||
        /// </summary>
 | 
						||
        [Browsable(true), Category("Accessibility"), Description("Gets or sets the accessible role of the item."), DefaultValue(System.Windows.Forms.AccessibleRole.ComboBox)]
 | 
						||
        public override System.Windows.Forms.AccessibleRole AccessibleRole
 | 
						||
        {
 | 
						||
            get { return base.AccessibleRole; }
 | 
						||
            set { base.AccessibleRole = value; }
 | 
						||
        }
 | 
						||
		protected internal override void Serialize(ItemSerializationContext context)
 | 
						||
		{
 | 
						||
			base.Serialize(context);
 | 
						||
            System.Xml.XmlElement ThisItem = context.ItemXmlElement;
 | 
						||
			ThisItem.SetAttribute("ComboWidth",System.Xml.XmlConvert.ToString(m_ComboWidth));
 | 
						||
			ThisItem.SetAttribute("FontCombo",System.Xml.XmlConvert.ToString(m_FontCombo));
 | 
						||
 | 
						||
			ThisItem.SetAttribute("MenuVisibility",System.Xml.XmlConvert.ToString((int)m_MenuVisibility));
 | 
						||
			ThisItem.SetAttribute("RecentlyUsed",System.Xml.XmlConvert.ToString(m_RecentlyUsed));
 | 
						||
			ThisItem.SetAttribute("DropDownStyle",System.Xml.XmlConvert.ToString((int)m_ComboBox.DropDownStyle));
 | 
						||
			//ThisItem.SetAttribute("CText",m_ControlText);
 | 
						||
			ThisItem.SetAttribute("ThemeAware",System.Xml.XmlConvert.ToString(m_ComboBox.ThemeAware));
 | 
						||
 | 
						||
			ThisItem.SetAttribute("AlwaysShowCaption",System.Xml.XmlConvert.ToString(m_AlwaysShowCaption));
 | 
						||
			ThisItem.SetAttribute("ItemHeight",System.Xml.XmlConvert.ToString(m_ComboBox.ItemHeight));
 | 
						||
 | 
						||
            if(m_ComboBox.DisplayMember!="")
 | 
						||
                ThisItem.SetAttribute("DisplayMembers", m_ComboBox.DisplayMember);
 | 
						||
 | 
						||
			if(m_PreventEnterBeep)
 | 
						||
				ThisItem.SetAttribute("nobeep",System.Xml.XmlConvert.ToString(m_PreventEnterBeep));
 | 
						||
			
 | 
						||
			if(!m_FontCombo && m_ComboBox.Items.Count>0)
 | 
						||
			{
 | 
						||
				System.Xml.XmlElement xmlItems=ThisItem.OwnerDocument.CreateElement("cbitems");
 | 
						||
				ThisItem.AppendChild(xmlItems);
 | 
						||
				foreach(object item in m_ComboBox.Items)
 | 
						||
				{
 | 
						||
					DevComponents.Editors.ComboItem ci=item as DevComponents.Editors.ComboItem;
 | 
						||
					if(ci!=null)
 | 
						||
					{
 | 
						||
						System.Xml.XmlElement xmlChild=ThisItem.OwnerDocument.CreateElement("ci");
 | 
						||
 | 
						||
						if(!ci.BackColor.IsEmpty)
 | 
						||
							xmlChild.SetAttribute("bc",BarFunctions.ColorToString(ci.BackColor));
 | 
						||
						if(ci.FontName!="")
 | 
						||
							xmlChild.SetAttribute("fn",ci.FontName);
 | 
						||
						if(ci.FontSize!=8)
 | 
						||
							xmlChild.SetAttribute("fs",System.Xml.XmlConvert.ToString(ci.FontSize));
 | 
						||
						
 | 
						||
						xmlChild.SetAttribute("fy",System.Xml.XmlConvert.ToString((int)ci.FontStyle));
 | 
						||
 | 
						||
						if(!ci.ForeColor.IsEmpty)
 | 
						||
							xmlChild.SetAttribute("fc",BarFunctions.ColorToString(ci.ForeColor));
 | 
						||
 | 
						||
						BarFunctions.SerializeImage(ci.Image,xmlChild);
 | 
						||
 | 
						||
						if(ci.ImageIndex>=0)
 | 
						||
							xmlChild.SetAttribute("img",System.Xml.XmlConvert.ToString(ci.ImageIndex));
 | 
						||
 | 
						||
						if(ci.ImagePosition!=System.Windows.Forms.HorizontalAlignment.Left)
 | 
						||
							xmlChild.SetAttribute("ip",System.Xml.XmlConvert.ToString((int)ci.ImagePosition));
 | 
						||
						
 | 
						||
						xmlChild.SetAttribute("text",ci.Text);
 | 
						||
 | 
						||
						xmlChild.SetAttribute("ta",System.Xml.XmlConvert.ToString((int)ci.TextAlignment));
 | 
						||
						xmlChild.SetAttribute("tla",System.Xml.XmlConvert.ToString((int)ci.TextLineAlignment));
 | 
						||
						
 | 
						||
						if(m_ComboBox.SelectedItem==item)
 | 
						||
							xmlChild.SetAttribute("selected","1");
 | 
						||
 | 
						||
						xmlItems.AppendChild(xmlChild);
 | 
						||
					}
 | 
						||
					else
 | 
						||
					{
 | 
						||
						System.Xml.XmlElement xmlChild=ThisItem.OwnerDocument.CreateElement("co");
 | 
						||
						xmlChild.InnerText=item.ToString();
 | 
						||
						xmlItems.AppendChild(xmlChild);
 | 
						||
 | 
						||
						if(m_ComboBox.SelectedItem==item)
 | 
						||
							xmlChild.SetAttribute("selected","1");
 | 
						||
					}	
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		public override void Deserialize(ItemSerializationContext context)
 | 
						||
		{
 | 
						||
			base.Deserialize(context);
 | 
						||
            System.Xml.XmlElement ItemXmlSource = context.ItemXmlElement;
 | 
						||
			m_ComboWidth=System.Xml.XmlConvert.ToInt32(ItemXmlSource.GetAttribute("ComboWidth"));
 | 
						||
			m_FontCombo=System.Xml.XmlConvert.ToBoolean(ItemXmlSource.GetAttribute("FontCombo"));
 | 
						||
 | 
						||
			m_MenuVisibility=(eMenuVisibility)System.Xml.XmlConvert.ToInt32(ItemXmlSource.GetAttribute("MenuVisibility"));
 | 
						||
			m_RecentlyUsed=System.Xml.XmlConvert.ToBoolean(ItemXmlSource.GetAttribute("RecentlyUsed"));
 | 
						||
			if(ItemXmlSource.HasAttribute("DropDownStyle"))
 | 
						||
				m_ComboBox.DropDownStyle=(System.Windows.Forms.ComboBoxStyle)System.Xml.XmlConvert.ToInt32(ItemXmlSource.GetAttribute("DropDownStyle"));
 | 
						||
 | 
						||
			if(ItemXmlSource.HasAttribute("CText"))
 | 
						||
				this.Text=ItemXmlSource.GetAttribute("CText");
 | 
						||
 | 
						||
			if(ItemXmlSource.HasAttribute("ThemeAware"))
 | 
						||
				m_ComboBox.ThemeAware=System.Xml.XmlConvert.ToBoolean(ItemXmlSource.GetAttribute("ThemeAware"));
 | 
						||
			else
 | 
						||
                m_ComboBox.ThemeAware=true;
 | 
						||
 | 
						||
			if(ItemXmlSource.HasAttribute("AlwaysShowCaption"))
 | 
						||
				m_AlwaysShowCaption=System.Xml.XmlConvert.ToBoolean(ItemXmlSource.GetAttribute("AlwaysShowCaption"));
 | 
						||
 | 
						||
            if(ItemXmlSource.HasAttribute("nobeep"))
 | 
						||
				this.PreventEnterBeep=System.Xml.XmlConvert.ToBoolean(ItemXmlSource.GetAttribute("nobeep"));
 | 
						||
 | 
						||
			System.Xml.XmlNodeList list=ItemXmlSource.GetElementsByTagName("cbitems");
 | 
						||
			if(!m_FontCombo && list.Count>0)
 | 
						||
			{
 | 
						||
				foreach(System.Xml.XmlElement xmlChild in list[0].ChildNodes)
 | 
						||
				{
 | 
						||
					if(xmlChild.Name=="ci")
 | 
						||
					{
 | 
						||
						DevComponents.Editors.ComboItem ci=new DevComponents.Editors.ComboItem();
 | 
						||
						if(xmlChild.HasAttribute("bc"))
 | 
						||
							ci.BackColor=BarFunctions.ColorFromString(xmlChild.GetAttribute("bk"));
 | 
						||
						if(xmlChild.HasAttribute("fn"))
 | 
						||
							ci.FontName=xmlChild.GetAttribute("fn");
 | 
						||
						if(xmlChild.HasAttribute("fs"))
 | 
						||
							ci.FontSize=System.Xml.XmlConvert.ToSingle(xmlChild.GetAttribute("fs"));
 | 
						||
						if(xmlChild.HasAttribute("fy"))
 | 
						||
							ci.FontStyle=(FontStyle)System.Xml.XmlConvert.ToInt32(xmlChild.GetAttribute("fy"));
 | 
						||
						if(xmlChild.HasAttribute("fc"))
 | 
						||
							ci.ForeColor=BarFunctions.ColorFromString(xmlChild.GetAttribute("fc"));
 | 
						||
						
 | 
						||
						ci.Image=BarFunctions.DeserializeImage(xmlChild);
 | 
						||
 | 
						||
						if(xmlChild.HasAttribute("img"))
 | 
						||
							ci.ImageIndex=System.Xml.XmlConvert.ToInt32(xmlChild.GetAttribute("img"));
 | 
						||
 | 
						||
						if(xmlChild.HasAttribute("ip"))
 | 
						||
							ci.ImagePosition=(System.Windows.Forms.HorizontalAlignment)System.Xml.XmlConvert.ToInt32(xmlChild.GetAttribute("ip"));
 | 
						||
 | 
						||
						if(xmlChild.HasAttribute("ItemHeight"))
 | 
						||
							m_ComboBox.ItemHeight=System.Xml.XmlConvert.ToInt32(xmlChild.GetAttribute("ItemHeight"));
 | 
						||
						
 | 
						||
						ci.Text=xmlChild.GetAttribute("text");
 | 
						||
 | 
						||
						ci.TextAlignment=(StringAlignment)System.Xml.XmlConvert.ToInt32(xmlChild.GetAttribute("ta"));
 | 
						||
						ci.TextLineAlignment=(StringAlignment)System.Xml.XmlConvert.ToInt32(xmlChild.GetAttribute("tla"));
 | 
						||
 | 
						||
						m_ComboBox.Items.Add(ci);
 | 
						||
 | 
						||
						if(xmlChild.HasAttribute("selected") && xmlChild.GetAttribute("selected")=="1")
 | 
						||
							m_ComboBox.SelectedItem=ci;
 | 
						||
					}
 | 
						||
					else if(xmlChild.Name=="co")
 | 
						||
					{
 | 
						||
						m_ComboBox.Items.Add(xmlChild.InnerText);
 | 
						||
						if(xmlChild.HasAttribute("selected") && xmlChild.GetAttribute("selected")=="1")
 | 
						||
							m_ComboBox.SelectedItem=m_ComboBox.Items[m_ComboBox.Items.Count-1];
 | 
						||
					}
 | 
						||
				}
 | 
						||
			}
 | 
						||
			if(m_FontCombo)
 | 
						||
				m_ComboBox.LoadFonts();
 | 
						||
 | 
						||
			if(m_ComboBox!=null)
 | 
						||
				m_ComboBox.Enabled=this.Enabled;
 | 
						||
 | 
						||
            if (ItemXmlSource.HasAttribute("DisplayMembers") && m_ComboBox!=null)
 | 
						||
                m_ComboBox.DisplayMember = ItemXmlSource.GetAttribute("DisplayMembers");
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets whether combo box generates the audible alert when Enter key is pressed.
 | 
						||
		/// </summary>
 | 
						||
		[System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Behavior"),System.ComponentModel.Description("Indicates whether combo box generates the audible alert when Enter key is pressed."),System.ComponentModel.DefaultValue(false)]
 | 
						||
		public bool PreventEnterBeep
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_PreventEnterBeep;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				m_PreventEnterBeep=value;
 | 
						||
				if(m_ComboBox!=null)
 | 
						||
					m_ComboBox.PreventEnterBeep=value;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
        private Color _LabelForeColor = Color.Empty;
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the text color of the combo box label.
 | 
						||
        /// </summary>
 | 
						||
        [Category("Columns"), Description("Indicates color of combo box label.")]
 | 
						||
        public Color LabelForeColor
 | 
						||
        {
 | 
						||
            get { return _LabelForeColor; }
 | 
						||
            set { _LabelForeColor = value; this.Refresh(); }
 | 
						||
        }
 | 
						||
        /// <summary>
 | 
						||
        /// Gets whether property should be serialized.
 | 
						||
        /// </summary>
 | 
						||
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						||
        public bool ShouldSerializeLabelForeColor()
 | 
						||
        {
 | 
						||
            return !_LabelForeColor.IsEmpty;
 | 
						||
        }
 | 
						||
        /// <summary>
 | 
						||
        /// Resets property to its default value.
 | 
						||
        /// </summary>
 | 
						||
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						||
        public void ResetLabelForeColor()
 | 
						||
        {
 | 
						||
            this.LabelForeColor = Color.Empty;
 | 
						||
        }
 | 
						||
 | 
						||
		public override void Paint(ItemPaintArgs pa)
 | 
						||
		{
 | 
						||
			if(this.SuspendLayout)
 | 
						||
				return;
 | 
						||
			System.Drawing.Graphics g=pa.Graphics;
 | 
						||
			Rectangle r=this.DisplayRectangle;
 | 
						||
			Size objImageSize=GetMaxImageSize();
 | 
						||
            bool bOnMenu = this.IsOnMenu && !(this.Parent is ItemContainer);
 | 
						||
            bool enabled = GetEnabled(pa.ContainerControl);
 | 
						||
            Color textColor = enabled ? SystemColors.ControlText : SystemColors.ControlDark;
 | 
						||
            if (BarFunctions.IsOffice2007Style(this.EffectiveStyle) && pa.Renderer is Rendering.Office2007Renderer &&
 | 
						||
                ((Rendering.Office2007Renderer)pa.Renderer).ColorTable.ButtonItemColors.Count > 0)
 | 
						||
            {
 | 
						||
                textColor = enabled ? ((Rendering.Office2007Renderer)pa.Renderer).ColorTable.ButtonItemColors[0].Default.Text : pa.Colors.ItemDisabledText;
 | 
						||
            }
 | 
						||
            if (!_LabelForeColor.IsEmpty)
 | 
						||
                textColor = _LabelForeColor;
 | 
						||
 | 
						||
			if(this.Orientation==eOrientation.Horizontal)
 | 
						||
			{
 | 
						||
                if (bOnMenu && (EffectiveStyle == eDotNetBarStyle.OfficeXP || EffectiveStyle == eDotNetBarStyle.Office2003 || EffectiveStyle == eDotNetBarStyle.VS2005 || BarFunctions.IsOffice2007Style(EffectiveStyle)))
 | 
						||
				{
 | 
						||
					objImageSize.Width+=7;
 | 
						||
					r.Width-=objImageSize.Width;
 | 
						||
					r.X+=objImageSize.Width;
 | 
						||
					if(this.IsOnCustomizeMenu)
 | 
						||
						objImageSize.Width+=objImageSize.Height+8;
 | 
						||
					// Draw side bar
 | 
						||
                    Rectangle sideRect = new Rectangle(m_Rect.Left, m_Rect.Top, objImageSize.Width, m_Rect.Height);
 | 
						||
					if(this.MenuVisibility==eMenuVisibility.VisibleIfRecentlyUsed && !this.RecentlyUsed)
 | 
						||
					{
 | 
						||
						if(!pa.Colors.MenuUnusedSide2.IsEmpty)
 | 
						||
						{
 | 
						||
							System.Drawing.Drawing2D.LinearGradientBrush gradient=BarFunctions.CreateLinearGradientBrush(sideRect,pa.Colors.MenuUnusedSide,pa.Colors.MenuUnusedSide2,pa.Colors.MenuUnusedSideGradientAngle);
 | 
						||
							g.FillRectangle(gradient,sideRect);
 | 
						||
							gradient.Dispose();
 | 
						||
						}
 | 
						||
						else
 | 
						||
                            g.FillRectangle(new SolidBrush(pa.Colors.MenuUnusedSide), sideRect);
 | 
						||
					}
 | 
						||
					else
 | 
						||
					{
 | 
						||
						if(!pa.Colors.MenuSide2.IsEmpty)
 | 
						||
						{
 | 
						||
                            System.Drawing.Drawing2D.LinearGradientBrush gradient = BarFunctions.CreateLinearGradientBrush(sideRect, pa.Colors.MenuSide, pa.Colors.MenuSide2, pa.Colors.MenuSideGradientAngle);
 | 
						||
                            g.FillRectangle(gradient, sideRect);
 | 
						||
							gradient.Dispose();
 | 
						||
						}
 | 
						||
						else
 | 
						||
                            g.FillRectangle(new SolidBrush(pa.Colors.MenuSide), sideRect);
 | 
						||
					}
 | 
						||
                    if (BarFunctions.IsOffice2007Style(EffectiveStyle) && GlobalManager.Renderer is Office2007Renderer)
 | 
						||
                    {
 | 
						||
                        Office2007MenuColorTable mt = ((Office2007Renderer)GlobalManager.Renderer).ColorTable.Menu;
 | 
						||
                        if (mt != null && !mt.SideBorder.IsEmpty)
 | 
						||
                        {
 | 
						||
                            if (pa.RightToLeft)
 | 
						||
                                DisplayHelp.DrawGradientLine(g, sideRect.X + 1, sideRect.Y, sideRect.X + 1, sideRect.Bottom - 1, mt.SideBorder, 1);
 | 
						||
                            else
 | 
						||
                                DisplayHelp.DrawGradientLine(g, sideRect.Right - 2, sideRect.Y, sideRect.Right - 2, sideRect.Bottom - 1, mt.SideBorder, 1);
 | 
						||
                        }
 | 
						||
                        if (mt != null && !mt.SideBorderLight.IsEmpty)
 | 
						||
                        {
 | 
						||
                            if (pa.RightToLeft)
 | 
						||
                                DisplayHelp.DrawGradientLine(g, sideRect.X, sideRect.Y, sideRect.X, sideRect.Bottom - 1, mt.SideBorder, 1);
 | 
						||
                            else
 | 
						||
                                DisplayHelp.DrawGradientLine(g, sideRect.Right - 1, sideRect.Y, sideRect.Right - 1, sideRect.Bottom - 1, mt.SideBorderLight, 1);
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
				}
 | 
						||
 | 
						||
				if(this.IsOnCustomizeMenu)
 | 
						||
				{
 | 
						||
                    if (this.EffectiveStyle == eDotNetBarStyle.OfficeXP || this.EffectiveStyle == eDotNetBarStyle.Office2003 || EffectiveStyle == eDotNetBarStyle.VS2005 || BarFunctions.IsOffice2007Style(EffectiveStyle))
 | 
						||
					{
 | 
						||
						r.X+=(objImageSize.Height+8);
 | 
						||
						r.Width-=(objImageSize.Height+8);
 | 
						||
					}
 | 
						||
					else
 | 
						||
					{
 | 
						||
						r.X+=(objImageSize.Height+4);
 | 
						||
						r.Width-=(objImageSize.Height+4);
 | 
						||
					}
 | 
						||
				}
 | 
						||
 | 
						||
                if (bOnMenu && (this.EffectiveStyle == eDotNetBarStyle.OfficeXP || this.EffectiveStyle == eDotNetBarStyle.Office2003 || EffectiveStyle == eDotNetBarStyle.VS2005 || BarFunctions.IsOffice2007Style(EffectiveStyle)))
 | 
						||
				{
 | 
						||
					if(m_MouseOver)
 | 
						||
					{
 | 
						||
						Rectangle rHover=this.DisplayRectangle;
 | 
						||
						rHover.Inflate(-1,0);
 | 
						||
                        if (BarFunctions.IsOffice2007Style(EffectiveStyle) && !(pa.Owner is DotNetBarManager) && GlobalManager.Renderer is Office2007Renderer)
 | 
						||
                        {
 | 
						||
                            Office2007ButtonItemStateColorTable bt = ((Office2007Renderer)GlobalManager.Renderer).ColorTable.ButtonItemColors[0].MouseOver;
 | 
						||
                            Office2007ButtonItemPainter.PaintBackground(g, bt, rHover, RoundRectangleShapeDescriptor.RoundCorner3);
 | 
						||
                        }
 | 
						||
                        else
 | 
						||
                        {
 | 
						||
                            if (!pa.Colors.ItemHotBackground2.IsEmpty)
 | 
						||
                            {
 | 
						||
                                System.Drawing.Drawing2D.LinearGradientBrush gradient = BarFunctions.CreateLinearGradientBrush(rHover, pa.Colors.ItemHotBackground, pa.Colors.ItemHotBackground2, pa.Colors.ItemHotBackgroundGradientAngle);
 | 
						||
                                g.FillRectangle(gradient, rHover);
 | 
						||
                                gradient.Dispose();
 | 
						||
                            }
 | 
						||
                            else
 | 
						||
                                g.FillRectangle(new SolidBrush(pa.Colors.ItemHotBackground), rHover);
 | 
						||
                            NativeFunctions.DrawRectangle(g, new Pen(pa.Colors.ItemHotBorder), rHover);
 | 
						||
                        }
 | 
						||
					}
 | 
						||
				}
 | 
						||
 | 
						||
				// Draw text if needed
 | 
						||
                if (Caption != "" && (m_AlwaysShowCaption || bOnMenu))
 | 
						||
				{
 | 
						||
					eTextFormat objStringFormat=GetStringFormat();
 | 
						||
					Font objFont=this.GetFont();
 | 
						||
					Rectangle rText=new Rectangle(r.X+8,r.Y,r.Width,r.Height);
 | 
						||
 | 
						||
                    if (pa.GlassEnabled && this.Parent is CaptionItemContainer && !(this.ContainerControl is Ribbon.QatToolbar))
 | 
						||
                    {
 | 
						||
                        if (!pa.CachedPaint)
 | 
						||
                            Office2007RibbonControlPainter.PaintTextOnGlass(g, Caption, objFont,
 | 
						||
                                rText, TextDrawing.GetTextFormat(objStringFormat), textColor, true, true, 7);
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        TextDrawing.DrawString(g, Caption, objFont, textColor, rText, objStringFormat);
 | 
						||
                    }
 | 
						||
 | 
						||
                    Size textSize = TextDrawing.MeasureString(g, Caption, objFont, 0, objStringFormat);
 | 
						||
					r.X+=(int)textSize.Width+8;
 | 
						||
					r.Width-=((int)textSize.Width+8);
 | 
						||
				}
 | 
						||
 | 
						||
				if(m_ComboBox==null || this.IsOnCustomizeMenu || this.IsOnCustomizeDialog || this.DesignMode)
 | 
						||
				{
 | 
						||
					r.Inflate(-3,-2);
 | 
						||
					g.FillRectangle(SystemBrushes.Window,r);
 | 
						||
					NativeFunctions.DrawRectangle(g,SystemPens.ControlDark,r);
 | 
						||
					r.X=r.Right-(System.Windows.Forms.SystemInformation.HorizontalScrollBarThumbWidth-2);
 | 
						||
					r.Width=System.Windows.Forms.SystemInformation.HorizontalScrollBarThumbWidth-2;
 | 
						||
					System.Windows.Forms.ControlPaint.DrawComboButton(g,r,System.Windows.Forms.ButtonState.Flat);
 | 
						||
				}
 | 
						||
				else
 | 
						||
				{
 | 
						||
                    int selLength = m_ComboBox.SelectionLength;
 | 
						||
                    r.Inflate(-2,-2);
 | 
						||
                    if(m_ComboBox.Width!=r.Width)
 | 
						||
					    m_ComboBox.Width=r.Width;
 | 
						||
					Point loc=r.Location;
 | 
						||
					loc.Offset((r.Width-m_ComboBox.Width)/2,(r.Height-m_ComboBox.Height)/2);
 | 
						||
 | 
						||
                    ScrollableControl scc = pa.ContainerControl as ScrollableControl;
 | 
						||
                    if (scc != null && scc.AutoScroll)
 | 
						||
                        loc.Offset(scc.AutoScrollPosition.X, scc.AutoScrollPosition.Y);
 | 
						||
                    if (m_ComboBox.Location != loc)
 | 
						||
                        m_ComboBox.Location = loc;
 | 
						||
                    
 | 
						||
                    if (selLength > 0 && selLength < 1000 && m_ComboBox.SelectionLength != selLength && m_ComboBox.Text.Length > selLength && m_ComboBox.DropDownStyle == ComboBoxStyle.DropDown)
 | 
						||
                    {
 | 
						||
                        m_ComboBox.SelectionLength = selLength;
 | 
						||
                    }
 | 
						||
				}
 | 
						||
 | 
						||
				if(this.IsOnCustomizeMenu && this.Visible)
 | 
						||
				{
 | 
						||
					// Draw check box if this item is visible
 | 
						||
					Rectangle rBox=new Rectangle(m_Rect.Left,m_Rect.Top,m_Rect.Height,m_Rect.Height);
 | 
						||
                    if (EffectiveStyle == eDotNetBarStyle.OfficeXP || EffectiveStyle == eDotNetBarStyle.Office2003 || EffectiveStyle == eDotNetBarStyle.VS2005 || BarFunctions.IsOffice2007Style(EffectiveStyle))
 | 
						||
						rBox.Inflate(-1,-1);
 | 
						||
                    BarFunctions.DrawMenuCheckBox(pa, rBox, EffectiveStyle, m_MouseOver);
 | 
						||
				}
 | 
						||
			}
 | 
						||
			else
 | 
						||
			{
 | 
						||
				string Caption=this.Text;
 | 
						||
				if(Caption=="")
 | 
						||
					Caption="...";
 | 
						||
				else
 | 
						||
					Caption+=" <20>";
 | 
						||
 | 
						||
                if (EffectiveStyle == eDotNetBarStyle.OfficeXP || EffectiveStyle == eDotNetBarStyle.Office2003 || EffectiveStyle == eDotNetBarStyle.VS2005 || BarFunctions.IsOffice2007Style(EffectiveStyle))
 | 
						||
					g.FillRectangle(new SolidBrush(ColorFunctions.ToolMenuFocusBackColor(g)),this.DisplayRectangle);
 | 
						||
				else
 | 
						||
					g.FillRectangle(SystemBrushes.Control,this.DisplayRectangle);
 | 
						||
 | 
						||
				if(m_MouseOver && !this.DesignMode)
 | 
						||
				{
 | 
						||
                    if (EffectiveStyle == eDotNetBarStyle.Office2000)
 | 
						||
					{
 | 
						||
						//r.Inflate(-1,-1);
 | 
						||
						System.Windows.Forms.ControlPaint.DrawBorder3D(g,r,System.Windows.Forms.Border3DStyle.RaisedInner,System.Windows.Forms.Border3DSide.All);
 | 
						||
					}
 | 
						||
                    else if (EffectiveStyle == eDotNetBarStyle.OfficeXP || EffectiveStyle == eDotNetBarStyle.Office2003 || EffectiveStyle == eDotNetBarStyle.VS2005 || BarFunctions.IsOffice2007Style(EffectiveStyle))
 | 
						||
					{
 | 
						||
						r.Inflate(-1,-1);
 | 
						||
						g.FillRectangle(new SolidBrush(ColorFunctions.HoverBackColor(g)),r);
 | 
						||
						NativeFunctions.DrawRectangle(g,SystemPens.Highlight,r);
 | 
						||
					}
 | 
						||
				}
 | 
						||
 | 
						||
				r=new Rectangle(m_Rect.Top,-m_Rect.Right,m_Rect.Height,m_Rect.Width);
 | 
						||
				g.RotateTransform(90);
 | 
						||
				eTextFormat sf=GetStringFormat();
 | 
						||
                sf |= eTextFormat.HorizontalCenter;
 | 
						||
                TextDrawing.DrawStringLegacy(g, Caption, GetFont(), textColor, r, sf);
 | 
						||
				g.ResetTransform();
 | 
						||
			}
 | 
						||
 | 
						||
			if(this.Focused && this.DesignMode)
 | 
						||
			{
 | 
						||
				r=this.DisplayRectangle;
 | 
						||
				r.Inflate(-1,-1);
 | 
						||
				DesignTime.DrawDesignTimeSelection(g,r,pa.Colors.ItemDesignTimeBorder);
 | 
						||
			}
 | 
						||
 | 
						||
			//if(this.DesignMode)
 | 
						||
			this.DrawInsertMarker(g);
 | 
						||
		}
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// IBlock member implementation
 | 
						||
        /// </summary>
 | 
						||
        [Browsable(false), DevCoBrowsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), EditorBrowsable(EditorBrowsableState.Never)]
 | 
						||
        public override System.Drawing.Rectangle Bounds
 | 
						||
        {
 | 
						||
            get { return base.Bounds; }
 | 
						||
            set
 | 
						||
            {
 | 
						||
                if (base.Bounds != value)
 | 
						||
                {
 | 
						||
                    bool topLocationChanged = base.Bounds.Top != value.Top;
 | 
						||
                    bool leftLocationChanged = base.Bounds.Left != value.Left;
 | 
						||
                    base.Bounds = value;
 | 
						||
                    if ((topLocationChanged || leftLocationChanged) && (this.ContainerControl is ItemPanel || this.ContainerControl is ExplorerBar))
 | 
						||
                        UpdateControlLocation();
 | 
						||
                }
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        private void UpdateControlLocation()
 | 
						||
        {
 | 
						||
            if (m_ComboBox == null) return;
 | 
						||
            Rectangle r = this.DisplayRectangle;
 | 
						||
            r.Inflate(-2, -2);
 | 
						||
            m_ComboBox.Location = r.Location;
 | 
						||
        }
 | 
						||
 | 
						||
        public override void RecalcSize()
 | 
						||
        {
 | 
						||
            if (this.SuspendLayout)
 | 
						||
                return;
 | 
						||
 | 
						||
            bool bOnMenu = this.IsOnMenu;
 | 
						||
 | 
						||
            if (this.Orientation == eOrientation.Horizontal)
 | 
						||
            {
 | 
						||
                // Default Height
 | 
						||
                if (this.Parent != null && this.Parent is ImageItem)
 | 
						||
                    m_Rect.Height = ((ImageItem)this.Parent).SubItemsImageSize.Height + Dpi.Height(4);
 | 
						||
                else
 | 
						||
                    m_Rect.Height = this.SubItemsImageSize.Height + Dpi.Height(4);
 | 
						||
 | 
						||
                eDotNetBarStyle effectiveStyle = EffectiveStyle;
 | 
						||
                if (effectiveStyle == eDotNetBarStyle.OfficeXP || effectiveStyle == eDotNetBarStyle.Office2003 || effectiveStyle == eDotNetBarStyle.VS2005 || BarFunctions.IsOffice2007Style(effectiveStyle))
 | 
						||
                {
 | 
						||
                    if (m_ComboBox != null && m_Rect.Height < (m_ComboBox.Height + 2))
 | 
						||
                        m_Rect.Height = m_ComboBox.Height + 2;
 | 
						||
                }
 | 
						||
                else
 | 
						||
                {
 | 
						||
                    if (m_ComboBox != null && m_Rect.Height < (m_ComboBox.Height + 2))
 | 
						||
                        m_Rect.Height = m_ComboBox.Height + 2;
 | 
						||
                }
 | 
						||
 | 
						||
                // Default width
 | 
						||
                m_Rect.Width = Dpi.Width(m_ComboWidth + 4);
 | 
						||
 | 
						||
                // Calculate Item Height
 | 
						||
                if (Caption != "" && (m_AlwaysShowCaption || bOnMenu))
 | 
						||
                {
 | 
						||
                    System.Windows.Forms.Control objCtrl = this.ContainerControl as System.Windows.Forms.Control;
 | 
						||
                    if (objCtrl != null && IsHandleValid(objCtrl))
 | 
						||
                    {
 | 
						||
                        Graphics g = BarFunctions.CreateGraphics(objCtrl);
 | 
						||
                        try
 | 
						||
                        {
 | 
						||
                            Size textSize = Size.Empty;
 | 
						||
                            if (m_Orientation == eOrientation.Vertical && !bOnMenu)
 | 
						||
                                textSize = TextDrawing.MeasureStringLegacy(g, Caption, GetFont(), Size.Empty, GetStringFormat());
 | 
						||
                            else
 | 
						||
                                textSize = TextDrawing.MeasureString(g, Caption, GetFont(), 0, GetStringFormat());
 | 
						||
                            if (textSize.Height > this.SubItemsImageSize.Height && textSize.Height > m_Rect.Height)
 | 
						||
                                m_Rect.Height = (int)textSize.Height + 4;
 | 
						||
                            m_Rect.Width = Dpi.Width(m_ComboWidth + 4) + (int)textSize.Width + 8;
 | 
						||
                        }
 | 
						||
                        finally
 | 
						||
                        {
 | 
						||
                            g.Dispose();
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                }
 | 
						||
 | 
						||
                Size objImageSize = GetMaxImageSize();
 | 
						||
                if (this.IsOnMenu && (effectiveStyle == eDotNetBarStyle.OfficeXP || effectiveStyle == eDotNetBarStyle.Office2003 || effectiveStyle == eDotNetBarStyle.VS2005 || BarFunctions.IsOffice2007Style(effectiveStyle)))
 | 
						||
                {
 | 
						||
                    // THis is side bar that will need to be drawn for DotNet style
 | 
						||
                    m_Rect.Width += (objImageSize.Width + 7);
 | 
						||
                }
 | 
						||
 | 
						||
                if (this.IsOnCustomizeMenu)
 | 
						||
                    m_Rect.Width += (objImageSize.Height + 2);
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
                // Default width
 | 
						||
                m_Rect.Width = Dpi.Width(this.SubItemsImageSize.Width + 4);
 | 
						||
                string caption = this.Caption;
 | 
						||
                if (caption == "")
 | 
						||
                    caption = "...";
 | 
						||
                else
 | 
						||
                    caption += " <20>";
 | 
						||
                System.Windows.Forms.Control objCtrl = this.ContainerControl as System.Windows.Forms.Control;
 | 
						||
                if (objCtrl != null && IsHandleValid(objCtrl))
 | 
						||
                {
 | 
						||
                    Graphics g = BarFunctions.CreateGraphics(objCtrl);
 | 
						||
                    try
 | 
						||
                    {
 | 
						||
                        SizeF textSize = TextDrawing.MeasureString(g, caption, GetFont(), 0, GetStringFormat());
 | 
						||
                        if (textSize.Height > this.SubItemsImageSize.Height)
 | 
						||
                            m_Rect.Width = (int)textSize.Height + 4;
 | 
						||
                        m_Rect.Height = (int)textSize.Width + 8;
 | 
						||
                    }
 | 
						||
                    finally
 | 
						||
                    {
 | 
						||
                        g.Dispose();
 | 
						||
                    }
 | 
						||
                }
 | 
						||
 | 
						||
            }
 | 
						||
 | 
						||
            // Always call base implementation to reset resize flag
 | 
						||
            base.RecalcSize();
 | 
						||
        }
 | 
						||
		protected internal override void OnContainerChanged(object objOldContainer)
 | 
						||
		{	
 | 
						||
			base.OnContainerChanged(objOldContainer);
 | 
						||
			if(m_ComboBox!=null)
 | 
						||
			{
 | 
						||
				if(m_ComboBox.Parent!=null)
 | 
						||
				{
 | 
						||
					//bool bVisible=false;
 | 
						||
					if(m_ComboBox.Visible)
 | 
						||
					{
 | 
						||
						m_ComboBox.Visible=false;
 | 
						||
						//bVisible=true;
 | 
						||
					}
 | 
						||
					System.Windows.Forms.Control parent=m_ComboBox.Parent;
 | 
						||
					parent.Controls.Remove(m_ComboBox);
 | 
						||
					//if(bVisible)
 | 
						||
						//m_ComboBox.Visible=true;
 | 
						||
				}
 | 
						||
 | 
						||
				System.Windows.Forms.Control objCtrl=null;
 | 
						||
				if(this.ContainerControl!=null)
 | 
						||
				{
 | 
						||
					objCtrl=this.ContainerControl as System.Windows.Forms.Control;
 | 
						||
					if(objCtrl!=null)
 | 
						||
					{
 | 
						||
						objCtrl.Controls.Add(m_ComboBox);
 | 
						||
						OnDisplayedChanged();
 | 
						||
						m_ComboBox.Refresh();
 | 
						||
					}
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
        protected internal override void OnAfterItemRemoved(BaseItem item, int itemIndex)
 | 
						||
		{
 | 
						||
            base.OnAfterItemRemoved(item, itemIndex);
 | 
						||
			this.ContainerControl=null;
 | 
						||
		}
 | 
						||
		protected internal override void OnVisibleChanged(bool newValue)
 | 
						||
		{
 | 
						||
			if(m_ComboBox!=null && !newValue)
 | 
						||
				m_ComboBox.Visible=newValue;
 | 
						||
			base.OnVisibleChanged(newValue);
 | 
						||
		}
 | 
						||
		protected override void OnDisplayedChanged()
 | 
						||
		{
 | 
						||
			if(m_ComboBox!=null && !(this.IsOnCustomizeMenu || this.IsOnCustomizeDialog || this.DesignMode))
 | 
						||
			{
 | 
						||
				m_ComboBox.Visible=this.Displayed;
 | 
						||
			}
 | 
						||
		}
 | 
						||
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						||
		public override void OnGotFocus()
 | 
						||
		{
 | 
						||
			base.OnGotFocus();
 | 
						||
			if(m_ComboBox==null)
 | 
						||
				return;
 | 
						||
			if(m_ComboBox.Focused || this.IsOnCustomizeMenu || this.IsOnCustomizeDialog || this.DesignMode)
 | 
						||
				return;
 | 
						||
			m_ComboBox.Focus();
 | 
						||
		}
 | 
						||
 | 
						||
		private void ComboLostFocus(object sender, EventArgs e)
 | 
						||
		{
 | 
						||
			this.HideToolTip();
 | 
						||
			this.Text=m_ComboBox.Text;
 | 
						||
			this.ReleaseFocus();
 | 
						||
			if(!m_MouseOver)
 | 
						||
				return;
 | 
						||
			m_MouseOver=false;
 | 
						||
			this.Refresh();
 | 
						||
		}
 | 
						||
 | 
						||
		private void ComboMouseHover(object sender, EventArgs e)
 | 
						||
		{
 | 
						||
			if(this.DesignMode)
 | 
						||
				return;
 | 
						||
			if(System.Windows.Forms.Control.MouseButtons==System.Windows.Forms.MouseButtons.None)
 | 
						||
				ShowToolTip();
 | 
						||
		}
 | 
						||
 | 
						||
		private void ComboMouseEnter(object sender, EventArgs e)
 | 
						||
		{
 | 
						||
			if(!m_MouseOver)
 | 
						||
			{
 | 
						||
				m_MouseOver=true;			
 | 
						||
				this.Refresh();
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		private void ComboMouseLeave(object sender, EventArgs e)
 | 
						||
		{
 | 
						||
			this.HideToolTip();
 | 
						||
			if(m_ComboBox.Focused)
 | 
						||
				return;
 | 
						||
			if(m_MouseOver)
 | 
						||
			{
 | 
						||
				m_MouseOver=false;
 | 
						||
				this.Refresh();
 | 
						||
			}
 | 
						||
		}
 | 
						||
        private void ComboBoxVisibleChanged(object sender, EventArgs e)
 | 
						||
        {
 | 
						||
            this.HideToolTip();
 | 
						||
        }
 | 
						||
 | 
						||
		private void ComboGotFocus(object sender, EventArgs e)
 | 
						||
		{
 | 
						||
			this.HideToolTip();
 | 
						||
			this.Focus();
 | 
						||
 | 
						||
            if (GetEnabled() && !this.DesignMode)
 | 
						||
			{
 | 
						||
				if(m_MenuVisibility==eMenuVisibility.VisibleIfRecentlyUsed && !m_RecentlyUsed && this.IsOnMenu)
 | 
						||
				{
 | 
						||
					// Propagate to the top
 | 
						||
					m_RecentlyUsed=true;
 | 
						||
					BaseItem objItem=this.Parent;
 | 
						||
					while(objItem!=null)
 | 
						||
					{
 | 
						||
						IPersonalizedMenuItem ipm=objItem as IPersonalizedMenuItem;
 | 
						||
						if(ipm!=null)
 | 
						||
							ipm.RecentlyUsed=true;
 | 
						||
						objItem=objItem.Parent;
 | 
						||
					}
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		private void ComboSelChanged(object sender, EventArgs e)
 | 
						||
		{
 | 
						||
            if (!_CopyInProgress)
 | 
						||
            {
 | 
						||
                this.RaiseClick();
 | 
						||
                if (SelectedIndexChanged != null)
 | 
						||
                    SelectedIndexChanged(this, e);
 | 
						||
                if (ShouldSyncProperties)
 | 
						||
                    BarFunctions.SyncProperty(this, "SelectedIndex");
 | 
						||
                ExecuteCommand();
 | 
						||
            }
 | 
						||
            
 | 
						||
		}
 | 
						||
 | 
						||
		private void ComboKeyDown(object sender,System.Windows.Forms.KeyEventArgs e)
 | 
						||
		{
 | 
						||
			this.HideToolTip();
 | 
						||
			if(e.KeyCode==System.Windows.Forms.Keys.Enter && this.Parent is PopupItem)
 | 
						||
			{
 | 
						||
				((PopupItem)this.Parent).ClosePopup();
 | 
						||
			}
 | 
						||
		}
 | 
						||
		private void ComboDropDownChange(object sender,bool bExpanded)
 | 
						||
		{
 | 
						||
			this.Expanded=bExpanded;
 | 
						||
			if(!bExpanded)
 | 
						||
				this.ReleaseFocus();
 | 
						||
		}
 | 
						||
		protected override void OnIsOnCustomizeDialogChanged()
 | 
						||
		{
 | 
						||
			base.OnIsOnCustomizeDialogChanged();
 | 
						||
			CustomizeChanged();
 | 
						||
		}
 | 
						||
 | 
						||
		protected override void OnDesignModeChanged()
 | 
						||
		{
 | 
						||
			base.OnDesignModeChanged();
 | 
						||
			CustomizeChanged();
 | 
						||
		}
 | 
						||
 | 
						||
		protected override void OnIsOnCustomizeMenuChanged()
 | 
						||
		{
 | 
						||
			base.OnIsOnCustomizeMenuChanged();
 | 
						||
			CustomizeChanged();
 | 
						||
		}
 | 
						||
 | 
						||
		private void CustomizeChanged()
 | 
						||
		{
 | 
						||
			if(this.IsOnCustomizeMenu || this.IsOnCustomizeDialog || this.DesignMode)
 | 
						||
			{
 | 
						||
				m_ComboBox.Visible=false;
 | 
						||
			}
 | 
						||
			else
 | 
						||
			{
 | 
						||
				m_ComboBox.Visible=this.Displayed;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the width of the of the drop-down portion of a combo box. 
 | 
						||
        /// </summary>
 | 
						||
        [Category("Layout"), Browsable(true), Description("Indicates width of the of the drop-down portion of a combo box.")]
 | 
						||
        public int DropDownWidth
 | 
						||
        {
 | 
						||
            get { return m_ComboBox.DropDownWidth; }
 | 
						||
            set { m_ComboBox.DropDownWidth = value; }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Returns whether property should be serialized.
 | 
						||
        /// </summary>
 | 
						||
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						||
        public bool ShouldSerializeDropDownWidth()
 | 
						||
        {
 | 
						||
            return m_ComboBox.Width != m_ComboBox.DropDownWidth;
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the height of the of the drop-down portion of a combo box. 
 | 
						||
        /// </summary>
 | 
						||
        [Category("Layout"), Browsable(true), DefaultValue(0), Description("Indicates height of the of the drop-down portion of a combo box.")]
 | 
						||
        public int DropDownHeight
 | 
						||
        {
 | 
						||
            get { return m_ComboBox.DropDownHeight; }
 | 
						||
            set { m_ComboBox.DropDownHeight = value; }
 | 
						||
        }
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Indicates the Width of the combo box part of the item.
 | 
						||
		/// </summary>
 | 
						||
		[System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Layout"),System.ComponentModel.Description("Indicates the Width of the combo box part of the item."),System.ComponentModel.DefaultValue(64)]
 | 
						||
		public int ComboWidth
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboWidth;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				if(m_ComboWidth!=value)
 | 
						||
				{
 | 
						||
					m_ComboWidth=value;
 | 
						||
					if(this.Name!="" && this.GlobalItem)
 | 
						||
					{
 | 
						||
						BarFunctions.SetProperty(this.GetOwner(),this.GetType(),m_Name,System.ComponentModel.TypeDescriptor.GetProperties(this)["ComboWidth"],m_ComboWidth);
 | 
						||
					}
 | 
						||
					NeedRecalcSize=true;
 | 
						||
					this.Refresh();
 | 
						||
				}
 | 
						||
				OnAppearanceChanged();
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Overridden. Releases the input focus.
 | 
						||
		/// </summary>
 | 
						||
		public override void ReleaseFocus()
 | 
						||
		{
 | 
						||
			if(m_ComboBox!=null && m_ComboBox.Focused)
 | 
						||
				m_ComboBox.ReleaseFocus();
 | 
						||
			base.ReleaseFocus();
 | 
						||
		}
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Indicates whether control automatically releases its input focus when selection is made using keyboard.
 | 
						||
        /// </summary>
 | 
						||
        [DefaultValue(true), Browsable(true), Category("Behavior"), Description("Indicates whether control automatically releases its input focus when selection is made using keyboard.")]
 | 
						||
        public bool AutoReleaseFocus
 | 
						||
        {
 | 
						||
            get
 | 
						||
            {
 | 
						||
                return m_ComboBox.AutoReleaseFocus;
 | 
						||
            }
 | 
						||
            set
 | 
						||
            {
 | 
						||
                m_ComboBox.AutoReleaseFocus = value;
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Returns the reference to the inner combo box control.
 | 
						||
		/// </summary>
 | 
						||
		[Browsable(false)]
 | 
						||
		public ComboBoxEx ComboBoxEx
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
//		[System.ComponentModel.Browsable(true),System.ComponentModel.Category("Appearance"),System.ComponentModel.Description("The caption of the item.")]
 | 
						||
//		public string Caption
 | 
						||
//		{
 | 
						||
//			get
 | 
						||
//			{
 | 
						||
//				return m_Caption;
 | 
						||
//			}
 | 
						||
//			set
 | 
						||
//			{
 | 
						||
//				if(m_Caption!=value)
 | 
						||
//				{
 | 
						||
//					m_Caption=value;
 | 
						||
//					if(this.Name!="" && this.GlobalItem)
 | 
						||
//					{
 | 
						||
//						BarFunctions.SetProperty(this.GetOwner(),this.GetType(),m_Name,System.ComponentModel.TypeDescriptor.GetProperties(this)["Caption"],m_Caption);
 | 
						||
//					}
 | 
						||
//					m_NeedRecalcSize=true;
 | 
						||
//					this.Refresh();
 | 
						||
//				}
 | 
						||
//			}
 | 
						||
//		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Indicates whether item caption is always shown.
 | 
						||
		/// </summary>
 | 
						||
		[System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Behavior"),System.ComponentModel.Description("Indicates whether item caption is always shown."), System.ComponentModel.DefaultValue(false)]
 | 
						||
		public bool AlwaysShowCaption
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_AlwaysShowCaption;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				if(m_AlwaysShowCaption!=value)
 | 
						||
				{
 | 
						||
					m_AlwaysShowCaption=value;
 | 
						||
				}
 | 
						||
				NeedRecalcSize=true;
 | 
						||
			}
 | 
						||
		}
 | 
						||
		private Size GetMaxImageSize()
 | 
						||
		{
 | 
						||
			if(m_Parent!=null)
 | 
						||
			{
 | 
						||
				ImageItem objParentImageItem=m_Parent as ImageItem;
 | 
						||
				if(objParentImageItem!=null)
 | 
						||
					return objParentImageItem.SubItemsImageSize;
 | 
						||
				else
 | 
						||
					return this.ImageSize;
 | 
						||
			}
 | 
						||
			else
 | 
						||
				return this.ImageSize;
 | 
						||
		}
 | 
						||
        private eTextFormat GetStringFormat()
 | 
						||
		{
 | 
						||
            eTextFormat format = eTextFormat.Default;
 | 
						||
            format |= eTextFormat.SingleLine;
 | 
						||
            format |= eTextFormat.EndEllipsis;
 | 
						||
            format |= eTextFormat.VerticalCenter;
 | 
						||
            return format;
 | 
						||
            //sfmt.HotkeyPrefix=System.Drawing.Text.HotkeyPrefix.Show;
 | 
						||
			//sfmt.FormatFlags=sfmt.FormatFlags | StringFormatFlags.NoWrap;
 | 
						||
            //sfmt.Trimming=StringTrimming.EllipsisCharacter;
 | 
						||
            //sfmt.Alignment=System.Drawing.StringAlignment.Near;
 | 
						||
            //sfmt.LineAlignment=System.Drawing.StringAlignment.Center;
 | 
						||
 | 
						||
			//return sfmt;
 | 
						||
		}
 | 
						||
		protected virtual Font GetFont()
 | 
						||
		{
 | 
						||
			System.Windows.Forms.Control objCtrl=this.ContainerControl as System.Windows.Forms.Control;
 | 
						||
			if(objCtrl!=null)
 | 
						||
				return (Font)objCtrl.Font;
 | 
						||
            return SystemFonts.DefaultFont;
 | 
						||
		}
 | 
						||
		[System.ComponentModel.Browsable(false),System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
 | 
						||
		public override void InternalMouseEnter()
 | 
						||
		{
 | 
						||
			base.InternalMouseEnter();
 | 
						||
			//if(this.DesignMode || this.IsOnCustomizeMenu || this.IsOnCustomizeDialog || this.Orientation==eOrientation.Vertical)
 | 
						||
			if(!m_MouseOver)
 | 
						||
			{
 | 
						||
				m_MouseOver=true;
 | 
						||
				this.Refresh();
 | 
						||
			}
 | 
						||
		}
 | 
						||
		[System.ComponentModel.Browsable(false),System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
 | 
						||
		public override void InternalMouseLeave()
 | 
						||
		{
 | 
						||
			base.InternalMouseLeave();
 | 
						||
			if(m_MouseOver)
 | 
						||
			{
 | 
						||
				m_MouseOver=false;
 | 
						||
				this.Refresh();
 | 
						||
			}
 | 
						||
		}
 | 
						||
		protected internal override bool IsAnyOnHandle(IntPtr iHandle)
 | 
						||
		{
 | 
						||
			bool bRet=base.IsAnyOnHandle(iHandle);
 | 
						||
			if(!bRet && m_ComboBox!=null && m_ComboBox.DroppedDown && m_ComboBox.DropDownHandle!=IntPtr.Zero && m_ComboBox.DropDownHandle==iHandle)
 | 
						||
				bRet=true;
 | 
						||
			return bRet;
 | 
						||
		}
 | 
						||
		protected override void OnStyleChanged()
 | 
						||
		{
 | 
						||
			base.OnStyleChanged();
 | 
						||
			m_ComboBox.Style=this.Style;
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets an object representing the collection of the items contained in inner ComboBoxEx.
 | 
						||
		/// </summary>
 | 
						||
        [System.ComponentModel.Editor("DevComponents.DotNetBar.Design.ComboItemsEditor, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf", typeof(System.Drawing.Design.UITypeEditor)), System.ComponentModel.Category("Data"), DevCoBrowsable(true), Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
 | 
						||
		public System.Windows.Forms.ComboBox.ObjectCollection Items
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox.Items;
 | 
						||
				
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets a value specifying the style of the combo box.
 | 
						||
		/// </summary>
 | 
						||
		[System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Appearance"),DefaultValue(System.Windows.Forms.ComboBoxStyle.DropDownList),System.ComponentModel.Description("Gets or sets a value specifying the style of the combo box.")]
 | 
						||
		public System.Windows.Forms.ComboBoxStyle DropDownStyle
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox.DropDownStyle;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
                m_ComboBox.DropDownStyle=value;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets the starting index of text selected in the combo box.
 | 
						||
		/// </summary>
 | 
						||
		[Browsable(false),System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden),System.ComponentModel.DefaultValue(0)]
 | 
						||
		public int SelectionStart
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox.SelectionStart;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				m_ComboBox.SelectionStart=value;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets the number of characters selected in the editable portion of the combo box.
 | 
						||
		/// </summary>
 | 
						||
		[Browsable(false),System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden),System.ComponentModel.DefaultValue(0)]
 | 
						||
		public int SelectionLength
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox.SelectionLength;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				m_ComboBox.SelectionLength=value;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets the text that is selected in the editable portion of a combo box.
 | 
						||
		/// </summary>
 | 
						||
		[Browsable(false),System.ComponentModel.DefaultValue(""),System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
 | 
						||
		public string SelectedText
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox.SelectedText;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				m_ComboBox.SelectedText=value;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets currently selected item in the combo box.
 | 
						||
		/// </summary>
 | 
						||
		[Browsable(false),System.ComponentModel.DefaultValue(null),System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
 | 
						||
		public object SelectedItem
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox.SelectedItem;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				m_ComboBox.SelectedItem=value;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets the index specifying the currently selected item.
 | 
						||
		/// </summary>
 | 
						||
		[Browsable(false),System.ComponentModel.DefaultValue(-1),System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
 | 
						||
		public int SelectedIndex
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox.SelectedIndex;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				m_ComboBox.SelectedIndex=value;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets the value indicating whether the item automatically loads all the fonts available into the combo box.
 | 
						||
		/// </summary>
 | 
						||
		[System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Behavior"),System.ComponentModel.Description("Automatically loads all the fonts available into the combo box."),System.ComponentModel.DefaultValue(false)]
 | 
						||
		public bool FontCombo
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_FontCombo;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				if(m_FontCombo!=value)
 | 
						||
				{
 | 
						||
					m_FontCombo=value;
 | 
						||
					if(m_FontCombo)
 | 
						||
					{
 | 
						||
						m_ComboBox.LoadFonts();
 | 
						||
						m_ComboBox.DropDownStyle=System.Windows.Forms.ComboBoxStyle.DropDownList;
 | 
						||
						//m_ComboBox.DrawMode=System.Windows.Forms.DrawMode.OwnerDrawVariable;
 | 
						||
					}
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets the height of an item in the combo box.
 | 
						||
		/// </summary>
 | 
						||
		[DefaultValue(15), System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Behavior"),System.ComponentModel.Description("Indicates the height of an item in the combo box.")]
 | 
						||
		public int ItemHeight
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox.ItemHeight;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				m_ComboBox.ItemHeight=value;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		// IPersonalizedMenuItem Implementation
 | 
						||
		/// <summary>
 | 
						||
		/// Indicates item's visibility when on pop-up menu.
 | 
						||
		/// </summary>
 | 
						||
		[System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Appearance"),System.ComponentModel.Description("Indicates item's visiblity when on pop-up menu."),System.ComponentModel.DefaultValue(eMenuVisibility.VisibleAlways)]
 | 
						||
		public eMenuVisibility MenuVisibility
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_MenuVisibility;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				if(m_MenuVisibility!=value)
 | 
						||
				{
 | 
						||
					m_MenuVisibility=value;
 | 
						||
					if(m_Name!="" && this.GlobalItem)
 | 
						||
					{
 | 
						||
						BarFunctions.SetProperty(this.GetOwner(),this.GetType(),m_Name,System.ComponentModel.TypeDescriptor.GetProperties(this)["MenuVisibility"],m_MenuVisibility);
 | 
						||
					}
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
		/// <summary>
 | 
						||
		/// Gets or sets the value that indicates whether the item was recently used.
 | 
						||
		/// </summary>
 | 
						||
		[System.ComponentModel.Browsable(false),System.ComponentModel.DefaultValue(false)]
 | 
						||
		public bool RecentlyUsed
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_RecentlyUsed;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				if(m_RecentlyUsed!=value)
 | 
						||
				{
 | 
						||
					m_RecentlyUsed=value;
 | 
						||
					if(m_Name!="" && this.GlobalItem)
 | 
						||
					{
 | 
						||
						BarFunctions.SetProperty(this.GetOwner(),this.GetType(),m_Name,System.ComponentModel.TypeDescriptor.GetProperties(this)["RecentlyUsed"],m_RecentlyUsed);
 | 
						||
					}
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		protected override void OnEnabledChanged()
 | 
						||
		{
 | 
						||
			base.OnEnabledChanged();
 | 
						||
			if(m_ComboBox!=null)
 | 
						||
				m_ComboBox.Enabled=this.Enabled;
 | 
						||
		}
 | 
						||
 | 
						||
		private void InternalComboTextChanged(object sender, EventArgs e)
 | 
						||
		{
 | 
						||
            if(!_SettingText)
 | 
						||
                this.Text = m_ComboBox.Text;
 | 
						||
            OnComboBoxTextChanged(e);
 | 
						||
		}
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Raises the ComboBoxTextChanged event.
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="e">Provides event arguments.</param>
 | 
						||
        protected virtual void OnComboBoxTextChanged(EventArgs e)
 | 
						||
        {
 | 
						||
            if (ComboBoxTextChanged != null)
 | 
						||
                ComboBoxTextChanged(this, e);
 | 
						||
        }
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Overridden. Gets or sets the text associated with this item.
 | 
						||
		/// </summary>
 | 
						||
		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), Browsable(false), Obsolete("Please use Text property instead to access ComboBox text.")]
 | 
						||
		public virtual string ControlText
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return this.Text;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
                this.Text = value;
 | 
						||
            }
 | 
						||
		}
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the text associated with this item.
 | 
						||
        /// </summary>
 | 
						||
        [Browsable(true), Category("Appearance"), Description("The text contained in the underlining Control portion of the item."), DefaultValue("")]
 | 
						||
        public override string Text
 | 
						||
        {
 | 
						||
            get
 | 
						||
            {
 | 
						||
                return base.Text;
 | 
						||
            }
 | 
						||
            set
 | 
						||
            {
 | 
						||
                base.Text = value;
 | 
						||
            }
 | 
						||
        }
 | 
						||
        private bool _SettingText = false;
 | 
						||
        protected override void OnTextChanged()
 | 
						||
        {
 | 
						||
            if (m_ComboBox != null && m_ComboBox.Text != this.Text)
 | 
						||
            {
 | 
						||
                try
 | 
						||
                {
 | 
						||
                    _SettingText = true;
 | 
						||
                    m_ComboBox.Text = this.Text;
 | 
						||
                }
 | 
						||
                finally
 | 
						||
                {
 | 
						||
                    _SettingText = false;
 | 
						||
                }
 | 
						||
            }
 | 
						||
            base.OnTextChanged();
 | 
						||
        }
 | 
						||
 | 
						||
        private string _Caption = "";
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the item caption text displayed next to the combo box.
 | 
						||
        /// </summary>
 | 
						||
        [DefaultValue(""), System.ComponentModel.Category("Appearance"), Description("Indicates the item Caption displayed next to the combo box."), Localizable(true)]
 | 
						||
        public string Caption
 | 
						||
        {
 | 
						||
            get { return _Caption; }
 | 
						||
            set
 | 
						||
            {
 | 
						||
                if (value == null) value = "";
 | 
						||
                _Caption = value;
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets a string that specifies the property of the data source whose contents you want to display. When ComboBoxItem is used in DropDown mode
 | 
						||
        /// and objects like ComboItem are added to ComboBoxItems.Items collection DisplayMembers should be set to the name of the property you would
 | 
						||
        /// like to use as text representation in editable portion of ComboBox. For example in case of ComboItem objects property should be set to Text.
 | 
						||
        /// </summary>
 | 
						||
        [System.ComponentModel.Browsable(true), DevCoBrowsable(true), System.ComponentModel.Category("Data"), System.ComponentModel.Description("Indicates string that specifies the property of the data source whose contents you want to display."), System.ComponentModel.DefaultValue("")]
 | 
						||
        public virtual string DisplayMember
 | 
						||
        {
 | 
						||
            get
 | 
						||
            {
 | 
						||
                if(m_ComboBox!=null)
 | 
						||
                    return m_ComboBox.DisplayMember;
 | 
						||
                return "";
 | 
						||
            }
 | 
						||
            set
 | 
						||
            {
 | 
						||
                if (m_ComboBox != null)
 | 
						||
                    m_ComboBox.DisplayMember = value;
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
		/// <summary>
 | 
						||
		/// Specifies whether combo box is drawn using themes when running on OS that supports themes like Windows XP
 | 
						||
		/// </summary>
 | 
						||
		[System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Appearance"),System.ComponentModel.Description("Specifies whether combo box is drawn using themes when running on OS that supports themes like Windows XP.")]
 | 
						||
		public override bool ThemeAware
 | 
						||
		{
 | 
						||
			get
 | 
						||
			{
 | 
						||
				return m_ComboBox.ThemeAware;
 | 
						||
			}
 | 
						||
			set
 | 
						||
			{
 | 
						||
				m_ComboBox.ThemeAware=value;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		[System.ComponentModel.Browsable(false),System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
 | 
						||
		public override bool IsWindowed
 | 
						||
		{
 | 
						||
			get {return true;}
 | 
						||
		}
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the watermark font.
 | 
						||
        /// </summary>
 | 
						||
        [Browsable(true), Category("Appearance"), Description("Indicates watermark font."), DefaultValue(null)]
 | 
						||
        public Font WatermarkFont
 | 
						||
        {
 | 
						||
            get { return m_ComboBox.WatermarkFont; }
 | 
						||
            set { m_ComboBox.WatermarkFont = value; }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the watermark text color.
 | 
						||
        /// </summary>
 | 
						||
        [Browsable(true), Category("Appearance"), Description("Indicates watermark text color.")]
 | 
						||
        public Color WatermarkColor
 | 
						||
        {
 | 
						||
            get { return m_ComboBox.WatermarkColor; }
 | 
						||
            set { m_ComboBox.WatermarkColor = value; }
 | 
						||
        }
 | 
						||
        /// <summary>
 | 
						||
        /// Indicates whether property should be serialized by Windows Forms designer.
 | 
						||
        /// </summary>
 | 
						||
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						||
        public bool ShouldSerializeWatermarkColor()
 | 
						||
        {
 | 
						||
            return m_ComboBox.WatermarkColor != SystemColors.GrayText;
 | 
						||
        }
 | 
						||
        /// <summary>
 | 
						||
        /// Resets the property to default value.
 | 
						||
        /// </summary>
 | 
						||
        [EditorBrowsable(EditorBrowsableState.Never)]
 | 
						||
        public void ResetWatermarkColor()
 | 
						||
        {
 | 
						||
            this.WatermarkColor = SystemColors.GrayText;
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets whether watermark text is displayed when control is empty. Default value is true.
 | 
						||
        /// </summary>
 | 
						||
        [DefaultValue(true), Description("Indicates whether watermark text is displayed when control is empty.")]
 | 
						||
        public virtual bool WatermarkEnabled
 | 
						||
        {
 | 
						||
            get { return m_ComboBox.WatermarkEnabled; }
 | 
						||
            set { m_ComboBox.WatermarkEnabled = value; }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the watermark (tip) text displayed inside of the control when Text is not set and control does not have input focus. This property supports text-markup.
 | 
						||
        /// Note that WatermarkText is not compatible with the auto-complete feature of .NET Framework 2.0.
 | 
						||
        /// </summary>
 | 
						||
        [Browsable(true), DefaultValue(""), Localizable(true), Category("Appearance"), Description("Indicates watermark text displayed inside of the control when Text is not set and control does not have input focus."), Editor("DevComponents.DotNetBar.Design.TextMarkupUIEditor, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf", typeof(System.Drawing.Design.UITypeEditor))]
 | 
						||
        public string WatermarkText
 | 
						||
        {
 | 
						||
            get { return m_ComboBox.WatermarkText; }
 | 
						||
            set
 | 
						||
            {
 | 
						||
                m_ComboBox.WatermarkText = value;
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets the watermark hiding behaviour. Default value indicates that watermark is hidden when control receives input focus.
 | 
						||
        /// </summary>
 | 
						||
        [DefaultValue(eWatermarkBehavior.HideOnFocus), Category("Behavior"), Description("Indicates watermark hiding behaviour.")]
 | 
						||
        public eWatermarkBehavior WatermarkBehavior
 | 
						||
        {
 | 
						||
            get { return m_ComboBox.WatermarkBehavior; }
 | 
						||
            set { m_ComboBox.WatermarkBehavior = value; }
 | 
						||
        }
 | 
						||
 | 
						||
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), RefreshProperties(RefreshProperties.All), ParenthesizePropertyName(true)]
 | 
						||
        public ControlBindingsCollection DataBindings
 | 
						||
        {
 | 
						||
            get { return m_ComboBox.DataBindings; }
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// Gets or sets whether control is stand-alone control. Stand-alone flag affects the appearance of the control in Office 2007 style.
 | 
						||
        /// </summary>
 | 
						||
        [Browsable(true), DefaultValue(false), Category("Appearance"), Description("Indicates the appearance of the control.")]
 | 
						||
        public bool IsStandalone
 | 
						||
        {
 | 
						||
            get { return m_ComboBox.IsStandalone; }
 | 
						||
            set
 | 
						||
            {
 | 
						||
                m_ComboBox.IsStandalone = value;
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        public override string ToString()
 | 
						||
        {
 | 
						||
            return m_Text;
 | 
						||
        }
 | 
						||
	}
 | 
						||
}
 |