1 2008-02-10 Sebastien Pouliot <sebastien@ximian.com>
3 * PrintingServicesUnix.cs: Fix AvoidToStringOnStringsRule found
6 2007-12-10 Andreia Gaita <avidigal@novell.com>
8 * PrintingServicesWin32.cs: Add enumeration flag to get remote
9 printers as well as locally connected ones. Fixes #325258
11 2007-06-30 Gert Driesen <drieseng@users.sourceforge.net>
13 * Margins.cs: Overloaded operators are 2.0 only.
15 2007-05-29 Sebastien Pouliot <sebastien@ximian.com>
17 * Margins.cs: Implement missing == and != operators (MoMA reports them
18 but they were not included in the class status pages). Fix property
19 setters (to check value), reduced code duplication and changed
20 GetHashCode to be less CPU intensive.
22 2007-05-24 Gert Driesen <drieseng@users.sourceforge.net>
24 * PrintingServicesWin32.cs: Pass 0 as mode to DocumentProperties to
25 obtain the size of the buffer required to hold the DEVMODE structure.
28 2007-05-23 Sebastien Pouliot <sebastien@ximian.com>
30 * PreviewPrintController.cs: Reduce bitmap size and avoid scaling the
31 print preview (fix bug #80765). Patch from Vladimir Dimitrov.
32 * PrintingServicesUnix.cs: Reorder calculation to avoid loss of
33 precision in integer division. Use printer resolution for Cairo
34 fallback. Patch from Vladimir Dimitrov.
36 2007-03-13 Andreia Gaita <avidigal@novell.com>
38 * PrintingServices.cs: Add missing static method SysPrn.GetPrintDialogInfo
39 for SWF to call up printing dialogues.
41 2007-02-21 Andreia Gaita <avidigal@novell.com>
43 * PrintingServicesUnix.cs: Report an error in the console if there is
44 a problem opening the printer.
46 2007-02-21 Andreia Gaita <avidigal@novell.com>
48 * PrintingServicesUnix.cs: don't free up pointers unnecessarily (doh)
50 2007-02-21 Andreia Gaita <avidigal@novell.com>
52 * PrintingServicesUnix.cs: add checks and try blocks to make sure
53 things don't blow up if we try to double free anything (not that
54 we're trying to do anything like that :p )
56 2007-02-21 Andreia Gaita <avidigal@novell.com>
58 * PrintingServicesUnix.cs: fix a double-free bug
60 2007-02-20 Andreia Gaita <avidigal@novell.com>
62 * PrintingServicesUnix.cs: Fix leak caused by not calling cupsFreeDests
63 on certain codepaths. Fix return value of cupsFreeDests to void.
65 2007-02-20 Andreia Gaita <avidigal@novell.com>
67 * PrintingServicesUnix.cs: Correct missing static initialization
68 of loaded printers hashtable, unit tests were failing (oops :p)
70 2007-02-17 Marek (please complete)
72 * PrintPreviewController, InvalidPrinterException:
75 2007-02-16 Andreia Gaita <avidigal@novell.com>
77 Redesign how and when cups gets called to minimize
78 p/invokes, implements caching of printers and printer
79 settings as per calberto's patch - #79822, plotter detection,
80 duplex, fixes for image disposing, code modularization,
83 * PageSettings.cs: Check and ignore null setter values on
84 paper sizes, sources and resolutions.
86 * PaperSize.cs: Add default paper size flag
88 * PaperSource.cs: Add default paper source flag, minor code
91 * PrinterSettings.cs: Add duplex and plotter implementation,
92 modify calls to PrintingServices to support caching, add
93 a printer capabilities list to store specific printer options -
94 only loaded with cups, for now. Move the internal list classes
95 to the end of the code so as not to clutter.
97 * PrintingServices.cs: Separate the PrintingServices class in 2 -
98 PrintingServices and GlobalPrintingServices (see calberto's patch
99 in #79822). The PrintingServices class is where all the methods
100 caching information reside, the GlobalPrintingServices methods do
102 The cached information resides on the Printer class, added to the
105 * PrintingServicesUnix.cs: Big rewrite.
106 - Essentially, redesigned and modularized the code to minimize cups
107 calls. Then, applied the caching so all the cups calls are reduced
108 to a minimum, by loading a list of printers onto a hashtable, then
109 loading the settings of the chosen printer and saving that in the
110 hashtable all in one go.
111 - Also, fixes for loading the proper default values of the printer,
112 which are stored in it's global options;
113 - Modularization of cups/ppd loading methods (LoadPrinterOptions,
114 LoadOptionList, OpenPrinter, ClosePrinter) so we don't repeat
115 cups/ppd loading loops everywhere.
116 - Proper disposing of pointers and structures, calling the proper
120 * PrintingServicesWin32.cs: IsPrinterValid is no longer caching the value,
121 since it should be supporting global caching as well, though that is not
122 yet complete on win32. Implements plotter detection support, and changes for
123 the new PrinterSettings/GlobalPrinterSettings structure. Some minor changes
124 the code to minimize p/invoke calls (load the printer sources and sizes
125 before accessing the collections)
127 * StandardPrintController.cs: PrinterSettings/GlobalPrinterSettings structure
130 2007-02-09 Sebastien Pouliot <sebastien@ximian.com>
132 * PrintingServicesUnix.cs: Ensure we free the original pointer in
133 GetAlternativeDefaultPrinter (not the one used for iteration).
135 2007-01-19 Andreia Gaita <avidigal@novell.com>
137 * PrintingServicesUnix.cs: Add is_default flag check for
138 detecting default printer when cupsGetDefault doesn't return
139 valid values (mainly ubuntu). Fixes #80198, #80519
141 2007-01-09 Sebastien Pouliot <sebastien@ximian.com>
143 * PrintingServices.cs: Unify platform detection code.
145 2006-12-04 Carlos Alberto Cortez <calberto.cortez@gmail.com>
147 * PrintingServicesUnix.cs: Add "landscape" option
148 when using PaperSettings.Landscape set to true. Also
149 swap the width and height for the postscript file.
151 2006-12-01 Andreia Gaita <avidigal@novell.com>
153 * PrintingServicesUnix: Proper size structure use for 64 bit
156 2006-12-01 Andreia Gaita <avidigal@novell.com>
158 * PrintingServicesUnix: *properly* check return value from
159 cupsGetDefault. If there are no default printers set,
160 check if there are installed printers, and use that.
161 Hopefully fixes #79835
163 2006-12-01 Andreia Gaita <avidigal@novell.com>
165 * PrintingServicesUnix: check return value from cupsGetDefault.
166 Hopefully fixes #79835
168 2006-12-01 Jordi Mas i Hernandez <jordimash@gmail.com>
170 * PrintingServicesWin32.cs: Fixes paper sizes reading. The POINT
171 structure is 8 bytes long not 4. This fixes margins calculations
172 (based on the paper size) that were badly broken.
174 2006-11-28 Andreia Gaita <avidigal@novell.com>
177 - internal member name changes to help
178 out with intelisense.
179 - Use internal members directly instead of using
180 corresponding properties so that exceptions are not thrown
181 * PrintingServicesWin32:
182 - Only return DefaultPrinter if it is actually valid. This
183 is because Win32GetDefaultPrinter returns a printer name
184 even if PrintSpooler is stopped (which should behave the
185 same way as if there are no printers installed)
186 - Do not try to allocate if EnumPrinters returns 0
188 2006-11-25 Jordi Mas i Hernandez <jordimash@gmail.com>
190 * PrintingServicesUnix.cs: Implements GetPrintDialogInfo
192 2006-11-24 Carlos Alberto Cortez <calberto.cortez@gmail.com>
194 Initial support for PageSettings (color, copies, collate,
197 * StandardPrintController.cs: Pass PrintDocument.PageSettings to
198 create the Graphics object (althought PageSettings
199 contains a PrinterSettings and vice versa, PrintDocument
200 can contain non-related PrinterSettings and PageSettings objects).
202 * PrintingServices.cs: Likewise.
203 * PrintingServicesWin32.cs: Likewise.
204 * PrintingServicesUnix.cs: Likewise. Also use cupsParseOptions
205 to pass printing options when calling cupsPrintFile. Use "Custom"
206 as name for custom pages without associated name (Laxmark printers
207 have this problem, causing a nullref exc). Add GetPaperKind () method
208 to retrieve and set the right PaperKind value for PaperSize, instead
209 of using PaperKind.Custom for all page sizes. Finally save
210 PageSettings in DOCINFO to use it later.
212 * PrintDocument.cs: Clone PrinterSettings.PageSettings
213 instead of creating a new one (this avoid creating an additional
214 PrinterSettings instance).
216 2006-11-17 Andreia Gaita <avidigal@novell.com>
218 * PrintingServicesWin32.cs: fix another dumb typo -
219 check proper return value from printer validity call
221 2006-11-16 Chris Toshok <toshok@ximian.com>
223 * PreviewPrintController.cs: fix typo - don't throw
224 InvalidPrinterException when it wasn't supposed to be.
226 2006-11-16 Carlos Alberto Cortez <calberto.cortez@gmail.com>
228 * PrintDocument.cs: Use QueryPageSettingsEventArgs.PageSettings
229 in PrintPageEventArgs, instead of using the default one (mimic
232 * PageSettings.cs: Implement Clone the right way (intead of using
233 the default page settings).
235 2006-11-14 Andreia Gaita <avidigal@novell.com>
236 Fixes #79835, implements PrinterSettings.IsValid, throws proper
237 InvalidPrinterException with differentiated messages.
239 * PrintingServices.cs: Declares IsPrinterValid to enable easy checking
240 if printer name is a valid printer
242 * PrintingServicesWin32.cs: Implements IsPrinterValid, caches
243 last assigned printer name and if it is valid to speed up next calls.
245 * PrintingServicesUnix.cs: Implements IsPrinterValid, caches
246 last assigned printer name and if it is valid to speed up next calls.
249 - throw InvalidPrinterException in the properties,
250 according to the docs: Color, Landscape, PaperSize, PaperSource,
252 - change the private fields above to internal, so that in the
253 constructor we can access them without triggering the exceptions
254 if there are no printers installed
256 * PrinterSettings.cs: Implement IsValid to call IsPrinterValid
259 * PreviewPrintController.cs: throw InvalidPrinterException on
260 StartPrint() if there's no valid printer configured
262 * InvalidPrinterException.cs: New private GetMessage() to customize
263 printer error message, used by constructor
265 2006-09-27 Jordi Mas i Hernandez <jordimash@gmail.com>
267 * PrintingServicesUnix.cs: Implements LoadPrinterPaperSources member,
268 simplifies GetPaperSizeName and loads paper source and size defaults
270 2006-09-27 Jordi Mas i Hernandez <jordimash@gmail.com>
272 * PrintingServices.cs: Add LoadPrinterPaperSources member
274 * PrintingServicesWin32.cs: Implements LoadPrinterPaperSources and
275 reads the default paper source and size.
277 * PrintingServicesUnix.cs: Add stub LoadPrinterPaperSources member
279 * PrinterSettings.cs: Implements PaperSourceCollection property and
280 makes default paper source and size from the system.
282 2006-08-02 Chris Toshok <toshok@ximian.com>
284 * PreviewPrintController.cs: scale the Graphics context we pass
285 back from OnStartPage such that the preview looks the way the
288 2006-07-28 Carlos Alberto Cortez <calberto.cortez@gmail.com>
290 * PrintDocument.cs: When null is passed to PrinterSettings,
291 it should be set to a new PrinterSettings instance, and should never
294 * PrinterSettings.cs: Default value for Copies should be 1. Also
295 add a space in the ToString method, to correctly show the printer
298 2006-07-26 Chris Toshok <toshok@ximian.com>
300 * PrinterSettings.cs: expose PrintFileName in the 1.1 case as an
301 internal property, so we can get at it from MWF.
303 * PrintingServicesUnix.cs: handle print to file, and also remove
304 the temp file after sending the data to the printer. fix some
305 dllimports to match the rest of system.drawing.
307 * PreviewPrintController.cs: implement this (warning, it'll eat
308 all your memory until we get a real Metafile implementation, as
309 we're storing bitmaps).
311 * PrintDocument.cs: shift the graphics context stuff around a bit
312 in Print(), so that the events after OnStartPrint are passed the
313 graphics context the controller created there, and we use the
314 return value of OnStartPage to do all drawing.
316 2006-05-20 Jordi Mas i Hernandez <jordimash@gmail.com>
318 * PrintingServices.cs: GetPrintDialogInfo definition
319 * PrintingServicesWin32.cs GetPrintDialogInfo implementation
320 * PrintingServicesUnix.cs: GetPrintDialogInfo stub
322 2006-04-14 Jordi Mas i Hernandez <jordimash@gmail.com>
324 * PrintingServicesUnix.cs: Replace cupsGetPrinters deprecated API call
326 2006-04-13 Jordi Mas i Hernandez <jordimash@gmail.com>
328 * PrintingServicesUnix.cs: Checks if cups is installed
329 * PrinterSettings.cs: PrintToFile property and ToString method
331 2006-04-28 Sebastien Pouliot <sebastien@ximian.com>
333 * PrintController.cs: corcompare fix. No public ctor in 2.0.
334 * PrinterSettings.cs: corcompare fix. Clone method isn't virtual.
336 2006-03-21 Sebastien Pouliot <sebastien@ximian.com>
338 * PrintingServicesUnix.cs: cupsGetPrinters(char***) requires to free
339 each individual string and (finally) the list. Note that this call is
342 2006-03-13 Peter Dennis Bartok <pbartok@novell.com>
344 * PrintingServicesUnix.cs: Handle not having a printer
346 2006-02-09 Peter Dennis Bartok <pbartok@novell.com>
348 * PrintingServicesWin32.cs: Simplyfied the code, removing the need
349 for pointer calculations (part of 64bit cleanup)
351 2006-01-27 Sebastien Pouliot <sebastien@ximian.com>
353 * PrintingServicesWin32.cs: Ensure Marshal.FreeHGlobal is called for
354 all unmanaged memory allocated with AllocHGlobal.
356 2006-01-15 Jordi Mas i Hernandez <jordimash@gmail.com>
358 * PrintingServicesUnix.cs: Allow setting the dpy's for the surface
360 2005-12-22 Jordi Mas i Hernandez <jordimash@gmail.com>
362 * PrintingServices.cs: Printing services abstration class
363 * PrintingServicesWin32.cs: Win32 printer driver
364 * PrintingServicesUnix.cs: Unix printer driver
365 * Margins.cs: Fixes exceptions error messages
366 * PrinterResolution.cs: Fixes
367 * PrintEventArgs.cs: New internal method
368 * PrintPageEventArgs.cs: New internal method
369 * StandardPrintController.cs: Fixes
370 * PrinterUnitConvert.cs: Fixes conversion errors
371 * PrintDocument.cs: Fixes to make it print
372 * PageSettings.cs: Take margains into account
373 * PrintController.cs: Fixes
374 * PaperSize.cs: Method to set paper Kind
375 * PrinterSettings.cs: Implements settings and fixes
378 2005-12-07 Jordi Mas i Hernandez <jordimash@gmail.com>
380 * PrinterResolutionKind.cs: Fixes signature for .Net 2.0
381 * PaperKind.cs: Fixes signature for .Net 2.0
382 * PaperSource.cs: Fixes signature for .Net 2.0
383 * Margins.cs: Fixes signature for .Net 2.0
384 * PrinterResolution.cs: Fixes signature for .Net 2.0
385 * PrintEventArgs.cs: Fixes signature for .Net 2.0
386 * PrintAction.cs: New enum in .Net 2.0
387 * PageSettings.cs: Fixes signature for .Net 2.0
388 * PaperSourceKind.cs: Fixes signature for .Net 2.0
389 * PrintController.cs: Fixes signature for .Net 2.0
390 * Duplex.cs: Fixes signature for .Net 2.0
391 * PaperSize.cs: Fixes signature for .Net 2.0
392 * PreviewPrintController.cs: Fixes signature for .Net 2.0
393 * PrinterSettings.cs: Fixes signature for .Net 2.0
394 * PrintRange.cs: Fixes signature for .Net 2.0
396 2005-09-16 Sebastien Pouliot <sebastien@ximian.com>
398 * InvalidPrinterException.cs: Removed NotImplementedException (not
399 required) and added a demand for SerializationFormatter on the
400 GetObjectData method.
401 * PrintingPermission.cs: Throw ArgumentException if the class or
402 version attributes are missing in the supplied XML (only in 1.x).
404 2005-03-23 Jordi Mas i Hernandez <jordi@ximian.com>
405 * PaperKind.cs: fixes wrong enum values
407 2005-01-27 Lluis Sanchez Gual <lluis@novell.com>
409 * MarginsConverter.cs: Implemented support for InstanceDescriptor.