svn path=/trunk/mcs/; revision=104772
[mono.git] / mcs / class / System.Drawing / System.Drawing.Printing / ChangeLog
1 2008-02-10  Sebastien Pouliot  <sebastien@ximian.com>
2
3         * PrintingServicesUnix.cs: Fix AvoidToStringOnStringsRule found
4         using Gendarme.
5
6 2007-12-10  Andreia Gaita <avidigal@novell.com>
7
8         * PrintingServicesWin32.cs: Add enumeration flag to get remote 
9         printers as well as locally connected ones. Fixes #325258
10
11 2007-06-30  Gert Driesen  <drieseng@users.sourceforge.net>
12
13         * Margins.cs: Overloaded operators are 2.0 only.
14
15 2007-05-29  Sebastien Pouliot  <sebastien@ximian.com>
16
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.
21
22 2007-05-24  Gert Driesen  <drieseng@users.sourceforge.net>
23
24         * PrintingServicesWin32.cs: Pass 0 as mode to DocumentProperties to
25         obtain the size of the buffer required to hold the DEVMODE structure.
26         Fixes bug #81723.
27
28 2007-05-23  Sebastien Pouliot  <sebastien@ximian.com>
29
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.
35
36 2007-03-13  Andreia Gaita  <avidigal@novell.com>
37
38         * PrintingServices.cs: Add missing static method SysPrn.GetPrintDialogInfo
39         for SWF to call up printing dialogues.
40
41 2007-02-21  Andreia Gaita  <avidigal@novell.com>
42         
43         * PrintingServicesUnix.cs: Report an error in the console if there is
44         a problem opening the printer.
45
46 2007-02-21  Andreia Gaita  <avidigal@novell.com>
47
48         * PrintingServicesUnix.cs: don't free up pointers unnecessarily (doh)
49
50 2007-02-21  Andreia Gaita  <avidigal@novell.com>
51
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 )
55
56 2007-02-21  Andreia Gaita  <avidigal@novell.com>
57
58         * PrintingServicesUnix.cs: fix a double-free bug
59
60 2007-02-20  Andreia Gaita  <avidigal@novell.com>
61
62         * PrintingServicesUnix.cs: Fix leak caused by not calling cupsFreeDests
63         on certain codepaths. Fix return value of cupsFreeDests to void.
64         
65 2007-02-20  Andreia Gaita  <avidigal@novell.com>
66         
67         * PrintingServicesUnix.cs: Correct missing static initialization
68         of loaded printers hashtable, unit tests were failing (oops :p)
69
70 2007-02-17  Marek (please complete)
71
72         * PrintPreviewController, InvalidPrinterException: 
73         Remove warnings
74
75 2007-02-16  Andreia Gaita  <avidigal@novell.com>
76
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, 
81         misc. fixes.
82         
83         * PageSettings.cs: Check and ignore null setter values on
84         paper sizes, sources and resolutions.
85         
86         * PaperSize.cs: Add default paper size flag
87         
88         * PaperSource.cs: Add default paper source flag, minor code
89         beautification
90         
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.
96         
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 
101         no caching.
102         The cached information resides on the Printer class, added to the 
103         SysPrn class.
104         
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
117         cups free calls.
118         - Add duplex support
119         
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)
126         
127         * StandardPrintController.cs: PrinterSettings/GlobalPrinterSettings structure
128         changes
129
130 2007-02-09  Sebastien Pouliot  <sebastien@ximian.com>
131
132         * PrintingServicesUnix.cs: Ensure we free the original pointer in
133         GetAlternativeDefaultPrinter (not the one used for iteration).
134
135 2007-01-19  Andreia Gaita  <avidigal@novell.com>
136
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
140
141 2007-01-09  Sebastien Pouliot  <sebastien@ximian.com>
142
143         * PrintingServices.cs: Unify platform detection code.
144
145 2006-12-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
146
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.
150
151 2006-12-01  Andreia Gaita  <avidigal@novell.com>
152
153         * PrintingServicesUnix: Proper size structure use for 64 bit
154         support.
155
156 2006-12-01  Andreia Gaita  <avidigal@novell.com>
157
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
162
163 2006-12-01  Andreia Gaita  <avidigal@novell.com>
164
165         * PrintingServicesUnix: check return value from cupsGetDefault.
166         Hopefully fixes #79835
167
168 2006-12-01 Jordi Mas i Hernandez <jordimash@gmail.com>
169
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. 
173
174 2006-11-28  Andreia Gaita  <avidigal@novell.com>
175
176         * PageSettings.cs: 
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
187         
188 2006-11-25 Jordi Mas i Hernandez <jordimash@gmail.com>
189
190         * PrintingServicesUnix.cs: Implements GetPrintDialogInfo
191
192 2006-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
193         
194         Initial support for PageSettings (color, copies, collate,
195         and media size).
196
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).
201
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.
211
212         * PrintDocument.cs: Clone PrinterSettings.PageSettings
213         instead of creating a new one (this avoid creating an additional
214         PrinterSettings instance).
215
216 2006-11-17  Andreia Gaita <avidigal@novell.com>
217
218         * PrintingServicesWin32.cs: fix another dumb typo - 
219         check proper return value from printer validity call
220
221 2006-11-16  Chris Toshok  <toshok@ximian.com>
222
223         * PreviewPrintController.cs: fix typo - don't throw
224         InvalidPrinterException when it wasn't supposed to be.
225
226 2006-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
227
228         * PrintDocument.cs: Use QueryPageSettingsEventArgs.PageSettings
229         in PrintPageEventArgs, instead of using the default one (mimic
230         .Net behaviour).
231
232         * PageSettings.cs: Implement Clone the right way (intead of using
233         the default page settings).
234
235 2006-11-14 Andreia Gaita <avidigal@novell.com>
236         Fixes #79835, implements PrinterSettings.IsValid, throws proper
237         InvalidPrinterException with differentiated messages.
238         
239         * PrintingServices.cs: Declares IsPrinterValid to enable easy checking
240         if printer name is a valid printer
241         
242         * PrintingServicesWin32.cs: Implements IsPrinterValid, caches 
243         last assigned printer name and if it is valid to speed up next calls.
244         
245         * PrintingServicesUnix.cs: Implements IsPrinterValid, caches 
246         last assigned printer name and if it is valid to speed up next calls.
247         
248         * PageSettings.cs: 
249                 - throw InvalidPrinterException in the properties,
250                 according to the docs: Color, Landscape, PaperSize, PaperSource, 
251                 PrinterResolution
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
255                 
256         * PrinterSettings.cs: Implement IsValid to call IsPrinterValid
257         implemented above
258         
259         * PreviewPrintController.cs: throw InvalidPrinterException on 
260         StartPrint() if there's no valid printer configured
261         
262         * InvalidPrinterException.cs: New private GetMessage() to customize
263         printer error message, used by constructor
264
265 2006-09-27 Jordi Mas i Hernandez <jordimash@gmail.com>
266
267         * PrintingServicesUnix.cs: Implements LoadPrinterPaperSources member,
268         simplifies GetPaperSizeName and loads paper source and size defaults
269
270 2006-09-27 Jordi Mas i Hernandez <jordimash@gmail.com>
271
272         * PrintingServices.cs: Add LoadPrinterPaperSources member
273         
274         * PrintingServicesWin32.cs: Implements LoadPrinterPaperSources and
275         reads the default paper source and size.
276         
277         * PrintingServicesUnix.cs: Add stub LoadPrinterPaperSources member
278         
279         * PrinterSettings.cs: Implements PaperSourceCollection property and
280         makes default paper source and size from the system.
281
282 2006-08-02  Chris Toshok  <toshok@ximian.com>
283
284         * PreviewPrintController.cs: scale the Graphics context we pass
285         back from OnStartPage such that the preview looks the way the
286         printed output will.
287
288 2006-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
289
290         * PrintDocument.cs: When null is passed to PrinterSettings,
291         it should be set to a new PrinterSettings instance, and should never
292         be null.
293
294         * PrinterSettings.cs: Default value for Copies should be 1. Also
295         add a space in the ToString method, to correctly show the printer
296         info.
297
298 2006-07-26  Chris Toshok  <toshok@ximian.com>
299
300         * PrinterSettings.cs: expose PrintFileName in the 1.1 case as an
301         internal property, so we can get at it from MWF.
302
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.
306
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).
310
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.
315
316 2006-05-20 Jordi Mas i Hernandez <jordimash@gmail.com>
317
318         * PrintingServices.cs: GetPrintDialogInfo definition
319         * PrintingServicesWin32.cs GetPrintDialogInfo implementation
320         * PrintingServicesUnix.cs: GetPrintDialogInfo stub
321
322 2006-04-14 Jordi Mas i Hernandez <jordimash@gmail.com>
323
324         * PrintingServicesUnix.cs: Replace cupsGetPrinters deprecated API call
325
326 2006-04-13 Jordi Mas i Hernandez <jordimash@gmail.com>
327
328         * PrintingServicesUnix.cs: Checks if cups is installed
329         * PrinterSettings.cs: PrintToFile property and ToString method
330
331 2006-04-28  Sebastien Pouliot  <sebastien@ximian.com>
332
333         * PrintController.cs: corcompare fix. No public ctor in 2.0.
334         * PrinterSettings.cs: corcompare fix. Clone method isn't virtual.
335
336 2006-03-21  Sebastien Pouliot  <sebastien@ximian.com>
337
338         * PrintingServicesUnix.cs: cupsGetPrinters(char***) requires to free 
339         each individual string and (finally) the list. Note that this call is
340         deprecated.
341
342 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
343
344         * PrintingServicesUnix.cs: Handle not having a printer
345
346 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
347
348         * PrintingServicesWin32.cs: Simplyfied the code, removing the need
349           for pointer calculations (part of 64bit cleanup)
350
351 2006-01-27  Sebastien Pouliot  <sebastien@ximian.com>
352
353         * PrintingServicesWin32.cs: Ensure Marshal.FreeHGlobal is called for 
354         all unmanaged memory allocated with AllocHGlobal.
355
356 2006-01-15 Jordi Mas i Hernandez <jordimash@gmail.com>
357
358         * PrintingServicesUnix.cs: Allow setting the dpy's for the surface
359
360 2005-12-22 Jordi Mas i Hernandez <jordimash@gmail.com>
361
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
376         *       
377
378 2005-12-07 Jordi Mas i Hernandez <jordimash@gmail.com>
379         
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
395           
396 2005-09-16  Sebastien Pouliot  <sebastien@ximian.com>
397
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).
403
404 2005-03-23 Jordi Mas i Hernandez <jordi@ximian.com>
405         * PaperKind.cs: fixes wrong enum values
406
407 2005-01-27  Lluis Sanchez Gual  <lluis@novell.com>
408
409         * MarginsConverter.cs: Implemented support for InstanceDescriptor.