Bladeren bron

- Added missing attributes
- Implemented TextBoxBase AppendText() and Select() methods
- Implemented CheckBox.CheckBoxAccessibleObject class

svn path=/trunk/mcs/; revision=40320

Peter Dennis Bartok 21 jaren geleden
bovenliggende
commit
13eaedd0f0

+ 16 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog

@@ -1,3 +1,19 @@
+2005-02-03  Peter Bartok  <[email protected]>
+
+	* Menu.cs: Added missing attributes
+	* GroupBox.cs: Added missing attributes
+	* Label.cs: Added missing attributes
+	* CheckBox.cs: Implemented CheckBoxAccessibleObject class
+	* ColorDialog.cs:
+	  - Added Instance and Options properties
+	  - Added missing attributes
+	* Cursor.cs: Made Serializable
+	* NotifyIcon: Added missing attributes
+	* MenuItem.cs: Added missing attributes
+	* TextBoxBase.cs: Implemented AppendText() and Select() methods
+	* Panel.cs: Added Missing attributes
+	* MonthCalendar.cs: Fixed CreateParams
+
 2005-02-08  Jordi Mas i Hernandez <[email protected]>
 2005-02-08  Jordi Mas i Hernandez <[email protected]>
 	
 	
 	* LinkLabel.cs:
 	* LinkLabel.cs:

+ 51 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/CheckBox.cs

@@ -29,6 +29,7 @@
 using System;
 using System;
 using System.ComponentModel;
 using System.ComponentModel;
 using System.Drawing;
 using System.Drawing;
+using System.Runtime.InteropServices;
 
 
 namespace System.Windows.Forms {
 namespace System.Windows.Forms {
 	[DefaultProperty("Checked")]
 	[DefaultProperty("Checked")]
@@ -42,6 +43,56 @@ namespace System.Windows.Forms {
 		internal bool			three_state;
 		internal bool			three_state;
 		#endregion	// Local Variables
 		#endregion	// Local Variables
 
 
+		#region CheckBoxAccessibleObject Subclass
+		[ComVisible(true)]
+			public class CheckBoxAccessibleObject : ControlAccessibleObject {
+			#region CheckBoxAccessibleObject Local Variables
+			private CheckBox owner;
+			#endregion	// CheckBoxAccessibleObject Local Variables
+
+			#region CheckBoxAccessibleObject Constructors
+			public CheckBoxAccessibleObject(Control owner) : base(owner) {
+				this.owner = (CheckBox)owner;
+			}
+			#endregion	// CheckBoxAccessibleObject Constructors
+
+			#region CheckBoxAccessibleObject Properties
+			public override string DefaultAction {
+				get {
+					return "Select";
+				}
+			}
+
+			public override AccessibleRole Role {
+				get {
+					return AccessibleRole.CheckButton;
+				}
+			}
+
+			public override AccessibleStates State {
+				get {
+					AccessibleStates	retval;
+
+					retval = AccessibleStates.Default;
+
+					if (owner.check_state == CheckState.Checked) {
+						retval |= AccessibleStates.Checked;
+					}
+
+					if (owner.Focused) {
+						retval |= AccessibleStates.Focused;
+					}
+
+					if (owner.CanFocus) {
+						retval |= AccessibleStates.Focusable;
+					}
+
+					return retval;
+				}
+			}
+			#endregion	// CheckBoxAccessibleObject Properties
+		}
+		#endregion	// CheckBoxAccessibleObject Sub-class
 
 
 		#region Public Constructors
 		#region Public Constructors
 		public CheckBox() {
 		public CheckBox() {

+ 30 - 3
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ColorDialog.cs

@@ -17,7 +17,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 //
-// Copyright (c) 2004 Novell, Inc. (http://www.novell.com)
+// Copyright (c) 2004-2005 Novell, Inc. (http://www.novell.com)
 //
 //
 // Authors:
 // Authors:
 //	Alexander Olk	[email protected]
 //	Alexander Olk	[email protected]
@@ -25,11 +25,14 @@
 
 
 // NOT COMPLETE
 // NOT COMPLETE
 
 
+using System.ComponentModel;
+using System.ComponentModel.Design;
 using System.Drawing;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Drawing.Drawing2D;
 
 
 namespace System.Windows.Forms
 namespace System.Windows.Forms
 {
 {
+	[DefaultProperty("Color")]
 	public class ColorDialog : CommonDialog
 	public class ColorDialog : CommonDialog
 	{
 	{
 		#region Local Variables
 		#region Local Variables
@@ -72,6 +75,7 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 		
 		
+		[DefaultValue(true)]
 		public virtual bool AllowFullOpen
 		public virtual bool AllowFullOpen
 		{
 		{
 			get
 			get
@@ -85,8 +89,10 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 		
 		
-		//FIXME: Currently AnyColor internally is always true
+		// Currently AnyColor internally is always true
 		// Does really anybody use 256 or less colors ???
 		// Does really anybody use 256 or less colors ???
+		// Naw, cairo only supports 24bit anyway - pdb
+		[DefaultValue(false)]
 		public virtual bool AnyColor
 		public virtual bool AnyColor
 		{
 		{
 			get
 			get
@@ -100,6 +106,7 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 		
 		
+		[DefaultValue(false)]
 		public virtual bool FullOpen
 		public virtual bool FullOpen
 		{
 		{
 			get
 			get
@@ -112,7 +119,9 @@ namespace System.Windows.Forms
 				fullOpen = value;
 				fullOpen = value;
 			}
 			}
 		}
 		}
-		
+
+		[Browsable(false)]
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
 		public int[] CustomColors
 		public int[] CustomColors
 		{
 		{
 			get
 			get
@@ -126,6 +135,7 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 		
 		
+		[DefaultValue(false)]
 		public virtual bool ShowHelp
 		public virtual bool ShowHelp
 		{
 		{
 			get
 			get
@@ -139,6 +149,7 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 		
 		
+		[DefaultValue(false)]
 		public virtual bool SolidColorOnly
 		public virtual bool SolidColorOnly
 		{
 		{
 			get
 			get
@@ -170,6 +181,22 @@ namespace System.Windows.Forms
 			return base.ToString( ) + ", Color: " + Color.ToString( );
 			return base.ToString( ) + ", Color: " + Color.ToString( );
 		}
 		}
 		#endregion	// Public Instance Methods
 		#endregion	// Public Instance Methods
+
+		#region Protected Instance Properties
+		protected virtual IntPtr Instance {
+			get {
+				// MS Internal
+				return (IntPtr)GetHashCode();
+			}
+		}
+
+		protected virtual int Options {
+			get {
+				// MS Internal
+				return 0;
+			}
+		}
+		#endregion	// Protected Instance Properties
 		
 		
 		#region Protected Instance Methods
 		#region Protected Instance Methods
 		[MonoTODO]
 		[MonoTODO]

+ 1 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/Cursor.cs

@@ -31,6 +31,7 @@ using System.Drawing;
 using System.Runtime.Serialization;
 using System.Runtime.Serialization;
 
 
 namespace System.Windows.Forms {
 namespace System.Windows.Forms {
+	[Serializable]
 	public sealed class Cursor : IDisposable, ISerializable {
 	public sealed class Cursor : IDisposable, ISerializable {
 		#region Local Variables
 		#region Local Variables
 		internal IntPtr		handle;
 		internal IntPtr		handle;

+ 43 - 1
mcs/class/Managed.Windows.Forms/System.Windows.Forms/GroupBox.cs

@@ -25,7 +25,7 @@
 //
 //
 // TODO:
 // TODO:
 //
 //
-// Copyright (C) Novell Inc., 2004
+// Copyright (C) Novell Inc., 2004-2005
 //
 //
 //
 //
 
 
@@ -33,25 +33,61 @@
 
 
 using System.Drawing;
 using System.Drawing;
 using System.ComponentModel;
 using System.ComponentModel;
+using System.ComponentModel.Design;
 
 
 namespace System.Windows.Forms
 namespace System.Windows.Forms
 {
 {
+	[DefaultProperty("Text")]
+	[DefaultEvent("Enter")]
+	[Designer ("System.Windows.Forms.Design.GroupBoxDesigner, " + Consts.AssemblySystem_Design, typeof (IDesigner))]
 	public class GroupBox : Control
 	public class GroupBox : Control
 	{
 	{
 		private FlatStyle flat_style;
 		private FlatStyle flat_style;
 		private Rectangle display_rectangle = new Rectangle ();
 		private Rectangle display_rectangle = new Rectangle ();
 
 
 		#region Events
 		#region Events
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event EventHandler Click;
 		public new event EventHandler Click;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event EventHandler DoubleClick;
 		public new event EventHandler DoubleClick;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event KeyEventHandler KeyDown;
 		public new event KeyEventHandler KeyDown;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event KeyPressEventHandler KeyPress;
 		public new event KeyPressEventHandler KeyPress;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event KeyEventHandler KeyUp;
 		public new event KeyEventHandler KeyUp;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event MouseEventHandler MouseDown;
 		public new event MouseEventHandler MouseDown;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event EventHandler MouseEnter;
 		public new event EventHandler MouseEnter;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event EventHandler MouseLeave;
 		public new event EventHandler MouseLeave;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event MouseEventHandler MouseMove;
 		public new event MouseEventHandler MouseMove;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event MouseEventHandler MouseUp;
 		public new event MouseEventHandler MouseUp;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new event EventHandler TabStopChanged;
 		public new event EventHandler TabStopChanged;
 		#endregion Events
 		#endregion Events
 
 
@@ -65,6 +101,8 @@ namespace System.Windows.Forms
 		}
 		}
 
 
 		#region Public Properties
 		#region Public Properties
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public override bool AllowDrop {
 		public override bool AllowDrop {
 			get { return base.AllowDrop;  }
 			get { return base.AllowDrop;  }
 			set { base.AllowDrop = value; }
 			set { base.AllowDrop = value; }
@@ -88,6 +126,7 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 
 
+		[DefaultValue(FlatStyle.Standard)]
 		public FlatStyle FlatStyle {
 		public FlatStyle FlatStyle {
 			get { return flat_style; }
 			get { return flat_style; }
 			set {
 			set {
@@ -102,11 +141,14 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 
 
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
 		public new bool TabStop {
 		public new bool TabStop {
 			get { return base.TabStop;  }
 			get { return base.TabStop;  }
 			set { base.TabStop = value; }
 			set { base.TabStop = value; }
 		}
 		}
 
 
+		[Localizable(true)]
 		public override string Text {
 		public override string Text {
 			get { return base.Text; }
 			get { return base.Text; }
 			set {
 			set {

+ 66 - 13
mcs/class/Managed.Windows.Forms/System.Windows.Forms/Label.cs

@@ -27,14 +27,18 @@
 
 
 // INCOMPLETE
 // INCOMPLETE
 
 
+using System.ComponentModel;
+using System.ComponentModel.Design;
 using System.Drawing;
 using System.Drawing;
 using System.Drawing.Text;
 using System.Drawing.Text;
 using System.Drawing.Imaging;
 using System.Drawing.Imaging;
-using System.ComponentModel;
+using System.Runtime.InteropServices;
 
 
 namespace System.Windows.Forms
 namespace System.Windows.Forms
 {
 {
-    	public class Label : Control
+	[DefaultProperty("Text")]
+	[Designer ("System.Windows.Forms.Design.LabelDesigner, " + Consts.AssemblySystem_Design, typeof (IDesigner))]
+	public class Label : Control
     	{
     	{
     		private BorderStyle border_style;
     		private BorderStyle border_style;
     		private bool autosize;
     		private bool autosize;
@@ -53,13 +57,32 @@ namespace System.Windows.Forms
 
 
     		#region Events
     		#region Events
     		public event EventHandler AutoSizeChanged;
     		public event EventHandler AutoSizeChanged;
-    		public new event EventHandler BackgroundImageChanged;
-    		public new event EventHandler ImeModeChanged;    		
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
+		public new event EventHandler BackgroundImageChanged;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
+		public new event EventHandler ImeModeChanged;    		
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
 		public new event KeyEventHandler KeyDown;		
 		public new event KeyEventHandler KeyDown;		
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
 		public new event KeyPressEventHandler KeyPress;		
 		public new event KeyPressEventHandler KeyPress;		
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
 		public new event KeyEventHandler KeyUp;
 		public new event KeyEventHandler KeyUp;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
 		public new event EventHandler TabStopChanged;
 		public new event EventHandler TabStopChanged;
-    		public event EventHandler TextAlignChanged;
+
+		public event EventHandler TextAlignChanged;
 		#endregion
 		#endregion
 
 
     		public Label ()
     		public Label ()
@@ -92,7 +115,9 @@ namespace System.Windows.Forms
 		}
 		}
 
 
 		#region Public Properties
 		#region Public Properties
-
+		[DefaultValue(false)]
+		[Localizable(true)]
+		[RefreshProperties(RefreshProperties.All)]
     		public virtual bool AutoSize {
     		public virtual bool AutoSize {
     			get { return autosize; }
     			get { return autosize; }
     			set {
     			set {
@@ -108,7 +133,10 @@ namespace System.Windows.Forms
     			}
     			}
     		}
     		}
 
 
-    		public override Image BackgroundImage {
+		[Browsable(false)]
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
+		public override Image BackgroundImage {
     			get {
     			get {
     				return base.BackgroundImage;
     				return base.BackgroundImage;
     			}
     			}
@@ -124,6 +152,8 @@ namespace System.Windows.Forms
     			}
     			}
     		}
     		}
 
 
+		[DefaultValue(BorderStyle.None)]
+		[DispId(-504)]
     		public virtual BorderStyle BorderStyle {
     		public virtual BorderStyle BorderStyle {
     			get {
     			get {
     				return border_style;
     				return border_style;
@@ -152,7 +182,8 @@ namespace System.Windows.Forms
     			get {return ThemeEngine.Current.LabelDefaultSize;}
     			get {return ThemeEngine.Current.LabelDefaultSize;}
     		}
     		}
 
 
-    		public FlatStyle FlatStyle {
+		[DefaultValue(FlatStyle.Standard)]
+		public FlatStyle FlatStyle {
     			get {
     			get {
     				return flat_style;
     				return flat_style;
     			}
     			}
@@ -168,6 +199,7 @@ namespace System.Windows.Forms
     			}
     			}
     		}
     		}
 
 
+		[Localizable(true)]
     		public Image Image {
     		public Image Image {
     			get {
     			get {
     				return image;
     				return image;
@@ -181,6 +213,8 @@ namespace System.Windows.Forms
     			}
     			}
     		}
     		}
 
 
+		[DefaultValue(ContentAlignment.MiddleCenter)]
+		[Localizable(true)]
     		public ContentAlignment ImageAlign {
     		public ContentAlignment ImageAlign {
     			get {
     			get {
     				return image_align;
     				return image_align;
@@ -197,7 +231,11 @@ namespace System.Windows.Forms
     			}
     			}
     		}
     		}
 
 
-    		public int ImageIndex {
+		[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 image_index;}
     			set {
     			set {
 
 
@@ -216,6 +254,7 @@ namespace System.Windows.Forms
 			}
 			}
     		}
     		}
 
 
+		[DefaultValue(null)]
     		public ImageList ImageList {
     		public ImageList ImageList {
     			get { return image_list;}
     			get { return image_list;}
     			set {
     			set {
@@ -229,6 +268,8 @@ namespace System.Windows.Forms
 			}
 			}
     		}
     		}
 
 
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
     		public new ImeMode ImeMode {
     		public new ImeMode ImeMode {
 			get { return base.ImeMode; }
 			get { return base.ImeMode; }
 			set {
 			set {
@@ -240,11 +281,17 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 
 
-    		public virtual int PreferredHeight {
+		[Browsable(false)]
+		[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Hidden)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
+		public virtual int PreferredHeight {
     			get { return preferred_height; }
     			get { return preferred_height; }
     		}
     		}
 
 
-    		public virtual int PreferredWidth {
+		[Browsable(false)]
+		[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Hidden)]
+		[EditorBrowsable(EditorBrowsableState.Advanced)]
+		public virtual int PreferredWidth {
     			get {return preferred_width; }
     			get {return preferred_width; }
     		}
     		}
 
 
@@ -253,6 +300,9 @@ namespace System.Windows.Forms
 			set { render_transparent = value;}
 			set { render_transparent = value;}
 		}
 		}
     		
     		
+		[Browsable(false)]
+		[DefaultValue(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
 		public new bool TabStop  {
 		public new bool TabStop  {
     			get { return base.TabStop; }
     			get { return base.TabStop; }
     			set {
     			set {
@@ -265,7 +315,9 @@ namespace System.Windows.Forms
 			}
 			}
     		}
     		}
 
 
-    		public virtual ContentAlignment TextAlign {
+		[DefaultValue(ContentAlignment.TopLeft)]
+		[Localizable(true)]
+		public virtual ContentAlignment TextAlign {
     			get { return text_align; }
     			get { return text_align; }
 
 
     			set {
     			set {
@@ -326,7 +378,8 @@ namespace System.Windows.Forms
 			}
 			}
     		}
     		}
 
 
-    		public bool UseMnemonic {
+		[DefaultValue(true)]
+		public bool UseMnemonic {
     			get { return use_mnemonic; }
     			get { return use_mnemonic; }
    			set {
    			set {
     				if (use_mnemonic != value) {
     				if (use_mnemonic != value) {

+ 17 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/Menu.cs

@@ -31,9 +31,15 @@
 
 
 using System.Collections;
 using System.Collections;
 using System.ComponentModel;
 using System.ComponentModel;
+using System.ComponentModel.Design;
+using System.Reflection;
+using System.Runtime.InteropServices;
 
 
 namespace System.Windows.Forms
 namespace System.Windows.Forms
 {
 {
+	[Designer ("System.Windows.Forms.Design.MenuDesigner, " + Consts.AssemblySystem_Design, typeof (IDesigner))]
+	[ToolboxItemFilter("System.Windows.Forms", ToolboxItemFilterType.Allow)]
+	[ListBindable(false)]
 	public abstract class Menu : Component
 	public abstract class Menu : Component
 	{
 	{
 		internal MenuItemCollection menu_items;
 		internal MenuItemCollection menu_items;
@@ -54,6 +60,9 @@ namespace System.Windows.Forms
 
 
 
 
 		#region Public Properties
 		#region Public Properties
+		[BrowsableAttribute(false)]
+		[EditorBrowsableAttribute(EditorBrowsableState.Advanced)]
+		[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Hidden)]
 		public IntPtr Handle {
 		public IntPtr Handle {
 			get {
 			get {
 				if (IsDirty && creating == false) {					
 				if (IsDirty && creating == false) {					
@@ -70,6 +79,8 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 
 
+		[BrowsableAttribute(false)]
+		[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Hidden)]
 		public virtual bool IsParent {
 		public virtual bool IsParent {
 			get {
 			get {
 				if (menu_items != null && menu_items.Count > 0)
 				if (menu_items != null && menu_items.Count > 0)
@@ -79,12 +90,17 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 
 
+		[BrowsableAttribute(false)]
+		[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Hidden)]
 		public MenuItem MdiListItem {
 		public MenuItem MdiListItem {
 			get {
 			get {
 				throw new NotImplementedException ();
 				throw new NotImplementedException ();
 			}
 			}
 		}
 		}
 
 
+		[BrowsableAttribute(false)]
+		[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Content)]
+		[MergableProperty(false)]
 		public MenuItemCollection MenuItems {
 		public MenuItemCollection MenuItems {
 			get { return menu_items; }
 			get { return menu_items; }
 		}
 		}
@@ -227,6 +243,7 @@ namespace System.Windows.Forms
 
 
 		#endregion Private Methods
 		#endregion Private Methods
 
 
+		[ListBindable(false)]
 		public class MenuItemCollection : IList, ICollection, IEnumerable
 		public class MenuItemCollection : IList, ICollection, IEnumerable
 		{
 		{
 			private Menu owner;
 			private Menu owner;

+ 30 - 1
mcs/class/Managed.Windows.Forms/System.Windows.Forms/MenuItem.cs

@@ -26,13 +26,18 @@
 
 
 // NOT COMPLETE
 // NOT COMPLETE
 
 
-using System.ComponentModel;
 using System.Collections;
 using System.Collections;
+using System.ComponentModel;
+using System.ComponentModel.Design;
 using System.Drawing;
 using System.Drawing;
 using System.Drawing.Text;
 using System.Drawing.Text;
 
 
 namespace System.Windows.Forms
 namespace System.Windows.Forms
 {
 {
+	[DefaultProperty("Text")]
+	[DefaultEvent("Click")]
+	[DesignTimeVisible(false)]
+	[ToolboxItem(false)]
 	public class MenuItem : Menu
 	public class MenuItem : Menu
 	{
 	{
 		internal Menu parent_menu = null;
 		internal Menu parent_menu = null;
@@ -164,40 +169,51 @@ namespace System.Windows.Forms
 
 
 		#region Public Properties
 		#region Public Properties
 
 
+		[Browsable(false)]
+		[DefaultValue(false)]
 		public bool BarBreak {
 		public bool BarBreak {
 			get { return break_; }
 			get { return break_; }
 			set { break_ = value; }
 			set { break_ = value; }
 		}
 		}
 
 
+		[Browsable(false)]
+		[DefaultValue(false)]
 		public bool Break {
 		public bool Break {
 			get { return bar_break; }
 			get { return bar_break; }
 			set { bar_break = value; }
 			set { bar_break = value; }
 		}
 		}
 
 
+		[DefaultValue(false)]
 		public bool Checked {
 		public bool Checked {
 			get { return checked_; }
 			get { return checked_; }
 			set { checked_ = value; }
 			set { checked_ = value; }
 		}
 		}
 
 
+		[DefaultValue(false)]
 		public bool DefaultItem {
 		public bool DefaultItem {
 			get { return defaut_item; }
 			get { return defaut_item; }
 			set { defaut_item = value; }
 			set { defaut_item = value; }
 		}
 		}
 
 
+		[DefaultValue(true)]
+		[Localizable(true)]
 		public bool Enabled {
 		public bool Enabled {
 			get { return enabled; }
 			get { return enabled; }
 			set { enabled = value; }
 			set { enabled = value; }
 		}
 		}
 
 
+		[Browsable(false)]
 		public int Index {
 		public int Index {
 			get { return index; }
 			get { return index; }
 			set { index = value; }
 			set { index = value; }
 		}
 		}
 
 
+		[Browsable(false)]
 		public override bool IsParent {
 		public override bool IsParent {
 			get { return IsPopup; }
 			get { return IsPopup; }
 		}
 		}
 
 
+		[DefaultValue(false)]
 		public bool MdiList {
 		public bool MdiList {
 			get { return mdilist; }
 			get { return mdilist; }
 			set { mdilist = value; }
 			set { mdilist = value; }
@@ -207,11 +223,13 @@ namespace System.Windows.Forms
 			get { return menuid; }
 			get { return menuid; }
 		}
 		}
 
 
+		[DefaultValue(0)]
 		public int MergeOrder {
 		public int MergeOrder {
 			get { return mergeorder; }
 			get { return mergeorder; }
 			set { mergeorder = value; }
 			set { mergeorder = value; }
 		}
 		}
 
 
+		[DefaultValue(MenuMerge.Add)]
 		public MenuMerge MergeType {
 		public MenuMerge MergeType {
 			get { return mergetype;	}
 			get { return mergetype;	}
 			set {
 			set {
@@ -222,24 +240,30 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 
 
+		[Browsable(false)]
 		public char Mnemonic {
 		public char Mnemonic {
 			get { return mnemonic; }
 			get { return mnemonic; }
 		}
 		}
 
 
+		[DefaultValue(false)]
 		public bool OwnerDraw {
 		public bool OwnerDraw {
 			get { return ownerdraw; }
 			get { return ownerdraw; }
 			set { ownerdraw = value; }
 			set { ownerdraw = value; }
 		}
 		}
 
 
+		[Browsable(false)]
 		public Menu Parent {
 		public Menu Parent {
 			get { return parent_menu;}
 			get { return parent_menu;}
 		}
 		}
 
 
+		[DefaultValue(false)]
 		public bool RadioCheck {
 		public bool RadioCheck {
 			get { return radiocheck; }
 			get { return radiocheck; }
 			set { radiocheck = value; }
 			set { radiocheck = value; }
 		}
 		}
 
 
+		[DefaultValue(Shortcut.None)]
+		[Localizable(true)]
 		public Shortcut Shortcut {
 		public Shortcut Shortcut {
 			get { return shortcut;}
 			get { return shortcut;}
 			set {
 			set {
@@ -250,11 +274,14 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 
 
+		[DefaultValue(true)]
+		[Localizable(true)]
 		public bool ShowShortcut {
 		public bool ShowShortcut {
 			get { return showshortcut;}
 			get { return showshortcut;}
 			set { showshortcut = value; }
 			set { showshortcut = value; }
 		}
 		}
 
 
+		[Localizable(true)]
 		public string Text {
 		public string Text {
 			get { return text; }
 			get { return text; }
 			set {
 			set {
@@ -269,6 +296,8 @@ namespace System.Windows.Forms
 			}
 			}
 		}
 		}
 
 
+		[DefaultValue(true)]
+		[Localizable(true)]
 		public bool Visible {
 		public bool Visible {
 			get { return visible;}
 			get { return visible;}
 			set { visible = value; }
 			set { visible = value; }

+ 1 - 1
mcs/class/Managed.Windows.Forms/System.Windows.Forms/MonthCalendar.cs

@@ -658,7 +658,7 @@ namespace System.Windows.Forms {
 				} else {
 				} else {
 					CreateParams cp = base.CreateParams;					
 					CreateParams cp = base.CreateParams;					
 					cp.Style = unchecked ((int)(WindowStyles.WS_POPUP | WindowStyles.WS_VISIBLE | WindowStyles.WS_CLIPSIBLINGS | WindowStyles.WS_CLIPCHILDREN));
 					cp.Style = unchecked ((int)(WindowStyles.WS_POPUP | WindowStyles.WS_VISIBLE | WindowStyles.WS_CLIPSIBLINGS | WindowStyles.WS_CLIPCHILDREN));
-					cp.ExStyle |= (int)WindowStyles.WS_EX_TOOLWINDOW;
+					cp.ExStyle |= (int)(WindowStyles.WS_EX_TOOLWINDOW | WindowStyles.WS_EX_TOPMOST);
 					return cp;
 					return cp;
 				}
 				}
 			}
 			}

+ 16 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/NotifyIcon.cs

@@ -27,9 +27,15 @@
 // NOT COMPLETE
 // NOT COMPLETE
 
 
 using System;
 using System;
+using System.ComponentModel;
+using System.ComponentModel.Design;
 using System.Drawing;
 using System.Drawing;
 
 
 namespace System.Windows.Forms {
 namespace System.Windows.Forms {
+	[DefaultProperty("Text")]
+	[DefaultEvent("MouseDown")]
+	[Designer ("System.Windows.Forms.Design.NotifyIconDesigner, " + Consts.AssemblySystem_Design, typeof (IDesigner))]
+	[ToolboxItemFilter("System.Windows.Forms", ToolboxItemFilterType.Allow)]
 	public sealed class NotifyIcon : System.ComponentModel.Component {
 	public sealed class NotifyIcon : System.ComponentModel.Component {
 		#region Local Variables
 		#region Local Variables
 		private ContextMenu		context_menu;
 		private ContextMenu		context_menu;
@@ -258,6 +264,7 @@ namespace System.Windows.Forms {
 		#endregion	// Private Methods
 		#endregion	// Private Methods
 
 
 		#region Public Instance Properties
 		#region Public Instance Properties
+		[DefaultValue(null)]
 		public ContextMenu ContextMenu {
 		public ContextMenu ContextMenu {
 			get {
 			get {
 				return context_menu;
 				return context_menu;
@@ -271,6 +278,8 @@ namespace System.Windows.Forms {
 			}
 			}
 		}
 		}
 
 
+		[Localizable(true)]
+		[DefaultValue(null)]
 		public Icon Icon {
 		public Icon Icon {
 			get {
 			get {
 				return icon;
 				return icon;
@@ -287,6 +296,7 @@ namespace System.Windows.Forms {
 			}
 			}
 		}
 		}
 
 
+		[Localizable(true)]
 		public string Text {
 		public string Text {
 			get {
 			get {
 				return text;
 				return text;
@@ -307,6 +317,8 @@ namespace System.Windows.Forms {
 			}
 			}
 		}
 		}
 
 
+		[Localizable(true)]
+		[DefaultValue(false)]
 		public bool Visible {
 		public bool Visible {
 			get {
 			get {
 				return visible;
 				return visible;
@@ -344,8 +356,12 @@ namespace System.Windows.Forms {
 		#endregion	// Protected Instance Methods
 		#endregion	// Protected Instance Methods
 
 
 		#region Events
 		#region Events
+		[Category]
 		public event EventHandler	Click;
 		public event EventHandler	Click;
+
+		[Category]
 		public event EventHandler	DoubleClick;
 		public event EventHandler	DoubleClick;
+
 		public event MouseEventHandler	MouseDown;
 		public event MouseEventHandler	MouseDown;
 		public event MouseEventHandler	MouseMove;
 		public event MouseEventHandler	MouseMove;
 		public event MouseEventHandler	MouseUp;
 		public event MouseEventHandler	MouseUp;

+ 24 - 1
mcs/class/Managed.Windows.Forms/System.Windows.Forms/Panel.cs

@@ -26,10 +26,15 @@
 // NOT COMPLETE
 // NOT COMPLETE
 
 
 using System;
 using System;
+using System.ComponentModel;
+using System.ComponentModel.Design;
 using System.Drawing;
 using System.Drawing;
+using System.Runtime.InteropServices;
 
 
 namespace System.Windows.Forms {
 namespace System.Windows.Forms {
-
+	[DefaultProperty("BorderStyle")]
+	[DefaultEvent("Paint")]
+	[Designer ("System.Windows.Forms.Design.PanelDesigner, " + Consts.AssemblySystem_Design, typeof (IDesigner))]
 	public class Panel : ScrollableControl {
 	public class Panel : ScrollableControl {
 		private BorderStyle border_style;
 		private BorderStyle border_style;
 
 
@@ -41,6 +46,8 @@ namespace System.Windows.Forms {
 		#endregion	// Constructors & Destructors
 		#endregion	// Constructors & Destructors
 
 
 		#region Public Instance Properties
 		#region Public Instance Properties
+		[DefaultValue(null)]
+		[DispId(-504)]
 		public BorderStyle BorderStyle {
 		public BorderStyle BorderStyle {
 			get { return border_style; }
 			get { return border_style; }
 			set {
 			set {
@@ -51,6 +58,7 @@ namespace System.Windows.Forms {
 			}
 			}
 		}
 		}
 
 
+		[DefaultValue(false)]
 		public new bool TabStop {
 		public new bool TabStop {
 			get { return base.TabStop; }
 			get { return base.TabStop; }
 			set {
 			set {
@@ -60,6 +68,9 @@ namespace System.Windows.Forms {
 			}
 			}
 		}
 		}
 
 
+		[Bindable(false)]
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
 		public override string Text {
 		public override string Text {
 			get { return base.Text; }
 			get { return base.Text; }
 			set {
 			set {
@@ -98,9 +109,21 @@ namespace System.Windows.Forms {
 		#endregion	// Protected Instance Methods
 		#endregion	// Protected Instance Methods
 
 
 		#region Events
 		#region Events
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
 		public event KeyEventHandler		KeyDown;
 		public event KeyEventHandler		KeyDown;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
 		public event KeyPressEventHandler	KeyPress;
 		public event KeyPressEventHandler	KeyPress;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
 		public event KeyEventHandler		KeyUp;
 		public event KeyEventHandler		KeyUp;
+
+		[Browsable(false)]
+		[EditorBrowsable(EditorBrowsableState.Never)]
+		public event EventHandler		TextChanged;
 		#endregion
 		#endregion
 	}
 	}
 }
 }

+ 35 - 4
mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBoxBase.cs

@@ -484,8 +484,39 @@ namespace System.Windows.Forms {
 
 
 		#region Public Instance Methods
 		#region Public Instance Methods
 		public void AppendText(string text) {
 		public void AppendText(string text) {
-			// FIXME
-			throw new NotImplementedException();
+
+			if (multiline) {
+				string[]	lines;
+				int		linecount;
+
+				// Break the string into separate lines
+				lines = text.Split(new char[] {'\n'});
+				linecount = lines.Length;
+				for (int i = 0; i < linecount; i++) {
+					if (lines[i].EndsWith("\r")) {
+						lines[i] = lines[i].Substring(0, lines[i].Length - 1);
+					}
+				}
+
+				// Grab the formatting for the last element
+				document.MoveCaret(CaretDirection.CtrlEnd);
+
+				// Insert the first line
+				document.InsertString(document.CaretLine, document.CaretPosition, lines[0]);
+
+				for (int i = 1; i < linecount; i++) {
+					document.Add(document.CaretLine.LineNo+i, CaseAdjust(lines[i]), alignment, document.CaretTag.font, document.CaretTag.color);
+				}
+
+				document.RecalculateDocument(CreateGraphics());
+				document.MoveCaret(CaretDirection.CtrlEnd);
+				Invalidate();
+			} else {
+				document.MoveCaret(CaretDirection.CtrlEnd);
+				document.InsertStringAtCaret(text, true);
+				Invalidate();
+			}
+			OnTextChanged(EventArgs.Empty);
 		}
 		}
 
 
 		public void Clear() {
 		public void Clear() {
@@ -519,8 +550,8 @@ namespace System.Windows.Forms {
 		}
 		}
 
 
 		public void Select(int start, int length) {
 		public void Select(int start, int length) {
-			// FIXME
-			throw new NotImplementedException();
+			SelectionStart = start;
+			SelectionLength = length;
 		}
 		}