Author: jpobst
Date: 2007-01-05 12:26:54 -0500 (Fri, 05 Jan 2007)
New Revision: 70543
Added:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ControlPropertyEventsTest.cs
Modified:
trunk/mcs/class/Managed.Windows.Forms/ChangeLog
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms_test.dll.sources
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
Log:
2007-01-05 Jonathan Pobst <[EMAIL PROTECTED]>
* Control.cs: Implement several 2.0 protected properties and methods.
Ensure that all necessary events are being called when properties
are set.
* ControlPropertyEventsTest.cs: Tests that demonstrate above changes.
Modified: trunk/mcs/class/Managed.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/ChangeLog 2007-01-05 17:20:43 UTC
(rev 70542)
+++ trunk/mcs/class/Managed.Windows.Forms/ChangeLog 2007-01-05 17:26:54 UTC
(rev 70543)
@@ -1,3 +1,7 @@
+2007-01-04 Jonathan Pobst <[EMAIL PROTECTED]>
+
+ * System.Windows.Forms_test.dll: Add ControlPropertyEventsTest.cs.
+
2007-01-04 Carlos Alberto Cortez <[EMAIL PROTECTED]>
* System.Windows.Forms_test.dll: Add ColumnHeaderTest.cs
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2007-01-05 17:20:43 UTC (rev 70542)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2007-01-05 17:26:54 UTC (rev 70543)
@@ -1,3 +1,9 @@
+2007-01-05 Jonathan Pobst <[EMAIL PROTECTED]>
+
+ * Control.cs: Implement several 2.0 protected properties and methods.
+ Ensure that all necessary events are being called when properties
+ are set.
+
2007-01-05 Mike Kestner <[EMAIL PROTECTED]>
* ListView.cs: implement PgUp/PgDn for Details view. Also
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs
2007-01-05 17:20:43 UTC (rev 70542)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs
2007-01-05 17:26:54 UTC (rev 70543)
@@ -1818,12 +1818,12 @@
[DefaultValue (false)]
[MonoTODO("This method currently does nothing")]
public virtual bool AutoSize {
- get {
- //Console.Error.WriteLine("Unimplemented:
Control::get_AutoSize()");
- return auto_size;
- }
+ get { return auto_size; }
set {
- auto_size = value;
+ if (this.auto_size != value) {
+ auto_size = value;
+ OnAutoSizeChanged (EventArgs.Empty);
+ }
}
}
@@ -1846,7 +1846,10 @@
return minimum_size;
}
set {
- minimum_size = value;
+ if (minimum_size != value) {
+ minimum_size = value;
+ PerformLayout ();
+ }
}
}
#endif // NET_2_0
@@ -1911,6 +1914,7 @@
if (value != backgroundimage_layout) {
backgroundimage_layout = value;
Invalidate ();
+ OnBackgroundImageLayoutChanged
(EventArgs.Empty);
}
}
@@ -2066,6 +2070,9 @@
set {
this.SetClientSizeCore(value.Width,
value.Height);
+#if NET_2_0
+ this.OnClientSizeChanged (EventArgs.Empty);
+#endif
}
}
@@ -2308,14 +2315,15 @@
}
set {
+ if (this.is_enabled != value) {
+ bool old_value = is_enabled;
- bool old_value = is_enabled;
+ is_enabled = value;
+ if (old_value != value && !value &&
this.has_focus)
+ SelectNextControl(this, true,
true, true, true);
- is_enabled = value;
- if (old_value != value && !value &&
this.has_focus)
- SelectNextControl(this, true, true,
true, true);
-
- OnEnabledChanged (EventArgs.Empty);
+ OnEnabledChanged (EventArgs.Empty);
+ }
}
}
@@ -2354,6 +2362,7 @@
font = value;
Invalidate();
OnFontChanged (EventArgs.Empty);
+ PerformLayout ();
}
}
@@ -2533,7 +2542,12 @@
[Localizable (true)]
public Padding Margin {
get { return this.margin; }
- set { this.margin = value; }
+ set {
+ if (this.margin != value) {
+ this.margin = value;
+ OnMarginChanged (EventArgs.Empty);
+ }
+ }
}
#endif
@@ -2556,8 +2570,11 @@
}
set {
- padding = value;
- OnPaddingChanged (EventArgs.Empty);
+ if (padding != value) {
+ padding = value;
+ OnPaddingChanged (EventArgs.Empty);
+ PerformLayout ();
+ }
}
}
#endif
@@ -2635,10 +2652,15 @@
}
set {
- if (value != null && IsHandleCreated) {
- XplatUI.SetClipRegion(Handle, value);
+ if (clip_region != value) {
+ if (value != null && IsHandleCreated)
+ XplatUI.SetClipRegion(Handle,
value);
+
+ clip_region = value;
+#if NET_2_0
+ OnRegionChanged (EventArgs.Empty);
+#endif
}
- clip_region = value;
}
}
@@ -2669,6 +2691,7 @@
if (value != right_to_left) {
right_to_left = value;
OnRightToLeftChanged(EventArgs.Empty);
+ PerformLayout ();
}
}
}
@@ -2935,6 +2958,10 @@
}
}
+#if NET_2_0
+ protected virtual Cursor DefaultCursor { get { return
Cursors.Default; } }
+#endif
+
protected virtual ImeMode DefaultImeMode {
get {
return ImeMode.Inherit;
@@ -2945,6 +2972,10 @@
protected virtual Padding DefaultMargin {
get { return new Padding (3); }
}
+
+ protected virtual Size DefaultMaximumSize { get { return new
Size (); } }
+ protected virtual Size DefaultMinimumSize { get { return new
Size (); } }
+ protected virtual Padding DefaultPadding { get { return new
Padding (); } }
#endif
protected virtual Size DefaultSize {
@@ -4085,7 +4116,8 @@
if (parent != null) {
parent.PerformLayout(this, "visible");
} else {
- PerformLayout(this, "visible");
+ if (is_visible)
+ PerformLayout(this, "visible");
}
}
}
@@ -4153,6 +4185,9 @@
if (resized) {
OnSizeChanged(EventArgs.Empty);
+#if NET_2_0
+ OnClientSizeChanged (EventArgs.Empty);
+#endif
}
}
@@ -4593,7 +4628,17 @@
#endregion // Public Instance Methods
#region OnXXX methods
- [EditorBrowsable(EditorBrowsableState.Advanced)]
+#if NET_2_0
+ [EditorBrowsable (EditorBrowsableState.Advanced)]
+ protected virtual void OnAutoSizeChanged (EventArgs e)
+ {
+ EventHandler eh =
(EventHandler)(Events[AutoSizeChangedEvent]);
+ if (eh != null)
+ eh (this, e);
+ }
+#endif
+
+ [EditorBrowsable (EditorBrowsableState.Advanced)]
protected virtual void OnBackColorChanged(EventArgs e) {
EventHandler eh = (EventHandler)(Events
[BackColorChangedEvent]);
if (eh != null)
@@ -4609,6 +4654,16 @@
for (int i=0; i<child_controls.Count; i++)
child_controls[i].OnParentBackgroundImageChanged(e);
}
+#if NET_2_0
+ [EditorBrowsable (EditorBrowsableState.Advanced)]
+ protected virtual void OnBackgroundImageLayoutChanged
(EventArgs e)
+ {
+ EventHandler eh =
(EventHandler)(Events[BackgroundImageLayoutChangedEvent]);
+ if (eh != null)
+ eh (this, e);
+ }
+#endif
+
[EditorBrowsable(EditorBrowsableState.Advanced)]
protected virtual void OnBindingContextChanged(EventArgs e) {
CheckDataBindings ();
@@ -4639,6 +4694,16 @@
eh (this, e);
}
+#if NET_2_0
+ [EditorBrowsable (EditorBrowsableState.Advanced)]
+ protected virtual void OnClientSizeChanged (EventArgs e)
+ {
+ EventHandler eh =
(EventHandler)(Events[ClientSizeChangedEvent]);
+ if (eh != null)
+ eh (this, e);
+ }
+#endif
+
[EditorBrowsable(EditorBrowsableState.Advanced)]
protected virtual void OnContextMenuChanged(EventArgs e) {
EventHandler eh = (EventHandler)(Events
[ContextMenuChangedEvent]);
@@ -4890,6 +4955,14 @@
#if NET_2_0
[EditorBrowsable (EditorBrowsableState.Advanced)]
+ protected virtual void OnMarginChanged (EventArgs e)
+ {
+ EventHandler eh =
(EventHandler)(Events[MarginChangedEvent]);
+ if (eh != null)
+ eh (this, e);
+ }
+
+ [EditorBrowsable (EditorBrowsableState.Advanced)]
protected virtual void OnMouseCaptureChanged (EventArgs e)
{
EventHandler eh = (EventHandler)(Events
[MouseCaptureChangedEvent]);
@@ -5089,6 +5162,16 @@
eh (this, e);
}
+#if NET_2_0
+ [EditorBrowsable (EditorBrowsableState.Advanced)]
+ protected virtual void OnRegionChanged (EventArgs e)
+ {
+ EventHandler eh =
(EventHandler)(Events[RegionChangedEvent]);
+ if (eh != null)
+ eh (this, e);
+ }
+#endif
+
[EditorBrowsable(EditorBrowsableState.Advanced)]
protected virtual void OnResize(EventArgs e) {
PerformLayout(this, "Bounds");
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms_test.dll.sources
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms_test.dll.sources
2007-01-05 17:20:43 UTC (rev 70542)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms_test.dll.sources
2007-01-05 17:26:54 UTC (rev 70543)
@@ -21,6 +21,7 @@
System.Windows.Forms/ControlEventTest.cs
System.Windows.Forms/ControlTest.cs
System.Windows.Forms/ControlPaintTest.cs
+System.Windows.Forms/ControlPropertyEventsTest.cs
System.Windows.Forms/ControlStyleTest.cs
System.Windows.Forms/CursorTest.cs
System.Windows.Forms/CurrencyManagerTest.cs
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
2007-01-05 17:20:43 UTC (rev 70542)
+++ trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
2007-01-05 17:26:54 UTC (rev 70543)
@@ -1,3 +1,9 @@
+2007-01-05 Jonathan Pobst <[EMAIL PROTECTED]>
+
+ * ControlPropertyEventsTest.cs: Added. These test property getters and
+ setters and ensure that all relevant events are called on setters for
+ Control.
+
2007-01-04 Chris Toshok <[EMAIL PROTECTED]>
* CommonDialogsTest.cs: disable FolderBrowserDialogTest (and add a
Added:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ControlPropertyEventsTest.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ControlPropertyEventsTest.cs
2007-01-05 17:20:43 UTC (rev 70542)
+++
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ControlPropertyEventsTest.cs
2007-01-05 17:26:54 UTC (rev 70543)
@@ -0,0 +1,673 @@
+#if NET_2_0
+using System;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+using System.Drawing;
+using System.Windows.Forms;
+using System.ComponentModel;
+
+namespace MonoTests.System.Windows.Forms
+{
+ [TestFixture]
+ public class ControlPropertyEventsTest
+ {
+ [Test]
+ public void PropertyAllowDrop ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.AllowDrop = true;
+ Assert.AreEqual (true, c.AllowDrop, "B1");
+ Assert.AreEqual (string.Empty, ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.AllowDrop = true;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyAnchor ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Anchor = AnchorStyles.Bottom;
+ Assert.AreEqual (AnchorStyles.Bottom, c.Anchor, "B1");
+ Assert.AreEqual (string.Empty, ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Anchor = AnchorStyles.Bottom;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ //[Test]
+ //public void PropertyAutoScrollOffset ()
+ //{
+ // Control c = new Control ();
+ // EventWatcher ew = new EventWatcher (c);
+
+ // c.AutoScrollOffset = new Point (45, 45);
+ // Assert.AreEqual (new Point (45, 45),
c.AutoScrollOffset, "B1");
+ // Assert.AreEqual (string.Empty, ew.ToString (), "B2");
+
+ // ew.Clear ();
+ // c.AutoScrollOffset = new Point (45, 45);
+ // Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ //}
+
+ [Test]
+ public void PropertyAutoSize ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.AutoSize = true;
+ Assert.AreEqual (true, c.AutoSize, "B1");
+ Assert.AreEqual ("AutoSizeChanged", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.AutoSize = true;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyBackColor ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.BackColor = Color.Aquamarine;
+ Assert.AreEqual (Color.Aquamarine, c.BackColor, "B1");
+ Assert.AreEqual ("BackColorChanged", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.BackColor = Color.Aquamarine;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyBackgroundImage ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+ Image i = new Bitmap (5, 5);
+
+ c.BackgroundImage = i;
+ Assert.AreSame (i, c.BackgroundImage, "B1");
+ Assert.AreEqual ("BackgroundImageChanged", ew.ToString
(), "B2");
+
+ ew.Clear ();
+ c.BackgroundImage = i;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyBackgroundImageLayout ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.BackgroundImageLayout = ImageLayout.Zoom;
+ Assert.AreEqual (ImageLayout.Zoom,
c.BackgroundImageLayout, "B1");
+ Assert.AreEqual ("BackgroundImageLayoutChanged",
ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.BackgroundImageLayout = ImageLayout.Zoom;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyBindingContext ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+ BindingContext b = new BindingContext ();
+
+ c.BindingContext = b;
+ Assert.AreSame (b, c.BindingContext, "B1");
+ Assert.AreEqual ("BindingContextChanged", ew.ToString
(), "B2");
+
+ c.BindingContext = b;
+ Assert.AreEqual ("BindingContextChanged", ew.ToString
(), "B3");
+ }
+
+ [Test]
+ public void PropertyBounds ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Bounds = new Rectangle (0, 0, 5, 5);
+ Assert.AreEqual (new Rectangle (0, 0, 5, 5), c.Bounds,
"B1");
+ Assert.AreEqual
("Layout;Resize;SizeChanged;ClientSizeChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Bounds = new Rectangle (0, 0, 5, 5);
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ [Ignore ("Setting Capture to true does not hold, getter returns
false.")]
+ public void PropertyCapture ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Capture = true;
+ Assert.AreEqual (true, c.Capture, "B1");
+ Assert.AreEqual ("HandleCreated", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Capture = true;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyClientSize ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.ClientSize = new Size (5, 5);
+ Assert.AreEqual (new Size (5, 5), c.ClientSize, "B1");
+ Assert.AreEqual
("Layout;Resize;SizeChanged;ClientSizeChanged;ClientSizeChanged", ew.ToString
(), "B2");
+
+ ew.Clear ();
+ c.ClientSize = new Size (5, 5);
+ Assert.AreEqual ("ClientSizeChanged", ew.ToString (),
"B3");
+ }
+
+ [Test]
+ public void PropertyContextMenu ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+ ContextMenu cm = new ContextMenu ();
+
+ c.ContextMenu = cm;
+ Assert.AreEqual (cm, c.ContextMenu, "B1");
+ Assert.AreEqual ("ContextMenuChanged", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.ContextMenu = cm;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyContextMenuStrip ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+ ContextMenuStrip cm = new ContextMenuStrip ();
+
+ c.ContextMenuStrip = cm;
+ Assert.AreEqual (cm, c.ContextMenuStrip, "B1");
+ Assert.AreEqual ("ContextMenuStripChanged", ew.ToString
(), "B2");
+
+ ew.Clear ();
+ c.ContextMenuStrip = cm;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyCursor ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Cursor = Cursors.HSplit;
+ Assert.AreEqual (Cursors.HSplit, c.Cursor, "B1");
+ Assert.AreEqual ("CursorChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Cursor = Cursors.HSplit;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyDock ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Dock = DockStyle.Fill;
+ Assert.AreEqual (DockStyle.Fill, c.Dock, "B1");
+ Assert.AreEqual ("DockChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Dock = DockStyle.Fill;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyEnabled ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Enabled = false;
+ Assert.AreEqual (false, c.Enabled, "B1");
+ Assert.AreEqual ("EnabledChanged", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.Enabled = false;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyFont ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+ Font f = new Font ("Arial", 14);
+
+ c.Font = f;
+ Assert.AreEqual (f, c.Font, "B1");
+ Assert.AreEqual ("FontChanged;Layout", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.Font = f;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyForeColor ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.ForeColor = Color.Peru;
+ Assert.AreEqual (Color.Peru, c.ForeColor, "B1");
+ Assert.AreEqual ("ForeColorChanged", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.ForeColor = Color.Peru;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyHeight ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Height = 27;
+ Assert.AreEqual (27, c.Height, "B1");
+ Assert.AreEqual
("Layout;Resize;SizeChanged;ClientSizeChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Height = 27;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyImeMode ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.ImeMode = ImeMode.Hiragana;
+ Assert.AreEqual (ImeMode.Hiragana, c.ImeMode, "B1");
+ Assert.AreEqual ("ImeModeChanged", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.ImeMode = ImeMode.Hiragana;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyLeft ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Left = 27;
+ Assert.AreEqual (27, c.Left, "B1");
+ Assert.AreEqual ("Move;LocationChanged", ew.ToString
(), "B2");
+
+ ew.Clear ();
+ c.Left = 27;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyLocation ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Location = new Point (5, 5);
+ Assert.AreEqual (new Point (5, 5), c.Location, "B1");
+ Assert.AreEqual ("Move;LocationChanged", ew.ToString
(), "B2");
+
+ ew.Clear ();
+ c.Location = new Point (5, 5);
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyMargin ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Margin = new Padding (5);
+ Assert.AreEqual (new Padding (5), c.Margin, "B1");
+ Assert.AreEqual ("MarginChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Margin = new Padding (5);
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyMaximumSize ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.MaximumSize = new Size (5, 5);
+ Assert.AreEqual (new Size (5, 5), c.MaximumSize, "B1");
+ Assert.AreEqual (string.Empty, ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.MaximumSize = new Size (5, 5);
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ [Ignore ("Resize events do not fire because MinimumSize is not
considered in the PerformLayout yet")]
+ public void PropertyMinimumSize ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.MinimumSize = new Size (5, 5);
+ Assert.AreEqual (new Size (5, 5), c.MinimumSize, "B1");
+ Assert.AreEqual
("Layout;Resize;SizeChanged;ClientSizeChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.MinimumSize = new Size (5, 5);
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyName ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Name = "Bob";
+ Assert.AreEqual ("Bob", c.Name, "B1");
+ Assert.AreEqual (string.Empty, ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Name = "Bob";
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyPadding ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Padding = new Padding (5);
+ Assert.AreEqual (new Padding (5), c.Padding, "B1");
+ Assert.AreEqual ("PaddingChanged;Layout", ew.ToString
(), "B2");
+
+ ew.Clear ();
+ c.Padding = new Padding (5);
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyRegion ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+ Region r = new Region ();
+
+ c.Region = r;
+ Assert.AreSame (r, c.Region, "B1");
+ Assert.AreEqual ("RegionChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Region = r;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyRightToLeft ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.RightToLeft = RightToLeft.Yes;
+ Assert.AreEqual (RightToLeft.Yes, c.RightToLeft, "B1");
+ Assert.AreEqual ("RightToLeftChanged;Layout",
ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.RightToLeft = RightToLeft.Yes;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertySize ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Size = new Size (5, 5);
+ Assert.AreEqual (new Size (5, 5), c.Size, "B1");
+ Assert.AreEqual
("Layout;Resize;SizeChanged;ClientSizeChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Size = new Size (5, 5);
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyTabIndex ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.TabIndex = 4;
+ Assert.AreEqual (4, c.TabIndex, "B1");
+ Assert.AreEqual ("TabIndexChanged", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.TabIndex = 4;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyTabStop ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.TabStop = false;
+ Assert.AreEqual (false, c.TabStop, "B1");
+ Assert.AreEqual ("TabStopChanged", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.TabStop = false;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyTag ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+ Object o = "Hello";
+
+ c.Tag = o;
+ Assert.AreSame (o, c.Tag, "B1");
+ Assert.AreEqual (string.Empty, ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Tag = o;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyText ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Text = "Enchilada";
+ Assert.AreEqual ("Enchilada", c.Text, "B1");
+ Assert.AreEqual ("TextChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Text = "Enchilada";
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyTop ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Top = 27;
+ Assert.AreEqual (27, c.Top, "B1");
+ Assert.AreEqual ("Move;LocationChanged", ew.ToString
(), "B2");
+
+ ew.Clear ();
+ c.Top = 27;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyVisible ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Visible = false;
+ Assert.AreEqual (false, c.Visible, "B1");
+ Assert.AreEqual ("VisibleChanged", ew.ToString (),
"B2");
+
+ ew.Clear ();
+ c.Visible = false;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ [Test]
+ public void PropertyWidth ()
+ {
+ Control c = new Control ();
+ EventWatcher ew = new EventWatcher (c);
+
+ c.Width = 27;
+ Assert.AreEqual (27, c.Width, "B1");
+ Assert.AreEqual
("Layout;Resize;SizeChanged;ClientSizeChanged", ew.ToString (), "B2");
+
+ ew.Clear ();
+ c.Width = 27;
+ Assert.AreEqual (string.Empty, ew.ToString (), "B3");
+ }
+
+ private class EventWatcher
+ {
+ private string events = string.Empty;
+
+ public EventWatcher (Control c)
+ {
+ c.AutoSizeChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("AutoSizeChanged;"); });
+ c.BackColorChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("BackColorChanged;"); });
+ c.BackgroundImageChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("BackgroundImageChanged;"); });
+ c.BackgroundImageLayoutChanged += new
EventHandler (delegate (Object obj, EventArgs e) { events +=
("BackgroundImageLayoutChanged;"); });
+ c.BindingContextChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("BindingContextChanged;"); });
+ c.CausesValidationChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("CausesValidationChanged;");
});
+ c.ChangeUICues += new UICuesEventHandler
(delegate (Object obj, UICuesEventArgs e) { events += ("ChangeUICues;"); });
+ c.Click += new EventHandler (delegate (Object
obj, EventArgs e) { events += ("Click;"); });
+ c.ClientSizeChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("ClientSizeChanged;"); });
+ c.ContextMenuChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("ContextMenuChanged;"); });
+ c.ContextMenuStripChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("ContextMenuStripChanged;");
});
+ c.ControlAdded += new ControlEventHandler
(delegate (Object obj, ControlEventArgs e) { events += ("ControlAdded;"); });
+ c.ControlRemoved += new ControlEventHandler
(delegate (Object obj, ControlEventArgs e) { events += ("ControlRemoved;"); });
+ c.CursorChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("CursorChanged;"); });
+ c.DockChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("DockChanged;"); });
+ c.DoubleClick += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("DoubleClick;"); });
+ c.DragDrop += new DragEventHandler (delegate
(Object obj, DragEventArgs e) { events += ("DragDrop;"); });
+ c.DragEnter += new DragEventHandler (delegate
(Object obj, DragEventArgs e) { events += ("DragEnter;"); });
+ c.DragLeave += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("DragLeave;"); });
+ c.DragOver += new DragEventHandler (delegate
(Object obj, DragEventArgs e) { events += ("DragOver;"); });
+ c.EnabledChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("EnabledChanged;"); });
+ c.Enter += new EventHandler (delegate (Object
obj, EventArgs e) { events += ("Enter;"); });
+ c.FontChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("FontChanged;"); });
+ c.ForeColorChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("ForeColorChanged;"); });
+ c.GiveFeedback += new GiveFeedbackEventHandler
(delegate (Object obj, GiveFeedbackEventArgs e) { events += ("GiveFeedback;");
});
+ c.GotFocus += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("GotFocus;"); });
+ c.HandleCreated += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("HandleCreated;"); });
+ c.HandleDestroyed += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("HandleDestroyed;"); });
+ c.ImeModeChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("ImeModeChanged;"); });
+ c.Invalidated += new InvalidateEventHandler
(delegate (Object obj, InvalidateEventArgs e) { events += ("Invalidated;"); });
+ c.KeyDown += new KeyEventHandler (delegate
(Object obj, KeyEventArgs e) { events += ("KeyDown;"); });
+ c.KeyPress += new KeyPressEventHandler
(delegate (Object obj, KeyPressEventArgs e) { events += ("KeyPress;"); });
+ c.KeyUp += new KeyEventHandler (delegate
(Object obj, KeyEventArgs e) { events += ("KeyUp;"); });
+ c.Layout += new LayoutEventHandler (delegate
(Object obj, LayoutEventArgs e) { events += ("Layout;"); });
+ c.Leave += new EventHandler (delegate (Object
obj, EventArgs e) { events += ("Leave;"); });
+ c.LocationChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("LocationChanged;"); });
+ c.LostFocus += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("LostFocus;"); });
+ c.MarginChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("MarginChanged;"); });
+ c.MouseCaptureChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("MouseCaptureChanged;"); });
+ c.MouseClick += new MouseEventHandler (delegate
(Object obj, MouseEventArgs e) { events += ("MouseClick;"); });
+ c.MouseDoubleClick += new MouseEventHandler
(delegate (Object obj, MouseEventArgs e) { events += ("MouseDoubleClick;"); });
+ c.MouseDown += new MouseEventHandler (delegate
(Object obj, MouseEventArgs e) { events += ("MouseDown;"); });
+ c.MouseEnter += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("MouseEnter;"); });
+ c.MouseLeave += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("MouseLeave;"); });
+ c.MouseMove += new MouseEventHandler (delegate
(Object obj, MouseEventArgs e) { events += ("MouseMove;"); });
+ c.MouseUp += new MouseEventHandler (delegate
(Object obj, MouseEventArgs e) { events += ("MouseUp;"); });
+ c.MouseWheel += new MouseEventHandler (delegate
(Object obj, MouseEventArgs e) { events += ("MouseWheel;"); });
+ c.Move += new EventHandler (delegate (Object
obj, EventArgs e) { events += ("Move;"); });
+ c.PaddingChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("PaddingChanged;"); });
+ c.Paint += new PaintEventHandler (delegate
(Object obj, PaintEventArgs e) { events += ("Paint;"); });
+ c.ParentChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("ParentChanged;"); });
+ c.PreviewKeyDown += new
PreviewKeyDownEventHandler (delegate (Object obj, PreviewKeyDownEventArgs e) {
events += ("PreviewKeyDown;"); });
+ c.QueryAccessibilityHelp += new
QueryAccessibilityHelpEventHandler (delegate (Object obj,
QueryAccessibilityHelpEventArgs e) { events += ("QueryAccessibilityHelp;"); });
+ c.QueryContinueDrag += new
QueryContinueDragEventHandler (delegate (Object obj, QueryContinueDragEventArgs
e) { events += ("QueryContinueDrag;"); });
+ c.RegionChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("RegionChanged;"); });
+ c.Resize += new EventHandler (delegate (Object
obj, EventArgs e) { events += ("Resize;"); });
+ c.RightToLeftChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("RightToLeftChanged;"); });
+ c.SizeChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("SizeChanged;"); });
+ c.StyleChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("StyleChanged;"); });
+ c.SystemColorsChanged += new EventHandler
(delegate (Object obj, EventArgs e) { events += ("SystemColorsChanged;"); });
+ c.TabIndexChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("TabIndexChanged;"); });
+ c.TabStopChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("TabStopChanged;"); });
+ c.TextChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("TextChanged;"); });
+ c.Validated += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("Validated;"); });
+ c.Validating += new CancelEventHandler
(delegate (Object obj, CancelEventArgs e) { events += ("Validating;"); });
+ c.VisibleChanged += new EventHandler (delegate
(Object obj, EventArgs e) { events += ("VisibleChanged;"); });
+ }
+
+ public override string ToString ()
+ {
+ return events.TrimEnd (';');
+ }
+
+ public void Clear ()
+ {
+ events = string.Empty;
+ }
+ }
+
+ private class ExposeProtectedProperties : Control
+ {
+ //public new bool CanRaiseEvents { get { return
base.CanRaiseEvents; } }
+ public new Cursor DefaultCursor { get { return
base.DefaultCursor; } }
+ public new Size DefaultMaximumSize { get { return
base.DefaultMaximumSize; } }
+ public new Size DefaultMinimumSize { get { return
base.DefaultMinimumSize; } }
+ public new Padding DefaultPadding { get { return
base.DefaultPadding; } }
+ }
+ }
+}
+#endif
\ No newline at end of file
Property changes on:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ControlPropertyEventsTest.cs
___________________________________________________________________
Name: svn:eol-style
+ native
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches