diff options
author | Carlos Alberto Cortez <calberto.cortez@gmail.com> | 2006-11-16 22:07:00 +0300 |
---|---|---|
committer | Carlos Alberto Cortez <calberto.cortez@gmail.com> | 2006-11-16 22:07:00 +0300 |
commit | 85696e7b1e0dc476d6e4bf0b3ad36a61d210c551 (patch) | |
tree | 963d15c032c5a79b51a257d3c2f4a06d2a145bd9 /mcs/class/System.Drawing/System.Drawing.Printing | |
parent | 6edfd628af02a61df8ed7713f3da8d13404f14dd (diff) |
2006-11-16 Carlos Alberto Cortez <calberto.cortez@gmail.com>
* PrintDocument.cs: Use QueryPageSettingsEventArgs.PageSettings
in PrintPageEventArgs, instead of using the default one (mimic
.Net behaviour).
* PageSettings.cs: Implement Clone the right way (intead of using
the default page settings).
svn path=/trunk/mcs/; revision=68030
Diffstat (limited to 'mcs/class/System.Drawing/System.Drawing.Printing')
3 files changed, 26 insertions, 5 deletions
diff --git a/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog b/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog index b606b0cf45e..5ad2c2605b4 100644 --- a/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog +++ b/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog @@ -1,3 +1,12 @@ +2006-11-16 Carlos Alberto Cortez <calberto.cortez@gmail.com> + + * PrintDocument.cs: Use QueryPageSettingsEventArgs.PageSettings + in PrintPageEventArgs, instead of using the default one (mimic + .Net behaviour). + + * PageSettings.cs: Implement Clone the right way (intead of using + the default page settings). + 2006-11-14 Andreia Gaita <avidigal@novell.com> Fixes #79835, implements PrinterSettings.IsValid, throws proper InvalidPrinterException with differentiated messages. diff --git a/mcs/class/System.Drawing/System.Drawing.Printing/PageSettings.cs b/mcs/class/System.Drawing/System.Drawing.Printing/PageSettings.cs index 8032033f820..deb464d6b5a 100644 --- a/mcs/class/System.Drawing/System.Drawing.Printing/PageSettings.cs +++ b/mcs/class/System.Drawing/System.Drawing.Printing/PageSettings.cs @@ -197,8 +197,18 @@ namespace System.Drawing.Printing #endif
- public object Clone(){ - return new PageSettings(this.PrinterSettings); + 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); + + PageSettings ps = new PageSettings (PrinterSettings, Color, Landscape, + psize, psource, pres); + ps.Margins = (Margins) _Margins.Clone (); + return ps; } diff --git a/mcs/class/System.Drawing/System.Drawing.Printing/PrintDocument.cs b/mcs/class/System.Drawing/System.Drawing.Printing/PrintDocument.cs index ace3b4b7aa1..c6ac9469b64 100644 --- a/mcs/class/System.Drawing/System.Drawing.Printing/PrintDocument.cs +++ b/mcs/class/System.Drawing/System.Drawing.Printing/PrintDocument.cs @@ -55,7 +55,7 @@ namespace System.Drawing.Printing printersettings = new PrinterSettings(); // use default values printcontroller = new StandardPrintController(); } - + // properties [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)] [Browsable (false)] @@ -139,9 +139,11 @@ namespace System.Drawing.Printing PrintPageEventArgs printPageArgs; do { - PageSettings pageSettings = DefaultPageSettings.Clone() as PageSettings; - this.OnQueryPageSettings(new QueryPageSettingsEventArgs(pageSettings)); + QueryPageSettingsEventArgs queryPageSettingsArgs = new QueryPageSettingsEventArgs ( + DefaultPageSettings.Clone () as PageSettings); + OnQueryPageSettings (queryPageSettingsArgs); + PageSettings pageSettings = queryPageSettingsArgs.PageSettings; printPageArgs = new PrintPageEventArgs( g, pageSettings.Bounds, |