2006-12-31 Chris Toshok <toshok@ximian.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ToolStripSeparator.cs
index 1d4d77b0e4972832cc832291ca2efe8ea3172558..ebd183099868db63bd7ea8b1d0212b04661a190a 100644 (file)
 
 using System.Drawing;
 using System.ComponentModel;
+using System.Windows.Forms.Design;
 
 namespace System.Windows.Forms
 {
+       [ToolStripItemDesignerAvailability (ToolStripItemDesignerAvailability.ToolStrip | ToolStripItemDesignerAvailability.ContextMenuStrip)]
        public class ToolStripSeparator : ToolStripItem
        {
-               private bool auto_tool_tip;
-               private ToolStripItemDisplayStyle display_style;
-               private bool double_click_enabled;
-               private ContentAlignment image_align;
-               private int image_index;
-               private ToolStripItemImageScaling image_scaling;
-               private ContentAlignment text_align;
-               private TextImageRelation text_image_relation;
-               private string tool_tip_text;
-
-               public ToolStripSeparator ()
+               public ToolStripSeparator () : base ()
                {
-                       this.ForeColor = SystemColors.ControlDark;
                }
 
                #region Public Properties
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public bool AutoToolTip {
-                       get { return this.auto_tool_tip; }
-                       set { this.auto_tool_tip = value; }
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new bool AutoToolTip {
+                       get { return base.AutoToolTip; }
+                       set { base.AutoToolTip = value; }
                }
 
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public override Image BackgroundImage {
+                       get { return base.BackgroundImage; }
+                       set { base.BackgroundImage = value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public override ImageLayout BackgroundImageLayout {
+                       get { return base.BackgroundImageLayout; }
+                       set { base.BackgroundImageLayout = value; }
+               }
+               
                public override bool CanSelect { get { return false; } }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public ToolStripItemDisplayStyle DisplayStyle {
-                       get { return this.display_style; }
-                       set { this.display_style = value; }
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new ToolStripItemDisplayStyle DisplayStyle {
+                       get { return base.DisplayStyle; }
+                       set { base.DisplayStyle = value; }
                }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public bool DoubleClickEnabled {
-                       get { return this.double_click_enabled; }
-                       set { this.double_click_enabled = value; }
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new bool DoubleClickEnabled {
+                       get { return base.DoubleClickEnabled; }
+                       set { base.DoubleClickEnabled = value; }
                }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                public override bool Enabled {
                        get { return base.Enabled; }
                        set { base.Enabled = value; }
@@ -82,6 +93,7 @@ namespace System.Windows.Forms
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                public override Font Font {
                        get { return base.Font; }
                        set { base.Font = value; }
@@ -89,6 +101,7 @@ namespace System.Windows.Forms
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                public override Image Image {
                        get { return base.Image; }
                        set { base.Image = value; }
@@ -96,37 +109,39 @@ namespace System.Windows.Forms
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public ContentAlignment ImageAlign {
-                       get { return this.image_align; }
-                       set {
-                               if (!Enum.IsDefined (typeof (ContentAlignment), value))
-                                       throw new InvalidEnumArgumentException (string.Format ("Enum argument value '{0}' is not valid for ContentAlignment", value));
-
-                               this.image_align = value;
-                       }
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new ContentAlignment ImageAlign {
+                       get { return base.ImageAlign; }
+                       set { base.ImageAlign = value; }
                }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public int ImageIndex {
-                       get { return this.image_index; }
-                       set {
-                               if (value < -1)
-                                       throw new ArgumentException ("ImageIndex cannot be less than -1");
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new int ImageIndex {
+                       get { return base.ImageIndex; }
+                       set { base.ImageIndex = value; }
+               }
 
-                               this.image_index = value;
-                       }
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new ToolStripItemImageScaling ImageScaling {
+                       get { return base.ImageScaling; }
+                       set { base.ImageScaling = value; }
                }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public ToolStripItemImageScaling ImageScaling {
-                       get { return this.image_scaling; }
-                       set { this.image_scaling = value; }
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new Color ImageTransparentColor {
+                       get { return base.ImageTransparentColor; }
+                       set { base.ImageTransparentColor = value; }
                }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                public override string Text {
                        get { return base.Text; }
                        set { base.Text = value; }
@@ -134,28 +149,26 @@ namespace System.Windows.Forms
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public ContentAlignment TextAlign {
-                       get { return this.text_align; }
-                       set {
-                               if (!Enum.IsDefined (typeof (ContentAlignment), value))
-                                       throw new InvalidEnumArgumentException (string.Format ("Enum argument value '{0}' is not valid for ContentAlignment", value));
-
-                               this.text_align = value;
-                       }
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new ContentAlignment TextAlign {
+                       get { return base.TextAlign; }
+                       set { base.TextAlign = value; }
                }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public TextImageRelation TextImageRelation {
-                       get { return this.text_image_relation; }
-                       set { this.text_image_relation = value; }
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new TextImageRelation TextImageRelation {
+                       get { return base.TextImageRelation; }
+                       set { base.TextImageRelation = value; }
                }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public string ToolTipText {
-                       get { return this.tool_tip_text; }
-                       set { this.tool_tip_text = value; }
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new string ToolTipText {
+                       get { return base.ToolTipText; }
+                       set { base.ToolTipText = value; }
                }
                #endregion
 
@@ -172,7 +185,18 @@ namespace System.Windows.Forms
                #endregion
 
                #region Protected Methods
-               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Advanced)]
+               protected override AccessibleObject CreateAccessibilityInstance ()
+               {
+                       ToolStripItemAccessibleObject ao = new ToolStripItemAccessibleObject (this);
+
+                       ao.default_action = "Press";
+                       ao.role = AccessibleRole.Separator;
+                       ao.state = AccessibleStates.None;
+
+                       return ao;
+               }
+               
                [EditorBrowsable (EditorBrowsableState.Never)]
                protected override void OnFontChanged (EventArgs e)
                {
@@ -184,7 +208,12 @@ namespace System.Windows.Forms
                        base.OnPaint (e);
                        
                        if (this.Owner != null)
-                               this.Owner.Renderer.DrawSeparator(new ToolStripSeparatorRenderEventArgs(e.Graphics, this, this.Owner.Orientation == Orientation.Horizontal ? true : false));
+                       {
+                               if (this.IsOnDropDown)
+                                       this.Owner.Renderer.DrawSeparator (new ToolStripSeparatorRenderEventArgs (e.Graphics, this, this.Owner.Orientation == Orientation.Horizontal ? false : true));
+                               else
+                                       this.Owner.Renderer.DrawSeparator (new ToolStripSeparatorRenderEventArgs (e.Graphics, this, this.Owner.Orientation == Orientation.Horizontal ? true : false));
+                       }
                }
 
                protected internal override void SetBounds (Rectangle bounds)
@@ -196,16 +225,25 @@ namespace System.Windows.Forms
                #region Public Events
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public event EventHandler DisplayStyleChanged;
+               public new event EventHandler DisplayStyleChanged {
+                       add { base.DisplayStyleChanged += value; }
+                       remove { base.DisplayStyleChanged -= value; }
+               }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public event EventHandler EnabledChanged;
+               public new event EventHandler EnabledChanged {
+                       add { base.EnabledChanged += value; }
+                       remove { base.EnabledChanged -= value; }
+               }
 
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
-               public event EventHandler TextChanged;
+               public new event EventHandler TextChanged {
+                       add { base.TextChanged += value; }
+                       remove { base.TextChanged -= value; }
+               }
                #endregion
        }
 }
-#endif
\ No newline at end of file
+#endif