X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Foutput-ps.scm;h=7c8a6ed39474fa5560002fb71f3744d4bf614047;hb=a1625514bdd5c9c66837ff67b65ab0ec75537255;hp=723a616369bd5f7a4b37243c30dc4506a9f05e2e;hpb=9158bc17904d4dd930a1f776cfe3226f1ad84092;p=lilypond.git diff --git a/scm/output-ps.scm b/scm/output-ps.scm index 723a616369..7c8a6ed394 100644 --- a/scm/output-ps.scm +++ b/scm/output-ps.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 1998--2010 Jan Nieuwenhuizen +;;;; Copyright (C) 1998--2012 Jan Nieuwenhuizen ;;;; Han-Wen Nienhuys ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -45,7 +45,7 @@ (define (str4 num) (if (or (nan? num) (inf? num)) (begin - (ly:warning (_ "Found infinity or nan in output. Substituting 0.0")) + (ly:warning (_ "Found infinity or nan in output. Substituting 0.0")) (if (ly:get-option 'strict-infinity-checking) (exit 1)) "0.0") @@ -58,12 +58,6 @@ ;;; Lily output interface, PostScript implementation --- cleanup and docme ;;; -;; two beziers -(define (bezier-sandwich lst thick) - (ly:format "~l ~4f draw_bezier_sandwich" - (map number-pair->string4 lst) - thick)) - (define (char font i) (ly:format "~a (\\~a) show" (ps-font-command font) @@ -77,6 +71,12 @@ "false") radius thick)) +(define (start-enclosing-id-node s) + "") + +(define (end-enclosing-id-node) + "") + (define (dashed-line thick on off dx dy phase) (ly:format "~4f ~4f ~4f [ ~4f ~4f ] ~4f draw_dashed_line" dx @@ -86,18 +86,6 @@ off phase)) -;; what the heck is this interface ? -(define (dashed-slur thick on off l) - (ly:format "~l ~4f [ ~4f ~4f ] 0 draw_dashed_slur" - (let ((control-points (append (cddr l) (list (car l) (cadr l))))) - (map number-pair->string4 control-points)) - thick - on - off)) - -(define (dot x y radius) - (ly:format " ~4l draw_dot" (list radius x y))) - (define (draw-line thick x1 y1 x2 y2) (ly:format "~4f ~4f ~4f ~4f ~4f draw_line" (- x2 x1) (- y2 y1) @@ -155,8 +143,16 @@ (if (ly:get-option 'point-and-click) (let* ((cause (ly:grob-property grob 'cause)) (music-origin (if (ly:stream-event? cause) - (ly:event-property cause 'origin)))) - (if (ly:input-location? music-origin) + (ly:event-property cause 'origin))) + (point-and-click (ly:get-option 'point-and-click))) + (if (and + (ly:input-location? music-origin) + (cond ((boolean? point-and-click) point-and-click) + ((symbol? point-and-click) + (ly:in-event-class? cause point-and-click)) + (else (any (lambda (t) + (ly:in-event-class? cause t)) + point-and-click)))) (let* ((location (ly:input-file-line-char-column music-origin)) (raw-file (car location)) (file (if (is-absolute? raw-file) @@ -193,14 +189,6 @@ (define (no-origin) "") -(define (oval x-radius y-radius thick fill) - (ly:format - "~a ~4f ~4f ~4f draw_oval" - (if fill - "true" - "false") - x-radius y-radius thick)) - (define (placebox x y s) (if (not (string-null? s)) (ly:format "~4f ~4f moveto ~a\n" x y s) @@ -213,16 +201,6 @@ (- (/ (length points) 2) 1) blot-diameter)) -(define (repeat-slash width slope beam-thickness) - (define (euclidean-length x y) - (sqrt (+ (* x x) (* y y)))) - - (let ((x-width (euclidean-length beam-thickness (/ beam-thickness slope))) - (height (* width slope))) - (ly:format "~4l draw_repeat_slash" - (list x-width width height)))) - - (define (round-filled-box left right bottom top blotdiam) (let* ((halfblot (/ blotdiam 2)) (x (- halfblot left)) @@ -261,6 +239,16 @@ (cdr y) url)) +(define (page-link page-no x y) + (if (number? page-no) + (ly:format "~a ~a currentpoint vector_add ~a ~a currentpoint vector_add ~a mark_page_link" + (car x) + (car y) + (cdr x) + (cdr y) + page-no) + "")) + (define* (path thickness exps #:optional (cap 'round) (join 'round) (fill? #f)) (define (convert-path-exps exps) (if (pair? exps) @@ -303,3 +291,10 @@ thickness (convert-path-exps exps) (if fill? "fill" "")))) + +(define (setscale x y) + (ly:format "gsave ~4l scale\n" + (list x y))) + +(define (resetscale) + "grestore\n")