From 9b4e0ad15a7921c49c711b9f5b414b6489969e17 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 11 Nov 2011 08:12:11 -0600 Subject: [PATCH] add a #:draw-border? to filled-rounded-rectangle --- collects/scribblings/slideshow/picts.scrbl | 6 +++++- collects/texpict/utils.rkt | 10 +++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/collects/scribblings/slideshow/picts.scrbl b/collects/scribblings/slideshow/picts.scrbl index 432f077766..e911925ae8 100644 --- a/collects/scribblings/slideshow/picts.scrbl +++ b/collects/scribblings/slideshow/picts.scrbl @@ -236,7 +236,8 @@ before drawing the rectangle. pict?] [(filled-rounded-rectangle [w real?] [h real?] [corner-radius real? -0.25] - [#:angle angle real? 0]) + [#:angle angle real? 0] + [#:draw-border? draw-border? any/c #t]) pict?])]{ Unfilled and filled rectangles with rounded corners. The @@ -251,6 +252,9 @@ and @racket[height]. The @racket[angle] determines how much the rectangle is rotated, in radians. + +If @racket[draw-border?] is @racket[#f], then the pen is set to be transparent +before drawing the rectangle. } @defproc[(bitmap [img (or/c path-string? diff --git a/collects/texpict/utils.rkt b/collects/texpict/utils.rkt index a772ba43fd..86129e7039 100644 --- a/collects/texpict/utils.rkt +++ b/collects/texpict/utils.rkt @@ -308,18 +308,22 @@ w h)))) - (define (filled-rounded-rectangle w h [corner-radius -0.25] #:angle [angle 0]) + (define (filled-rounded-rectangle w h [corner-radius -0.25] #:angle [angle 0] #:draw-border? [draw-border? #t]) (let ([dc-path (new dc-path%)]) (send dc-path rounded-rectangle 0 0 w h corner-radius) (send dc-path rotate angle) (let-values ([(x y w h) (send dc-path get-bounding-box)]) (dc (λ (dc dx dy) - (let ([brush (send dc get-brush)]) + (let ([brush (send dc get-brush)] + [pen (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-path dc-path (- dx x) (- dy y)) - (send dc set-brush brush))) + (send dc set-brush brush) + (send dc set-pen pen))) w h))))