|
|
|
@ -92,35 +92,24 @@
|
|
|
|
|
(public [@_doOpacity doOpacity])
|
|
|
|
|
(define (@_doOpacity fillOpacity strokeOpacity)
|
|
|
|
|
(when (or fillOpacity strokeOpacity)
|
|
|
|
|
(when fillOpacity
|
|
|
|
|
(set! fillOpacity (max 0 (min 1 fillOpacity))))
|
|
|
|
|
(when strokeOpacity
|
|
|
|
|
(set! strokeOpacity (max 0 (min 1 strokeOpacity))))
|
|
|
|
|
(set! fillOpacity (and fillOpacity (bounded 0 fillOpacity 1)))
|
|
|
|
|
(set! strokeOpacity (and strokeOpacity (bounded 0 strokeOpacity 1)))
|
|
|
|
|
|
|
|
|
|
(define key (format "~a_~a"
|
|
|
|
|
(if fillOpacity (number fillOpacity) "")
|
|
|
|
|
(if strokeOpacity (number strokeOpacity) "")))
|
|
|
|
|
|
|
|
|
|
(define dictionary #f)
|
|
|
|
|
(define name #f)
|
|
|
|
|
(cond
|
|
|
|
|
[(hash-has-key? @_opacityRegistry key)
|
|
|
|
|
(match-define (list d n) (hash-ref @_opacityRegistry key))
|
|
|
|
|
(set! dictionary d)
|
|
|
|
|
(set! name n)]
|
|
|
|
|
[else
|
|
|
|
|
(set! dictionary (mhash 'Type "ExtGState"))
|
|
|
|
|
(when fillOpacity
|
|
|
|
|
(hash-set! dictionary 'ca fillOpacity))
|
|
|
|
|
(when strokeOpacity
|
|
|
|
|
(hash-set! dictionary 'CA strokeOpacity))
|
|
|
|
|
|
|
|
|
|
(set! dictionary (send this ref dictionary))
|
|
|
|
|
(· dictionary end)
|
|
|
|
|
(++ @_opacityCount)
|
|
|
|
|
(define id @_opacityCount)
|
|
|
|
|
(set! name (format "Gs~a" id))
|
|
|
|
|
(hash-set! @_opacityRegistry key (list dictionary name))])
|
|
|
|
|
(match-define (list dictionary name)
|
|
|
|
|
(hash-ref! @_opacityRegistry key
|
|
|
|
|
(λ ()
|
|
|
|
|
(define dictionary (mhash 'Type "ExtGState"))
|
|
|
|
|
(when fillOpacity
|
|
|
|
|
(hash-set! dictionary 'ca fillOpacity))
|
|
|
|
|
(when strokeOpacity
|
|
|
|
|
(hash-set! dictionary 'CA strokeOpacity))
|
|
|
|
|
(define dict-ref (send this ref dictionary))
|
|
|
|
|
(· dict-ref end)
|
|
|
|
|
(list dict-ref (format "Gs~a" (++ @_opacityCount))))))
|
|
|
|
|
|
|
|
|
|
(hash-set! (· this page ext_gstates) name dictionary)
|
|
|
|
|
(send this addContent (format "/~a gs" name))))
|
|
|
|
@ -128,153 +117,153 @@
|
|
|
|
|
))
|
|
|
|
|
|
|
|
|
|
(define namedColors
|
|
|
|
|
(mhash "aliceblue" '(240 248 255)
|
|
|
|
|
"antiquewhite" '(250 235 215)
|
|
|
|
|
"aqua" '(0 255 255)
|
|
|
|
|
"aquamarine" '(127 255 212)
|
|
|
|
|
"azure" '(240 255 255)
|
|
|
|
|
"beige" '(245 245 220)
|
|
|
|
|
"bisque" '(255 228 196)
|
|
|
|
|
"black" '(0 0 0)
|
|
|
|
|
"blanchedalmond" '(255 235 205)
|
|
|
|
|
"blue" '(0 0 255)
|
|
|
|
|
"blueviolet" '(138 43 226)
|
|
|
|
|
"brown" '(165 42 42)
|
|
|
|
|
"burlywood" '(222 184 135)
|
|
|
|
|
"cadetblue" '(95 158 160)
|
|
|
|
|
"chartreuse" '(127 255 0)
|
|
|
|
|
"chocolate" '(210 105 30)
|
|
|
|
|
"coral" '(255 127 80)
|
|
|
|
|
"cornflowerblue" '(100 149 237)
|
|
|
|
|
"cornsilk" '(255 248 220)
|
|
|
|
|
"crimson" '(220 20 60)
|
|
|
|
|
"cyan" '(0 255 255)
|
|
|
|
|
"darkblue" '(0 0 139)
|
|
|
|
|
"darkcyan" '(0 139 139)
|
|
|
|
|
"darkgoldenrod" '(184 134 11)
|
|
|
|
|
"darkgray" '(169 169 169)
|
|
|
|
|
"darkgreen" '(0 100 0)
|
|
|
|
|
"darkgrey" '(169 169 169)
|
|
|
|
|
"darkkhaki" '(189 183 107)
|
|
|
|
|
"darkmagenta" '(139 0 139)
|
|
|
|
|
"darkolivegreen" '(85 107 47)
|
|
|
|
|
"darkorange" '(255 140 0)
|
|
|
|
|
"darkorchid" '(153 50 204)
|
|
|
|
|
"darkred" '(139 0 0)
|
|
|
|
|
"darksalmon" '(233 150 122)
|
|
|
|
|
"darkseagreen" '(143 188 143)
|
|
|
|
|
"darkslateblue" '(72 61 139)
|
|
|
|
|
"darkslategray" '(47 79 79)
|
|
|
|
|
"darkslategrey" '(47 79 79)
|
|
|
|
|
"darkturquoise" '(0 206 209)
|
|
|
|
|
"darkviolet" '(148 0 211)
|
|
|
|
|
"deeppink" '(255 20 147)
|
|
|
|
|
"deepskyblue" '(0 191 255)
|
|
|
|
|
"dimgray" '(105 105 105)
|
|
|
|
|
"dimgrey" '(105 105 105)
|
|
|
|
|
"dodgerblue" '(30 144 255)
|
|
|
|
|
"firebrick" '(178 34 34)
|
|
|
|
|
"floralwhite" '(255 250 240)
|
|
|
|
|
"forestgreen" '(34 139 34)
|
|
|
|
|
"fuchsia" '(255 0 255)
|
|
|
|
|
"gainsboro" '(220 220 220)
|
|
|
|
|
"ghostwhite" '(248 248 255)
|
|
|
|
|
"gold" '(255 215 0)
|
|
|
|
|
"goldenrod" '(218 165 32)
|
|
|
|
|
"gray" '(128 128 128)
|
|
|
|
|
"grey" '(128 128 128)
|
|
|
|
|
"green" '(0 128 0)
|
|
|
|
|
"greenyellow" '(173 255 47)
|
|
|
|
|
"honeydew" '(240 255 240)
|
|
|
|
|
"hotpink" '(255 105 180)
|
|
|
|
|
"indianred" '(205 92 92)
|
|
|
|
|
"indigo" '(75 0 130)
|
|
|
|
|
"ivory" '(255 255 240)
|
|
|
|
|
"khaki" '(240 230 140)
|
|
|
|
|
"lavender" '(230 230 250)
|
|
|
|
|
"lavenderblush" '(255 240 245)
|
|
|
|
|
"lawngreen" '(124 252 0)
|
|
|
|
|
"lemonchiffon" '(255 250 205)
|
|
|
|
|
"lightblue" '(173 216 230)
|
|
|
|
|
"lightcoral" '(240 128 128)
|
|
|
|
|
"lightcyan" '(224 255 255)
|
|
|
|
|
"lightgoldenrodyellow" '(250 250 210)
|
|
|
|
|
"lightgray" '(211 211 211)
|
|
|
|
|
"lightgreen" '(144 238 144)
|
|
|
|
|
"lightgrey" '(211 211 211)
|
|
|
|
|
"lightpink" '(255 182 193)
|
|
|
|
|
"lightsalmon" '(255 160 122)
|
|
|
|
|
"lightseagreen" '(32 178 170)
|
|
|
|
|
"lightskyblue" '(135 206 250)
|
|
|
|
|
"lightslategray" '(119 136 153)
|
|
|
|
|
"lightslategrey" '(119 136 153)
|
|
|
|
|
"lightsteelblue" '(176 196 222)
|
|
|
|
|
"lightyellow" '(255 255 224)
|
|
|
|
|
"lime" '(0 255 0)
|
|
|
|
|
"limegreen" '(50 205 50)
|
|
|
|
|
"linen" '(250 240 230)
|
|
|
|
|
"magenta" '(255 0 255)
|
|
|
|
|
"maroon" '(128 0 0)
|
|
|
|
|
"mediumaquamarine" '(102 205 170)
|
|
|
|
|
"mediumblue" '(0 0 205)
|
|
|
|
|
"mediumorchid" '(186 85 211)
|
|
|
|
|
"mediumpurple" '(147 112 219)
|
|
|
|
|
"mediumseagreen" '(60 179 113)
|
|
|
|
|
"mediumslateblue" '(123 104 238)
|
|
|
|
|
"mediumspringgreen" '(0 250 154)
|
|
|
|
|
"mediumturquoise" '(72 209 204)
|
|
|
|
|
"mediumvioletred" '(199 21 133)
|
|
|
|
|
"midnightblue" '(25 25 112)
|
|
|
|
|
"mintcream" '(245 255 250)
|
|
|
|
|
"mistyrose" '(255 228 225)
|
|
|
|
|
"moccasin" '(255 228 181)
|
|
|
|
|
"navajowhite" '(255 222 173)
|
|
|
|
|
"navy" '(0 0 128)
|
|
|
|
|
"oldlace" '(253 245 230)
|
|
|
|
|
"olive" '(128 128 0)
|
|
|
|
|
"olivedrab" '(107 142 35)
|
|
|
|
|
"orange" '(255 165 0)
|
|
|
|
|
"orangered" '(255 69 0)
|
|
|
|
|
"orchid" '(218 112 214)
|
|
|
|
|
"palegoldenrod" '(238 232 170)
|
|
|
|
|
"palegreen" '(152 251 152)
|
|
|
|
|
"paleturquoise" '(175 238 238)
|
|
|
|
|
"palevioletred" '(219 112 147)
|
|
|
|
|
"papayawhip" '(255 239 213)
|
|
|
|
|
"peachpuff" '(255 218 185)
|
|
|
|
|
"peru" '(205 133 63)
|
|
|
|
|
"pink" '(255 192 203)
|
|
|
|
|
"plum" '(221 160 221)
|
|
|
|
|
"powderblue" '(176 224 230)
|
|
|
|
|
"purple" '(128 0 128)
|
|
|
|
|
"red" '(255 0 0)
|
|
|
|
|
"rosybrown" '(188 143 143)
|
|
|
|
|
"royalblue" '(65 105 225)
|
|
|
|
|
"saddlebrown" '(139 69 19)
|
|
|
|
|
"salmon" '(250 128 114)
|
|
|
|
|
"sandybrown" '(244 164 96)
|
|
|
|
|
"seagreen" '(46 139 87)
|
|
|
|
|
"seashell" '(255 245 238)
|
|
|
|
|
"sienna" '(160 82 45)
|
|
|
|
|
"silver" '(192 192 192)
|
|
|
|
|
"skyblue" '(135 206 235)
|
|
|
|
|
"slateblue" '(106 90 205)
|
|
|
|
|
"slategray" '(112 128 144)
|
|
|
|
|
"slategrey" '(112 128 144)
|
|
|
|
|
"snow" '(255 250 250)
|
|
|
|
|
"springgreen" '(0 255 127)
|
|
|
|
|
"steelblue" '(70 130 180)
|
|
|
|
|
"tan" '(210 180 140)
|
|
|
|
|
"teal" '(0 128 128)
|
|
|
|
|
"thistle" '(216 191 216)
|
|
|
|
|
"tomato" '(255 99 71)
|
|
|
|
|
"turquoise" '(64 224 208)
|
|
|
|
|
"violet" '(238 130 238)
|
|
|
|
|
"wheat" '(245 222 179)
|
|
|
|
|
"white" '(255 255 255)
|
|
|
|
|
"whitesmoke" '(245 245 245)
|
|
|
|
|
"yellow" '(255 255 0)
|
|
|
|
|
"yellowgreen" '(154 205 50)))
|
|
|
|
|
(hash "aliceblue" '(240 248 255)
|
|
|
|
|
"antiquewhite" '(250 235 215)
|
|
|
|
|
"aqua" '(0 255 255)
|
|
|
|
|
"aquamarine" '(127 255 212)
|
|
|
|
|
"azure" '(240 255 255)
|
|
|
|
|
"beige" '(245 245 220)
|
|
|
|
|
"bisque" '(255 228 196)
|
|
|
|
|
"black" '(0 0 0)
|
|
|
|
|
"blanchedalmond" '(255 235 205)
|
|
|
|
|
"blue" '(0 0 255)
|
|
|
|
|
"blueviolet" '(138 43 226)
|
|
|
|
|
"brown" '(165 42 42)
|
|
|
|
|
"burlywood" '(222 184 135)
|
|
|
|
|
"cadetblue" '(95 158 160)
|
|
|
|
|
"chartreuse" '(127 255 0)
|
|
|
|
|
"chocolate" '(210 105 30)
|
|
|
|
|
"coral" '(255 127 80)
|
|
|
|
|
"cornflowerblue" '(100 149 237)
|
|
|
|
|
"cornsilk" '(255 248 220)
|
|
|
|
|
"crimson" '(220 20 60)
|
|
|
|
|
"cyan" '(0 255 255)
|
|
|
|
|
"darkblue" '(0 0 139)
|
|
|
|
|
"darkcyan" '(0 139 139)
|
|
|
|
|
"darkgoldenrod" '(184 134 11)
|
|
|
|
|
"darkgray" '(169 169 169)
|
|
|
|
|
"darkgreen" '(0 100 0)
|
|
|
|
|
"darkgrey" '(169 169 169)
|
|
|
|
|
"darkkhaki" '(189 183 107)
|
|
|
|
|
"darkmagenta" '(139 0 139)
|
|
|
|
|
"darkolivegreen" '(85 107 47)
|
|
|
|
|
"darkorange" '(255 140 0)
|
|
|
|
|
"darkorchid" '(153 50 204)
|
|
|
|
|
"darkred" '(139 0 0)
|
|
|
|
|
"darksalmon" '(233 150 122)
|
|
|
|
|
"darkseagreen" '(143 188 143)
|
|
|
|
|
"darkslateblue" '(72 61 139)
|
|
|
|
|
"darkslategray" '(47 79 79)
|
|
|
|
|
"darkslategrey" '(47 79 79)
|
|
|
|
|
"darkturquoise" '(0 206 209)
|
|
|
|
|
"darkviolet" '(148 0 211)
|
|
|
|
|
"deeppink" '(255 20 147)
|
|
|
|
|
"deepskyblue" '(0 191 255)
|
|
|
|
|
"dimgray" '(105 105 105)
|
|
|
|
|
"dimgrey" '(105 105 105)
|
|
|
|
|
"dodgerblue" '(30 144 255)
|
|
|
|
|
"firebrick" '(178 34 34)
|
|
|
|
|
"floralwhite" '(255 250 240)
|
|
|
|
|
"forestgreen" '(34 139 34)
|
|
|
|
|
"fuchsia" '(255 0 255)
|
|
|
|
|
"gainsboro" '(220 220 220)
|
|
|
|
|
"ghostwhite" '(248 248 255)
|
|
|
|
|
"gold" '(255 215 0)
|
|
|
|
|
"goldenrod" '(218 165 32)
|
|
|
|
|
"gray" '(128 128 128)
|
|
|
|
|
"grey" '(128 128 128)
|
|
|
|
|
"green" '(0 128 0)
|
|
|
|
|
"greenyellow" '(173 255 47)
|
|
|
|
|
"honeydew" '(240 255 240)
|
|
|
|
|
"hotpink" '(255 105 180)
|
|
|
|
|
"indianred" '(205 92 92)
|
|
|
|
|
"indigo" '(75 0 130)
|
|
|
|
|
"ivory" '(255 255 240)
|
|
|
|
|
"khaki" '(240 230 140)
|
|
|
|
|
"lavender" '(230 230 250)
|
|
|
|
|
"lavenderblush" '(255 240 245)
|
|
|
|
|
"lawngreen" '(124 252 0)
|
|
|
|
|
"lemonchiffon" '(255 250 205)
|
|
|
|
|
"lightblue" '(173 216 230)
|
|
|
|
|
"lightcoral" '(240 128 128)
|
|
|
|
|
"lightcyan" '(224 255 255)
|
|
|
|
|
"lightgoldenrodyellow" '(250 250 210)
|
|
|
|
|
"lightgray" '(211 211 211)
|
|
|
|
|
"lightgreen" '(144 238 144)
|
|
|
|
|
"lightgrey" '(211 211 211)
|
|
|
|
|
"lightpink" '(255 182 193)
|
|
|
|
|
"lightsalmon" '(255 160 122)
|
|
|
|
|
"lightseagreen" '(32 178 170)
|
|
|
|
|
"lightskyblue" '(135 206 250)
|
|
|
|
|
"lightslategray" '(119 136 153)
|
|
|
|
|
"lightslategrey" '(119 136 153)
|
|
|
|
|
"lightsteelblue" '(176 196 222)
|
|
|
|
|
"lightyellow" '(255 255 224)
|
|
|
|
|
"lime" '(0 255 0)
|
|
|
|
|
"limegreen" '(50 205 50)
|
|
|
|
|
"linen" '(250 240 230)
|
|
|
|
|
"magenta" '(255 0 255)
|
|
|
|
|
"maroon" '(128 0 0)
|
|
|
|
|
"mediumaquamarine" '(102 205 170)
|
|
|
|
|
"mediumblue" '(0 0 205)
|
|
|
|
|
"mediumorchid" '(186 85 211)
|
|
|
|
|
"mediumpurple" '(147 112 219)
|
|
|
|
|
"mediumseagreen" '(60 179 113)
|
|
|
|
|
"mediumslateblue" '(123 104 238)
|
|
|
|
|
"mediumspringgreen" '(0 250 154)
|
|
|
|
|
"mediumturquoise" '(72 209 204)
|
|
|
|
|
"mediumvioletred" '(199 21 133)
|
|
|
|
|
"midnightblue" '(25 25 112)
|
|
|
|
|
"mintcream" '(245 255 250)
|
|
|
|
|
"mistyrose" '(255 228 225)
|
|
|
|
|
"moccasin" '(255 228 181)
|
|
|
|
|
"navajowhite" '(255 222 173)
|
|
|
|
|
"navy" '(0 0 128)
|
|
|
|
|
"oldlace" '(253 245 230)
|
|
|
|
|
"olive" '(128 128 0)
|
|
|
|
|
"olivedrab" '(107 142 35)
|
|
|
|
|
"orange" '(255 165 0)
|
|
|
|
|
"orangered" '(255 69 0)
|
|
|
|
|
"orchid" '(218 112 214)
|
|
|
|
|
"palegoldenrod" '(238 232 170)
|
|
|
|
|
"palegreen" '(152 251 152)
|
|
|
|
|
"paleturquoise" '(175 238 238)
|
|
|
|
|
"palevioletred" '(219 112 147)
|
|
|
|
|
"papayawhip" '(255 239 213)
|
|
|
|
|
"peachpuff" '(255 218 185)
|
|
|
|
|
"peru" '(205 133 63)
|
|
|
|
|
"pink" '(255 192 203)
|
|
|
|
|
"plum" '(221 160 221)
|
|
|
|
|
"powderblue" '(176 224 230)
|
|
|
|
|
"purple" '(128 0 128)
|
|
|
|
|
"red" '(255 0 0)
|
|
|
|
|
"rosybrown" '(188 143 143)
|
|
|
|
|
"royalblue" '(65 105 225)
|
|
|
|
|
"saddlebrown" '(139 69 19)
|
|
|
|
|
"salmon" '(250 128 114)
|
|
|
|
|
"sandybrown" '(244 164 96)
|
|
|
|
|
"seagreen" '(46 139 87)
|
|
|
|
|
"seashell" '(255 245 238)
|
|
|
|
|
"sienna" '(160 82 45)
|
|
|
|
|
"silver" '(192 192 192)
|
|
|
|
|
"skyblue" '(135 206 235)
|
|
|
|
|
"slateblue" '(106 90 205)
|
|
|
|
|
"slategray" '(112 128 144)
|
|
|
|
|
"slategrey" '(112 128 144)
|
|
|
|
|
"snow" '(255 250 250)
|
|
|
|
|
"springgreen" '(0 255 127)
|
|
|
|
|
"steelblue" '(70 130 180)
|
|
|
|
|
"tan" '(210 180 140)
|
|
|
|
|
"teal" '(0 128 128)
|
|
|
|
|
"thistle" '(216 191 216)
|
|
|
|
|
"tomato" '(255 99 71)
|
|
|
|
|
"turquoise" '(64 224 208)
|
|
|
|
|
"violet" '(238 130 238)
|
|
|
|
|
"wheat" '(245 222 179)
|
|
|
|
|
"white" '(255 255 255)
|
|
|
|
|
"whitesmoke" '(245 245 245)
|
|
|
|
|
"yellow" '(255 255 0)
|
|
|
|
|
"yellowgreen" '(154 205 50)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(define c (new (color-mixin object%)))
|
|
|
|
|