X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ps%2Fmusic-drawing-routines.ps;h=d7450e452bee0c239f10fca06e70f4f40a5c40b4;hb=17bce3f70d2886ed98fac5c90dd7f8fa065b546b;hp=ccaf6b3dcc55195fcfe5fc0172f3300801108653;hpb=9158bc17904d4dd930a1f776cfe3226f1ad84092;p=lilypond.git diff --git a/ps/music-drawing-routines.ps b/ps/music-drawing-routines.ps index ccaf6b3dcc..d7450e452b 100644 --- a/ps/music-drawing-routines.ps +++ b/ps/music-drawing-routines.ps @@ -35,6 +35,24 @@ } bind def +% llx lly urx ury page +/mark_page_link +{ + /page exch def + /ury exch def + /urx exch def + /lly exch def + /llx exch def + [ + /Rect [ llx lly urx ury ] + /Border [ 0 0 0 ] + /Page page + /Subtype /Link + /ANN + pdfmark +} +bind def + % from adobe tech note 5002. /BeginEPSF { %def /b4_Inc_state save def % Save state for cleanup @@ -77,16 +95,25 @@ bind def /draw_round_box % width height x y blot { - setlinewidth % w h x y - 0 setlinecap - 1 setlinejoin - - rmoveto % w h - currentpoint % w h x1 y1 - 4 2 roll % x1 y1 w h - 4 copy - rectfill - rectstroke + dup + 0.0 gt { + setlinewidth % w h x y + 0 setlinecap + 1 setlinejoin + + rmoveto % w h + currentpoint % w h x1 y1 + 4 2 roll % x1 y1 w h + 4 copy + rectfill + rectstroke + } { + pop % w h x y + rmoveto % w h + currentpoint % w h x1 y1 + 4 2 roll % x1 y1 w h + rectfill + } ifelse } bind def /draw_polygon % fill? x(n) y(n) x(n-1) y(n-1) ... x(0) y(0) n blot @@ -111,47 +138,6 @@ bind def } ifelse } bind def -/draw_repeat_slash % x-width width height draw_repeat_slash -{ - 2 index % duplicate x-width - 1 setlinecap - 1 setlinejoin - - 0 rlineto % x-width 0 - rlineto % width height - neg 0 rlineto % -x-width 0 - closepath fill -} bind def - -% this is for drawing slurs and barre-indicators. -/draw_bezier_sandwich % x5 y5 x6 y6 x7 y7 - % x4 y4 - % x1 y1 x2 y2 x3 y3 - % x0 y0 - % linewidth draw_bezier_sandwich -{ - gsave - currentpoint translate - % round ending and round beginning - 1 setlinejoin 1 setlinecap - setlinewidth - moveto - curveto - lineto - curveto - closepath - stroke_and_fill - grestore -} bind def - -/draw_dot % radius x y draw_dot -{ - rmoveto - currentpoint - 3 2 roll - 0 360 arc closepath stroke_and_fill -} bind def - /draw_circle % filled? radius thickness draw_circle { setlinewidth % f? r @@ -164,20 +150,6 @@ bind def ifelse } bind def -/draw_oval % filled? x-radius y-radius thickness draw_ellipse -{ - setlinewidth % f? x-r y-r - /yrad exch def - /xrad exch def - xrad 0 rmoveto - 0 yrad -2 xrad mul dup yrad exch 0 rcurveto - 0 yrad neg dup 2 xrad mul dup 3 1 roll 0 rcurveto - closepath - { stroke_and_fill} - { stroke } - ifelse -} bind def - /draw_ellipse % filled? x-radius y-radius thickness draw_ellipse { setlinewidth % f? x-r y-r @@ -253,21 +225,6 @@ bind def [] 0 setdash % reset dash pattern } bind def -/draw_dashed_slur % controls thickness dash -{ -gsave - currentpoint translate - 1 setlinecap - 1 setlinejoin - setdash - setlinewidth - 8 2 roll - moveto - curveto - stroke -grestore -} bind def - /print_glyphs % w dx dy glyph print_glyphs { {