1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
|
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,
simplifies GetPaperSizeName and loads paper source and size defaults
2006-09-27 Jordi Mas i Hernandez <jordimash@gmail.com>
* PrintingServices.cs: Add LoadPrinterPaperSources member
* PrintingServicesWin32.cs: Implements LoadPrinterPaperSources and
reads the default paper source and size.
* PrintingServicesUnix.cs: Add stub LoadPrinterPaperSources member
* PrinterSettings.cs: Implements PaperSourceCollection property and
makes default paper source and size from the system.
2006-08-02 Chris Toshok <toshok@ximian.com>
* PreviewPrintController.cs: scale the Graphics context we pass
back from OnStartPage such that the preview looks the way the
printed output will.
2006-07-28 Carlos Alberto Cortez <calberto.cortez@gmail.com>
* PrintDocument.cs: When null is passed to PrinterSettings,
it should be set to a new PrinterSettings instance, and should never
be null.
* PrinterSettings.cs: Default value for Copies should be 1. Also
add a space in the ToString method, to correctly show the printer
info.
2006-07-26 Chris Toshok <toshok@ximian.com>
* PrinterSettings.cs: expose PrintFileName in the 1.1 case as an
internal property, so we can get at it from MWF.
* PrintingServicesUnix.cs: handle print to file, and also remove
the temp file after sending the data to the printer. fix some
dllimports to match the rest of system.drawing.
* PreviewPrintController.cs: implement this (warning, it'll eat
all your memory until we get a real Metafile implementation, as
we're storing bitmaps).
* PrintDocument.cs: shift the graphics context stuff around a bit
in Print(), so that the events after OnStartPrint are passed the
graphics context the controller created there, and we use the
return value of OnStartPage to do all drawing.
2006-05-20 Jordi Mas i Hernandez <jordimash@gmail.com>
* PrintingServices.cs: GetPrintDialogInfo definition
* PrintingServicesWin32.cs GetPrintDialogInfo implementation
* PrintingServicesUnix.cs: GetPrintDialogInfo stub
2006-04-14 Jordi Mas i Hernandez <jordimash@gmail.com>
* PrintingServicesUnix.cs: Replace cupsGetPrinters deprecated API call
2006-04-13 Jordi Mas i Hernandez <jordimash@gmail.com>
* PrintingServicesUnix.cs: Checks if cups is installed
* PrinterSettings.cs: PrintToFile property and ToString method
2006-04-28 Sebastien Pouliot <sebastien@ximian.com>
* PrintController.cs: corcompare fix. No public ctor in 2.0.
* PrinterSettings.cs: corcompare fix. Clone method isn't virtual.
2006-03-21 Sebastien Pouliot <sebastien@ximian.com>
* PrintingServicesUnix.cs: cupsGetPrinters(char***) requires to free
each individual string and (finally) the list. Note that this call is
deprecated.
2006-03-13 Peter Dennis Bartok <pbartok@novell.com>
* PrintingServicesUnix.cs: Handle not having a printer
2006-02-09 Peter Dennis Bartok <pbartok@novell.com>
* PrintingServicesWin32.cs: Simplyfied the code, removing the need
for pointer calculations (part of 64bit cleanup)
2006-01-27 Sebastien Pouliot <sebastien@ximian.com>
* PrintingServicesWin32.cs: Ensure Marshal.FreeHGlobal is called for
all unmanaged memory allocated with AllocHGlobal.
2006-01-15 Jordi Mas i Hernandez <jordimash@gmail.com>
* PrintingServicesUnix.cs: Allow setting the dpy's for the surface
2005-12-22 Jordi Mas i Hernandez <jordimash@gmail.com>
* PrintingServices.cs: Printing services abstration class
* PrintingServicesWin32.cs: Win32 printer driver
* PrintingServicesUnix.cs: Unix printer driver
* Margins.cs: Fixes exceptions error messages
* PrinterResolution.cs: Fixes
* PrintEventArgs.cs: New internal method
* PrintPageEventArgs.cs: New internal method
* StandardPrintController.cs: Fixes
* PrinterUnitConvert.cs: Fixes conversion errors
* PrintDocument.cs: Fixes to make it print
* PageSettings.cs: Take margains into account
* PrintController.cs: Fixes
* PaperSize.cs: Method to set paper Kind
* PrinterSettings.cs: Implements settings and fixes
*
2005-12-07 Jordi Mas i Hernandez <jordimash@gmail.com>
* PrinterResolutionKind.cs: Fixes signature for .Net 2.0
* PaperKind.cs: Fixes signature for .Net 2.0
* PaperSource.cs: Fixes signature for .Net 2.0
* Margins.cs: Fixes signature for .Net 2.0
* PrinterResolution.cs: Fixes signature for .Net 2.0
* PrintEventArgs.cs: Fixes signature for .Net 2.0
* PrintAction.cs: New enum in .Net 2.0
* PageSettings.cs: Fixes signature for .Net 2.0
* PaperSourceKind.cs: Fixes signature for .Net 2.0
* PrintController.cs: Fixes signature for .Net 2.0
* Duplex.cs: Fixes signature for .Net 2.0
* PaperSize.cs: Fixes signature for .Net 2.0
* PreviewPrintController.cs: Fixes signature for .Net 2.0
* PrinterSettings.cs: Fixes signature for .Net 2.0
* PrintRange.cs: Fixes signature for .Net 2.0
2005-09-16 Sebastien Pouliot <sebastien@ximian.com>
* InvalidPrinterException.cs: Removed NotImplementedException (not
required) and added a demand for SerializationFormatter on the
GetObjectData method.
* PrintingPermission.cs: Throw ArgumentException if the class or
version attributes are missing in the supplied XML (only in 1.x).
2005-03-23 Jordi Mas i Hernandez <jordi@ximian.com>
* PaperKind.cs: fixes wrong enum values
2005-01-27 Lluis Sanchez Gual <lluis@novell.com>
* MarginsConverter.cs: Implemented support for InstanceDescriptor.
|