Author: andreia
Date: 2006-11-28 22:13:04 -0500 (Tue, 28 Nov 2006)
New Revision: 68635
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Form.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintControllerWithStatusDialog.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintDialog.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintPreviewControl.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintPreviewDialog.cs
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/PrintDialogTest.cs
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/tests-ms.sh
trunk/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog
trunk/mcs/class/System.Drawing/System.Drawing.Printing/PageSettings.cs
trunk/mcs/class/System.Drawing/System.Drawing.Printing/PrintingServicesWin32.cs
Log:
2006-11-28 Andreia Gaita <[EMAIL PROTECTED]>
* Form.cs: Removed call to UpdateBounds on Form
constructor, it was causing a call to CreateHandle
before it was supposed to.
* PrintControllerWithStatusDialog: Applied patch
by Chris Toshok to hide controller when there are
no printers available.
PrintDialog.cs: initialize printer settings to
null - correct DefaultValues test #5
* PrintPreviewControl.cs: Move PrintController
initialization to GeneratePreview
* PrintPreviewDialog.cs:
- Remove Preview generation from Document_set(). It is
called on OnPaint
- Throw InvalidPrinterException on CreateHandle if
a Document is set but there are no printers or
printer is not valid.
* ThemeWin32Classic: don't paint PrintPreviewControl
if there is nothing to paint
* PageSettings.cs:
- internal member name changes to help
out with intelisense.
- Use internal members directly instead of using
corresponding properties so that exceptions are not thrown
* PrintingServicesWin32:
- Only return DefaultPrinter if it is actually valid. This
is because Win32GetDefaultPrinter returns a printer name
even if PrintSpooler is stopped (which should behave the
same way as if there are no printers installed)
- Do not try to allocate if EnumPrinters returns 0
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2006-11-29 03:11:11 UTC (rev 68634)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2006-11-29 03:13:04 UTC (rev 68635)
@@ -1,3 +1,24 @@
+2006-11-28 Andreia Gaita <[EMAIL PROTECTED]>
+
+ * Form.cs: Removed call to UpdateBounds on Form
+ constructor, it was causing a call to CreateHandle
+ before it was supposed to.
+ * PrintControllerWithStatusDialog: Applied patch
+ by Chris Toshok to hide controller when there are
+ no printers available.
+ PrintDialog.cs: initialize printer settings to
+ null - correct DefaultValues test #5
+ * PrintPreviewControl.cs: Move PrintController
+ initialization to GeneratePreview
+ * PrintPreviewDialog.cs:
+ - Remove Preview generation from Document_set(). It is
+ called on OnPaint
+ - Throw InvalidPrinterException on CreateHandle if
+ a Document is set but there are no printers or
+ printer is not valid.
+ * ThemeWin32Classic: don't paint PrintPreviewControl
+ if there is nothing to paint
+
2006-11-28 Miguel de Icaza <[EMAIL PROTECTED]>
* Form.cs: Add another popular method.
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Form.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Form.cs
2006-11-29 03:11:11 UTC (rev 68634)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Form.cs
2006-11-29 03:13:04 UTC (rev 68635)
@@ -85,7 +85,7 @@
#region Private & Internal Methods
static Form ()
{
- default_icon = (Icon)Locale.GetResource("mono.ico");
+ default_icon = Locale.GetResource("mono.ico") as Icon;
}
// warning: this is only hooked up when an mdi container is
created.
@@ -177,7 +177,6 @@
owned_forms = new Form.ControlCollection(this);
transparency_key = Color.Empty;
- UpdateBounds();
}
#endregion // Public Constructor & Destructor
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintControllerWithStatusDialog.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintControllerWithStatusDialog.cs
2006-11-29 03:11:11 UTC (rev 68634)
+++
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintControllerWithStatusDialog.cs
2006-11-29 03:13:04 UTC (rev 68635)
@@ -86,16 +86,22 @@
}
public override void OnStartPrint(PrintDocument document,
PrintEventArgs e) {
- currentPage = 0;
- dialog.Show();
- if (document.PrinterSettings.PrintToFile) {
- SaveFileDialog d = new SaveFileDialog ();
- if (d.ShowDialog () != DialogResult.OK)
- // Windows throws a Win32Exception here.
- throw new Exception ("The operation was
canceled by the user");
- Set_PrinterSettings_PrintFileName
(document.PrinterSettings, d.FileName);
+ try {
+ currentPage = 0;
+ dialog.Show();
+ if (document.PrinterSettings.PrintToFile) {
+ SaveFileDialog d = new SaveFileDialog
();
+ if (d.ShowDialog () != DialogResult.OK)
+ // Windows throws a
Win32Exception here.
+ throw new Exception ("The
operation was canceled by the user");
+ Set_PrinterSettings_PrintFileName
(document.PrinterSettings, d.FileName);
+ }
+ underlyingController.OnStartPrint (document, e);
}
- underlyingController.OnStartPrint (document, e);
+ catch {
+ dialog.Hide ();
+ throw;
+ }
}
#endregion // Protected Instance Methods
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintDialog.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintDialog.cs
2006-11-29 03:11:11 UTC (rev 68634)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintDialog.cs
2006-11-29 03:13:04 UTC (rev 68635)
@@ -82,7 +82,7 @@
public override void Reset ()
{
- current_settings = new PrinterSettings ();
+ current_settings = null;
AllowPrintToFile = true;
AllowSelection = false;
AllowSomePages = false;
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintPreviewControl.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintPreviewControl.cs
2006-11-29 03:11:11 UTC (rev 68634)
+++
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintPreviewControl.cs
2006-11-29 03:13:04 UTC (rev 68635)
@@ -111,8 +111,6 @@
get { return document; }
set {
document = value;
- document.PrintController = new
PrintControllerWithStatusDialog (controller);
- InvalidatePreview ();
}
}
[DefaultValue(1)]
@@ -184,6 +182,7 @@
return;
if (page_infos == null) {
+ document.PrintController = new
PrintControllerWithStatusDialog (controller);
document.Print ();
page_infos =
controller.GetPreviewPageInfo ();
}
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintPreviewDialog.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintPreviewDialog.cs
2006-11-29 03:11:11 UTC (rev 68634)
+++
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintPreviewDialog.cs
2006-11-29 03:13:04 UTC (rev 68635)
@@ -530,9 +530,6 @@
get { return print_preview.Document; }
set {
print_preview.Document = value;
- print_preview.GeneratePreview ();
- pageUpDown.Minimum =
print_preview.page_infos.Length > 0 ? 1 : 0;
- pageUpDown.Maximum =
print_preview.page_infos.Length;
}
}
@@ -883,6 +880,9 @@
}
protected override void CreateHandle() {
+ if (this.Document != null &&
!this.Document.PrinterSettings.IsValid) {
+ throw new
InvalidPrinterException(this.Document.PrinterSettings);
+ }
base.CreateHandle ();
}
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
2006-11-29 03:11:11 UTC (rev 68634)
+++
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
2006-11-29 03:13:04 UTC (rev 68635)
@@ -2911,6 +2911,8 @@
{
int padding = 8;
PreviewPageInfo[] pis = preview.page_infos;
+ if (pis == null)
+ return;
int page_x, page_y;
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/PrintDialogTest.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/PrintDialogTest.cs
2006-11-29 03:11:11 UTC (rev 68634)
+++
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/PrintDialogTest.cs
2006-11-29 03:13:04 UTC (rev 68635)
@@ -38,8 +38,7 @@
[TestFixture]
public class PrintDialogTest
{
- [Test]
- [Category ("NotWorking")]
+ [Test]
public void DefaultValues ()
{
PrintDialog pd = new PrintDialog ();
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/tests-ms.sh
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/tests-ms.sh
2006-11-29 03:11:11 UTC (rev 68634)
+++ trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/tests-ms.sh
2006-11-29 03:13:04 UTC (rev 68635)
@@ -1,28 +1,28 @@
-#!/bin/sh
-
-if [ $# -eq 0 ]; then
- echo "You should give a list of test names such as: "
- echo "$0 System.Windows.Forms.ListViewItemTest"
- echo "or"
- echo "$0 all"
- exit 1
-fi
-
-export MSNet=Yes
-cp ../../System.Windows.Forms_test_default.dll .
-topdir=../../../..
-NUNITCONSOLE=$topdir/class/lib/default/nunit-console.exe
-MONO_PATH=$topdir/nunit20:$topdir/class/lib:.
-
-for i in $@; do
- if [ "$i" = "all" ]; then
- fixture=""
- else
- fixture="/fixture:MonoTests.${i}"
- fi
- MONO_PATH=$MONO_PATH \
- ${NUNITCONSOLE} System.Windows.Forms_test_default.dll $fixture
-done
-
-
-
+#!/bin/sh
+
+if [ $# -eq 0 ]; then
+ echo "You should give a list of test names such as: "
+ echo "$0 System.Windows.Forms.ListViewItemTest"
+ echo "or"
+ echo "$0 all"
+ exit 1
+fi
+
+export MSNet=Yes
+cp ../../System.Windows.Forms_test_default.dll .
+topdir=../../../..
+NUNITCONSOLE=$topdir/class/lib/default/nunit-console.exe
+MONO_PATH=$topdir/nunit20:$topdir/class/lib:.
+
+for i in $@; do
+ if [ "$i" = "all" ]; then
+ fixture=""
+ else
+ fixture="/fixture:MonoTests.${i}"
+ fi
+ MONO_PATH=$MONO_PATH \
+ ${NUNITCONSOLE} System.Windows.Forms_test_default.dll $fixture
+done
+
+
+
Modified: trunk/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog
===================================================================
--- trunk/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog
2006-11-29 03:11:11 UTC (rev 68634)
+++ trunk/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog
2006-11-29 03:13:04 UTC (rev 68635)
@@ -1,3 +1,17 @@
+2006-11-28 Andreia Gaita <[EMAIL PROTECTED]>
+
+ * PageSettings.cs:
+ - internal member name changes to help
+ out with intelisense.
+ - Use internal members directly instead of using
+ corresponding properties so that exceptions are not thrown
+ * PrintingServicesWin32:
+ - Only return DefaultPrinter if it is actually valid. This
+ is because Win32GetDefaultPrinter returns a printer name
+ even if PrintSpooler is stopped (which should behave the
+ same way as if there are no printers installed)
+ - Do not try to allocate if EnumPrinters returns 0
+
2006-11-25 Jordi Mas i Hernandez <[EMAIL PROTECTED]>
* PrintingServicesUnix.cs: Implements GetPrintDialogInfo
Modified: trunk/mcs/class/System.Drawing/System.Drawing.Printing/PageSettings.cs
===================================================================
--- trunk/mcs/class/System.Drawing/System.Drawing.Printing/PageSettings.cs
2006-11-29 03:11:11 UTC (rev 68634)
+++ trunk/mcs/class/System.Drawing/System.Drawing.Printing/PageSettings.cs
2006-11-29 03:13:04 UTC (rev 68635)
@@ -44,17 +44,19 @@
#endif
public class PageSettings : ICloneable
{
- internal bool _Color;
- internal bool _Landscape;
- internal PaperSize _PaperSize;
- internal PaperSource _PaperSource;
- internal PrinterResolution _PrinterResolution;
- float _HardMarginX;
- float _HardMarginY;
- RectangleF _PrintableArea;
+ internal bool color;
+ internal bool landscape;
+ internal PaperSize paperSize;
+ internal PaperSource paperSource;
+ internal PrinterResolution printerResolution;
+
// create a new default Margins object (is 1 inch for all
margins)
- Margins _Margins = new Margins();
- PrinterSettings _PrinterSettings;
+ Margins margins = new Margins();
+
+ float hardMarginX;
+ float hardMarginY;
+ RectangleF printableArea;
+ PrinterSettings printerSettings;
public PageSettings() : this(new PrinterSettings())
{
@@ -64,11 +66,11 @@
{
PrinterSettings = printerSettings;
- Color = printerSettings.DefaultPageSettings._Color;
- Landscape =
printerSettings.DefaultPageSettings._Landscape;
- PaperSize =
printerSettings.DefaultPageSettings._PaperSize;
- PaperSource =
printerSettings.DefaultPageSettings._PaperSource;
- PrinterResolution =
printerSettings.DefaultPageSettings._PrinterResolution;
+ this.color = printerSettings.DefaultPageSettings.color;
+ this.landscape =
printerSettings.DefaultPageSettings.landscape;
+ this.paperSize =
printerSettings.DefaultPageSettings.paperSize;
+ this.paperSource =
printerSettings.DefaultPageSettings.paperSource;
+ this.printerResolution =
printerSettings.DefaultPageSettings.printerResolution;
}
// used by PrinterSettings.DefaultPageSettings
@@ -76,122 +78,122 @@
{
PrinterSettings = printerSettings;
- _Color = color;
- _Landscape = landscape;
- _PaperSize = paperSize;
- _PaperSource = paperSource;
- _PrinterResolution = printerResolution;
+ this.color = color;
+ this.landscape = landscape;
+ this.paperSize = paperSize;
+ this.paperSource = paperSource;
+ this.printerResolution = printerResolution;
}
//props
public Rectangle Bounds{
get{
- int width = this.PaperSize.Width;
- int height = this.PaperSize.Height;
+ int width = this.paperSize.Width;
+ int height = this.paperSize.Height;
- width -= this.Margins.Left + this.Margins.Right;
- height -= this.Margins.Top +
this.Margins.Bottom;
+ width -= this.margins.Left + this.margins.Right;
+ height -= this.margins.Top +
this.margins.Bottom;
- if (this.Landscape) {
+ if (this.landscape) {
// swap width and height
int tmp = width;
width = height;
height = tmp;
}
- return new Rectangle (Margins.Left,
Margins.Top, width, height);
+ return new Rectangle (this.margins.Left,
this.margins.Top, width, height);
}
}
public bool Color{
get{
- if (!this._PrinterSettings.IsValid)
- throw new
InvalidPrinterException(this._PrinterSettings);
- return _Color;
+ if (!this.printerSettings.IsValid)
+ throw new
InvalidPrinterException(this.printerSettings);
+ return color;
}
set{
- _Color = value;
+ color = value;
}
}
public bool Landscape {
get{
- if (!this._PrinterSettings.IsValid)
- throw new
InvalidPrinterException(this._PrinterSettings);
- return _Landscape;
+ if (!this.printerSettings.IsValid)
+ throw new
InvalidPrinterException(this.printerSettings);
+ return landscape;
}
set{
- _Landscape = value;
+ landscape = value;
}
}
public Margins Margins{
get{
- if (!this._PrinterSettings.IsValid)
- throw new
InvalidPrinterException(this._PrinterSettings);
- return _Margins;
+ if (!this.printerSettings.IsValid)
+ throw new
InvalidPrinterException(this.printerSettings);
+ return margins;
}
set{
- _Margins = value;
+ margins = value;
}
}
public PaperSize PaperSize{
get{
- if (!this._PrinterSettings.IsValid)
- throw new
InvalidPrinterException(this._PrinterSettings);
- return _PaperSize;
+ if (!this.printerSettings.IsValid)
+ throw new
InvalidPrinterException(this.printerSettings);
+ return paperSize;
}
set{
- _PaperSize = value;
+ paperSize = value;
}
}
public PaperSource PaperSource{
get{
- if (!this._PrinterSettings.IsValid)
- throw new
InvalidPrinterException(this._PrinterSettings);
- return _PaperSource;
+ if (!this.printerSettings.IsValid)
+ throw new
InvalidPrinterException(this.printerSettings);
+ return paperSource;
}
set{
- _PaperSource = value;
+ paperSource = value;
}
}
public PrinterResolution PrinterResolution{
get{
- if (!this._PrinterSettings.IsValid)
- throw new
InvalidPrinterException(this._PrinterSettings);
- return _PrinterResolution;
+ if (!this.printerSettings.IsValid)
+ throw new
InvalidPrinterException(this.printerSettings);
+ return printerResolution;
}
set{
- _PrinterResolution = value;
+ printerResolution = value;
}
}
public PrinterSettings PrinterSettings{
get{
- return _PrinterSettings;
+ return printerSettings;
}
set{
- _PrinterSettings = value;
+ printerSettings = value;
}
}
#if NET_2_0
public float HardMarginX {
get {
- return _HardMarginX;
+ return hardMarginX;
}
}
public float HardMarginY {
get {
- return _HardMarginY;
+ return hardMarginY;
}
}
public RectangleF PrintableArea {
get {
- return _PrintableArea;
+ return printableArea;
}
}
#endif
@@ -200,14 +202,14 @@
public object Clone ()
{
// We do a deep copy
- PrinterResolution pres = new PrinterResolution
(_PrinterResolution.X, _PrinterResolution.Y, _PrinterResolution.Kind);
- PaperSource psource = new PaperSource
(_PaperSource.SourceName, _PaperSource.Kind);
- PaperSize psize = new PaperSize (_PaperSize.PaperName,
_PaperSize.Width, _PaperSize.Height);
- psize.SetKind (_PaperSize.Kind);
+ PrinterResolution pres = new PrinterResolution
(this.printerResolution.X, this.printerResolution.Y,
this.printerResolution.Kind);
+ PaperSource psource = new PaperSource
(this.paperSource.SourceName, this.paperSource.Kind);
+ PaperSize psize = new PaperSize
(this.paperSize.PaperName, this.paperSize.Width, this.paperSize.Height);
+ psize.SetKind (this.paperSize.Kind);
- PageSettings ps = new PageSettings (PrinterSettings,
Color, Landscape,
+ PageSettings ps = new PageSettings
(this.printerSettings, this.color, this.landscape,
psize, psource, pres);
- ps.Margins = (Margins) _Margins.Clone ();
+ ps.Margins = (Margins) this.margins.Clone ();
return ps;
}
@@ -232,7 +234,7 @@
ret += ", PrinterResolution={5}";
ret += "]";
- return String.Format(ret, this.Color, this.Landscape,
this.Margins, this.PaperSize, this.PaperSource, this.PrinterResolution);
+ return String.Format(ret, this.color, this.landscape,
this.margins, this.paperSize, this.paperSource, this.printerResolution);
}
}
}
Modified:
trunk/mcs/class/System.Drawing/System.Drawing.Printing/PrintingServicesWin32.cs
===================================================================
---
trunk/mcs/class/System.Drawing/System.Drawing.Printing/PrintingServicesWin32.cs
2006-11-29 03:11:11 UTC (rev 68634)
+++
trunk/mcs/class/System.Drawing/System.Drawing.Printing/PrintingServicesWin32.cs
2006-11-29 03:13:04 UTC (rev 68635)
@@ -296,11 +296,13 @@
// Properties
internal override string DefaultPrinter {
get {
- StringBuilder name = new StringBuilder (1024);
- int length = name.Capacity;
+ StringBuilder name = new StringBuilder (1024);
+ int length = name.Capacity;
- Win32GetDefaultPrinter (name, ref length);
- return name.ToString ();
+ if (Win32GetDefaultPrinter (name, ref length) >
0)
+ if
(this.IsPrinterValid(name.ToString(), false))
+ return name.ToString ();
+ return String.Empty;
}
}
@@ -313,10 +315,14 @@
string s;
// Determine space need it
- Win32EnumPrinters (2 /* PRINTER_ENUM_LOCAL */,
- null, 2, IntPtr.Zero, 0, ref cbNeeded,
ref printers);
+ Win32EnumPrinters (2 /* PRINTER_ENUM_LOCAL */,
+ null, 2, IntPtr.Zero, 0, ref cbNeeded, ref
printers);
- ptr = buff = Marshal.AllocHGlobal ((int)
cbNeeded);
+ if (cbNeeded <= 0)
+ return col;
+
+ ptr = buff = Marshal.AllocHGlobal ((int)
cbNeeded);
+
try {
// Give us the printer list
Win32EnumPrinters (2 /*
PRINTER_ENUM_LOCAL */,
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches