CurrentValue null eq { Cursors /xhair get grabcursor } { ItemList CurrentValue get /Angle get /FindPointingCursor self send grabcursor } ifelse /MakePointingCursor { % ang => cursor { dup 360 ge { 360 sub } { dup 0 lt { 360 add } { exit } ifelse } ifelse } loop 360 div 128 mul floor 0 max 127 min cvi dup 128 add /PointingHand findfont 32 scalefont newcursor } def /PointingCursorDict growabledict def /FindPointingCursor { % ang => cursor PointingCursorDict 1 index known { PointingCursorDict exch get } { PointingCursorDict exch dup /MakePointingCursor self send dup 4 1 roll put } ifelse } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PointingHand /newfont 50 dict def newfont begin /FontType 3 def /FontMatrix [1 0 0 1 0 0] def %/FontBBox [-2 -2 2 2] def /FontBBox [-4 -4 4 4] def /BuildChar { 10 dict begin /mask? 1 index 128 ge def /char exch 127 and 128 div 360 mul def /font exch def /x char cos 2 mul def /y char sin 2 mul def newpath 0 0 x y 1 mask? not pointer-path % convert to fixed 0 0 pathbbox setcachedevice 0 setgray .001 setlinewidth mask? { fill } { stroke } ifelse end } def systemdict begin /pointing-hand { 0 0.0674 moveto open-pointing-hand closepath } def /open-pointing-hand { 0 0.528 lineto 0.008 0.535 lineto 0.0292 0.553 lineto 0.096 0.618 lineto 0.1553 0.694 lineto 0.208 0.753 lineto 0.241 0.7773 lineto 0.264 0.7883 lineto 0.28 0.798 lineto 0.3224 0.824 lineto 0.368 0.8651 lineto 0.3952 0.898 lineto 0.424 0.933 lineto 0.443 0.975 lineto 0.456 1 lineto 0.482 0.9862 lineto 0.496 0.933 lineto 0.499 0.8721 lineto 0.488 0.8202 lineto 0.475 0.78 lineto 0.467 0.753 lineto 0.448 0.708 lineto 0.408 0.673 lineto 0.384 0.663 lineto 0.408 0.652 lineto 0.4212 0.652 lineto 0.448 0.652 lineto 0.465 0.652 lineto 0.4934 0.652 lineto 0.5121 0.652 lineto 0.5334 0.652 lineto 0.5574 0.652 lineto 0.584 0.652 lineto 0.6331 0.653 lineto 0.679 0.6502 lineto 0.744 0.6404 lineto 0.8094 0.635 lineto 0.888 0.618 lineto 0.9064 0.6132 lineto 0.929 0.608 lineto 0.968 0.596 lineto 0.991 0.5731 lineto 1 0.551 lineto 0.9854 0.5021 lineto 0.968 0.4831 lineto 0.926 0.481 lineto 0.88 0.472 lineto 0.853 0.4744 lineto 0.8351 0.476 lineto 0.8162 0.478 lineto 0.76 0.4831 lineto 0.741 0.4823 lineto 0.718 0.4831 lineto 0.696 0.484 lineto 0.68 0.4831 lineto 0.69 0.481 lineto 0.72 0.461 lineto 0.742 0.448 lineto 0.752 0.427 lineto 0.752 0.406 lineto 0.752 0.382 lineto 0.736 0.3483 lineto 0.721 0.334 lineto 0.704 0.326 lineto 0.688 0.326 lineto 0.6964 0.325 lineto 0.72 0.2921 lineto 0.7164 0.255 lineto 0.704 0.2134 lineto 0.6654 0.1972 lineto 0.632 0.191 lineto 0.608 0.191 lineto 0.6152 0.166 lineto 0.624 0.124 lineto 0.6 0.09 lineto 0.568 0.0561 lineto 0.55 0.059 lineto 0.525 0.0582 lineto 0.502 0.057 lineto 0.488 0.0561 lineto 0.4761 0.057 lineto 0.4564 0.0512 lineto 0.416 0.034 lineto 0.349 0.013 lineto 0.288 0 lineto 0.2224 0.007 lineto 0.202 0.008 lineto 0.183 0.009 lineto 0.16 0.0112 lineto 0.1222 0.0291 lineto 0.08 0.045 lineto 0.041 0.0593 lineto 0 0.0674 lineto } def /pointing-fingers { 0.408 0.9101 moveto 0.414 0.9104 lineto 0.432 0.9213 lineto 0.456 0.955 lineto 0.464 0.989 lineto 0.464 1 lineto 0.68 0.4831 moveto 0.657 0.484 lineto 0.638 0.4841 lineto 0.624 0.4831 lineto 0.6054 0.4801 lineto 0.5864 0.4764 lineto 0.5682 0.4732 lineto 0.552 0.472 lineto 0.535 0.477 lineto 0.5144 0.482 lineto 0.4951 0.4844 lineto 0.48 0.4831 lineto 0.456 0.4382 lineto 0.4604 0.409 lineto 0.48 0.382 lineto 0.51 0.37 lineto 0.5281 0.3704 lineto 0.544 0.371 lineto 0.5734 0.3574 lineto 0.6 0.3483 lineto 0.6254 0.341 lineto 0.648 0.337 lineto 0.675 0.3303 lineto 0.688 0.326 lineto 0.472 0.472 moveto 0.48 0.472 lineto 0.4954 0.472 lineto 0.52 0.472 lineto 0.537 0.453 lineto 0.544 0.427 lineto 0.512 0.382 lineto 0.487 0.388 lineto 0.472 0.3932 lineto 0.528 0.371 moveto 0.5164 0.3683 lineto 0.496 0.36 lineto 0.4782 0.358 lineto 0.464 0.3483 lineto 0.452 0.311 lineto 0.464 0.27 lineto 0.483 0.25 lineto 0.512 0.236 lineto 0.5432 0.217 lineto 0.576 0.2022 lineto 0.596 0.195 lineto 0.608 0.191 lineto 0.464 0.27 moveto 0.488 0.27 lineto 0.505 0.2643 lineto 0.52 0.27 lineto 0.536 0.2921 lineto 0.5294 0.314 lineto 0.52 0.337 lineto 0.5062 0.349 lineto 0.488 0.3483 lineto 0.464 0.3483 lineto 0.52 0.225 moveto 0.496 0.236 lineto 0.47 0.2334 lineto 0.448 0.225 lineto 0.432 0.191 lineto 0.442 0.164 lineto 0.464 0.135 lineto 0.48 0.124 lineto 0.496 0.1123 lineto 0.5192 0.1042 lineto 0.544 0.09 lineto 0.552 0.09 lineto 0.472 0.225 moveto 0.488 0.225 lineto 0.512 0.2022 lineto 0.512 0.169 lineto 0.496 0.157 lineto 0.472 0.1573 lineto 0.45 0.162 lineto 0.44 0.169 lineto 0.392 0.652 moveto 0.3811 0.6531 lineto 0.36 0.6404 lineto 0.328 0.5842 lineto } def /fingertip-y .551 def % finger tip @ (1, fingertip-y) /pointer-path { % fx fy tx ty size fingers? => - 10 dict begin /fingers? exch def /size exch def /ty exch def /tx exch def /fy exch def /fx exch def /dx tx fx sub def /dy ty fy sub def /ang dy dx atan def /mat matrix currentmatrix def fx fy moveto tx ty translate ang rotate size dup .75 mul scale -1 fingertip-y neg translate % finger tip to 0,0 open-pointing-hand closepath fingers? { pointing-fingers } if mat setmatrix end % localdict } def end % systemdict end % newfont /PointingHand newfont definefont pop