From d83ad03114f2d54b1daf22b83c2f081e28c77f92 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 30 Dec 2010 08:35:56 -0700 Subject: [PATCH] clean up handling of not-`ok?', `bitmap-dc%'-selected, and mutated bitmaps original commit: eddae6749d698d2ec039fe1d3fc8b6cfe1a70e39 --- collects/mred/private/wx/cocoa/button.rkt | 9 +++------ collects/mred/private/wx/cocoa/message.rkt | 3 +-- collects/mred/private/wx/cocoa/radio-box.rkt | 3 +-- collects/mred/private/wx/gtk/button.rkt | 6 ++---- collects/mred/private/wx/gtk/message.rkt | 13 +++++-------- collects/mred/private/wx/gtk/radio-box.rkt | 6 ++---- collects/mred/private/wx/win32/button.rkt | 4 +--- collects/mred/private/wx/win32/message.rkt | 4 +--- collects/mred/private/wx/win32/radio-box.rkt | 3 +-- collects/scribblings/gui/blurbs.rkt | 17 +++++++---------- collects/scribblings/gui/image-snip-class.scrbl | 8 -------- collects/scribblings/gui/message-class.scrbl | 4 ++-- collects/scribblings/gui/text-class.scrbl | 4 ---- 13 files changed, 26 insertions(+), 58 deletions(-) diff --git a/collects/mred/private/wx/cocoa/button.rkt b/collects/mred/private/wx/cocoa/button.rkt index 4ee24d84..cf9a0657 100644 --- a/collects/mred/private/wx/cocoa/button.rkt +++ b/collects/mred/private/wx/cocoa/button.rkt @@ -54,12 +54,10 @@ (cond [(string? label) (tellv cocoa setTitleWithMnemonic: #:type _NSString label)] - [(send label ok?) + [else (if button-type (tellv cocoa setTitle: #:type _NSString "") - (tellv cocoa setImage: (bitmap->image label)))] - [else - (tellv cocoa setTitle: #:type _NSString "")]) + (tellv cocoa setImage: (bitmap->image label)))]) (init-font cocoa font) (tellv cocoa sizeToFit) (when (and (eq? event-type 'button) @@ -89,8 +87,7 @@ (define-values (cocoa image-cocoa) (if (and button-type - (not (string? label)) - (send label ok?)) + (not (string? label))) ;; Check-box image: need an view to join a button and an image view: ;; (Could we use the NSImageButtonCell from the radio-box implementation ;; instead?) diff --git a/collects/mred/private/wx/cocoa/message.rkt b/collects/mred/private/wx/cocoa/message.rkt index eb3b7ace..79b865e8 100644 --- a/collects/mred/private/wx/cocoa/message.rkt +++ b/collects/mred/private/wx/cocoa/message.rkt @@ -80,8 +80,7 @@ [cocoa (let* ([label (cond [(string? label) label] [(symbol? label) (get-icon label)] - [(send label ok?) label] - [else ""])] + [else label])] [cocoa (if (string? label) (as-objc-allocation diff --git a/collects/mred/private/wx/cocoa/radio-box.rkt b/collects/mred/private/wx/cocoa/radio-box.rkt index ff799116..237ec581 100644 --- a/collects/mred/private/wx/cocoa/radio-box.rkt +++ b/collects/mred/private/wx/cocoa/radio-box.rkt @@ -85,8 +85,7 @@ (let ([button (tell cocoa cellAtRow: #:type _NSInteger (if horiz? 0 i) column: #:type _NSInteger (if horiz? i 0))]) - (if (and (not (string? label)) - (send label ok?)) + (if (not (string? label)) (begin (tellv button setTitle: #:type _NSString "") (set-ivar! button img (bitmap->image label))) diff --git a/collects/mred/private/wx/gtk/button.rkt b/collects/mred/private/wx/gtk/button.rkt index 4d5a6499..e04ee2a0 100644 --- a/collects/mred/private/wx/gtk/button.rkt +++ b/collects/mred/private/wx/gtk/button.rkt @@ -46,7 +46,7 @@ [(or (string? label) (not label)) (as-gtk-allocation (gtk_new_with_mnemonic (or (mnemonic-string label) "")))] - [(send label ok?) + [else (let ([pixbuf (bitmap->pixbuf label)]) (atomically (let ([gtk (as-gtk-allocation (gtk_new))] @@ -54,9 +54,7 @@ (release-pixbuf pixbuf) (gtk_container_add gtk image-gtk) (gtk_widget_show image-gtk) - gtk)))] - [else - (as-gtk-allocation (gtk_new_with_mnemonic ""))])] + gtk)))])] [callback cb] [font font] [no-show? (memq 'deleted style)]) diff --git a/collects/mred/private/wx/gtk/message.rkt b/collects/mred/private/wx/gtk/message.rkt index 587f3291..545f8a78 100644 --- a/collects/mred/private/wx/gtk/message.rkt +++ b/collects/mred/private/wx/gtk/message.rkt @@ -60,14 +60,11 @@ [(caution) (gtk_image_new_from_stock "gtk-dialog-warning" icon-size)] [(stop) (gtk_image_new_from_stock "gtk-dialog-error" icon-size)] [else (gtk_image_new_from_stock "gtk-dialog-question" icon-size)])) - (if (send label ok?) - (let ([pixbuf (bitmap->pixbuf label)]) - (begin0 - (as-gtk-allocation - (gtk_image_new_from_pixbuf pixbuf)) - (release-pixbuf pixbuf))) - (as-gtk-allocation - (gtk_label_new_with_mnemonic "")))))] + (let ([pixbuf (bitmap->pixbuf label)]) + (begin0 + (as-gtk-allocation + (gtk_image_new_from_pixbuf pixbuf)) + (release-pixbuf pixbuf)))))] [font font] [no-show? (memq 'deleted style)]) diff --git a/collects/mred/private/wx/gtk/radio-box.rkt b/collects/mred/private/wx/gtk/radio-box.rkt index 446c410a..1557374e 100644 --- a/collects/mred/private/wx/gtk/radio-box.rkt +++ b/collects/mred/private/wx/gtk/radio-box.rkt @@ -54,16 +54,14 @@ (let ([radio-gtk (cond [(string? lbl) (gtk_radio_button_new_with_mnemonic #f (mnemonic-string lbl))] - [(send lbl ok?) + [else (let ([pixbuf (bitmap->pixbuf lbl)]) (let ([radio-gtk (gtk_radio_button_new #f)] [image-gtk (gtk_image_new_from_pixbuf pixbuf)]) (release-pixbuf pixbuf) (gtk_container_add radio-gtk image-gtk) (gtk_widget_show image-gtk) - radio-gtk))] - [else - (gtk_radio_button_new_with_mnemonic #f "")])]) + radio-gtk))])]) (gtk_box_pack_start gtk radio-gtk #t #t 0) (install-control-font (gtk_bin_get_child radio-gtk) font) (gtk_widget_show radio-gtk) diff --git a/collects/mred/private/wx/win32/button.rkt b/collects/mred/private/wx/win32/button.rkt index b492db36..b6041bc7 100644 --- a/collects/mred/private/wx/win32/button.rkt +++ b/collects/mred/private/wx/win32/button.rkt @@ -27,9 +27,7 @@ (define callback cb) - (define bitmap? - (and (label . is-a? . bitmap%) - (send label ok?))) + (define bitmap? (label . is-a? . bitmap%)) (define/public (get-class) "PLTBUTTON") (define/public (get-flags) BS_PUSHBUTTON) diff --git a/collects/mred/private/wx/win32/message.rkt b/collects/mred/private/wx/win32/message.rkt index a140cbea..3d1f87b2 100644 --- a/collects/mred/private/wx/win32/message.rkt +++ b/collects/mred/private/wx/win32/message.rkt @@ -71,9 +71,7 @@ x y style font) - (define bitmap? - (and (label . is-a? . bitmap%) - (send label ok?))) + (define bitmap? (label . is-a? . bitmap%)) (define/public (get-class) "PLTSTATIC") diff --git a/collects/mred/private/wx/win32/radio-box.rkt b/collects/mred/private/wx/win32/radio-box.rkt index bb9c9de7..e395003a 100644 --- a/collects/mred/private/wx/win32/radio-box.rkt +++ b/collects/mred/private/wx/win32/radio-box.rkt @@ -55,8 +55,7 @@ (MoveWindow hwnd 0 0 w y #t) null) (let* ([label (car labels)] - [bitmap? (and (label . is-a? . bitmap%) - (send label ok?))] + [bitmap? (label . is-a? . bitmap%)] [radio-hwnd (CreateWindowExW/control 0 "PLTBUTTON" diff --git a/collects/scribblings/gui/blurbs.rkt b/collects/scribblings/gui/blurbs.rkt index 4b4ef7eb..1ee22869 100644 --- a/collects/scribblings/gui/blurbs.rkt +++ b/collects/scribblings/gui/blurbs.rkt @@ -40,25 +40,22 @@ @elem{If @litchar{&} occurs in @|where|@|detail|, it is specially parsed as for @scheme[button%].}) - (define (bitmapuseinfo pre what thing then detail) - @elem{@|pre| @|what| is @|thing|, @|then| the bitmap@|detail| - must be valid (see @xmethod[bitmap% ok?]) and not installed - in a @scheme[bitmap-dc%] object; otherwise, @|MismatchExn|. If the + (define (bitmapuseinfo pre what thing and the) + @elem{@|pre| @|what| is @|thing|,@|and| if @|the| bitmap has a mask (see @xmethod[bitmap% get-loaded-mask]) that is the same size as the bitmap, then the mask is used for the - label; furthermore, in contrast to the limitations of - @xmethod[dc<%> draw-bitmap], non-monochrome label masks work - consistently on all platforms.}) + label. Modifying a bitmap while it is used as a label has + an unspecified effect on the displayed label.}) (define-syntax bitmaplabeluse (syntax-rules () - [(_ id) @bitmapuseinfo["If" (scheme id) "a bitmap" "then" ""]])) + [(_ id) @bitmapuseinfo["If" (scheme id) "a bitmap" " and" "the"]])) (define-syntax bitmaplabelusearray (syntax-rules () - [(_ id) @bitmapuseinfo["If" (scheme id) "a list of bitmaps" "then" "s"]])) + [(_ id) @bitmapuseinfo["If" (scheme id) "a list of bitmaps" " and" "a"]])) (define-syntax bitmaplabeluseisbm (syntax-rules () - [(_ id) @bitmapuseinfo["Since" (scheme id) "a bitmap" "" ""]])) + [(_ id) @bitmapuseinfo["Since" (scheme id) "a bitmap" "" "the"]])) (define bitmapiforiglabel @elem{The bitmap label is installed only diff --git a/collects/scribblings/gui/image-snip-class.scrbl b/collects/scribblings/gui/image-snip-class.scrbl index 6031ad92..87f1efbc 100644 --- a/collects/scribblings/gui/image-snip-class.scrbl +++ b/collects/scribblings/gui/image-snip-class.scrbl @@ -50,10 +50,6 @@ Returns the bitmap that is displayed by the snip, whether set through @method[image-snip% set-bitmap] or @method[image-snip% load-file]. If no bitmap is displayed, the result is @racket[#f]. -The returned bitmap cannot be selected into a @racket[bitmap-dc%] as - long as it belongs to the snip, but it can be used as a pen or - brush stipple. - } @defmethod[(get-bitmap-mask) @@ -63,10 +59,6 @@ Returns the mask bitmap that is used for displaying by the snip, if one was installed with @method[image-snip% set-bitmap]. If no mask is used, the result is @racket[#f]. -The returned bitmap cannot be selected into a @racket[bitmap-dc%] as - long as it belongs to the snip, but it can be used as a pen or - brush stipple. - } @defmethod[(get-filename [relative-path (or/c (box/c any/c) #f) #f]) diff --git a/collects/scribblings/gui/message-class.scrbl b/collects/scribblings/gui/message-class.scrbl index fbde073e..79381964 100644 --- a/collects/scribblings/gui/message-class.scrbl +++ b/collects/scribblings/gui/message-class.scrbl @@ -5,7 +5,7 @@ A message control is a static line of text or a static bitmap. The text or bitmap corresponds to the message's label (see -@method[window<%> set-label]). +@method[message% set-label]). @defconstructor[([label (or/c label-string? (is-a?/c bitmap%) @@ -28,7 +28,7 @@ Creates a string or bitmap message initially showing @scheme[label]. @indexed-scheme['caution], or @indexed-scheme['stop] symbol for @scheme[label] indicates an icon; @scheme['app] is the application icon (Windows and Mac OS X) or a generic ``info'' icon (X), - @scheme['caution] is a caution-sign icon, and @scheme['stop] a + @scheme['caution] is a caution-sign icon, and @scheme['stop] is a stop-sign icon. @labelsimplestripped[(scheme label) @elem{message}] diff --git a/collects/scribblings/gui/text-class.scrbl b/collects/scribblings/gui/text-class.scrbl index 531886e2..13a45fdb 100644 --- a/collects/scribblings/gui/text-class.scrbl +++ b/collects/scribblings/gui/text-class.scrbl @@ -1799,10 +1799,6 @@ If @scheme[bitmap] is @scheme[#f], no autowrap indicator is drawn (this is the default). The previously used bitmap (possibly @scheme[#f]) is returned. -The bitmap will not be modified. It may be selected into a - @scheme[bitmap-dc%] object, but it will be selected out if this - method is called again. - Setting the bitmap is disallowed when the editor is internally locked for reflowing (see also @|lockdiscuss|).