Author: jpobst
Date: 2007-06-06 09:44:54 -0400 (Wed, 06 Jun 2007)
New Revision: 78737
Added:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ButtonBaseTest.cs
Modified:
trunk/mcs/class/Managed.Windows.Forms/ChangeLog
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Button.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ButtonBase.cs
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/MouseEventArgs.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextRenderer.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms_test.dll.sources
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ButtonTest.cs
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
Log:
2007-06-06 Jonathan Pobst <[EMAIL PROTECTED]>
* Button.cs: Override GetPreferredSizeCore.
* ButtonBase.cs: PerformLayout after changing properties that can affect
AutoSize. Simplify some mouse/keyboard code.
* Control.cs: PerformLayout after changing Padding if AutoSize = true.
* MouseEventArgs.cs: Make Location internal for 1.1.
* TextRenderer.cs: Make MeasureTextInternal (string, Font, bool)
internal for 1.1.
* Theme.cs: Add CalculateButtonAutoSize.
* ThemeWin32Classic.cs: Implement CalculateButtonAutoSize.
2007-06-06 Jonathan Pobst <[EMAIL PROTECTED]>
* ButtonBaseTest.cs: Add test for default values.
* ButtonTest.cs: Add test for default values, add test for AutoSize.
2007-06-06 Jonathan Pobst <[EMAIL PROTECTED]>
* System.Windows.Forms_test.dll.sources: Add ButtonBaseTest.cs.
Modified: trunk/mcs/class/Managed.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/ChangeLog 2007-06-06 13:42:57 UTC
(rev 78736)
+++ trunk/mcs/class/Managed.Windows.Forms/ChangeLog 2007-06-06 13:44:54 UTC
(rev 78737)
@@ -1,3 +1,7 @@
+2007-06-06 Jonathan Pobst <[EMAIL PROTECTED]>
+
+ * System.Windows.Forms_test.dll.sources: Add ButtonBaseTest.cs.
+
2007-06-05 Andreia Gaita <[EMAIL PROTECTED]>
* build-csproj, build-csproj2k5, swf.csproj, SWF2k5.csproj:
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Button.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Button.cs
2007-06-06 13:42:57 UTC (rev 78736)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Button.cs
2007-06-06 13:44:54 UTC (rev 78737)
@@ -192,6 +192,14 @@
else if (this.FlatStyle == FlatStyle.Popup)
ThemeEngine.Current.DrawPopupButton
(pevent.Graphics, this, text_rectangle, image_rectangle, pevent.ClipRectangle);
}
+
+ internal override Size GetPreferredSizeCore (Size proposedSize)
+ {
+ if (this.AutoSize)
+ return
ThemeEngine.Current.CalculateButtonAutoSize (this);
+
+ return base.GetPreferredSizeCore (proposedSize);
+ }
#endif
#endregion // Internal methods
}
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ButtonBase.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ButtonBase.cs
2007-06-06 13:42:57 UTC (rev 78736)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ButtonBase.cs
2007-06-06 13:44:54 UTC (rev 78737)
@@ -194,7 +194,13 @@
this.image_index = -1;
this.image_key = string.Empty;
this.image_list = null;
- Invalidate();
+
+#if NET_2_0
+ if (this.AutoSize && this.Parent !=
null)
+ this.Parent.PerformLayout
(this, "TextImageRelation");
+#endif
+
+ Invalidate ();
}
}
}
@@ -382,6 +388,12 @@
if (this.text_image_relation != value) {
this.text_image_relation = value;
+
+#if NET_2_0
+ if (this.AutoSize && this.Parent !=
null)
+ this.Parent.PerformLayout
(this, "TextImageRelation");
+#endif
+
this.Invalidate ();
}
}
@@ -500,9 +512,8 @@
protected override void OnKeyDown (KeyEventArgs kevent)
{
if (kevent.KeyData == Keys.Space) {
- enter_state = is_entered;
- is_entered = true;
- OnMouseDown (new MouseEventArgs
(MouseButtons.Left, 1, 2, 2, 0));
+ is_pressed = true;
+ Invalidate ();
kevent.Handled = true;
}
@@ -512,8 +523,9 @@
protected override void OnKeyUp (KeyEventArgs kevent)
{
if (kevent.KeyData == Keys.Space) {
- OnMouseUp (new MouseEventArgs
(MouseButtons.Left, 1, 2, 2, 0));
- is_entered = enter_state;
+ is_pressed = false;
+ Invalidate ();
+ OnClick (EventArgs.Empty);
kevent.Handled = true;
}
@@ -530,7 +542,6 @@
{
if ((mevent.Button & MouseButtons.Left) != 0) {
is_pressed = true;
- this.Capture = true;
Invalidate ();
}
@@ -539,26 +550,24 @@
protected override void OnMouseEnter (EventArgs e)
{
+ is_entered = true;
Invalidate ();
base.OnMouseEnter (e);
}
protected override void OnMouseLeave (EventArgs e)
{
+ is_entered = false;
Invalidate ();
base.OnMouseLeave (e);
}
protected override void OnMouseMove (MouseEventArgs mevent) {
- bool inside = false;
- bool redraw = false;
+ bool inside = false;
+ bool redraw = false;
- if (mevent.X >= 0 &&
- mevent.Y >= 0 &&
- mevent.X < this.ClientSize.Width &&
- mevent.Y <= this.ClientSize.Height) {
+ if (ClientRectangle.Contains (mevent.Location))
inside = true;
- }
// If the button was pressed and we leave, release the
button press and vice versa
if ((mevent.Button & MouseButtons.Left) != 0) {
@@ -569,35 +578,30 @@
}
if (is_entered != inside) {
- is_entered = inside;
+ is_entered = inside;
redraw = true;
}
if (redraw)
Invalidate ();
- base.OnMouseMove(mevent);
+ base.OnMouseMove (mevent);
}
protected override void OnMouseUp (MouseEventArgs mevent)
{
if (this.Capture && ((mevent.Button &
MouseButtons.Left) != 0)) {
this.Capture = false;
-
+
if (is_pressed) {
is_pressed = false;
Invalidate ();
- Update ();
} else if ((this.flat_style == FlatStyle.Flat)
|| (this.flat_style == FlatStyle.Popup)) {
Invalidate ();
}
- if (mevent.X >= 0 &&
- mevent.Y >= 0 &&
- mevent.X < this.ClientSize.Width &&
- mevent.Y <= this.ClientSize.Height) {
+ if (ClientRectangle.Contains (mevent.Location))
OnClick (EventArgs.Empty);
- }
}
base.OnMouseUp (mevent);
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2007-06-06 13:42:57 UTC (rev 78736)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2007-06-06 13:44:54 UTC (rev 78737)
@@ -1,3 +1,14 @@
+2007-06-06 Jonathan Pobst <[EMAIL PROTECTED]>
+
+ * Button.cs: Override GetPreferredSizeCore.
+ * ButtonBase.cs: PerformLayout after changing properties that can affect
+ AutoSize. Simplify some mouse/keyboard code.
+ * Control.cs: PerformLayout after changing Padding if AutoSize = true.
+ * MouseEventArgs.cs: Make Location internal for 1.1.
+ * TextRenderer.cs: Make MeasureTextInternal (string, Font, bool)
internal for 1.1.
+ * Theme.cs: Add CalculateButtonAutoSize.
+ * ThemeWin32Classic.cs: Implement CalculateButtonAutoSize.
+
2007-06-05 Miguel de Icaza <[EMAIL PROTECTED]>
* TreeNodeCollection.cs: Applied patch from Neil Cawse <[EMAIL
PROTECTED]>
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs
2007-06-06 13:42:57 UTC (rev 78736)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Control.cs
2007-06-06 13:44:54 UTC (rev 78737)
@@ -2884,7 +2884,12 @@
if (padding != value) {
padding = value;
OnPaddingChanged (EventArgs.Empty);
- PerformLayout ();
+
+ // Changing padding generally requires
a new size
+ if (this.AutoSize && this.Parent !=
null)
+ parent.PerformLayout (this,
"Padding");
+ else
+ PerformLayout (this, "Padding");
}
}
}
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/MouseEventArgs.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/MouseEventArgs.cs
2007-06-06 13:42:57 UTC (rev 78736)
+++
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/MouseEventArgs.cs
2007-06-06 13:44:54 UTC (rev 78737)
@@ -79,12 +79,15 @@
}
}
#if NET_2_0
- public Point Location {
+ public
+#else
+ internal
+#endif
+ Point Location {
get {
return new Point (this.x, this.y);
}
}
-#endif
#endregion // Public Instance Properties
}
}
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextRenderer.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextRenderer.cs
2007-06-06 13:42:57 UTC (rev 78736)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextRenderer.cs
2007-06-06 13:44:54 UTC (rev 78737)
@@ -315,6 +315,11 @@
DrawTextInternal (dc, text, font, bounds, foreColor,
Color.Transparent, flags, useDrawString);
}
+ internal static Size MeasureTextInternal (string text, Font
font, bool useMeasureString)
+ {
+ return MeasureTextInternal (Graphics.FromImage
(measure_bitmap), text, font, Size.Empty, TextFormatFlags.Default,
useMeasureString);
+ }
+
#if NET_2_0
internal static void DrawTextInternal (IDeviceContext dc,
string text, Font font, Point pt, Color foreColor, Color backColor,
TextFormatFlags flags, bool useDrawString)
{
@@ -322,11 +327,6 @@
DrawTextInternal (dc, text, font, new Rectangle (pt,
sz), foreColor, backColor, flags, useDrawString);
}
- internal static Size MeasureTextInternal (string text, Font
font, bool useMeasureString)
- {
- return MeasureTextInternal (Graphics.FromImage
(measure_bitmap), text, font, Size.Empty, TextFormatFlags.Default,
useMeasureString);
- }
-
internal static Size MeasureTextInternal (IDeviceContext dc,
string text, Font font, bool useMeasureString)
{
return MeasureTextInternal (dc, text, font, Size.Empty,
TextFormatFlags.Default, useMeasureString);
@@ -405,7 +405,6 @@
// sf.FormatFlags |=
StringFormatFlags.DirectionRightToLeft;
if ((flags & TextFormatFlags.NoClipping) ==
TextFormatFlags.NoClipping)
sf.FormatFlags |= StringFormatFlags.NoClip;
- //sf.FormatFlags |= StringFormatFlags.NoClip;
if ((flags & TextFormatFlags.WordBreak) == 0)
sf.FormatFlags |= StringFormatFlags.LineLimit;
@@ -491,4 +490,4 @@
#endif
#endregion
}
-}
\ No newline at end of file
+}
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs
2007-06-06 13:42:57 UTC (rev 78736)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs
2007-06-06 13:44:54 UTC (rev 78737)
@@ -696,7 +696,10 @@
#endregion // OwnerDraw Support
#region Button
- public abstract void CalculateButtonTextAndImageLayout (Button
b, out Rectangle textRectangle, out Rectangle imageRectangle);
+#if NET_2_0
+ public abstract Size CalculateButtonAutoSize (Button button);
+#endif
+ public abstract void CalculateButtonTextAndImageLayout
(ButtonBase b, out Rectangle textRectangle, out Rectangle imageRectangle);
public abstract void DrawButton (Graphics g, Button b,
Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle);
public abstract void DrawFlatButton (Graphics g, Button b,
Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle);
public abstract void DrawPopupButton (Graphics g, Button b,
Rectangle textBounds, Rectangle imageBounds, Rectangle clipRectangle);
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
2007-06-06 13:42:57 UTC (rev 78736)
+++
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
2007-06-06 13:44:54 UTC (rev 78737)
@@ -253,7 +253,7 @@
public virtual void DrawFlatButtonText (Graphics g, Button
button, Rectangle textBounds)
{
- // No changes from Standard for image for this theme
+ // No changes from Standard for text for this theme
DrawButtonText (g, button, textBounds);
}
#endregion
@@ -311,8 +311,46 @@
#endregion
#region Button Layout Calculations
- public override void CalculateButtonTextAndImageLayout (Button
button, out Rectangle textRectangle, out Rectangle imageRectangle)
+#if NET_2_0
+ public override Size CalculateButtonAutoSize (Button button)
{
+ Size ret_size = Size.Empty;
+ Size text_size = TextRenderer.MeasureTextInternal
(button.Text, button.Font, button.UseCompatibleTextRendering);
+ Size image_size = button.Image == null ? Size.Empty :
button.Image.Size;
+
+ // Pad the text size
+ if (button.Text.Length != 0) {
+ text_size.Height += 4;
+ text_size.Width += 4;
+ }
+
+ switch (button.TextImageRelation) {
+ case TextImageRelation.Overlay:
+ ret_size.Height = Math.Max
(button.Text.Length == 0 ? 0 : text_size.Height, image_size.Height);
+ ret_size.Width = Math.Max
(text_size.Width, image_size.Width);
+ break;
+ case TextImageRelation.ImageAboveText:
+ case TextImageRelation.TextAboveImage:
+ ret_size.Height = text_size.Height +
image_size.Height;
+ ret_size.Width = Math.Max
(text_size.Width, image_size.Width);
+ break;
+ case TextImageRelation.ImageBeforeText:
+ case TextImageRelation.TextBeforeImage:
+ ret_size.Height = Math.Max
(text_size.Height, image_size.Height);
+ ret_size.Width = text_size.Width +
image_size.Width;
+ break;
+ }
+
+ // Pad the result
+ ret_size.Height += (button.Padding.Vertical + 6);
+ ret_size.Width += (button.Padding.Horizontal + 6);
+
+ return ret_size;
+ }
+#endif
+
+ public override void CalculateButtonTextAndImageLayout
(ButtonBase button, out Rectangle textRectangle, out Rectangle imageRectangle)
+ {
Image image = button.Image;
string text = button.Text;
Rectangle content_rect = button.ClientRectangle;
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-06-06 13:42:57 UTC (rev 78736)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms_test.dll.sources
2007-06-06 13:44:54 UTC (rev 78737)
@@ -8,6 +8,7 @@
System.Windows.Forms/BindingMemberInfoTest.cs
System.Windows.Forms/BindingNavigatorTest.cs
System.Windows.Forms/BindingSourceTest.cs
+System.Windows.Forms/ButtonBaseTest.cs
System.Windows.Forms/ButtonTest.cs
System.Windows.Forms/CheckBoxEventTest.cs
System.Windows.Forms/CheckBoxTest.cs
Added:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ButtonBaseTest.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ButtonBaseTest.cs
2007-06-06 13:42:57 UTC (rev 78736)
+++
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ButtonBaseTest.cs
2007-06-06 13:44:54 UTC (rev 78737)
@@ -0,0 +1,48 @@
+//
+// Copyright (c) 2007 Novell, Inc.
+//
+// Authors:
+// Jonathan Pobst <[EMAIL PROTECTED]>
+//
+
+using System;
+using System.Windows.Forms;
+using System.Drawing;
+using NUnit.Framework;
+
+namespace MonoTests.System.Windows.Forms
+{
+ [TestFixture]
+ public class ButtonBaseTest
+ {
+ [Test]
+ public void Constructor ()
+ {
+ NullButton b = new NullButton ();
+
+ Assert.AreEqual (SystemColors.Control, b.BackColor,
"A4");
+ Assert.AreEqual (FlatStyle.Standard, b.FlatStyle, "A6");
+ Assert.AreEqual (null, b.Image, "A7");
+ Assert.AreEqual (ContentAlignment.MiddleCenter,
b.ImageAlign, "A8");
+ Assert.AreEqual (-1, b.ImageIndex, "A9");
+ Assert.AreEqual (null, b.ImageList, "A11");
+ Assert.AreEqual (ImeMode.Disable, b.ImeMode, "A12");
+ Assert.AreEqual (string.Empty, b.Text, "A13");
+ Assert.AreEqual (ContentAlignment.MiddleCenter,
b.TextAlign, "A14");
+
+#if NET_2_0
+ Assert.AreEqual (false, b.AutoEllipsis, "A1");
+ Assert.AreEqual (false, b.AutoSize, "A2");
+ Assert.AreEqual (string.Empty, b.ImageKey, "A10");
+ Assert.AreEqual (TextImageRelation.Overlay,
b.TextImageRelation, "A15");
+ Assert.AreEqual (true, b.UseCompatibleTextRendering,
"A16");
+ Assert.AreEqual (true, b.UseMnemonic, "A17");
+ Assert.AreEqual (true, b.UseVisualStyleBackColor,
"A18");
+#endif
+ }
+
+ private class NullButton : ButtonBase
+ {
+ }
+ }
+}
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ButtonTest.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ButtonTest.cs
2007-06-06 13:42:57 UTC (rev 78736)
+++
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ButtonTest.cs
2007-06-06 13:44:54 UTC (rev 78737)
@@ -17,11 +17,31 @@
public class ButtonTest
{
[Test]
- public void FlatStyleTest ()
+ public void Constructor ()
{
- Button B1 = new Button ();
- Assert.AreEqual (FlatStyle.Standard, B1.FlatStyle,
"#1");
+ Button b = new Button ();
+
+ Assert.AreEqual (SystemColors.Control, b.BackColor,
"A4");
+ Assert.AreEqual (FlatStyle.Standard, b.FlatStyle, "A6");
+ Assert.AreEqual (null, b.Image, "A7");
+ Assert.AreEqual (ContentAlignment.MiddleCenter,
b.ImageAlign, "A8");
+ Assert.AreEqual (-1, b.ImageIndex, "A9");
+ Assert.AreEqual (null, b.ImageList, "A11");
+ Assert.AreEqual (ImeMode.Disable, b.ImeMode, "A12");
+ Assert.AreEqual (string.Empty, b.Text, "A13");
+ Assert.AreEqual (ContentAlignment.MiddleCenter,
b.TextAlign, "A14");
+
+#if NET_2_0
+ Assert.AreEqual (false, b.AutoEllipsis, "A1");
+ Assert.AreEqual (false, b.AutoSize, "A2");
+ Assert.AreEqual (string.Empty, b.ImageKey, "A10");
+ Assert.AreEqual (TextImageRelation.Overlay,
b.TextImageRelation, "A15");
+ Assert.AreEqual (true, b.UseCompatibleTextRendering,
"A16");
+ Assert.AreEqual (true, b.UseMnemonic, "A17");
+ Assert.AreEqual (true, b.UseVisualStyleBackColor,
"A18");
+#endif
}
+
#if NET_2_0
[Test]
public void FlatButtonAppearanceTest ()
@@ -58,6 +78,84 @@
}
[Test]
+ public void BehaviorAutoSize ()
+ {
+ Form f = new Form ();
+ f.ShowInTaskbar = false;
+
+ f.Show ();
+
+ Image i = new Bitmap (20, 20);
+ String s = "My test string";
+
+ Button b = new Button ();
+ Size s_size = TextRenderer.MeasureText (s, new Button
().Font);
+
+ b.UseCompatibleTextRendering = false;
+ b.AutoSize = true;
+ b.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ b.Text = s;
+ f.Controls.Add (b);
+
+ // Text only
+ b.TextImageRelation = TextImageRelation.Overlay;
+ Assert.AreEqual (new Size (s_size.Width + 10,
s_size.Height + 10), b.Size, "A1");
+ b.TextImageRelation = TextImageRelation.ImageAboveText;
+ Assert.AreEqual (new Size (s_size.Width + 10,
s_size.Height + 10), b.Size, "A2");
+ b.TextImageRelation = TextImageRelation.ImageBeforeText;
+ Assert.AreEqual (new Size (s_size.Width + 10,
s_size.Height + 10), b.Size, "A3");
+ b.TextImageRelation = TextImageRelation.TextAboveImage;
+ Assert.AreEqual (new Size (s_size.Width + 10,
s_size.Height + 10), b.Size, "A4");
+ b.TextImageRelation = TextImageRelation.TextBeforeImage;
+ Assert.AreEqual (new Size (s_size.Width + 10,
s_size.Height + 10), b.Size, "A5");
+
+ // Text and Image
+ b.Image = i;
+ b.TextImageRelation = TextImageRelation.Overlay;
+ Assert.AreEqual (new Size (s_size.Width + 10, i.Height
+ 6), b.Size, "A6");
+ b.TextImageRelation = TextImageRelation.ImageAboveText;
+ Assert.AreEqual (new Size (s_size.Width + 10,
s_size.Height + i.Height + 10), b.Size, "A7");
+ b.TextImageRelation = TextImageRelation.ImageBeforeText;
+ Assert.AreEqual (new Size (s_size.Width + i.Width + 10,
i.Height + 6), b.Size, "A8");
+ b.TextImageRelation = TextImageRelation.TextAboveImage;
+ Assert.AreEqual (new Size (s_size.Width + 10,
s_size.Height + i.Height + 10), b.Size, "A9");
+ b.TextImageRelation = TextImageRelation.TextBeforeImage;
+ Assert.AreEqual (new Size (s_size.Width + i.Width + 10,
i.Height + 6), b.Size, "A10");
+
+ // Image only
+ b.Text = string.Empty;
+ b.TextImageRelation = TextImageRelation.Overlay;
+ Assert.AreEqual (new Size (i.Height + 6, i.Height + 6),
b.Size, "A11");
+ b.TextImageRelation = TextImageRelation.ImageAboveText;
+ Assert.AreEqual (new Size (i.Height + 6, i.Height + 6),
b.Size, "A12");
+ b.TextImageRelation = TextImageRelation.ImageBeforeText;
+ Assert.AreEqual (new Size (i.Height + 6, i.Height + 6),
b.Size, "A13");
+ b.TextImageRelation = TextImageRelation.TextAboveImage;
+ Assert.AreEqual (new Size (i.Height + 6, i.Height + 6),
b.Size, "A14");
+ b.TextImageRelation = TextImageRelation.TextBeforeImage;
+ Assert.AreEqual (new Size (i.Height + 6, i.Height + 6),
b.Size, "A15");
+
+ // Neither
+ b.Image = null;
+ b.TextImageRelation = TextImageRelation.Overlay;
+ Assert.AreEqual (new Size (6, 6), b.Size, "A16");
+ b.TextImageRelation = TextImageRelation.ImageAboveText;
+ Assert.AreEqual (new Size (6, 6), b.Size, "A17");
+ b.TextImageRelation = TextImageRelation.ImageBeforeText;
+ Assert.AreEqual (new Size (6, 6), b.Size, "A18");
+ b.TextImageRelation = TextImageRelation.TextAboveImage;
+ Assert.AreEqual (new Size (6, 6), b.Size, "A19");
+ b.TextImageRelation = TextImageRelation.TextBeforeImage;
+ Assert.AreEqual (new Size (6, 6), b.Size, "A20");
+
+ // Padding
+ b.Padding = new Padding (5, 10, 15, 20);
+ Assert.AreEqual (new Size (6 + b.Padding.Horizontal, 6
+ b.Padding.Vertical), b.Size, "A21");
+
+ f.Dispose ();
+ }
+
+ [Test]
public void BehaviorImageList ()
{
// Basically, this shows that whichever of
[Image|ImageIndex|ImageKey]
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
2007-06-06 13:42:57 UTC (rev 78736)
+++ trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
2007-06-06 13:44:54 UTC (rev 78737)
@@ -1,3 +1,8 @@
+2007-06-06 Jonathan Pobst <[EMAIL PROTECTED]>
+
+ * ButtonBaseTest.cs: Add test for default values.
+ * ButtonTest.cs: Add test for default values, add test for AutoSize.
+
2007-06-04 Gert Driesen <[EMAIL PROTECTED]>
* PropertyGridTest.cs: Added test for bug #81796, and reworked
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches