diff --git a/collects/framework/frame.ss b/collects/framework/frame.ss index 787d47fc..f18295b6 100644 --- a/collects/framework/frame.ss +++ b/collects/framework/frame.ss @@ -338,9 +338,11 @@ (send (get-canvas) set-editor e)) e))]) (sequence - (let ([icon (icon:get)]) - (when (send icon ok?) - (set-icon icon))) + (let ([icon (icon:get)] + [mask (icon:get-mask)]) + (when (and (send icon ok?) + (send mask ok?)) + (set-icon icon mask))) (do-label) (cond [(and file-name (file-exists? file-name)) diff --git a/collects/framework/frameworks.ss b/collects/framework/frameworks.ss index c13e96d5..65015215 100644 --- a/collects/framework/frameworks.ss +++ b/collects/framework/frameworks.ss @@ -203,7 +203,8 @@ (define-signature framework:icon^ (get - + get-mask + get-paren-highlight-bitmap get-autowrap-bitmap diff --git a/collects/framework/icon.ss b/collects/framework/icon.ss index 911c6658..606cefe2 100644 --- a/collects/framework/icon.ss +++ b/collects/framework/icon.ss @@ -36,17 +36,20 @@ (define get-autowrap-bitmap (load-icon "return.xbm" 'xbm)) (define get-paren-highlight-bitmap (load-icon "paren.xbm" 'xbm)) - (define get + (define (make-get/mask filename type) (let ([icon #f] - [p (build-path icon-path "mred.xbm")]) + [p (build-path icon-path filename)]) (unless (file-exists? p) (fprintf (current-error-port) "WARNING: couldn't find ~a~n" p)) (lambda () (or icon (begin - (set! icon (make-object bitmap% p 'xbm)) + (set! icon (make-object bitmap% p type)) icon))))) + (define get (make-get/mask "plt16x16.bmp" 'bmp)) + (define get-mask (make-get/mask "dot16x16.xbm" 'xbm)) + (define gc-on-bitmap #f) (define (fetch)