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)