Fixed bug where using ResXResourceWriter filename ctor caused corrupted output
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / TabPage.cs
index ded9913a1018e6bf229e947a3e880179862141b7..0aac0222bb907e99a1972656a4fa1e5fc739ea34 100644 (file)
@@ -27,8 +27,11 @@ using System;
 using System.ComponentModel;
 using System.ComponentModel.Design;
 using System.Drawing;
+using System.Runtime.InteropServices;
 
 namespace System.Windows.Forms {
+       [ComVisible (true)]
+       [ClassInterface (ClassInterfaceType.AutoDispatch)]
        [DefaultEvent("Click")]
        [DesignTimeVisible(false)]
        [DefaultProperty("Text")]
@@ -36,10 +39,12 @@ namespace System.Windows.Forms {
        [ToolboxItem(false)]
        public class TabPage : Panel {
                #region Fields
-               private int image_index = -1;
+               private int imageIndex = -1;
+               private string imageKey;
                private string tooltip_text = String.Empty;
                private Rectangle tab_bounds;
                private int row;
+               private bool use_visual_style_back_color;
                #endregion      // Fields
                
                #region Public Constructors
@@ -57,6 +62,57 @@ namespace System.Windows.Forms {
 
                #endregion      // Public Constructors
 
+               #region .NET 2.0 Public Instance Properties
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public override bool AutoSize {
+                       get { return base.AutoSize; }
+                       set { base.AutoSize = value; }
+               }
+
+               [Browsable (false)]
+               [Localizable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+               public override AutoSizeMode AutoSizeMode {
+                       get { return base.AutoSizeMode; }
+                       set { base.AutoSizeMode = value; }
+               }
+
+               [Browsable (false)]
+               [DefaultValue ("{Width=0, Height=0}")]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               public override Size MaximumSize {
+                       get { return base.MaximumSize; }
+                       set { base.MaximumSize = value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               public override Size MinimumSize {
+                       get { return base.MinimumSize; }
+                       set { base.MinimumSize = value; }
+               }
+
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               public new Size PreferredSize {
+                       get { return base.PreferredSize; }
+               }
+               
+               [DefaultValue (false)]
+               public bool UseVisualStyleBackColor {
+                       get { return use_visual_style_back_color; }
+                       set { use_visual_style_back_color = value; }
+               }
+
+               public override Color BackColor {
+                       get { return base.BackColor; }
+                       set { use_visual_style_back_color = false; base.BackColor = value; }
+               }
+               #endregion
+
                #region Public Instance Properties
                [Browsable(false)]
                [EditorBrowsable(EditorBrowsableState.Never)]
@@ -79,20 +135,39 @@ namespace System.Windows.Forms {
                        set { base.Enabled = value; }
                }
 
+               [RefreshProperties (RefreshProperties.Repaint)]
                [DefaultValue(-1)]
                [Editor("System.Windows.Forms.Design.ImageIndexEditor, " + Consts.AssemblySystem_Design, typeof(System.Drawing.Design.UITypeEditor))]
                [Localizable(true)]
                [TypeConverter(typeof(ImageIndexConverter))]
                public int ImageIndex {
-                       get { return image_index; }
+                       get { return imageIndex; }
                        set {
-                               if (image_index == value)
+                               if (imageIndex == value)
                                        return;
-                               image_index = value;
+                               imageIndex = value;
                                UpdateOwner ();
                        }
                }
 
+               [Localizable (true)]
+               [RefreshProperties (RefreshProperties.Repaint)]
+               [DefaultValue ("")]
+               [Editor ("System.Windows.Forms.Design.ImageIndexEditor, " + Consts.AssemblySystem_Design,
+                        "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
+               [TypeConverter (typeof (ImageKeyConverter))]
+               public string ImageKey
+               {
+                       get { return imageKey; }
+                       set {
+                               imageKey = value;
+                               TabControl control = this.Parent as TabControl;
+                               if (control != null) {
+                                       ImageIndex = control.ImageList.Images.IndexOfKey (imageKey);
+                               }
+                       }
+               }
+
                [Browsable(false)]
                [EditorBrowsable(EditorBrowsableState.Never)]
                public new int TabIndex {
@@ -107,6 +182,7 @@ namespace System.Windows.Forms {
                        set { base.TabStop = value; }
                }
 
+               [EditorBrowsable (EditorBrowsableState.Always)]
                [Browsable(true)]
                [Localizable(true)]
                public override string Text {
@@ -134,7 +210,7 @@ namespace System.Windows.Forms {
                [EditorBrowsable(EditorBrowsableState.Never)]
                public new bool Visible {
                        get { return base.Visible; }
-                       set { base.Visible = value; }
+                       set { /* according to MS docs we can ignore this */ }
                }
 
                #endregion      // Public Instance Properties
@@ -186,6 +262,11 @@ namespace System.Windows.Forms {
                        get { return base.Parent as TabControl; }
                }
 
+               internal void SetVisible (bool value)
+               {
+                       base.Visible = value;
+               }
+
                #endregion      // Internal & Private Methods and Properties
 
                #region Protected Instance Methods
@@ -207,9 +288,30 @@ namespace System.Windows.Forms {
                        }
                }
 
+               protected override void OnEnter (EventArgs e)
+               {
+                       base.OnEnter (e);
+               }
+
+               protected override void OnLeave (EventArgs e)
+               {
+                       base.OnLeave (e);
+               }
+
+               protected override void OnPaintBackground (PaintEventArgs e)
+               {
+                       base.OnPaintBackground (e);
+               }
                #endregion      // Protected Instance Methods
 
                #region Events
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               public new event EventHandler AutoSizeChanged {
+                       add { base.AutoSizeChanged += value; }
+                       remove { base.AutoSizeChanged -= value; }
+               }
+
                [Browsable(false)]
                [EditorBrowsable(EditorBrowsableState.Never)]
                public new event EventHandler DockChanged {
@@ -224,6 +326,13 @@ namespace System.Windows.Forms {
                        remove { base.EnabledChanged -= value; }
                }
 
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               public new event EventHandler LocationChanged {
+                       add { base.LocationChanged += value; }
+                       remove { base.LocationChanged -= value; }
+               }
+
                [Browsable(false)]
                [EditorBrowsable(EditorBrowsableState.Never)]
                public new event EventHandler TabIndexChanged {
@@ -238,6 +347,13 @@ namespace System.Windows.Forms {
                        remove { base.TabStopChanged -= value; }
                }
 
+               [Browsable (true)]
+               [EditorBrowsable (EditorBrowsableState.Always)]
+               public new event EventHandler TextChanged {
+                       add { base.TextChanged += value; }
+                       remove { base.TextChanged -= value; }
+               }
+
                [Browsable(false)]
                [EditorBrowsable(EditorBrowsableState.Never)]
                public new event EventHandler VisibleChanged {
@@ -247,14 +363,27 @@ namespace System.Windows.Forms {
 
                #endregion      // Events
 
+               [Browsable (false)]
+               [EditorBrowsable (EditorBrowsableState.Never)]
+               public new Point Location {
+                       get {
+                               return base.Location;
+                       }
+
+                       set {
+                               base.Location = value;
+                       }
+               }
+
                #region Class TabPageControlCollection
+               [ComVisible (false)]
                public class TabPageControlCollection : ControlCollection {
 
-                       private TabPage owner;
+                       //private TabPage owner;
 
                        public TabPageControlCollection (TabPage owner) : base (owner)
                        {
-                               this.owner = owner;
+                               //this.owner = owner;
                        }
 
                        public override void Add (Control value)
@@ -263,6 +392,7 @@ namespace System.Windows.Forms {
                        }
                }
                #endregion      // Class TabPageControlCollection
+
        }