| % |
| % Color and reverse video support for dpost. A call made to setcolor with two |
| % arguments implies reverse video printing. |
| % |
| |
| /rgb {setrgbcolor} bind def |
| /hsb {sethsbcolor} bind def |
| |
| /colordict 50 dict dup begin |
| /red { 1 0 0 } def |
| /green { 0 1 0 } def |
| /blue { 0 0 1 } def |
| /cyan { 0 1 1 } def |
| /magenta { 1 0 1 } def |
| /yellow { 1 1 0 } def |
| /white { 1 1 1 } def |
| /black { 0 0 0 } def |
| end def |
| |
| /setcolor { |
| counttomark 1 eq { |
| dup colordict exch known not {pop /black} if |
| colordict exch get exec setrgbcolor |
| } if |
| counttomark 2 eq { |
| /backcolor exch def |
| /textcolor exch def |
| colordict backcolor known not colordict textcolor known not or { |
| /backcolor colordict /black get def |
| /textcolor colordict /white get def |
| } if |
| /backcolor colordict backcolor get def |
| /textcolor colordict textcolor get def |
| /dY1 0 def |
| /dY2 0 def |
| textcolor exec setrgbcolor |
| } if |
| } bind def |
| |
| /drawrvbox { |
| /x2 exch def |
| /x1 exch def |
| |
| currentpoint dup |
| /y1 exch def |
| /y2 exch def pop |
| |
| dY1 0 eq dY2 0 eq and { |
| currentfont /FontBBox get aload pop |
| currentfont /FontMatrix get dtransform /dY2 exch def pop |
| currentfont /FontMatrix get dtransform /dY1 exch def pop |
| } if |
| |
| /y1 y1 dY1 add def |
| /y2 y2 dY2 add def |
| |
| backcolor exec setrgbcolor |
| newpath |
| x1 y1 moveto |
| x2 y1 lineto |
| x2 y2 lineto |
| x1 y2 lineto |
| closepath fill |
| textcolor exec setrgbcolor |
| } bind def |