2006-12-31 Chris Toshok <toshok@ximian.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ToolStripSeparator.cs
index 1e7f32b5d2e920cf7c9c88764d9ddbe73f240222..ebd183099868db63bd7ea8b1d0212b04661a190a 100644 (file)
-//\r
-// ToolStripSeparator.cs\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-// Copyright (c) 2006 Jonathan Pobst\r
-//\r
-// Authors:\r
-//     Jonathan Pobst (monkey@jpobst.com)\r
-//\r
-#if NET_2_0\r
-\r
-using System.Drawing;\r
-using System.ComponentModel;\r
-\r
-namespace System.Windows.Forms\r
-{\r
-       public class ToolStripSeparator : ToolStripItem\r
-       {\r
-               private bool auto_tool_tip;\r
-               private ToolStripItemDisplayStyle display_style;\r
-               private bool double_click_enabled;\r
-               private ContentAlignment image_align;\r
-               private int image_index;\r
-               private ToolStripItemImageScaling image_scaling;\r
-               private ContentAlignment text_align;\r
-               private TextImageRelation text_image_relation;\r
-               private string tool_tip_text;\r
-\r
-               public ToolStripSeparator ()\r
-               {\r
-                       this.ForeColor = SystemColors.ControlDark;\r
-               }\r
-\r
-               #region Public Properties\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public bool AutoToolTip {\r
-                       get { return this.auto_tool_tip; }\r
-                       set { this.auto_tool_tip = value; }\r
-               }\r
-\r
-               public override bool CanSelect { get { return false; } }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public ToolStripItemDisplayStyle DisplayStyle {\r
-                       get { return this.display_style; }\r
-                       set { this.display_style = value; }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public bool DoubleClickEnabled {\r
-                       get { return this.double_click_enabled; }\r
-                       set { this.double_click_enabled = value; }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public override bool Enabled {\r
-                       get { return base.Enabled; }\r
-                       set { base.Enabled = value; }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public override Font Font {\r
-                       get { return base.Font; }\r
-                       set { base.Font = value; }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public override Image Image {\r
-                       get { return base.Image; }\r
-                       set { base.Image = value; }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public ContentAlignment ImageAlign {\r
-                       get { return this.image_align; }\r
-                       set {\r
-                               if (!Enum.IsDefined (typeof (ContentAlignment), value))\r
-                                       throw new InvalidEnumArgumentException (string.Format ("Enum argument value '{0}' is not valid for ContentAlignment", value));\r
-\r
-                               this.image_align = value;\r
-                       }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public int ImageIndex {\r
-                       get { return this.image_index; }\r
-                       set {\r
-                               if (value < -1)\r
-                                       throw new ArgumentException ("ImageIndex cannot be less than -1");\r
-\r
-                               this.image_index = value;\r
-                       }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public ToolStripItemImageScaling ImageScaling {\r
-                       get { return this.image_scaling; }\r
-                       set { this.image_scaling = value; }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public override string Text {\r
-                       get { return base.Text; }\r
-                       set { base.Text = value; }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public ContentAlignment TextAlign {\r
-                       get { return this.text_align; }\r
-                       set {\r
-                               if (!Enum.IsDefined (typeof (ContentAlignment), value))\r
-                                       throw new InvalidEnumArgumentException (string.Format ("Enum argument value '{0}' is not valid for ContentAlignment", value));\r
-\r
-                               this.text_align = value;\r
-                       }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public TextImageRelation TextImageRelation {\r
-                       get { return this.text_image_relation; }\r
-                       set { this.text_image_relation = value; }\r
-               }\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public string ToolTipText {\r
-                       get { return this.tool_tip_text; }\r
-                       set { this.tool_tip_text = value; }\r
-               }\r
-               #endregion\r
-\r
-               #region Protected Properties\r
-               protected internal override Padding DefaultMargin { get { return new Padding(); } }\r
-               protected override Size DefaultSize { get { return new Size(6, 6); } }\r
-               #endregion\r
-\r
-               #region Public Methods\r
-               public override Size GetPreferredSize (Size constrainingSize)\r
-               {\r
-                       return new Size(6, 6);\r
-               }\r
-               #endregion\r
-\r
-               #region Protected Methods\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               protected override void OnFontChanged (EventArgs e)\r
-               {\r
-                       base.OnFontChanged (e);\r
-               }\r
-               \r
-               protected override void OnPaint (PaintEventArgs e)\r
-               {\r
-                       base.OnPaint (e);\r
-                       \r
-                       if (this.Owner != null)\r
-                               this.Owner.Renderer.DrawSeparator(new ToolStripSeparatorRenderEventArgs(e.Graphics, this, this.Owner.Orientation == Orientation.Horizontal ? true : false));\r
-               }\r
-\r
-               protected internal override void SetBounds (Rectangle bounds)\r
-               {\r
-                       base.SetBounds (bounds);\r
-               }\r
-               #endregion\r
-\r
-               #region Public Events\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public event EventHandler DisplayStyleChanged;\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public event EventHandler EnabledChanged;\r
-\r
-               [Browsable (false)]\r
-               [EditorBrowsable (EditorBrowsableState.Never)]\r
-               public event EventHandler TextChanged;\r
-               #endregion\r
-       }\r
-}\r
-#endif
\ No newline at end of file
+//
+// ToolStripSeparator.cs
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2006 Jonathan Pobst
+//
+// Authors:
+//     Jonathan Pobst (monkey@jpobst.com)
+//
+#if NET_2_0
+
+using System.Drawing;
+using System.ComponentModel;
+using System.Windows.Forms.Design;
+
+namespace System.Windows.Forms
+{
+       [ToolStripItemDesignerAvailability (ToolStripItemDesignerAvailability.ToolStrip | ToolStripItemDesignerAvailability.ContextMenuStrip)]
+       public class ToolStripSeparator : ToolStripItem
+       {
+               public ToolStripSeparator () : base ()
+               {
+               }
+
+               #region Public Properties
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [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)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new ToolStripItemDisplayStyle DisplayStyle {
+                       get { return base.DisplayStyle; }
+                       set { base.DisplayStyle = value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [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; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public override Font Font {
+                       get { return base.Font; }
+                       set { base.Font = value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public override Image Image {
+                       get { return base.Image; }
+                       set { base.Image = value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new ContentAlignment ImageAlign {
+                       get { return base.ImageAlign; }
+                       set { base.ImageAlign = value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new int ImageIndex {
+                       get { return base.ImageIndex; }
+                       set { base.ImageIndex = 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)]
+               [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; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new ContentAlignment TextAlign {
+                       get { return base.TextAlign; }
+                       set { base.TextAlign = value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new TextImageRelation TextImageRelation {
+                       get { return base.TextImageRelation; }
+                       set { base.TextImageRelation = value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public new string ToolTipText {
+                       get { return base.ToolTipText; }
+                       set { base.ToolTipText = value; }
+               }
+               #endregion
+
+               #region Protected Properties
+               protected internal override Padding DefaultMargin { get { return new Padding(); } }
+               protected override Size DefaultSize { get { return new Size(6, 6); } }
+               #endregion
+
+               #region Public Methods
+               public override Size GetPreferredSize (Size constrainingSize)
+               {
+                       return new Size(6, 6);
+               }
+               #endregion
+
+               #region Protected Methods
+               [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)
+               {
+                       base.OnFontChanged (e);
+               }
+               
+               protected override void OnPaint (PaintEventArgs e)
+               {
+                       base.OnPaint (e);
+                       
+                       if (this.Owner != null)
+                       {
+                               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)
+               {
+                       base.SetBounds (bounds);
+               }
+               #endregion
+
+               #region Public Events
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               public new event EventHandler DisplayStyleChanged {
+                       add { base.DisplayStyleChanged += value; }
+                       remove { base.DisplayStyleChanged -= value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               public new event EventHandler EnabledChanged {
+                       add { base.EnabledChanged += value; }
+                       remove { base.EnabledChanged -= value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               public new event EventHandler TextChanged {
+                       add { base.TextChanged += value; }
+                       remove { base.TextChanged -= value; }
+               }
+               #endregion
+       }
+}
+#endif