From b77f73f0139b1367befc6860169dc7463f2e74e5 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 13 Jan 2011 09:32:22 -0600 Subject: [PATCH] added get-button-label method to switchable-button% original commit: 65579793afbebb705080267a37580ec0b94e1e97 --- .../mrlib/scribblings/switchable-button.scrbl | 66 ++++++++++--------- collects/mrlib/switchable-button.rkt | 2 + 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/collects/mrlib/scribblings/switchable-button.scrbl b/collects/mrlib/scribblings/switchable-button.scrbl index 1f706251..3640e228 100644 --- a/collects/mrlib/scribblings/switchable-button.scrbl +++ b/collects/mrlib/scribblings/switchable-button.scrbl @@ -7,36 +7,38 @@ @defmodule[mrlib/switchable-button] @defclass[switchable-button% canvas% ()]{ - -A @scheme[switchable-button%] control displays -and icon and a string label. It toggles between -display of just the icon and a display with the -label and the icon side-by-side. - -@defconstructor/auto-super[([label string?] - [callback (-> (is-a?/c switchable-button%) any/c)] - [bitmap (is-a?/c bitmap%)] - [alternate-bitmap (is-a?/c bitmap%) bitmap] - [vertical-tight? boolean? #f])]{ -The @scheme[callback] is called when the button -is pressed. The @scheme[string] and @scheme[bitmap] are -used as discussed above. - -If @scheme[alternate-bitmap] is supplied, then it is used -when the button is switched to the view that just shows the bitmap. -If it is not supplied, both modes show the same bitmap. - -If the @scheme[vertical-tight?] argument is @scheme[#t], then the button takes up -as little as possible vertical space. + + A @scheme[switchable-button%] control displays + and icon and a string label. It toggles between + display of just the icon and a display with the + label and the icon side-by-side. + + @defconstructor/auto-super[([label string?] + [callback (-> (is-a?/c switchable-button%) any/c)] + [bitmap (is-a?/c bitmap%)] + [alternate-bitmap (is-a?/c bitmap%) bitmap] + [vertical-tight? boolean? #f])]{ + The @scheme[callback] is called when the button + is pressed. The @scheme[string] and @scheme[bitmap] are + used as discussed above. + + If @scheme[alternate-bitmap] is supplied, then it is used + when the button is switched to the view that just shows the bitmap. + If it is not supplied, both modes show the same bitmap. + + If the @scheme[vertical-tight?] argument is @scheme[#t], then the button takes up + as little as possible vertical space. + } + + @defmethod[(set-label-visible [visible? boolean?]) void?]{ + Sets the visibility of the string part of the label. + } + + @defmethod[(command) void?]{ + Calls the button's callback function. + } + + @defmethod[(get-button-label) string?]{ + Returns the label of this button. + } } - -@defmethod[(set-label-visible [visible? boolean?]) void?]{ - Sets the visibility of the string part of the label. -} - -@defmethod[(command) void?]{ - -Calls the button's callback function.} - -} - diff --git a/collects/mrlib/switchable-button.rkt b/collects/mrlib/switchable-button.rkt index d5887497..d2d285e9 100644 --- a/collects/mrlib/switchable-button.rkt +++ b/collects/mrlib/switchable-button.rkt @@ -56,6 +56,8 @@ [alternate-bitmap bitmap] [vertical-tight? #f]) + (define/public (get-button-label) label) + (when (and (is-a? label bitmap%) (not (send label ok?))) (error 'switchable-button% "label bitmap is not ok?"))