Fixed bug where using ResXResourceWriter filename ctor caused corrupted output
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / TabPage.cs
index 538fd4da6c89ebdbd852f7ba39cb7f3225ed0088..0aac0222bb907e99a1972656a4fa1e5fc739ea34 100644 (file)
@@ -27,34 +27,92 @@ 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")]
-       [Designer("System.Windows.Forms.Design.TabPageDesigner, " + Consts.AssemblySystem_Design)]
+       [Designer("System.Windows.Forms.Design.TabPageDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
        [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
                public TabPage ()
                {
                        Visible = true;
+
+                       SetStyle (ControlStyles.CacheText, true);
                }
 
                public TabPage (string text) : base ()
                {
-                       Text = text;
+                       base.Text = text;
                }
 
                #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)]
@@ -77,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 {
@@ -105,12 +182,13 @@ namespace System.Windows.Forms {
                        set { base.TabStop = value; }
                }
 
+               [EditorBrowsable (EditorBrowsableState.Always)]
                [Browsable(true)]
                [Localizable(true)]
                public override string Text {
                        get { return base.Text; }
                        set {
-                               if (value == Text)
+                               if (value == base.Text)
                                        return;
                                base.Text = value;
                                UpdateOwner ();
@@ -132,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
@@ -176,7 +254,7 @@ namespace System.Windows.Forms {
                private void UpdateOwner ()
                {
                        if (Owner != null) {
-                               Owner.Refresh ();
+                               Owner.Redraw ();
                        }
                }
 
@@ -184,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
@@ -205,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 {
@@ -222,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 {
@@ -236,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 {
@@ -245,22 +363,36 @@ 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 void Add (Control value)
+                       public override void Add (Control value)
                        {
                                base.Add (value);
                        }
                }
                #endregion      // Class TabPageControlCollection
+
        }