comparison lisp/printer.el @ 503:98fb34b6fbe9

[xemacs-hg @ 2001-05-04 23:31:31 by ben] * printer.el (generic-print-buffer): * printer.el (generic-print-region): Enable dialog boxes. Apply workaround recommended by Kirill. fix (fboundp 'lpr-buffer) -> (fboundp 'lpr-region). Take out interactive dependence of kill-whole-line. * etc\check_cygwin_setup.sh (distdir): Update for current Cygwin reality. * etc\NEWS: Remove kill-whole-line changes.
author ben
date Fri, 04 May 2001 23:31:34 +0000
parents b3bbdc4058d7
children 39ccc7dd8077
comparison
equal deleted inserted replaced
502:7039e6323819 503:98fb34b6fbe9
225 operation using the dialog box, and `generic-print-buffer' will not print 225 operation using the dialog box, and `generic-print-buffer' will not print
226 anything. When called interactively, use a prefix arg to suppress the 226 anything. When called interactively, use a prefix arg to suppress the
227 display of the print dialog box. 227 display of the print dialog box.
228 228
229 If BUFFER is nil or omitted, the current buffer is used." 229 If BUFFER is nil or omitted, the current buffer is used."
230 ;; #### for some reason, displaying a dialog box makes the printing 230 (interactive (list nil (not current-prefix-arg)))
231 ;; fail unless y-or-n-p is called (see below). when this is fixed,
232 ;; remove one of the calls to `not' in the following line.
233 (interactive (list nil (not (not current-prefix-arg))))
234 (if (or (not (valid-specifier-tag-p 'msprinter)) 231 (if (or (not (valid-specifier-tag-p 'msprinter))
235 (not display-print-dialog)) 232 (not display-print-dialog))
236 (generic-print-region (point-min buffer) (point-max buffer) buffer) 233 (generic-print-region (point-min buffer) (point-max buffer) buffer)
237 (let* ((d (make-device 'msprinter printer-name)) 234 (let* ((d (make-device 'msprinter printer-name))
238 (props (make-dialog-box 'print :device d))) 235 (props (make-dialog-box 'print :device d)))
340 (setf (Print-context-pageno context) pageno) 337 (setf (Print-context-pageno context) pageno)
341 338
342 ;; only actually print the page if it's in the 339 ;; only actually print the page if it's in the
343 ;; range. 340 ;; range.
344 (when (>= pageno from-page) 341 (when (>= pageno from-page)
345 ;; none of these work.
346 ; (mapcar #'(lambda (foo)
347 ; (redisplay-device foo t))
348 ; (delete-if #'(lambda (foo)
349 ; (eq (device-type foo)
350 ; 'msprinter))
351 ; (device-list)))
352 ; (mapcar #'(lambda (foo)
353 ; (redraw-device foo t))
354 ; (delete-if #'(lambda (foo)
355 ; (eq (device-type foo)
356 ; 'msprinter))
357 ; (device-list)))
358 ; (sit-for 0.01)
359 ;; but this one sure as hell does.
360 ; (y-or-n-p "continue")
361 (when printer-page-header 342 (when printer-page-header
362 (with-current-buffer header-buffer 343 (with-current-buffer header-buffer
363 (erase-buffer) 344 (erase-buffer)
364 (generate-header-line printer-page-header 345 (generate-header-line printer-page-header
365 context) 346 context)
373 (generate-header-line printer-page-footer 354 (generate-header-line printer-page-footer
374 context) 355 context)
375 (goto-char (point-min)) 356 (goto-char (point-min))
376 (set-window-start footer-window (point-min)))) 357 (set-window-start footer-window (point-min))))
377 358
378 (redisplay-frame f) 359 (redisplay-frame f t)
379 (print-job-eject-page f) 360 (print-job-eject-page f)
380 ) 361 )
381 ;; but use the GUARANTEE argument to `window-end' 362 ;; but use the GUARANTEE argument to `window-end'
382 ;; so that we get the right value even if we 363 ;; so that we get the right value even if we
383 ;; didn't do a redisplay. 364 ;; didn't do a redisplay.
411 (and d (delete-device d)) 392 (and d (delete-device d))
412 (and header-buffer (kill-buffer header-buffer)) 393 (and header-buffer (kill-buffer header-buffer))
413 (and footer-buffer (kill-buffer footer-buffer)) 394 (and footer-buffer (kill-buffer footer-buffer))
414 ))) 395 )))
415 ((and (not (eq system-type 'windows-nt)) 396 ((and (not (eq system-type 'windows-nt))
416 (fboundp 'lpr-buffer)) 397 (fboundp 'lpr-region))
417 (lpr-region buffer)) 398 (lpr-region buffer))
418 (t (error "No print support available")))) 399 (t (error "No print support available"))))