From 2465b87d8483d8cb69cb662196a26d0d0732d7c0 Mon Sep 17 00:00:00 2001 From: Neil Toronto Date: Fri, 20 Jan 2012 13:16:42 -0700 Subject: [PATCH] Coolified clock-icon, added stopwatch-icon Updated Performance Report toolbar icon Updated FrTime loading icon --- collects/frtime/tool/clock.png | Bin 2668 -> 2516 bytes collects/images/icons/misc.rkt | 177 +++++++++++------- collects/images/scribblings/icons.scrbl | 6 +- collects/images/tests/icon-tests.rkt | 3 +- collects/typed-racket/optimizer/tool/tool.rkt | 8 +- 5 files changed, 125 insertions(+), 69 deletions(-) diff --git a/collects/frtime/tool/clock.png b/collects/frtime/tool/clock.png index 96c583338ce58d90c9bedd3faf3751ff9dbf18f3..6d78f9ad6da9ded3a62aa46514d30d6d93fc5d79 100644 GIT binary patch delta 2489 zcmV;q2}btp6x0)tHGc_-Nkl(=dhG`q#7Oj%7)4~o(}q(qTu zLy=?&oXH3_CdwGW#IOUz$RFTURz|YO#(=X5vdB8w7_q(ZB0xq^5?gUw4{J0tnz1z+ zVf3KLX}&~KO|c*KuDX>)H`~fsfdv=ydAw*^=wUVXjuj45C4-?*LG#Xnk64!VE;4j*q_YY~Be(Tur9^I?}Q*O%o+0r9prQNV1GP&&kr1)s+>x zoeqW&WPfQ&nq@Q>7Wm;0ez2Lx@sUQO@pv24+}#(n*Yjw#TI5<|Sr*c=5JDhK6H`jG)`USo@CDNNJEFbrg$B;`s4Q%a&Zrjunu5r55JxkAutp==xZj5Z9zz%)%PrKnb`?Af~) zODU!gA2!o8{pRfKY*|>P(uG%#9LZhR#V`yG96U&UauVBdFio>x$AQo)LNKZnZmC2N zhG<~v;X|HWyT(YRLTNClp3Q)1n%Is*eR7fm2M=Nx29E3U@++_8sn%}_*Yn;yIDb9u z>O5y_ZH>0pnQ`LVpZ(v@Ob(@8dWQLdrjuX&mpiq(lRM@WvasO0jYG zE*tmn^Vx?VQVIgBqQI0AQzW9K<-Auy{|l|I(?c~PM-##y}r(a8#kD{c8%`J3f-k8)=iU_rl%=+9!ZiQmBKQ9qnP5E zctufQI}U~r=sX8NN-0CFb$_`&F~Q`%eeBu07a;_?D2Cz_fCOse~2VqEaVSjC z_rLr8jT_%Ad!FYw4q2Ar`#zRZXs!Fo9*9e7P06+~r6d^`()OTFdGCVwBk_g)zEdf(kPGZq#Wg8frd71wpYTpJscMNweD&<%wU7y}SXDIC|u z9Q1NNINL;ZQD6;hJdPqd?KbOcYivDzN>LOnHkx>vm}mz@MzIlOzdG zHa7B4Zr}bei{rmuSXj`{`UWsqNSWq-YrlF?di=;u<(p}-i}Zc!A& zc3f&UdAhktmSu!t*e_|X$1ks5ZRJUF^tnqZz~bU!ccNbZ*~;?rU+mnuQyD^t*2V_Q zOH1ThBY&kNjw0egT_4=L$J*n^n5IeK`*gOp*xcM?er}Gr2M-9t5JLz$?RNg|_3N8a znx4PfXgqut^SKw3GiT1!-Ad)Zrw<*PuI=1eDwRq|DTlT7JP!AAe+G@18yXy7AF{)OlU}#m*T`U3+#Xzk?-K?=^4`1eh8yea|5TFluP$G{{M^gx3tvv-IR4h& z{rmIX^}1*98;1ji9ioB9%gcVV*))|>KirCXcz%d%gFzW<+*@4s{F)~(=o#RT|Y9{Mpe{8AHN00000NkvXXu0mjf D({JVf delta 2642 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 face-color) 1 'solid) - (send dc set-brush face-color 'solid) - (draw-ellipse/smoothed dc 0 0 32 32) - ;; ticks + (define R 12.5) + (define hour-θ (* (+ (- hours 3) (/ minutes 60)) (/ (* 2 pi) 12))) + (define minute-θ (* (- minutes 15) (/ (* 2 pi) 60))) + (define scale (/ height 32)) + (define face-fm + (flomap-cc-superimpose + ;; face and ticks + (draw-icon-flomap + 32 32 (λ (dc) + (set-icon-pen dc (icon-color->outline-color (icon-color->outline-color face-color)) + 1 'solid) + (send dc set-brush face-color 'solid) + (draw-ellipse/smoothed dc 0 0 32 32) + (set-icon-pen dc "black" 1 'solid) + (for ([i (in-range 60)] + [r (in-cycle (list 1.5 .5 .5 .5 .5 + 1.0 .5 .5 .5 .5 + 1.0 .5 .5 .5 .5))] + [t (in-cycle (list 1.0 .25 .25 .25 .25 + .75 .25 .25 .25 .25 + .75 .25 .25 .25 .25))]) + (define θ (* i (* 1/30 pi))) + (set-icon-pen dc "black" t 'solid) + (send dc draw-line + (+ 15.5 (* (- R r) (cos θ))) + (+ 15.5 (* (- R r) (sin θ))) + (+ 15.5 (* R (cos θ))) + (+ 15.5 (* R (sin θ)))))) + scale) + ;; lambda logo + (fm* 0.33 (lambda-flomap face-color (* 1/2 height) glass-icon-material)) + ;; minute hand + (draw-rendered-icon-flomap + 32 32 (λ (dc) + (set-icon-pen dc (icon-color->outline-color hand-color) 1/2 'solid) + (send dc set-brush hand-color 'solid) + (send dc draw-polygon + (list (cons (+ 15.5 (* R (cos minute-θ))) + (+ 15.5 (* R (sin minute-θ)))) + (cons (+ 15.5 (* 1 (cos (+ minute-θ (* 1/2 pi))))) + (+ 15.5 (* 1 (sin (+ minute-θ (* 1/2 pi)))))) + (cons (+ 15.5 (* 1 (cos (+ minute-θ pi)))) + (+ 15.5 (* 1 (sin (+ minute-θ pi))))) + (cons (+ 15.5 (* 1 (cos (+ minute-θ (* 3/2 pi))))) + (+ 15.5 (* 1 (sin (+ minute-θ (* 3/2 pi))))))))) + scale + metal-icon-material) + ;; hour hand + (draw-rendered-icon-flomap + 32 32 (λ (dc) + (set-icon-pen dc (icon-color->outline-color hand-color) 1/2 'solid) + (send dc set-brush hand-color 'solid) + (send dc draw-polygon + (list (cons (+ 15.5 (* (- R 5) (cos hour-θ))) + (+ 15.5 (* (- R 5) (sin hour-θ)))) + (cons (+ 15.5 (* 1.25 (cos (+ hour-θ (* 1/2 pi))))) + (+ 15.5 (* 1.25 (sin (+ hour-θ (* 1/2 pi)))))) + (cons (+ 15.5 (* 1.25 (cos (+ hour-θ pi)))) + (+ 15.5 (* 1.25 (sin (+ hour-θ pi))))) + (cons (+ 15.5 (* 1.25 (cos (+ hour-θ (* 3/2 pi))))) + (+ 15.5 (* 1.25 (sin (+ hour-θ (* 3/2 pi))))))))) + scale + metal-icon-material))) + + (define shell-fm + (draw-icon-flomap + 32 32 (λ (dc) + (set-icon-pen dc "white" 1 'solid) + (send dc set-brush "white" 'solid) + (draw-ellipse/smoothed dc 1 1 30 30)) + scale)) + + (let* ([dfm (flomap->deep-flomap shell-fm)] + [dfm (deep-flomap-bulge-spheroid dfm (* 9 scale))] + [dfm (deep-flomap-raise dfm (* -2 scale))] + [dfm (deep-flomap-smooth-z dfm (* 1/3 scale))]) + (flomap-cc-superimpose + face-fm + (deep-flomap-render-icon dfm clock-shell-material face-fm))))) + +(defproc (stopwatch-flomap [height (and/c rational? (>=/c 0)) (default-icon-height)] + [face-color (or/c string? (is-a?/c color%)) light-metal-icon-color] + [hand-color (or/c string? (is-a?/c color%)) "firebrick"] + [hours (integer-in 0 11) 0] + [minutes (real-in 0 60) 47]) flomap? + (make-cached-flomap + [height face-color hand-color hours minutes] + (define clock-fm (clock-flomap (* 30/32 height) face-color hand-color hours minutes)) + (define buttons-fm + (draw-rendered-icon-flomap + 32 8 (λ (dc) + (set-icon-pen dc (make-object color% 128 0 0) 1 'solid) + (send dc set-brush (make-object color% 144 0 0) 'solid) + (send dc draw-polygon '((2 . 4) (4 . 2) (31 . 31))) + (send dc draw-polygon '((0 . 5) (5 . 0) (6 . 1) (1 . 6))) (set-icon-pen dc "black" 1 'solid) - (for ([θ (in-range 0 (* 2 pi) (* 1/6 pi))] - [i (in-cycle (in-range 0 3))]) - (define r (if (= i 0) 2 1)) - (send dc draw-line - (+ 15.5 (* (- R r) (cos θ))) - (+ 15.5 (* (- R r) (sin θ))) - (+ 15.5 (* R (cos θ))) - (+ 15.5 (* R (sin θ))))) - (set-icon-pen dc (icon-color->outline-color hand-color) 1/2 'solid) - (send dc set-brush hand-color 'solid) - ;; minute hand - (send dc draw-polygon - (list (cons (+ 15.5 (* R (cos minute-θ))) - (+ 15.5 (* R (sin minute-θ)))) - (cons (+ 15.5 (* 1.5 (cos (+ minute-θ 60-degrees)))) - (+ 15.5 (* 1.5 (sin (+ minute-θ 60-degrees))))) - (cons (+ 15.5 (* 1.5 (cos (- minute-θ 60-degrees)))) - (+ 15.5 (* 1.5 (sin (- minute-θ 60-degrees))))))) - ;; hour hand - (send dc draw-polygon - (list (cons (+ 15.5 (* (- R 4) (cos hour-θ))) - (+ 15.5 (* (- R 4) (sin hour-θ)))) - (cons (+ 15.5 (* 1.5 (cos (+ hour-θ 60-degrees)))) - (+ 15.5 (* 1.5 (sin (+ hour-θ 60-degrees))))) - (cons (+ 15.5 (* 1.5 (cos (- hour-θ 60-degrees)))) - (+ 15.5 (* 1.5 (sin (- hour-θ 60-degrees)))))))) - scale)) - - (define shell-fm - (draw-icon-flomap - 32 32 (λ (dc) - (set-icon-pen dc (icon-color->outline-color "white") 1 'solid) - (send dc set-brush "white" 'solid) - (draw-ellipse/smoothed dc 0 0 32 32)) - scale)) - - (let* ([dfm (flomap->deep-flomap shell-fm)] - [dfm (deep-flomap-bulge-spheroid dfm (* 8 scale))]) - (deep-flomap-render-icon dfm clock-shell-material face-fm)))) + (send dc set-brush (make-object color% 16 16 16) 'solid) + (send dc draw-polygon '((28.5 . 5.5) (25.5 . 2.5) (0 . 31))) + (send dc draw-polygon '((31 . 5) (26 . 0) (24.5 . 1.5) (29.5 . 6.5)))) + (/ height 32) + metal-icon-material)) + (flomap-pin* 1/2 0 1/2 -2/32 buttons-fm clock-fm))) ;; =================================================================================================== ;; Bitmaps (icons) @@ -335,12 +384,14 @@ ) (is-a?/c bitmap%) (flomap->bitmap (regular-polygon-flomap sides start color height material))) -(defproc (clock-icon [height (and/c rational? (>=/c 0)) (default-icon-height)] - [face-color (or/c string? (is-a?/c color%)) light-metal-icon-color] - [hand-color (or/c string? (is-a?/c color%)) "firebrick"] - [hours (integer-in 0 11) 1] - [minutes (real-in 0 60) 33]) (is-a?/c bitmap%) - (flomap->bitmap (clock-flomap height face-color hand-color hours minutes))) +(define-icon-wrappers + ([height (and/c rational? (>=/c 0)) (default-icon-height)] + [face-color (or/c string? (is-a?/c color%)) light-metal-icon-color] + [hand-color (or/c string? (is-a?/c color%)) "firebrick"] + [hours (integer-in 0 11) 0] + [minutes (real-in 0 60) 47]) + [clock-icon clock-flomap] + [stopwatch-icon stopwatch-flomap]) (define-icon-wrappers ([color (or/c string? (is-a?/c color%))] diff --git a/collects/images/scribblings/icons.scrbl b/collects/images/scribblings/icons.scrbl index e4ab2ce3d1..d180458636 100644 --- a/collects/images/scribblings/icons.scrbl +++ b/collects/images/scribblings/icons.scrbl @@ -393,10 +393,14 @@ Equivalent to @racket[(regular-polygon-icon 8 (/ (* 2 pi) 16) color height mater @doc-apply[clock-icon]{ @examples[#:eval icons-eval - (clock-icon 48) + (clock-icon 96) (clock-icon 48 "lightblue" "darkblue" 3 21)] } +@doc-apply[stopwatch-icon]{ +@examples[#:eval icons-eval (stopwatch-icon 96)] +} + @;==================================================================================================== @section[#:tag "stickman"]{Stickman Icons} diff --git a/collects/images/tests/icon-tests.rkt b/collects/images/tests/icon-tests.rkt index f43a66d245..9de3436f60 100644 --- a/collects/images/tests/icon-tests.rkt +++ b/collects/images/tests/icon-tests.rkt @@ -53,7 +53,8 @@ (λ (color) (magnifying-glass-icon metal-icon-color color)) (λ (color) (left-magnifying-glass-icon metal-icon-color color)) (λ (color) (bomb-icon metal-icon-color color)) - (λ (color) (left-bomb-icon metal-icon-color color))))) + (λ (color) (left-bomb-icon metal-icon-color color)) + (λ (color) (stopwatch-icon (default-icon-height) color))))) (define tool-icon-procs (list check-syntax-icon small-check-syntax-icon diff --git a/collects/typed-racket/optimizer/tool/tool.rkt b/collects/typed-racket/optimizer/tool/tool.rkt index 926aa31aac..186ed37197 100644 --- a/collects/typed-racket/optimizer/tool/tool.rkt +++ b/collects/typed-racket/optimizer/tool/tool.rkt @@ -1,7 +1,9 @@ #lang racket/base (require racket/class racket/port racket/list racket/match - racket/gui/base racket/unit drracket/tool) + racket/gui/base racket/unit drracket/tool + images/compile-time + (for-syntax racket/base images/icons/misc images/icons/style)) (require "report.rkt" "display.rkt") @@ -11,9 +13,7 @@ ;; DrRacket tool for reporting missed optimizations in the editor. (define performance-report-bitmap - (make-object - bitmap% - (collection-file-path "performance-report.png" "icons") 'png/mask)) + (compiled-bitmap (stopwatch-icon (toolbar-icon-height)))) ;; performance-report-callback : drracket:unit:frame<%> -> void (define (performance-report-callback drr-frame)