From f1add6929b104a04c5e70f0a7b06d3c9a7c617ae Mon Sep 17 00:00:00 2001 From: Neil Toronto Date: Fri, 20 Jan 2012 12:29:52 -0700 Subject: [PATCH] Added portable hash-quote-icon, updated and recolored macro stepper toolbar icon Closes PR 12422 Please merge into release --- collects/icons/macro-stepper-32x32.png | Bin 2645 -> 2589 bytes collects/images/icons/symbol.rkt | 35 ++++++++++++++++++++++-- collects/images/icons/tool.rkt | 12 ++++---- collects/images/logos.rkt | 27 ++---------------- collects/images/scribblings/icons.scrbl | 14 +++++++--- collects/images/scribblings/logos.scrbl | 4 +-- collects/images/tests/icon-tests.rkt | 2 +- 7 files changed, 54 insertions(+), 40 deletions(-) diff --git a/collects/icons/macro-stepper-32x32.png b/collects/icons/macro-stepper-32x32.png index 4ed6905da57beca35bb71f32098f18770015a095..c6c9a6e661330c4548e08be2668171c57a0a55f0 100644 GIT binary patch delta 2562 zcmV+d3jOuf6rB{1HGc`xNklZYm8l2b;o~upL6cHuemdGXU6mJ*ui!@wv*WL zIPps;gh@;sFpiSOC}~mh4?|J*)J9E#y=bU>Ud+&aj1n{HSAG$sst-aPy|NUR$w{_Yu!jvuDpIQpIz``HaGvv>So*NIiEz62j?pMm27WsZp!8d9?ld7mlksawJ;p_ZWKTivb{fd z-JbRLZ+S8+M1Om(K0CU~^5{t7saIUL_eUM&74!c2U;dR3+`W=)wvWSyk2*vHqQ_F8uCNyqITv821%p#IFw4o^T^P464Fw{Crq#fu-~ z(MLX>pPqc{ap3b>CxgZaPMo+vu~@=!ETnWXCLNs9IDh$f*PXZQz7PMY<2PF}R(Vgc2bnuA66ideT

~M}M;6&JEwVICl0at#t1Au|u3Zd59#MPP9pOC2{2i z%jucXs<}CiBIo$=gM`5}Noz8|sLvan4%tro=I(hzP7qpnUV}JJNRoufi3t%!lk?zuDma9En`696s$=yO6^ zpG@MZ(N=ISj9U|09<J7qh zGV&XfMyd3N7OgKE2*9Bss5V@Q&aVt$j8)1DWXdL;j$hWOLlX3gsw|aO) z?0@HHCW$A`Hob#O06NO+KPRR0)l%mzh5I%?jBPozq6mXPr3&+|3xojMwh#hbH$xOf z?0W4b8nZ`yW5O?0FKzjU_V%6krhhtJiPlxE)vho+eGx$93PXXLU67M9hc+$Z)@T?s zkL5eM);%PJ{d}o&Ret@35g_HBO&PX4xP@A^$}`{i4?M4r&dy6b{nvlYK)H>7{LT)3 zv0Ea9gJmg3HaXn3YMFWM)mJ8;{=%ORTy0X27`_*^#{4)Mi{fa^mr{JMqkm)gCV_Z9 z-?l72JiHOl^O&8ju=j$p|V28nprwWCeUs9@hyR@zS&HAyQc9hrd%((M1%a^ZVY-}8*6~&^# zw&(U%6Y%{IuVJt(_cz7rb$_2m(?g}uXeh?V#uzBwOts<*gZLKk$W;J<_We_@0c-QUcs#Ve} z@=_qV3ISTc*w`pqOP>4w9-jKd-%+pUaWY*wDXnc+=3nb|yhvJks?{2nm7!iw`PSFJ zOM6F#CqK2Fo62Q&?SI|Jf4%%BTEqH{Lp-weBly6x&wPjJseoG5Lu;4u@iw$pByosk z7eKJ+`T$0CNSOgZ2tlRd^7^iT#fuv>8cil#mkZ~|*!|xjMoWg4H<$`T>h(JBygkjS zQyCzOF%kg?G(rfZbP*kv8_NH#{^BE zG!vDUn-FSR`TfRp0)qG7m1AIjALXtLwryis7Rzs0$^#Dy zY+JH?#ZrthbaZxb*WHWpyp+9r#+jbZqO}5J&|0BVAB?HohyrJo3j2*w2qCz0?IIp{ zcq_i|BZNR}&418}rEJ`ACn->`*U?%dEsMt7OICSva$cl|I27^KC1f>GBF=ws| zpp|+-rQT|zlRQA2#9W%5#&#Ssj)M_`R;xv`(Le}+lgVI7NvagS?-Tew0*RD1TBjJJ z(K;ec>b}s)j_U$AmVQ|&|C>trKqq_OJk9BoHEtg2=6|01K8VqpAHVz>Q&TCKOv8&6CzWUb%0O;->9>6Yq-Lai*nQU2Q-JYVIDPh}Lz@X9=aqJOAm1f+kT4@^n zn@QuptW@5fxL)lW0(dXld)F;;l=%Z;x!Z(g4+=ylfI-g~m0naT*{LjkRG*srEWeTX YUw3=@i$pBkasU7T07*qoM6N<$f()S)Z~y=R delta 2619 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/c 0)) (default-icon-height)] + [material deep-flomap-material-value? (default-icon-material)]) flomap? + (make-cached-flomap + [height color material] + (define (draw-hash-quote dc) + ;; vertical lines + (send dc draw-polygon '((6 . 0) (11 . 0) (9 . 30) (4 . 30))) + (send dc draw-polygon '((17 . 0) (22 . 0) (20 . 30) (15 . 30))) + ;; horizontal lines + (send dc draw-polygon '((1 . 6.5) (26 . 6.5) (26 . 11.5) (1 . 11.5))) + (send dc draw-polygon '((0 . 18.5) (25 . 18.5) (25 . 23.5) (0 . 23.5))) + ;; quote + (send dc draw-polygon '((30 . 0) (34 . 0) (33 . 9) (30 . 9)))) + + (define outline-color (icon-color->outline-color color)) + + (draw-rendered-icon-flomap + 36 32 (λ (dc) + (send dc translate 0.5 0.5) + (set-icon-pen dc outline-color 2 'solid) + (send dc set-brush outline-color 'solid) + (draw-hash-quote dc) + (send dc set-pen "black" 1 'transparent) + (send dc set-brush color 'solid) + (draw-hash-quote dc)) + (/ height 32) + material))) + ;; =================================================================================================== ;; Bitmaps (icons) @@ -257,4 +287,5 @@ [recycle-icon recycle-flomap] [x-icon x-flomap] [check-icon check-flomap] - [lambda-icon lambda-flomap]) + [lambda-icon lambda-flomap] + [hash-quote-icon hash-quote-flomap]) diff --git a/collects/images/icons/tool.rkt b/collects/images/icons/tool.rkt index 47534a52d1..5f101bea38 100644 --- a/collects/images/icons/tool.rkt +++ b/collects/images/icons/tool.rkt @@ -12,6 +12,7 @@ (provide debugger-bomb-color macro-stepper-hash-color + small-macro-stepper-hash-color (activate-contract-out check-syntax-icon check-syntax-flomap small-check-syntax-icon small-check-syntax-flomap @@ -25,9 +26,10 @@ (make-object color% 128 32 32)) ;; Actual color is too dark after rendering -;(define macro-stepper-hash-color (make-object color% 30 96 30)) (defthing macro-stepper-hash-color (or/c string? (is-a?/c color%)) #:document-value - (make-object color% 90 192 90)) + (make-object color% 60 192 60)) +(defthing small-macro-stepper-hash-color (or/c string? (is-a?/c color%)) #:document-value + (make-object color% 128 255 128)) (defproc (check-syntax-flomap [height (and/c rational? (>=/c 0)) (toolbar-icon-height)] [material deep-flomap-material-value? (default-icon-material)] @@ -49,8 +51,7 @@ [material deep-flomap-material-value? (default-icon-material)] ) flomap? (flomap-ht-append - (text-flomap "#'" (make-object font% (max 1 (min 1024 height)) 'system) - macro-stepper-hash-color #t 'auto height material) + (hash-quote-flomap macro-stepper-hash-color height material) (make-flomap 4 (max 1 (inexact->exact (round (* 1/32 height)))) 0) (step-flomap syntax-icon-color height material))) @@ -60,8 +61,7 @@ (flomap-pin* 0 0 7/16 0 (step-flomap syntax-icon-color height material) - (text-flomap "#'" (make-object font% (max 1 (min 1024 height)) 'system) - macro-stepper-hash-color #t 'auto (* 3/4 height) material))) + (hash-quote-flomap small-macro-stepper-hash-color (* 3/4 height) material))) (defproc (debugger-flomap [height (and/c rational? (>=/c 0)) (toolbar-icon-height)] [material deep-flomap-material-value? (default-icon-material)] diff --git a/collects/images/logos.rkt b/collects/images/logos.rkt index 10cfe4b5ad..05cb4cbd76 100644 --- a/collects/images/logos.rkt +++ b/collects/images/logos.rkt @@ -298,33 +298,10 @@ (lambda-flomap light-metal-icon-color (* 5/8 height) metal-icon-material))) (defproc (macro-stepper-logo-flomap [height (and/c rational? (>=/c 0)) 96]) flomap? - (define outline-color (icon-color->outline-color light-metal-icon-color)) - - (define (draw-hash-quote dc) - ;; vertical lines - (send dc draw-polygon '((5 . 0) (8 . 0) (6 . 19) (3 . 19))) - (send dc draw-polygon '((12 . 0) (15 . 0) (13 . 19) (10 . 19))) - ;; horizontal lines - (send dc draw-polygon '((1 . 4) (1 . 7) (18 . 7) (18 . 4))) - (send dc draw-polygon '((0 . 12) (0 . 15) (17 . 15) (17 . 12))) - ;; quote - (send dc draw-polygon '((20 . 0) (23 . 0) (22.75 . 6) (20.25 . 6))) - ) - (flomap-pin* - 1/2 20/32 1/2 1/2 + 1/2 20/32 15/36 1/2 (foot-flomap (make-object color% 34 42 160) height glass-icon-material) - (draw-rendered-icon-flomap - 32 32 (λ (dc) - (send dc translate 5 6) - (set-icon-pen dc outline-color 2 'solid) - (send dc set-brush outline-color 'solid) - (draw-hash-quote dc) - (send dc set-pen "black" 1 'transparent) - (send dc set-brush light-metal-icon-color 'solid) - (draw-hash-quote dc)) - (/ (* 3/4 height) 32) - metal-icon-material))) + (hash-quote-flomap light-metal-icon-color (* 1/2 height) metal-icon-material))) (define-icon-wrappers ([height (and/c rational? (>=/c 0)) 256]) diff --git a/collects/images/scribblings/icons.scrbl b/collects/images/scribblings/icons.scrbl index 811fce839b..e4ab2ce3d1 100644 --- a/collects/images/scribblings/icons.scrbl +++ b/collects/images/scribblings/icons.scrbl @@ -45,8 +45,7 @@ Its shape and color are a visual metaphor for an action or a message. Icons should be @bold{easily recognizable}, @bold{distinguishable}, @bold{visually consistent}, and @bold{metaphorically appropriate} for the actions and messages they are used with. It can be difficult to meet all four requirements at once (``distinguishable'' and ``visually consistent' are often at odds), but good examples, good abstractions, and an existing icon library help considerably. -@(define (hash-quote) (text-icon "#'" (make-object font% 32 'system) - macro-stepper-hash-color #t 'auto 16)) +@(define (hash-quote) (hash-quote-icon macro-stepper-hash-color 16)) @(define (step) (step-icon syntax-icon-color 16)) @(define (play) (play-icon syntax-icon-color 16)) @(define (bar) (bar-icon syntax-icon-color 16)) @@ -283,7 +282,7 @@ Renders a text string as an icon. For example, @interaction[#:eval icons-eval (text-icon "An Important Point!" (make-object font% 48 'decorative 'normal 'bold #t) - "lightskyblue" #t 2 48)] + "lightskyblue" #t 'auto 48)] Before rendering, the drawn text is scaled so that it is exactly @racket[height] pixels tall. Make sure the font is large enough that scaling does not create blurry and jagged edge artifacts, as in the following example: @@ -329,6 +328,12 @@ Returns an ``x'' icon that is guaranteed to look the same on all platforms. (lambda-icon light-metal-icon-color 32 metal-icon-material)] } +@doc-apply[hash-quote-icon]{ +@examples[#:eval icons-eval + (require (only-in images/icons/tool macro-stepper-hash-color)) + (hash-quote-icon macro-stepper-hash-color 32)] +} + @;==================================================================================================== @section[#:tag "misc"]{Miscellaneous Icons} @@ -443,6 +448,7 @@ Icons for the Debugger. The @racket[small-debugger-icon] is used when the toolba } @doc-apply[debugger-bomb-color] -@doc-apply[macro-stepper-hash-color]{ +@doc-apply[macro-stepper-hash-color] +@doc-apply[small-macro-stepper-hash-color]{ Constants used within @racketmodname[images/icons/tool]. } diff --git a/collects/images/scribblings/logos.scrbl b/collects/images/scribblings/logos.scrbl index 8701378f93..11881f74a8 100644 --- a/collects/images/scribblings/logos.scrbl +++ b/collects/images/scribblings/logos.scrbl @@ -30,11 +30,11 @@ Returns an unofficial PLaneT logo. This is used as the PLaneT icon when DrRacket } @doc-apply[stepper-logo]{ -An algebraic stepper logo. +Returns the algebraic stepper logo. @examples[#:eval logos-eval (stepper-logo)] } @doc-apply[macro-stepper-logo]{ -A macro stepper logo. +Returns the macro stepper logo. @examples[#:eval logos-eval (macro-stepper-logo)] } diff --git a/collects/images/tests/icon-tests.rkt b/collects/images/tests/icon-tests.rkt index 2ffe7b9f01..f43a66d245 100644 --- a/collects/images/tests/icon-tests.rkt +++ b/collects/images/tests/icon-tests.rkt @@ -48,7 +48,7 @@ (λ (color) (load-icon syntax-icon-color color)) (λ (color) (small-save-icon syntax-icon-color color)) (λ (color) (small-load-icon syntax-icon-color color))) - (list x-icon check-icon recycle-icon lambda-icon) + (list x-icon check-icon recycle-icon lambda-icon hash-quote-icon) (list octagon-icon stop-sign-icon stop-signs-icon foot-icon (λ (color) (magnifying-glass-icon metal-icon-color color)) (λ (color) (left-magnifying-glass-icon metal-icon-color color))