Mercurial > dwindows
comparison mac/dw.m @ 1152:58b5374355ab
Added print jobname parameter to dw_print_new().
If parameter is NULL a dummy name will be used.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 12 Sep 2011 19:26:49 +0000 |
parents | 091ed7c20b3f |
children | e6a2f57c0842 |
comparison
equal
deleted
inserted
replaced
1151:641aa6941b2a | 1152:58b5374355ab |
---|---|
9305 } DWPrint; | 9305 } DWPrint; |
9306 | 9306 |
9307 /* | 9307 /* |
9308 * Creates a new print object. | 9308 * Creates a new print object. |
9309 * Parameters: | 9309 * Parameters: |
9310 * jobname: Name of the print job to show in the queue. | |
9310 * flags: Flags to initially configure the print object. | 9311 * flags: Flags to initially configure the print object. |
9311 * pages: Number of pages to print. | 9312 * pages: Number of pages to print. |
9312 * drawfunc: The pointer to the function to be used as the callback. | 9313 * drawfunc: The pointer to the function to be used as the callback. |
9313 * drawdata: User data to be passed to the handler function. | 9314 * drawdata: User data to be passed to the handler function. |
9314 * Returns: | 9315 * Returns: |
9315 * A handle to the print object or NULL on failure. | 9316 * A handle to the print object or NULL on failure. |
9316 */ | 9317 */ |
9317 HPRINT API dw_print_new(unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata) | 9318 HPRINT API dw_print_new(char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata) |
9318 { | 9319 { |
9319 DWPrint *print; | 9320 DWPrint *print; |
9320 NSPrintPanel *panel; | 9321 NSPrintPanel *panel; |
9321 PMPrintSettings settings; | 9322 PMPrintSettings settings; |
9322 NSPrintInfo *pi; | 9323 NSPrintInfo *pi; |
9323 | 9324 |
9324 if(!drawfunc || !(print = calloc(1, sizeof(DWPrint)))) | 9325 if(!drawfunc || !(print = calloc(1, sizeof(DWPrint)))) |
9325 { | 9326 { |
9326 return NULL; | 9327 return NULL; |
9327 } | 9328 } |
9329 | |
9330 if(!jobname) | |
9331 jobname = "Dynamic Windows Print Job"; | |
9328 | 9332 |
9329 print->drawfunc = drawfunc; | 9333 print->drawfunc = drawfunc; |
9330 print->drawdata = drawdata; | 9334 print->drawdata = drawdata; |
9331 print->flags = flags; | 9335 print->flags = flags; |
9332 | 9336 |
9334 pi = [NSPrintInfo sharedPrintInfo]; | 9338 pi = [NSPrintInfo sharedPrintInfo]; |
9335 settings = [pi PMPrintSettings]; | 9339 settings = [pi PMPrintSettings]; |
9336 PMSetPageRange(settings, 1, pages); | 9340 PMSetPageRange(settings, 1, pages); |
9337 PMSetFirstPage(settings, 1, true); | 9341 PMSetFirstPage(settings, 1, true); |
9338 PMSetLastPage(settings, pages, true); | 9342 PMSetLastPage(settings, pages, true); |
9343 PMPrintSettingsSetJobName(settings, (CFStringRef)[NSString stringWithUTF8String:jobname]); | |
9339 [pi updateFromPMPrintSettings]; | 9344 [pi updateFromPMPrintSettings]; |
9340 | 9345 |
9341 /* Create and show the print panel */ | 9346 /* Create and show the print panel */ |
9342 panel = [NSPrintPanel printPanel]; | 9347 panel = [NSPrintPanel printPanel]; |
9343 if(!panel || [panel runModalWithPrintInfo:pi] == NSCancelButton) | 9348 if(!panel || [panel runModalWithPrintInfo:pi] == NSCancelButton) |