+2009-07-08 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * PaperSource.cs: Implement RawKind.
+ Fixes the remaining bits of #507739.
+
+2009-07-08 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * PaperSize.cs: Implement support for RawKind.
+ Patch by Andy Hume (andyhume32@yahoo.co.uk).
+ Fixes part of #507739.
+
+2009-07-07 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * PaperSize.cs: Actually implement RawKind by retrieving and setting
+ the kind field.
+
+2008-11-01 Sebastien Pouliot <sebastien@ximian.com>
+
+ * PrintingServicesUnix.cs: Fix potential crash on 64bit OS. Gendarme
+ rule for checking IntPtr has been updated to cover this case as well
+
+2008-10-12 Sebastien Pouliot <sebastien@ximian.com>
+
+ * PaperSize.cs, PreviewPrintController.cs, PrinterSettings.cs,
+ PrintingPermissionAttribute.cs, PrintingPermission.cs: Remove unneeded
+ field initialization to their default values.
+ [Found using Gendarme AvoidUnneededFieldInitializationRule]
+
+2008-02-10 Sebastien Pouliot <sebastien@ximian.com>
+
+ * PrintingServicesUnix.cs: Fix AvoidToStringOnStringsRule found
+ using Gendarme.
+
+2007-12-10 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesWin32.cs: Add enumeration flag to get remote
+ printers as well as locally connected ones. Fixes #325258
+
+2007-06-30 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Margins.cs: Overloaded operators are 2.0 only.
+
+2007-05-29 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Margins.cs: Implement missing == and != operators (MoMA reports them
+ but they were not included in the class status pages). Fix property
+ setters (to check value), reduced code duplication and changed
+ GetHashCode to be less CPU intensive.
+
+2007-05-24 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * PrintingServicesWin32.cs: Pass 0 as mode to DocumentProperties to
+ obtain the size of the buffer required to hold the DEVMODE structure.
+ Fixes bug #81723.
+
+2007-05-23 Sebastien Pouliot <sebastien@ximian.com>
+
+ * PreviewPrintController.cs: Reduce bitmap size and avoid scaling the
+ print preview (fix bug #80765). Patch from Vladimir Dimitrov.
+ * PrintingServicesUnix.cs: Reorder calculation to avoid loss of
+ precision in integer division. Use printer resolution for Cairo
+ fallback. Patch from Vladimir Dimitrov.
+
+2007-03-13 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServices.cs: Add missing static method SysPrn.GetPrintDialogInfo
+ for SWF to call up printing dialogues.
+
+2007-02-21 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix.cs: Report an error in the console if there is
+ a problem opening the printer.
+
+2007-02-21 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix.cs: don't free up pointers unnecessarily (doh)
+
+2007-02-21 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix.cs: add checks and try blocks to make sure
+ things don't blow up if we try to double free anything (not that
+ we're trying to do anything like that :p )
+
+2007-02-21 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix.cs: fix a double-free bug
+
+2007-02-20 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix.cs: Fix leak caused by not calling cupsFreeDests
+ on certain codepaths. Fix return value of cupsFreeDests to void.
+
+2007-02-20 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix.cs: Correct missing static initialization
+ of loaded printers hashtable, unit tests were failing (oops :p)
+
+2007-02-17 Marek (please complete)
+
+ * PrintPreviewController, InvalidPrinterException:
+ Remove warnings
+
+2007-02-16 Andreia Gaita <avidigal@novell.com>
+
+ Redesign how and when cups gets called to minimize
+ p/invokes, implements caching of printers and printer
+ settings as per calberto's patch - #79822, plotter detection,
+ duplex, fixes for image disposing, code modularization,
+ misc. fixes.
+
+ * PageSettings.cs: Check and ignore null setter values on
+ paper sizes, sources and resolutions.
+
+ * PaperSize.cs: Add default paper size flag
+
+ * PaperSource.cs: Add default paper source flag, minor code
+ beautification
+
+ * PrinterSettings.cs: Add duplex and plotter implementation,
+ modify calls to PrintingServices to support caching, add
+ a printer capabilities list to store specific printer options -
+ only loaded with cups, for now. Move the internal list classes
+ to the end of the code so as not to clutter.
+
+ * PrintingServices.cs: Separate the PrintingServices class in 2 -
+ PrintingServices and GlobalPrintingServices (see calberto's patch
+ in #79822). The PrintingServices class is where all the methods
+ caching information reside, the GlobalPrintingServices methods do
+ no caching.
+ The cached information resides on the Printer class, added to the
+ SysPrn class.
+
+ * PrintingServicesUnix.cs: Big rewrite.
+ - Essentially, redesigned and modularized the code to minimize cups
+ calls. Then, applied the caching so all the cups calls are reduced
+ to a minimum, by loading a list of printers onto a hashtable, then
+ loading the settings of the chosen printer and saving that in the
+ hashtable all in one go.
+ - Also, fixes for loading the proper default values of the printer,
+ which are stored in it's global options;
+ - Modularization of cups/ppd loading methods (LoadPrinterOptions,
+ LoadOptionList, OpenPrinter, ClosePrinter) so we don't repeat
+ cups/ppd loading loops everywhere.
+ - Proper disposing of pointers and structures, calling the proper
+ cups free calls.
+ - Add duplex support
+
+ * PrintingServicesWin32.cs: IsPrinterValid is no longer caching the value,
+ since it should be supporting global caching as well, though that is not
+ yet complete on win32. Implements plotter detection support, and changes for
+ the new PrinterSettings/GlobalPrinterSettings structure. Some minor changes
+ the code to minimize p/invoke calls (load the printer sources and sizes
+ before accessing the collections)
+
+ * StandardPrintController.cs: PrinterSettings/GlobalPrinterSettings structure
+ changes
+
+2007-02-09 Sebastien Pouliot <sebastien@ximian.com>
+
+ * PrintingServicesUnix.cs: Ensure we free the original pointer in
+ GetAlternativeDefaultPrinter (not the one used for iteration).
+
+2007-01-19 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix.cs: Add is_default flag check for
+ detecting default printer when cupsGetDefault doesn't return
+ valid values (mainly ubuntu). Fixes #80198, #80519
+
+2007-01-09 Sebastien Pouliot <sebastien@ximian.com>
+
+ * PrintingServices.cs: Unify platform detection code.
+
+2006-12-04 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * PrintingServicesUnix.cs: Add "landscape" option
+ when using PaperSettings.Landscape set to true. Also
+ swap the width and height for the postscript file.
+
+2006-12-01 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix: Proper size structure use for 64 bit
+ support.
+
+2006-12-01 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix: *properly* check return value from
+ cupsGetDefault. If there are no default printers set,
+ check if there are installed printers, and use that.
+ Hopefully fixes #79835
+
+2006-12-01 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesUnix: check return value from cupsGetDefault.
+ Hopefully fixes #79835
+
+2006-12-01 Jordi Mas i Hernandez <jordimash@gmail.com>
+
+ * PrintingServicesWin32.cs: Fixes paper sizes reading. The POINT
+ structure is 8 bytes long not 4. This fixes margins calculations
+ (based on the paper size) that were badly broken.
+
+2006-11-28 Andreia Gaita <avidigal@novell.com>
+
+ * 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 <jordimash@gmail.com>
+
+ * PrintingServicesUnix.cs: Implements GetPrintDialogInfo
+
+2006-11-24 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ Initial support for PageSettings (color, copies, collate,
+ and media size).
+
+ * StandardPrintController.cs: Pass PrintDocument.PageSettings to
+ create the Graphics object (althought PageSettings
+ contains a PrinterSettings and vice versa, PrintDocument
+ can contain non-related PrinterSettings and PageSettings objects).
+
+ * PrintingServices.cs: Likewise.
+ * PrintingServicesWin32.cs: Likewise.
+ * PrintingServicesUnix.cs: Likewise. Also use cupsParseOptions
+ to pass printing options when calling cupsPrintFile. Use "Custom"
+ as name for custom pages without associated name (Laxmark printers
+ have this problem, causing a nullref exc). Add GetPaperKind () method
+ to retrieve and set the right PaperKind value for PaperSize, instead
+ of using PaperKind.Custom for all page sizes. Finally save
+ PageSettings in DOCINFO to use it later.
+
+ * PrintDocument.cs: Clone PrinterSettings.PageSettings
+ instead of creating a new one (this avoid creating an additional
+ PrinterSettings instance).
+
+2006-11-17 Andreia Gaita <avidigal@novell.com>
+
+ * PrintingServicesWin32.cs: fix another dumb typo -
+ check proper return value from printer validity call
+
+2006-11-16 Chris Toshok <toshok@ximian.com>
+
+ * PreviewPrintController.cs: fix typo - don't throw
+ InvalidPrinterException when it wasn't supposed to be.
+
+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.
+
+ * PrintingServices.cs: Declares IsPrinterValid to enable easy checking
+ if printer name is a valid printer
+
+ * PrintingServicesWin32.cs: Implements IsPrinterValid, caches
+ last assigned printer name and if it is valid to speed up next calls.
+
+ * PrintingServicesUnix.cs: Implements IsPrinterValid, caches
+ last assigned printer name and if it is valid to speed up next calls.
+
+ * PageSettings.cs:
+ - throw InvalidPrinterException in the properties,
+ according to the docs: Color, Landscape, PaperSize, PaperSource,
+ PrinterResolution
+ - change the private fields above to internal, so that in the
+ constructor we can access them without triggering the exceptions
+ if there are no printers installed
+
+ * PrinterSettings.cs: Implement IsValid to call IsPrinterValid
+ implemented above
+
+ * PreviewPrintController.cs: throw InvalidPrinterException on
+ StartPrint() if there's no valid printer configured
+
+ * InvalidPrinterException.cs: New private GetMessage() to customize
+ printer error message, used by constructor
+
2006-09-27 Jordi Mas i Hernandez <jordimash@gmail.com>
* PrintingServicesUnix.cs: Implements LoadPrinterPaperSources member,