diff --git a/collects/scribblings/slideshow/picts.scrbl b/collects/scribblings/slideshow/picts.scrbl index 55b9318d6b..0b21bd6dbf 100644 --- a/collects/scribblings/slideshow/picts.scrbl +++ b/collects/scribblings/slideshow/picts.scrbl @@ -233,10 +233,14 @@ override settings supplied by the context.} @defproc*[([(ellipse [w real?] [h real?]) pict?] [(circle [diameter real?]) pict?] - [(filled-ellipse [w real?] [h real?]) pict?] - [(disk [diameter real?]) pict?])]{ + [(filled-ellipse [w real?] [h real?] [#:draw-border? draw-border? any/c #t]) pict?] + [(disk [diameter real?] [#:draw-border? draw-border? any/c #t]) pict?])]{ -Unfilled and filled ellipses.} +Unfilled and filled ellipses. + +If @racket[draw-border?] is @racket[#f], then the pen is set to be transparent +before drawing the ellipse. +} @defproc*[([(rectangle [w real?] [h real?]) pict?] [(filled-rectangle [w real?] diff --git a/collects/texpict/utils.rkt b/collects/texpict/utils.rkt index 84362dbfc9..965038c6e5 100644 --- a/collects/texpict/utils.rkt +++ b/collects/texpict/utils.rkt @@ -344,16 +344,21 @@ (send dc set-brush b))) width height)) - (define (disk size) (filled-ellipse size size)) + (define (disk size #:draw-border? [draw-border? #t]) + (filled-ellipse size size #:draw-border? draw-border?)) - (define (filled-ellipse width height) + (define (filled-ellipse width height #:draw-border? [draw-border? #t]) (dc (lambda (dc x y) - (let ([b (send dc get-brush)]) - (send dc set-brush (send the-brush-list find-or-create-brush - (send (send dc get-pen) get-color) - 'solid)) - (send dc draw-ellipse x y width height) - (send dc set-brush b))) + (define b (send dc get-brush)) + (define p (send dc get-pen)) + (send dc set-brush (send the-brush-list find-or-create-brush + (send (send dc get-pen) get-color) + 'solid)) + (unless draw-border? + (send dc set-pen "black" 1 'transparent)) + (send dc draw-ellipse x y width height) + (send dc set-brush b) + (send dc set-pen p)) width height)) (define cloud