697 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			697 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Text;
 | |
| using System.Windows.Forms;
 | |
| using System.ComponentModel;
 | |
| using System.Drawing;
 | |
| using System.Security.Permissions;
 | |
| 
 | |
| namespace DevComponents.DotNetBar
 | |
| {
 | |
| #if FRAMEWORK20
 | |
|     [Designer("DevComponents.DotNetBar.Design.LabelXDesigner, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf")]
 | |
| #endif
 | |
|     [ToolboxBitmap(typeof(LabelX), "Controls.LabelX.ico"), ToolboxItem(true), System.Runtime.InteropServices.ComVisible(false)]
 | |
|     public class LabelX : BaseItemControl, ICommandSource
 | |
|     {
 | |
|         #region Private Variables
 | |
|         private LabelItem m_Label = null;
 | |
|         private bool m_UseMnemonic = true;
 | |
|         private Size m_PreferredSize = Size.Empty;
 | |
|         #endregion
 | |
| 
 | |
|         #region Events
 | |
|         /// <summary>
 | |
|         /// Occurs when text markup link is clicked. Markup links can be created using "a" tag, for example:
 | |
|         /// <a name="MyLink">Markup link</a>
 | |
|         /// </summary>
 | |
|         public event MarkupLinkClickEventHandler MarkupLinkClick;
 | |
|         #endregion
 | |
| 
 | |
|         #region Constructor, Dispose
 | |
|         public LabelX()
 | |
|         {
 | |
|             m_Label = new LabelItem();
 | |
|             m_Label.Style = eDotNetBarStyle.Office2007;
 | |
|             m_Label.MarkupLinkClick += new MarkupLinkClickEventHandler(LabelMarkupLinkClick);
 | |
|             this.FocusCuesEnabled = false;
 | |
|             this.HostItem = m_Label;
 | |
|             this.TabStop = false;
 | |
|             this.SetStyle(ControlStyles.Selectable, false);
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region Internal Implementation
 | |
|         /// <summary>
 | |
|         /// Specifies spacing between label image and text.
 | |
|         /// </summary>
 | |
|         [DefaultValue(2), Category("Appearance"), Description("Specifies spacing between label image and text.")]
 | |
|         public int ImageTextSpacing
 | |
|         {
 | |
|             get { return m_Label.ImageTextSpacing; }
 | |
|             set { m_Label.ImageTextSpacing = value; }
 | |
|         }
 | |
| 
 | |
|         [EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
 | |
|         protected string PlainText
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return m_Label.PlainText;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets whether text-markup support is enabled for controls Text property. Default value is true.
 | |
|         /// Set this property to false to display HTML or other markup in the control instead of it being parsed as text-markup.
 | |
|         /// </summary>
 | |
|         [DefaultValue(true), Category("Appearance"), Description("Indicates whether text-markup support is enabled for controls Text property.")]
 | |
|         public bool EnableMarkup
 | |
|         {
 | |
|             get { return m_Label.EnableMarkup; }
 | |
|             set
 | |
|             {
 | |
|                 m_Label.EnableMarkup = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets whether control displays focus cues when focused.
 | |
|         /// </summary>
 | |
|         [DefaultValue(false), Category("Behavior"), Description("Indicates whether control displays focus cues when focused.")]
 | |
|         public override bool FocusCuesEnabled
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return base.FocusCuesEnabled;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 base.FocusCuesEnabled = value;
 | |
|             }
 | |
|         }
 | |
|         protected override void OnHandleCreated(EventArgs e)
 | |
|         {
 | |
| #if FRAMEWORK20
 | |
|             if (this.AutoSize)
 | |
|                 this.AdjustSize();
 | |
| #endif
 | |
|             this.RecalcLayout();
 | |
|             base.OnHandleCreated(e);
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Recalculates the size of the internal item.
 | |
|         /// </summary>
 | |
|         protected override void RecalcSize()
 | |
|         {
 | |
|             m_Label.SuspendPaint = true;
 | |
|             m_Label.Width = Dpi.DescaleWidth(m_Label.Bounds.Width);
 | |
|             m_Label.Height = Dpi.DescaleHeight(m_Label.Bounds.Height);
 | |
|             m_Label.SuspendPaint = false;
 | |
|             base.RecalcSize();
 | |
|         }
 | |
| 
 | |
|         protected override void OnBackColorChanged(EventArgs e)
 | |
|         {
 | |
|             m_Label.BackColor = this.BackColor;
 | |
|             base.OnBackColorChanged(e);
 | |
|         }
 | |
| 
 | |
|         protected override void OnForeColorChanged(EventArgs e)
 | |
|         {
 | |
|             if (this.ForeColor == SystemColors.ControlText)
 | |
|                 m_Label.ForeColor = Color.Empty;
 | |
|             else
 | |
|                 m_Label.ForeColor = this.ForeColor;
 | |
|             base.OnForeColorChanged(e);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the border sides that are displayed. Default value specifies border on all 4 sides.
 | |
|         /// </summary>
 | |
|         [Browsable(false), Category("Appearance"), DefaultValue(LabelItem.DEFAULT_BORDERSIDE), Description("Specifies border sides that are displayed.")]
 | |
|         public eBorderSide BorderSide
 | |
|         {
 | |
|             get { return m_Label.BorderSide; }
 | |
|             set { m_Label.BorderSide = value; InvalidateAutoSize(); }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the type of the border drawn around the label.
 | |
|         /// </summary>
 | |
|         [Browsable(false), Category("Appearance"), DefaultValue(eBorderType.None), Description("Indicates the type of the border drawn around the label.")]
 | |
|         public eBorderType BorderType
 | |
|         {
 | |
|             get { return m_Label.BorderType; }
 | |
|             set { m_Label.BorderType = value; InvalidateAutoSize(); }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Specifies label image.
 | |
|         /// </summary>
 | |
|         [Browsable(true), Category("Appearance"), Description("The image that will be displayed on the face of the item."), DefaultValue(null)]
 | |
|         public System.Drawing.Image Image
 | |
|         {
 | |
|             get { return m_Label.Image; }
 | |
|             set { m_Label.Image = value; InvalidateAutoSize(); }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets/Sets the image position inside the label.
 | |
|         /// </summary>
 | |
|         [Browsable(true), Category("Appearance"), Description("The alignment of the image in relation to text displayed by this item."), DefaultValue(eImagePosition.Left)]
 | |
|         public eImagePosition ImagePosition
 | |
|         {
 | |
|             get { return m_Label.ImagePosition; }
 | |
|             set { m_Label.ImagePosition = value; InvalidateAutoSize(); }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the border line color when border is single line.
 | |
|         /// </summary>
 | |
|         [Browsable(true), Category("Appearance"), Description("Indicates border line color when border is single line.")]
 | |
|         public Color SingleLineColor
 | |
|         {
 | |
|             get { return m_Label.SingleLineColor; }
 | |
|             set { m_Label.SingleLineColor = value; }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets whether property should be serialized.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public bool ShouldSerializeSingleLineColor()
 | |
|         {
 | |
|             return m_Label.ShouldSerializeSingleLineColor();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Resets the SingleLineColor property to its default value.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public void ResetSingleLineColor()
 | |
|         {
 | |
|             m_Label.ResetSingleLineColor();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the text associated with this item.
 | |
|         /// </summary>
 | |
|         [Browsable(true), Editor("DevComponents.DotNetBar.Design.TextMarkupUIEditor, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf", typeof(System.Drawing.Design.UITypeEditor)), Category("Appearance"), Description("The text contained in the item.")]
 | |
|         public override string Text
 | |
|         {
 | |
|             get { return base.Text; }
 | |
|             set { base.Text = value; }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the horizontal text alignment.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(StringAlignment.Near), DevCoBrowsable(true), Category("Layout"), Description("Indicates text alignment.")]
 | |
|         public System.Drawing.StringAlignment TextAlignment
 | |
|         {
 | |
|             get { return m_Label.TextAlignment; }
 | |
|             set
 | |
|             {
 | |
|                 m_Label.TextAlignment = value;
 | |
|                 this.RecalcLayout();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the text vertical alignment.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(System.Drawing.StringAlignment.Center), DevCoBrowsable(true), Category("Layout"), Description("Indicates text line alignment.")]
 | |
|         public System.Drawing.StringAlignment TextLineAlignment
 | |
|         {
 | |
|             get { return m_Label.TextLineAlignment; }
 | |
|             set
 | |
|             {
 | |
|                 m_Label.TextLineAlignment = value;
 | |
|                 this.RecalcLayout();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets a value that determines whether text is displayed in multiple lines or one long line.
 | |
|         /// </summary>
 | |
|         [Browsable(true), Category("Style"), DefaultValue(false), Description("Gets or sets a value that determines whether text is displayed in multiple lines or one long line.")]
 | |
|         public bool WordWrap
 | |
|         {
 | |
|             get { return m_Label.WordWrap; }
 | |
|             set { m_Label.WordWrap = value; RecalcLayout(); }
 | |
|         }
 | |
| 
 | |
|         [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | |
|         public new bool TabStop
 | |
|         {
 | |
|             get { return base.TabStop; }
 | |
|             set { base.TabStop = value; }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the left padding in pixels.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(0), Category("Layout"), Description("Indicates left padding in pixels.")]
 | |
|         public int PaddingLeft
 | |
|         {
 | |
|             get { return m_Label.PaddingLeft; }
 | |
|             set { m_Label.PaddingLeft = value; InvalidateAutoSize(); }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the right padding in pixels.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(0), Category("Layout"), Description("Indicates right padding in pixels.")]
 | |
|         public int PaddingRight
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return m_Label.PaddingRight;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 m_Label.PaddingRight = value;
 | |
|                 InvalidateAutoSize();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the top padding in pixels.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(0), Category("Layout"), Description("Indicates top padding in pixels.")]
 | |
|         public int PaddingTop
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return m_Label.PaddingTop;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 m_Label.PaddingTop = value;
 | |
|                 InvalidateAutoSize();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the bottom padding in pixels.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(0), Category("Layout"), Description("Indicates bottom padding in pixels.")]
 | |
|         public int PaddingBottom
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return m_Label.PaddingBottom;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 m_Label.PaddingBottom = value;
 | |
|                 InvalidateAutoSize();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void LabelMarkupLinkClick(object sender, MarkupLinkClickEventArgs e)
 | |
|         {
 | |
|             OnMarkupLinkClick(e);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Invokes the MarkupLinkClick event.
 | |
|         /// </summary>
 | |
|         /// <param name="e">Provides additional data about event.</param>
 | |
|         protected virtual void OnMarkupLinkClick(MarkupLinkClickEventArgs e)
 | |
|         {
 | |
|             if (MarkupLinkClick != null)
 | |
|                 MarkupLinkClick(this, e);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets a value indicating whether the control interprets an ampersand character (&) in the control's Text property to be an access key prefix character.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(true), Category("Appearance"), Description("Indicates whether the control interprets an ampersand character (&) in the control's Text property to be an access key prefix character.")]
 | |
|         public bool UseMnemonic
 | |
|         {
 | |
|             get { return m_UseMnemonic; }
 | |
|             set
 | |
|             {
 | |
|                 m_UseMnemonic = value;
 | |
|                 InvalidateAutoSize();
 | |
|                 this.Invalidate();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         protected void InvalidateAutoSize()
 | |
|         {
 | |
|             m_PreferredSize = Size.Empty;
 | |
|         }
 | |
| 
 | |
|         protected override void OnPaint(PaintEventArgs e)
 | |
|         {
 | |
|             if (m_UseMnemonic)
 | |
|                 m_Label.ShowPrefix = true;
 | |
|             else
 | |
|                 m_Label.ShowPrefix = false;
 | |
| 
 | |
|             if (m_Label.NeedRecalcSize) m_Label.RecalcSize();
 | |
| 
 | |
|             base.OnPaint(e);
 | |
|         }
 | |
| 
 | |
|         private bool CanProcessMnemonic()
 | |
|         {
 | |
|             if (!this.Enabled || !this.Visible)
 | |
|                 return false;
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
|         [UIPermission(SecurityAction.LinkDemand, Window = UIPermissionWindow.AllWindows)]
 | |
|         protected override bool ProcessMnemonic(char charCode)
 | |
|         {
 | |
|             if ((!this.UseMnemonic || !Control.IsMnemonic(charCode, this.Text)) || !this.CanProcessMnemonic() || Control.ModifierKeys != Keys.Alt || m_Label.IsUsingTextMarkup)
 | |
|             {
 | |
|                 return false;
 | |
|             }
 | |
|             Control parent = this.Parent;
 | |
|             if (parent != null)
 | |
|             {
 | |
|                 if (parent.SelectNextControl(this, true, false, true, false) && !parent.ContainsFocus)
 | |
|                 {
 | |
|                     parent.Focus();
 | |
|                 }
 | |
|             }
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
| #if FRAMEWORK20
 | |
|         [Localizable(true), Browsable(false)]
 | |
|         public new System.Windows.Forms.Padding Padding
 | |
|         {
 | |
|             get { return base.Padding; }
 | |
|             set { base.Padding = value; }
 | |
|         }
 | |
| 
 | |
|         internal bool IsUsingTextMarkup
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 if (m_Label != null)
 | |
|                     return m_Label.TextMarkupBody != null;
 | |
|                 return false;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public override Size GetPreferredSize(Size proposedSize)
 | |
|         {
 | |
|             if (!m_PreferredSize.IsEmpty && (proposedSize.Width == m_PreferredSize.Width || proposedSize.Width == 0 || this.AutoSize)) return m_PreferredSize;
 | |
| 
 | |
|             if (!BarFunctions.IsHandleValid(this) || this.DesignMode && !this.AutoSize)
 | |
|                 return base.GetPreferredSize(proposedSize);
 | |
|             if (this.Text.Length == 0)
 | |
|                 return base.GetPreferredSize(proposedSize);
 | |
| 
 | |
|             int oldWidth = m_Label.Width, oldHeight = m_Label.Height;
 | |
|             m_Label.SuspendPaint = true;
 | |
|             m_Label.Width = 0;
 | |
|             m_Label.Height = 0;
 | |
|             if ((proposedSize.Width > 0 && proposedSize.Width < 500000 || this.MaximumSize.Width > 0) && m_Label.TextMarkupBody != null)
 | |
|             {
 | |
|                 if (TextOrientation == eOrientation.Horizontal)
 | |
|                     m_Label.RecalcSizeMarkup((this.MaximumSize.Width > 0 ? this.MaximumSize.Width : proposedSize.Width));
 | |
|                 else
 | |
|                     m_Label.RecalcSizeMarkup((this.MaximumSize.Height > 0 ? this.MaximumSize.Height : proposedSize.Height));
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 m_Label.RecalcSize();
 | |
|                 if (this.WordWrap && m_Label.WidthInternal > this.MaximumSize.Width && this.MaximumSize.Width > 0)
 | |
|                 {
 | |
|                     m_Label.Height = 0;
 | |
|                     m_Label.Width = Dpi.DescaleWidth(this.MaximumSize.Width);
 | |
|                     m_Label.RecalcSize();
 | |
|                 }
 | |
|                 else if (this.WordWrap && m_Label.WidthInternal > proposedSize.Width && proposedSize.Width > 0)
 | |
|                 {
 | |
|                     m_Label.Height = 0;
 | |
|                     m_Label.Width = Dpi.DescaleWidth(proposedSize.Width);
 | |
|                     m_Label.RecalcSize();
 | |
|                 }
 | |
|             }
 | |
|             Size s = m_Label.Size;
 | |
|             s.Height += 2;
 | |
|             if (this.TextOrientation == eOrientation.Vertical)
 | |
|             {
 | |
|                 s.Width += Dpi.Width2;
 | |
|             }
 | |
|             if (this.Font.Size > 13)
 | |
|                 s.Height += 2;
 | |
|             m_Label.Width = oldWidth;
 | |
|             m_Label.Height = oldHeight;
 | |
|             m_Label.SuspendPaint = false;
 | |
|             m_PreferredSize = s;
 | |
| 
 | |
|             return m_PreferredSize;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets a value indicating whether the control is automatically resized to display its entire contents. You can set MaximumSize.Width property to set the maximum width used by the control.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(false), EditorBrowsable(EditorBrowsableState.Always), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
 | |
|         public override bool AutoSize
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return base.AutoSize;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 if (this.AutoSize != value)
 | |
|                 {
 | |
|                     base.AutoSize = value;
 | |
|                     AdjustSize();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
 | |
|         {
 | |
|             if (this.AutoSize)
 | |
|             {
 | |
|                 Size preferredSize = Size.Empty;
 | |
|                 if (width != m_PreferredSize.Width && width > 0)
 | |
|                 {
 | |
|                     InvalidateAutoSize();
 | |
|                     preferredSize = this.GetPreferredSize(new Size(width, 0));
 | |
|                 }
 | |
|                 else
 | |
|                     preferredSize = this.PreferredSize;
 | |
|                 width = preferredSize.Width;
 | |
|                 height = preferredSize.Height;
 | |
|             }
 | |
|             base.SetBoundsCore(x, y, width, height, specified);
 | |
|         }
 | |
| 
 | |
|         private void AdjustSize()
 | |
|         {
 | |
|             if (this.AutoSize)
 | |
|             {
 | |
|                 this.Size = base.PreferredSize;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         protected override void OnFontChanged(EventArgs e)
 | |
|         {
 | |
|             InvalidateAutoSize();
 | |
|             base.OnFontChanged(e);
 | |
|         }
 | |
| 
 | |
|         protected override void OnTextChanged(EventArgs e)
 | |
|         {
 | |
|             InvalidateAutoSize();
 | |
|             base.OnTextChanged(e);
 | |
|             this.AdjustSize();
 | |
|         }
 | |
| #endif
 | |
|         /// <summary>
 | |
|         /// Gets or sets text-orientation. Default is horizontal.
 | |
|         /// </summary>
 | |
|         [DefaultValue(eOrientation.Horizontal), Category("Appearance"), Description("Indicates text-orientation")]
 | |
|         public eOrientation TextOrientation
 | |
|         {
 | |
|             get { return m_Label.TextOrientation; }
 | |
|             set
 | |
|             {
 | |
|                 m_Label.TextOrientation = value;
 | |
|                 InvalidateAutoSize();
 | |
|                 this.AdjustSize();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets how vertical text is rotated when TextOrientation = Vertical.
 | |
|         /// </summary>
 | |
|         [DefaultValue(true), Category("Appearance"), Description("Indicates how vertical text is rotated when TextOrientation = Vertical.")]
 | |
|         public bool VerticalTextTopUp
 | |
|         {
 | |
|             get { return m_Label.VerticalTextTopUp; }
 | |
|             set
 | |
|             {
 | |
|                 m_Label.VerticalTextTopUp = value;
 | |
|                 if (TextOrientation == eOrientation.Vertical)
 | |
|                 {
 | |
|                     this.Invalidate();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the underlying LabelItem
 | |
|         /// </summary>
 | |
|         internal LabelItem LabelItem
 | |
|         {
 | |
|             get { return (m_Label); }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Indicates the symbol displayed on label instead of the image. Setting the symbol overrides the image setting.
 | |
|         /// </summary>
 | |
|         [DefaultValue(""), Category("Appearance"), Description("Indicates the symbol displayed on face of the tile instead of the image. Setting the symbol overrides the image setting.")]
 | |
|         [Editor("DevComponents.DotNetBar.Design.SymbolTypeEditor, DevComponents.DotNetBar.Design, Version=14.1.0.37, Culture=neutral,  PublicKeyToken=90f470f34c89ccaf", typeof(System.Drawing.Design.UITypeEditor))]
 | |
|         public string Symbol
 | |
|         {
 | |
|             get { return m_Label.Symbol; }
 | |
|             set { m_Label.Symbol = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the symbol set used to represent the Symbol.
 | |
|         /// </summary>
 | |
|         [Browsable(false), DefaultValue(eSymbolSet.Awesome)]
 | |
|         public eSymbolSet SymbolSet
 | |
|         {
 | |
|             get { return m_Label.SymbolSet; }
 | |
|             set { m_Label.SymbolSet = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Indicates the size of the symbol in points.
 | |
|         /// </summary>
 | |
|         [DefaultValue(0f), Category("Appearance"), Description("Indicates the size of the symbol in points.")]
 | |
|         public float SymbolSize
 | |
|         {
 | |
|             get { return m_Label.SymbolSize; }
 | |
|             set { m_Label.SymbolSize = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets or sets the color of the symbol.
 | |
|         /// </summary>
 | |
|         [Category("Appearance"), Description("Indicates color of the symbol.")]
 | |
|         public Color SymbolColor
 | |
|         {
 | |
|             get { return m_Label.SymbolColor; }
 | |
|             set { m_Label.SymbolColor = value; }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Gets whether property should be serialized.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public bool ShouldSerializeSymbolColor()
 | |
|         {
 | |
|             return m_Label.ShouldSerializeSymbolColor();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// Resets property to its default value.
 | |
|         /// </summary>
 | |
|         [EditorBrowsable(EditorBrowsableState.Never)]
 | |
|         public void ResetSymbolColor()
 | |
|         {
 | |
|             m_Label.ResetSymbolColor();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Indicates whether label text is rendered using bold font unless the Font property is specifically set to different font.
 | |
|         /// </summary>
 | |
|         [DefaultValue(false), Category("Appearance"), Description("Indicates whether label text is rendered using bold font unless the Font property is specifically set to different font.")]
 | |
|         public bool FontBold
 | |
|         {
 | |
|             get { return m_Label.FontBold; }
 | |
|             set
 | |
|             {
 | |
|                 if (m_Label.FontBold != value)
 | |
|                 {
 | |
|                     m_Label.FontBold = value;
 | |
|                     this.Invalidate();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region ICommandSource Members
 | |
|         protected virtual void ExecuteCommand()
 | |
|         {
 | |
|             if (_Command == null) return;
 | |
|             CommandManager.ExecuteCommand(this);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the command assigned to the item. Default value is null.
 | |
|         /// <remarks>Note that if this property is set to null Enabled property will be set to false automatically to disable the item.</remarks>
 | |
|         /// </summary>
 | |
|         [DefaultValue(null), Category("Commands"), Description("Indicates the command assigned to the item.")]
 | |
|         public Command Command
 | |
|         {
 | |
|             get { return (Command)((ICommandSource)this).Command; }
 | |
|             set
 | |
|             {
 | |
|                 ((ICommandSource)this).Command = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private ICommand _Command = null;
 | |
|         //[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 | |
|         ICommand ICommandSource.Command
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return _Command;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 bool changed = false;
 | |
|                 if (_Command != value)
 | |
|                     changed = true;
 | |
| 
 | |
|                 if (_Command != null)
 | |
|                     CommandManager.UnRegisterCommandSource(this, _Command);
 | |
|                 _Command = value;
 | |
|                 if (value != null)
 | |
|                     CommandManager.RegisterCommand(this, value);
 | |
|                 if (changed)
 | |
|                     OnCommandChanged();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Called when Command property value changes.
 | |
|         /// </summary>
 | |
|         protected virtual void OnCommandChanged()
 | |
|         {
 | |
|         }
 | |
| 
 | |
|         private object _CommandParameter = null;
 | |
|         /// <summary>
 | |
|         /// Gets or sets user defined data value that can be passed to the command when it is executed.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(null), Category("Commands"), Description("Indicates user defined data value that can be passed to the command when it is executed."), System.ComponentModel.TypeConverter(typeof(System.ComponentModel.StringConverter)), System.ComponentModel.Localizable(true)]
 | |
|         public object CommandParameter
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return _CommandParameter;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 _CommandParameter = value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
|     }
 | |
| }
 |