com.smartgwt.client.widgets

## Class StretchImgButton

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.smartgwt.client.widgets.BaseWidget
      - - com.smartgwt.client.widgets.Canvas
        - - com.smartgwt.client.widgets.StatefulCanvas
          - - com.smartgwt.client.widgets.StretchImg
            - - com.smartgwt.client.widgets.StretchImgButton

- All Implemented Interfaces:
    com.google.gwt.event.logical.shared.HasAttachHandlers, com.google.gwt.event.shared.HasHandlers, com.google.gwt.user.client.EventListener, com.google.gwt.user.client.ui.HasVisibility, com.google.gwt.user.client.ui.IsWidget, LogicalStructure, HasClearHandlers, HasClickHandlers, HasDoubleClickHandlers, HasDragMoveHandlers, HasDragRepositionMoveHandlers, HasDragRepositionStartHandlers, HasDragRepositionStopHandlers, HasDragResizeMoveHandlers, HasDragResizeStartHandlers, HasDragResizeStopHandlers, HasDragStartHandlers, HasDragStopHandlers, HasDropHandlers, HasDropMoveHandlers, HasDropOutHandlers, HasDropOverHandlers, HasFocusChangedHandlers, HasHoverHandlers, HasHoverHiddenHandlers, HasIconClickHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseStillDownHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasMovedHandlers, HasParentMovedHandlers, HasResizedHandlers, HasRightMouseDownHandlers, HasRuleContextChangedHandlers, HasScrolledHandlers, HasShowContextMenuHandlers, HasTitleHoverHandlers, HasVisibilityChangedHandlers
  Direct Known Subclasses:
    IButton, IMenuButton, ImgTab, MiniNavControl

      public class StretchImgButton
      extends StretchImg
      implements HasIconClickHandlers, HasTitleHoverHandlers

  A StretchImg that behaves like a button, going through up/down/over state transitions in response to user events. Supports an optional title, and will auto-size to accommodate the title text if `overflow` is set to "visible".

  Examples of use include fancy buttons, poplist headers, and tabs.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

      `com.google.gwt.user.client.ui.UIObject.DebugIdImpl, com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled`

  - ### Field Summary

    - ### Fields inherited from class com.smartgwt.client.widgets.BaseWidget

      `config, configOnly, factoryCreated, factoryProperties, id, nativeObject, scClassName`

    - ### Fields inherited from class com.google.gwt.user.client.ui.UIObject

      `DEBUG_ID_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StretchImgButton()`
    `StretchImgButton(com.google.gwt.core.client.JavaScriptObject jsObj)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `action()` This property contains the default 'action' for the Button to fire when activated.
    `com.google.gwt.event.shared.HandlerRegistration` | `addIconClickHandler(IconClickHandler handler)` Add a iconClick handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addTitleHoverHandler(TitleHoverHandler handler)` Add a titleHover handler.
    `void` | `addToRadioGroup(java.lang.String groupID)` Add this widget to the specified mutually exclusive selection group with the ID passed in.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, Canvas defaults)` Changes the defaults for Canvas AutoChildren named `autoChildName`.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, FormItem defaults)` Changes the defaults for FormItem AutoChildren named `autoChildName`.
    `protected com.google.gwt.core.client.JavaScriptObject` | `create()`
    `void` | `deselect()` Select this object.
    `SelectionType` | `getActionType()` Behavior on state changes -- BUTTON, RADIO or CHECKBOX
    `Alignment` | `getAlign()` Horizontal alignment of this component's title.
    `java.lang.Boolean` | `getAutoFit()` If true, ignore the specified size of this widget and always size just large enough to accommodate the title.
    `java.lang.String` | `getBaseStyle()` Base CSS style className applied to the component.
    `int` | `getCapSize()` How big are the end pieces by default
    `java.lang.Integer` | `getHeight()` Size for this component's vertical dimension.
    `java.lang.String` | `getHeightAsString()` Size for this component's vertical dimension.
    `java.lang.Boolean` | `getHiliteAccessKey()` If set to true, if the `title` of this button contains the specified `accessKey`, when the title is displayed to the user it will be modified to include HTML to underline the accessKey. Note that this property may cause titles that include HTML (rather than simple strings) to be inappropriately modified, so should be disabled if your title string includes HTML characters.
    `java.lang.String` | `getIcon()` Optional icon to be shown with the button title text.
    `java.lang.String` | `getIconAlign()` If this button is showing an icon should it be right or left aligned?
    `java.lang.Integer` | `getIconHeight()` Height in pixels of the icon image.
    `java.lang.String` | `getIconOrientation()` If this button is showing an icon should it appear to the left or right of the title? valid options are `"left"` and `"right"`.
    `int` | `getIconSize()` Size in pixels of the icon image.
    `int` | `getIconSpacing()` Pixels between icon and title text.
    `java.lang.Integer` | `getIconWidth()` Width in pixels of the icon image.
    `java.lang.Integer` | `getLabelBreadthPad()` The padding for a StretchImgButton's label is determined as follows.
    `java.lang.Integer` | `getLabelHPad()` The padding for a StretchImgButton's label is determined as follows.
    `java.lang.Integer` | `getLabelLengthPad()` The padding for a StretchImgButton's label is determined as follows.
    `java.lang.String` | `getLabelSkinImgDir()` Specifies a skinImgDir to apply to the label containing the title of this StretchImgButton.
    `java.lang.Integer` | `getLabelVPad()` The padding for a StretchImgButton's label is determined as follows.
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `getLogicalStructure()` Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    `static StretchImgButton` | `getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `java.lang.String` | `getRadioGroup()` String identifier for this canvas's mutually exclusive selection group.
    `java.lang.Boolean` | `getShowClippedTitleOnHover()` If true and the title is clipped, then a hover containing the full title of this button is enabled.
    `java.lang.Boolean` | `getShowDisabled()` Should we visibly change state when disabled?
    `java.lang.Boolean` | `getShowDisabledIcon()` If using an icon for this button, whether to switch the icon image if the button becomes disabled.
    `java.lang.Boolean` | `getShowDown()` Should we visibly change state when the mouse goes down in this object?
    `java.lang.Boolean` | `getShowDownIcon()` If using an icon for this button, whether to switch the icon image when the mouse goes down on the button.
    `java.lang.Boolean` | `getShowFocused()` Should we visibly change state when the canvas receives focus? If `StatefulCanvas.showFocusedAsOver` is `true`, then `"over"` will be used to indicate focus.
    `java.lang.Boolean` | `getShowFocusedIcon()` If using an icon for this button, whether to switch the icon image when the button receives focus.
    `java.lang.Boolean` | `getShowRollOver()` Should we visibly change state when the mouse goes over this object?
    `java.lang.Boolean` | `getShowRollOverIcon()` If using an icon for this button, whether to switch the icon image on mouse rollover.
    `java.lang.Boolean` | `getShowSelectedIcon()` If using an icon for this button, whether to switch the icon image when the button becomes selected.
    `java.lang.Boolean` | `getShowTitle()` Determines whether any specified `title` will be displayed for this component. Applies to Image-based components only, where the title will be rendered out in a label floating over the component
    `java.lang.String` | `getSrc()` Base URL for the image.
    `State` | `getState()` Current "state" of this widget.
    `java.lang.String` | `getTitle()` The title HTML to display in this button.
    `java.lang.String` | `getTitleStyle()` CSS style applied to the title text only.
    `VerticalAlignment` | `getValign()` Vertical alignment of this component's title.
    `java.lang.Boolean` | `getVertical()` Default is a horizontal button.
    `java.lang.Integer` | `getWidth()` Size for this component's horizontal dimension.
    `java.lang.String` | `getWidthAsString()` Size for this component's horizontal dimension.
    `java.lang.Boolean` | `getWrap()` Should the title for this button wrap? If unset, default behavior is to allow wrapping if this.vertical is true, otherwise disallow wrapping
    `void` | `removeFromRadioGroup()` Remove this widget from the specified mutually exclusive selection group with the ID passed in.
    `void` | `removeFromRadioGroup(java.lang.String groupID)` Remove this widget from the specified mutually exclusive selection group with the ID passed in.
    `void` | `select()` Select this object.
    `StretchImgButton` | `setActionType(SelectionType actionType)` Behavior on state changes -- BUTTON, RADIO or CHECKBOX If this method is called after the component has been drawn/initialized: Update the 'actionType' for this canvas (radio / checkbox / button) If the canvas is currently selected, and the passed in actionType is 'button' this method will deselect the canvas.
    `StretchImgButton` | `setAlign(Alignment align)` Horizontal alignment of this component's title.
    `StretchImgButton` | `setAutoFit(java.lang.Boolean autoFit)` If true, ignore the specified size of this widget and always size just large enough to accommodate the title.
    `StretchImgButton` | `setBaseStyle(java.lang.String baseStyle)` Base CSS style className applied to the component.
    `StretchImgButton` | `setCapSize(int capSize)` How big are the end pieces by default
    `static void` | `setDefaultProperties(StretchImgButton stretchImgButtonProperties)` Class level method to set the default properties of this class.
    `StretchImgButton` | `setHeight(java.lang.Integer height)` Size for this component's vertical dimension.
    `void` | `setHeight(java.lang.String height)` Size for this component's vertical dimension.
    `StretchImgButton` | `setHiliteAccessKey(java.lang.Boolean hiliteAccessKey)` If set to true, if the `title` of this button contains the specified `accessKey`, when the title is displayed to the user it will be modified to include HTML to underline the accessKey. Note that this property may cause titles that include HTML (rather than simple strings) to be inappropriately modified, so should be disabled if your title string includes HTML characters.
    `StretchImgButton` | `setIcon(java.lang.String icon)` Optional icon to be shown with the button title text.
    `StretchImgButton` | `setIconAlign(java.lang.String iconAlign)` If this button is showing an icon should it be right or left aligned?
    `StretchImgButton` | `setIconHeight(java.lang.Integer iconHeight)` Height in pixels of the icon image.
    `StretchImgButton` | `setIconOrientation(java.lang.String iconOrientation)` If this button is showing an icon should it appear to the left or right of the title? valid options are `"left"` and `"right"`.
    `StretchImgButton` | `setIconSize(int iconSize)` Size in pixels of the icon image.
    `StretchImgButton` | `setIconSpacing(int iconSpacing)` Pixels between icon and title text.
    `StretchImgButton` | `setIconWidth(java.lang.Integer iconWidth)` Width in pixels of the icon image.
    `StretchImgButton` | `setLabelBreadthPad(java.lang.Integer labelBreadthPad)` The padding for a StretchImgButton's label is determined as follows.
    `StretchImgButton` | `setLabelHPad(java.lang.Integer labelHPad)` The padding for a StretchImgButton's label is determined as follows.
    `StretchImgButton` | `setLabelLengthPad(java.lang.Integer labelLengthPad)` The padding for a StretchImgButton's label is determined as follows.
    `StretchImgButton` | `setLabelSkinImgDir(java.lang.String labelSkinImgDir)` Specifies a skinImgDir to apply to the label containing the title of this StretchImgButton.
    `StretchImgButton` | `setLabelVPad(java.lang.Integer labelVPad)` The padding for a StretchImgButton's label is determined as follows.
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `setLogicalStructure(com.smartgwt.logicalstructure.widgets.StretchImgButtonLogicalStructure s)` Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    `StretchImgButton` | `setRadioGroup(java.lang.String radioGroup)` String identifier for this canvas's mutually exclusive selection group.
    `StretchImgButton` | `setShowClippedTitleOnHover(java.lang.Boolean showClippedTitleOnHover)` If true and the title is clipped, then a hover containing the full title of this button is enabled.
    `StretchImgButton` | `setShowDisabled(java.lang.Boolean showDisabled)` Should we visibly change state when disabled?
    `StretchImgButton` | `setShowDisabledIcon(java.lang.Boolean showDisabledIcon)` If using an icon for this button, whether to switch the icon image if the button becomes disabled.
    `StretchImgButton` | `setShowDown(java.lang.Boolean showDown)` Should we visibly change state when the mouse goes down in this object?
    `StretchImgButton` | `setShowDownIcon(java.lang.Boolean showDownIcon)` If using an icon for this button, whether to switch the icon image when the mouse goes down on the button.
    `StretchImgButton` | `setShowFocused(java.lang.Boolean showFocused)` Should we visibly change state when the canvas receives focus? If `StatefulCanvas.showFocusedAsOver` is `true`, then `"over"` will be used to indicate focus.
    `StretchImgButton` | `setShowFocusedIcon(java.lang.Boolean showFocusedIcon)` If using an icon for this button, whether to switch the icon image when the button receives focus.
    `StretchImgButton` | `setShowRollOver(java.lang.Boolean showRollOver)` Should we visibly change state when the mouse goes over this object?
    `StretchImgButton` | `setShowRollOverIcon(java.lang.Boolean showRollOverIcon)` If using an icon for this button, whether to switch the icon image on mouse rollover.
    `StretchImgButton` | `setShowSelectedIcon(java.lang.Boolean showSelectedIcon)` If using an icon for this button, whether to switch the icon image when the button becomes selected.
    `StretchImgButton` | `setShowTitle(java.lang.Boolean showTitle)` Determines whether any specified `title` will be displayed for this component. Applies to Image-based components only, where the title will be rendered out in a label floating over the component
    `StretchImgButton` | `setSrc(java.lang.String src)` Base URL for the image.
    `StretchImgButton` | `setState(State state)` Current "state" of this widget.
    `void` | `setTitle(java.lang.String title)` The title HTML to display in this button.
    `void` | `setTitleHoverFormatter(TitleHoverFormatter formatter)` Provide a custom implementation of `titleHoverHTML(java.lang.String)`.
    `StretchImgButton` | `setTitleStyle(java.lang.String titleStyle)` CSS style applied to the title text only.
    `StretchImgButton` | `setValign(VerticalAlignment valign)` Vertical alignment of this component's title.
    `StretchImgButton` | `setVertical(java.lang.Boolean vertical)` Default is a horizontal button.
    `StretchImgButton` | `setWidth(java.lang.Integer width)` Size for this component's horizontal dimension.
    `void` | `setWidth(java.lang.String width)` Size for this component's horizontal dimension.
    `StretchImgButton` | `setWrap(java.lang.Boolean wrap)` Should the title for this button wrap? If unset, default behavior is to allow wrapping if this.vertical is true, otherwise disallow wrapping
    `boolean` | `titleClipped()` Is the title of this button clipped?
    `java.lang.String` | `titleHoverHTML(java.lang.String defaultHTML)` Returns the HTML that is displayed by the default `titleHover` handler.

    - ### Methods inherited from class com.smartgwt.client.widgets.StretchImg

      `getGripImgSuffix, getHSrc, getIgnoreRTL, getImageType, getItemBaseStyle, getItems, getShowDownGrip, getShowGrip, getShowRollOverGrip, getVSrc, setDefaultProperties, setGripImgSuffix, setHSrc, setIgnoreRTL, setImageType, setItemBaseStyle, setItems, setLogicalStructure, setShowDownGrip, setShowGrip, setShowRollOverGrip, setState, setState, setVSrc`

    - ### Methods inherited from class com.smartgwt.client.widgets.StatefulCanvas

      `getAriaLabel, getEditProxyConstructor, getIconStyle, getOverCanvas, getOverCanvasConstructor, getRedrawOnStateChange, getSelected, getShowFocusedAsOver, getShowMenuOnClick, getShowOverCanvas, getShowRTLIcon, getStateSuffix, isSelected, setAriaLabel, setDefaultProperties, setEditProxyConstructor, setIconStyle, setLogicalStructure, setOverCanvasConstructor, setRedrawOnStateChange, setSelected, setShowFocusedAsOver, setShowMenuOnClick, setShowOverCanvas, setShowRTLIcon, setTitleFormatter`

    - ### Methods inherited from class com.smartgwt.client.widgets.Canvas

      `addChild, addChild, addChild, addChild, addChild, addClearHandler, addClickHandler, addDoubleClickHandler, addDragMoveHandler, addDragRepositionMoveHandler, addDragRepositionStartHandler, addDragRepositionStopHandler, addDragResizeMoveHandler, addDragResizeStartHandler, addDragResizeStopHandler, addDragStartHandler, addDragStopHandler, addDropHandler, addDropMoveHandler, addDropOutHandler, addDropOverHandler, addFocusChangedHandler, addHoverHandler, addHoverHiddenHandler, addKeyDownHandler, addKeyPressHandler, addMouseDownHandler, addMouseMoveHandler, addMouseOutHandler, addMouseOverHandler, addMouseStillDownHandler, addMouseUpHandler, addMouseWheelHandler, addMovedHandler, addParentMovedHandler, addPeer, addPeer, addPeer, addPeer, addResizedHandler, addRightMouseDownHandler, addRuleContextChangedHandler, addScrolledHandler, addShowContextMenuHandler, addSnapAlignCandidate, addStyleName, addVisibilityChangedHandler, adjustForContent, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateHide, animateHide, animateHide, animateHide, animateHide, animateHide, animateHide, animateMove, animateMove, animateMove, animateMove, animateRect, animateRect, animateRect, animateRect, animateResize, animateResize, animateResize, animateResize, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateShow, animateShow, animateShow, animateShow, animateShow, animateShow, animateShow, asSGWTComponent, blur, bringToFront, clear, clearExplicitTabIndex, clickMaskUp, clickMaskUp, contains, contains, containsEvent, containsEventTarget, containsFocus, containsPoint, containsPoint, deparent, depeer, disable, enable, encloses, focus, focusAfterGroup, focusAtEnd, focusInNextTabElement, focusInPreviousTabElement, getAbsoluteLeft, getAbsoluteTop, getAccessKey, getAdaptiveHeightPriority, getAdaptiveWidthPriority, getAlwaysManageFocusNavigation, getAlwaysShowScrollbars, getAnimateAcceleration, getAnimateFadeTime, getAnimateHideAcceleration, getAnimateHideEffect, getAnimateHideTime, getAnimateMoveAcceleration, getAnimateMoveTime, getAnimateRectAcceleration, getAnimateRectTime, getAnimateResizeAcceleration, getAnimateResizeLayoutMode, getAnimateResizeTime, getAnimateScrollAcceleration, getAnimateScrollTime, getAnimateShowAcceleration, getAnimateShowEffect, getAnimateShowTime, getAnimateTime, getAppImgDir, getAriaHandleID, getAriaRole, getAutoMaskComponents, getAutoParent, getAutoShowParent, getBackgroundColor, getBackgroundImage, getBackgroundPosition, getBackgroundRepeat, getBorder, getBottom, getById, getByJSObject, getByLocalId, getCanAcceptDrop, getCanAdaptHeight, getCanAdaptWidth, getCanDrag, getCanDragReposition, getCanDragResize, getCanDragScroll, getCanDrop, getCanDropBefore, getCanFocus, getCanHover, getCanSelectText, getCanvasAutoChild, getCanvasItem, getChildren, getChildrenResizeSnapAlign, getChildrenSnapAlign, getChildrenSnapCenterAlign, getChildrenSnapEdgeAlign, getChildrenSnapResizeToGrid, getChildrenSnapToGrid, getChildTabPosition, getClassName, getComponentMask, getComponentMaskDefaults, getContentElement, getContents, getContextMenu, getCorrectZoomOverflow, getCursor, getDataPath, getDefaultHeight, getDefaultWidth, getDestroyed, getDestroying, getDisabled, getDisabledCursor, getDisableTouchScrollingForDrag, getDoubleClickDelay, getDragAppearance, getDragIntersectStyle, getDragMaskType, getDragMaxHeight, getDragMaxWidth, getDragMinHeight, getDragMinWidth, getDragOpacity, getDragRepositionAppearance, getDragRepositionCursor, getDragResizeAppearance, getDragScrollDelay, getDragStartDistance, getDragTarget, getDragType, getDropTypes, getDropTypesAsString, getDynamicContents, getEdgeBackgroundColor, getEdgeCenterBackgroundColor, getEdgeImage, getEdgeMarginSize, getEdgeOffset, getEdgeOpacity, getEdgeShowCenter, getEdgeSize, getEditNode, getEditProxy, getElement, getElement, getEnableWhen, getEndLine, getEventEdge, getEventEdge, getExtraSpace, getFacetId, getFormItemAutoChild, getForwardSVGeventsToObject, getFullDataPath, getGroupBorderCSS, getGroupLabelBackgroundColor, getGroupLabelStyleName, getGroupTitle, getHideUsingDisplayNone, getHoverAlign, getHoverAutoDestroy, getHoverAutoFitMaxWidth, getHoverAutoFitMaxWidthAsString, getHoverAutoFitWidth, getHoverComponent, getHoverDelay, getHoverHeight, getHoverHTML, getHoverMoveWithMouse, getHoverOpacity, getHoverStyle, getHoverVAlign, getHoverWidth, getHoverWrap, getHSnapOrigin, getHSnapOrigin, getHSnapPosition, getHSnapPosition, getHtmlElement, getHtmlPosition, getImage, getImgURL, getImgURL, getInnerContentHeight, getInnerContentWidth, getInnerHeight, getInnerWidth, getIsGroup, getIsPrinting, getIsRuleScope, getIsSnapAlignCandidate, getKeepInParentRect, getLayoutAlign, getLeavePageSpace, getLeft, getLeftAsString, getLocalId, getLocateChildrenBy, getLocateChildrenType, getLocatePeersBy, getLocatePeersType, getLocatorName, getMargin, getMasterCanvas, getMasterElement, getMatchElement, getMaxHeight, getMaxWidth, getMaxZoomOverflowError, getMenuConstructor, getMinHeight, getMinNonEdgeSize, getMinWidth, getMomentumScrollMinSpeed, getMouseStillDownDelay, getMouseStillDownInitialDelay, getName, getNextZIndex, getNoDoubleClicks, getNoDropCursor, getOffsetHeight, getOffsetWidth, getOffsetX, getOffsetY, getOpacity, getOuterElement, getOverflow, getPadding, getPageBottom, getPageLeft, getPageRect, getPageRight, getPageTop, getPaletteDefaults, getPanelContainer, getParentCanvas, getParentElement, getPeers, getPercentBox, getPercentSource, getPosition, getPrefix, getPrintChildrenAbsolutelyPositioned, getPrintHTML, getPrintHTML, getPrintStyleName, getPrompt, getProportionalResizeModifiers, getProportionalResizing, getReceiveScrollbarEvents, getRect, getRedrawOnResize, getResizeBarTarget, getResizeFrom, getRight, getRuleContext, getRuleContext, getRuleScope, getScrollbarSize, getScrollBottom, getScrollHeight, getScrollLeft, getScrollRight, getScrollTop, getScrollWidth, getShadowColor, getShadowDepth, getShadowHOffset, getShadowImage, getShadowOffset, getShadowSoftness, getShadowSpread, getShadowVOffset, getShouldPrint, getShowCustomScrollbars, getShowDragShadow, getShowEdges, getShowHover, getShowHoverComponents, getShowResizeBar, getShowShadow, getShowSnapGrid, getShrinkElementOnHide, getSizeMayChangeOnRedraw, getSkinImgDir, getSnapAlignCandidates, getSnapAlignCenterLineStyle, getSnapAlignEdgeLineStyle, getSnapAxis, getSnapEdge, getSnapGridLineProperties, getSnapGridStyle, getSnapHDirection, getSnapHGap, getSnapOffsetLeft, getSnapOffsetTop, getSnapOnDrop, getSnapPosition, getSnapPosition, getSnapResizeToAlign, getSnapResizeToGrid, getSnapTo, getSnapToAlign, getSnapToCenterAlign, getSnapToEdgeAlign, getSnapToGrid, getSnapVDirection, getSnapVGap, getStartLine, getStyleName, getTabIndex, getTestInstance, getTooltip, getTop, getTopAsString, getTopElement, getUpdateTabPositionOnDraw, getUpdateTabPositionOnReparent, getUseBackMask, getUseCSSShadow, getUseDragMask, getUseImageForSVG, getUseNativeDrag, getUseOpacityFilter, getUseTouchScrolling, getValuesManager, getValuesManagerAsString, getViewportHeight, getViewportWidth, getVisibility, getVisibleHeight, getVisibleWhen, getVisibleWidth, getVSnapOrigin, getVSnapOrigin, getVSnapPosition, getVSnapPosition, getZIndex, getZIndex, handleHover, hide, hideClickMask, hideClickMask, hideComponentMask, hideComponentMask, hideContextMenu, imgHTML, imgHTML, imgHTML, intersects, isDirty, isDisabled, isFocused, isVisible, keyUp, layoutChildren, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, markForDestroy, markForRedraw, markForRedraw, moveAbove, moveBelow, moveBy, moveTo, onAttach, onDetach, onInit, pageScrollDown, pageScrollUp, parentResized, placeNear, placeNear, placeNear, print, print, print, print, printComponents, provideRuleContext, provideRuleContext, redraw, redraw, registerFontScaledPaddingStyles, removeChild, removeChild, removePeer, removePeer, removeRuleContext, removeSnapAlignCandidate, resizeAutoChildAttributes, resizeBy, resizeControls, resizeFonts, resizeFonts, resizeFonts, resizeIcons, resizePadding, resizePadding, resizeTo, resizeTo, revealChild, revealChild, scrollBy, scrollByPercent, scrollTo, scrollTo, scrollTo, scrollToBottom, scrollToLeft, scrollToPercent, scrollToRight, scrollToTop, sendToBack, setAccessKey, setAdaptHeightByCustomizer, setAdaptiveHeightPriority, setAdaptiveWidthPriority, setAdaptWidthByCustomizer, setAllowExternalFilters, setAlwaysManageFocusNavigation, setAlwaysShowScrollbars, setAnimateAcceleration, setAnimateFadeTime, setAnimateHideAcceleration, setAnimateHideEffect, setAnimateHideTime, setAnimateMoveAcceleration, setAnimateMoveTime, setAnimateRectAcceleration, setAnimateRectTime, setAnimateResizeAcceleration, setAnimateResizeLayoutMode, setAnimateResizeTime, setAnimateScrollAcceleration, setAnimateScrollTime, setAnimateShowAcceleration, setAnimateShowEffect, setAnimateShowTime, setAnimateTime, setAppImgDir, setAriaRole, setAriaState, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setAutoHeight, setAutoMaskComponents, setAutoParent, setAutoResizeAutoChildAttributes, setAutoResizeIcons, setAutoShowParent, setAutoWidth, setBackgroundColor, setBackgroundImage, setBackgroundPosition, setBackgroundRepeat, setBorder, setBottom, setCanAcceptDrop, setCanAdaptHeight, setCanAdaptWidth, setCanDrag, setCanDragReposition, setCanDragResize, setCanDragScroll, setCanDrop, setCanDropBefore, setCanFocus, setCanHover, setCanSelectText, setChildren, setChildrenResizeSnapAlign, setChildrenSnapAlign, setChildrenSnapCenterAlign, setChildrenSnapEdgeAlign, setChildrenSnapResizeToGrid, setChildrenSnapToGrid, setComponentMaskDefaults, setContents, setContextMenu, setCorrectZoomOverflow, setCursor, setDataPath, setDefaultHeight, setDefaultPageSpace, setDefaultProperties, setDefaultShowCustomScrollbars, setDefaultWidth, setDisabled, setDisabledCursor, setDisableTouchScrollingForDrag, setDoubleClickDelay, setDragAppearance, setDragIntersectStyle, setDragMaskType, setDragMaxHeight, setDragMaxWidth, setDragMinHeight, setDragMinWidth, setDragOpacity, setDragRepositionAppearance, setDragRepositionCursor, setDragResizeAppearance, setDragScrollDelay, setDragStartDistance, setDragTarget, setDragType, setDropTypes, setDropTypes, setDynamicContents, setEdgeBackgroundColor, setEdgeCenterBackgroundColor, setEdgeImage, setEdgeMarginSize, setEdgeOffset, setEdgeOpacity, setEdgeShowCenter, setEdgeSize, setEditMode, setEditMode, setEditMode, setElement, setEnableWhen, setEndLine, setExtraSpace, setFacetId, setForwardSVGeventsToObject, setGroupBorderCSS, setGroupLabelBackgroundColor, setGroupLabelStyleName, setGroupTitle, setHeight, setHeight100, setHideUsingDisplayNone, setHoverAlign, setHoverAutoDestroy, setHoverAutoFitMaxWidth, setHoverAutoFitMaxWidth, setHoverAutoFitWidth, setHoverDelay, setHoverHeight, setHoverMoveWithMouse, setHoverOpacity, setHoverStyle, setHoverVAlign, setHoverWidth, setHoverWrap, setHtmlElement, setHtmlPosition, setImage, setImage, setInitHandler, setIsGroup, setIsRuleScope, setIsSnapAlignCandidate, setKeepInParentRect, setKeepInParentRect, setKeepInParentRect, setLayoutAlign, setLayoutAlign, setLeavePageSpace, setLeft, setLeft, setLocateChildrenBy, setLocateChildrenType, setLocatePeersBy, setLocatePeersType, setLocatorName, setLogicalStructure, setMargin, setMatchElement, setMaxHeight, setMaxWidth, setMaxZoomOverflowError, setMenuConstructor, setMinHeight, setMinNonEdgeSize, setMinWidth, setMomentumScrollMinSpeed, setMouseStillDownDelay, setMouseStillDownInitialDelay, setName, setNeverUseFilters, setNoDoubleClicks, setNoDropCursor, setOpacity, setOverflow, setPadding, setPageLeft, setPageTop, setPanelContainer, setParentCanvas, setParentElement, setPeers, setPercentBox, setPercentSource, setPosition, setPrefix, setPrintChildrenAbsolutelyPositioned, setPrintStyleName, setPrompt, setProportionalResizeModifiers, setProportionalResizing, setReceiveScrollbarEvents, setRect, setRect, setRedrawOnResize, setRelativeTabPosition, setResizeBarTarget, setResizeFrom, setResizeFrom, setRight, setRuleScope, setScrollbarConstructor, setScrollbarSize, setShadowColor, setShadowDepth, setShadowHOffset, setShadowImage, setShadowOffset, setShadowSoftness, setShadowSpread, setShadowVOffset, setShouldPrint, setShowCustomScrollbars, setShowDragShadow, setShowEdges, setShowHover, setShowHoverComponents, setShowResizeBar, setShowShadow, setShowSnapGrid, setShrinkElementOnHide, setSizeMayChangeOnRedraw, setSkinImgDir, setSmoothFade, setSnapAlignCandidates, setSnapAlignCenterLineStyle, setSnapAlignEdgeLineStyle, setSnapAxis, setSnapEdge, setSnapGridLineProperties, setSnapGridStyle, setSnapHDirection, setSnapHGap, setSnapOffsetLeft, setSnapOffsetTop, setSnapOnDrop, setSnapResizeToAlign, setSnapResizeToGrid, setSnapTo, setSnapToAlign, setSnapToCenterAlign, setSnapToEdgeAlign, setSnapToGrid, setSnapVDirection, setSnapVGap, setStartLine, setStyleName, setTabIndex, setTooltip, setTop, setTop, setUpdateTabPositionOnDraw, setUpdateTabPositionOnReparent, setUseBackMask, setUseCSSShadow, setUseDragMask, setUseImageForSVG, setUseNativeDrag, setUseOpacityFilter, setUseTouchScrolling, setValuesManager, setValuesManager, setVisibility, setVisible, setVisibleWhen, setWidth, setWidth100, setZIndex, shouldDragScroll, show, showClickMask, showComponentMask, showComponentMask, showNextTo, showNextTo, showNextTo, showNextTo, showPrintPreview, showPrintPreview, showPrintPreview, showPrintPreview, showRecursively, updateChildTabPosition, updateChildTabPositions, updateEditNode, updateHover, updateHover, updateShadow, updateTabPositionForDraw, visibleAtPoint, willAcceptDrop`

    - ### Methods inherited from class com.smartgwt.client.widgets.BaseWidget

      `addDrawHandler, addDynamicProperty, addDynamicProperty, addDynamicProperty, applyFactoryProperties, clearDynamicProperty, completeCreation, destroy, doAddHandler, doInit, doOnRender, draw, equals, error, errorIfNotCreated, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDateArray, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsFloatArray, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getConfig, getDOM, getHandlerCount, getID, getInnerHTML, getJsObj, getOrCreateJsObj, getRef, getScClassName, hasAutoAssignedID, hasDynamicProperty, hashCode, initNativeObject, internalSetID, internalSetID, isConfigOnly, isCreated, isDrawn, isFactoryCreated, onBind, onDestroy, onDraw, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setConfig, setConfigOnly, setDefaultProperties, setDragTracker, setFactoryCreated, setID, setJavaScriptObject, setLogicalStructure, setLogicalStructure, setNullProperty, setPosition, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setScClassName, toString`

    - ### Methods inherited from class com.google.gwt.user.client.ui.Widget

      `addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, fireEvent, getLayoutData, getParent, isAttached, isOrWasAttached, onBrowserEvent, onLoad, onUnload, removeFromParent, setLayoutData, sinkEvents, unsinkEvents`

    - ### Methods inherited from class com.google.gwt.user.client.ui.UIObject

      `addStyleDependentName, ensureDebugId, ensureDebugId, ensureDebugId, getStyleElement, getStyleName, getStylePrimaryName, getStylePrimaryName, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setVisible, sinkBitlessEvent`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface com.google.gwt.event.shared.HasHandlers

      `fireEvent`

- - ### Constructor Detail

    - #### StretchImgButton

          public StretchImgButton()

    - #### StretchImgButton

          public StretchImgButton(com.google.gwt.core.client.JavaScriptObject jsObj)

  - ### Method Detail

    - #### getOrCreateRef

          public static StretchImgButton getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### changeAutoChildDefaults

          public static void changeAutoChildDefaults(java.lang.String autoChildName,
                                                     Canvas defaults)

      Changes the defaults for Canvas AutoChildren named `autoChildName`.
      Parameters:
        `autoChildName` - name of an AutoChild to customize the defaults for.
        `defaults` - Canvas defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see `SGWTProperties`.
      See Also:
        `AutoChildUsage`

    - #### changeAutoChildDefaults

          public static void changeAutoChildDefaults(java.lang.String autoChildName,
                                                     FormItem defaults)

      Changes the defaults for FormItem AutoChildren named `autoChildName`.
      Parameters:
        `autoChildName` - name of an AutoChild to customize the defaults for.
        `defaults` - FormItem defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see `SGWTProperties`.
      See Also:
        `AutoChildUsage`

    - #### create

          protected com.google.gwt.core.client.JavaScriptObject create()

      Overrides:
        `create` in class `StretchImg`

    - #### setActionType

          public StretchImgButton setActionType(SelectionType actionType)

      Behavior on state changes -- BUTTON, RADIO or CHECKBOX
      If this method is called after the component has been drawn/initialized: Update the 'actionType' for this canvas (radio / checkbox / button) If the canvas is currently selected, and the passed in actionType is 'button' this method will deselect the canvas.
      Overrides:
        `setActionType` in class `StatefulCanvas`
      Parameters:
        `actionType` - New actionType value. Default value is "button"
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `State overview and related methods`

    - #### getActionType

          public SelectionType getActionType()

      Behavior on state changes -- BUTTON, RADIO or CHECKBOX
      Overrides:
        `getActionType` in class `StatefulCanvas`
      Returns:
        Return the 'actionType' for this canvas (radio / checkbox / button). Default value is "button"
      See Also:
        `State overview and related methods`

    - #### setAlign

          public StretchImgButton setAlign(Alignment align)

      Horizontal alignment of this component's title.
      Overrides:
        `setAlign` in class `StatefulCanvas`
      Parameters:
        `align` - New align value. Default value is Canvas.CENTER
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `Appearance overview and related methods`

    - #### getAlign

          public Alignment getAlign()

      Horizontal alignment of this component's title.
      Overrides:
        `getAlign` in class `StatefulCanvas`
      Returns:
        Current align value. Default value is Canvas.CENTER
      See Also:
        `Appearance overview and related methods`

    - #### setAutoFit

          public StretchImgButton setAutoFit(java.lang.Boolean autoFit)

      If true, ignore the specified size of this widget and always size just large enough to accommodate the title. If `setWidth()` is explicitly called on an autoFit:true button, autoFit will be reset to `false`.

      Note that for StretchImgButton instances, autoFit will occur horizontally only, as unpredictable vertical sizing is likely to distort the media. If you do want vertical auto-fit, this can be achieved by simply setting a small height, and having overflow:"visible"
      If this method is called after the component has been drawn/initialized: Setter method for the `StatefulCanvas.autoFit` property. Pass in true or false to turn autoFit on or off. When autoFit is set to `false`, canvas will be resized to it's previously specified size.

      Overrides:
        `setAutoFit` in class `StatefulCanvas`
      Parameters:
        `autoFit` - New autoFit setting. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `Sizing overview and related methods`

    - #### getAutoFit

          public java.lang.Boolean getAutoFit()

      If true, ignore the specified size of this widget and always size just large enough to accommodate the title. If `setWidth()` is explicitly called on an autoFit:true button, autoFit will be reset to `false`.

      Note that for StretchImgButton instances, autoFit will occur horizontally only, as unpredictable vertical sizing is likely to distort the media. If you do want vertical auto-fit, this can be achieved by simply setting a small height, and having overflow:"visible"

      Overrides:
        `getAutoFit` in class `StatefulCanvas`
      Returns:
        Current autoFit value. Default value is null
      See Also:
        `Sizing overview and related methods`

    - #### setBaseStyle

          public StretchImgButton setBaseStyle(java.lang.String baseStyle)

      Base CSS style className applied to the component.

      As the component changes `StatefulCanvas.state` and/or is selected, suffixes will be added to the base style. In some cases more than one suffix will be appended to reflect a combined state ("Selected" + "Disabled", for example).

      See `StatefulCanvas.getStateSuffix()` for a description of the default set of suffixes which may be applied to the baseStyle

      #### Rotated Titles

      The Framework doesn't have built-in support for rotating button titles in a fashion similar to `FacetChart.rotateLabels`. However, you can manually configure a button to render with a rotated title by applying custom CSS via this property.

      For example, given a button with a height of 120 and a width of 48, if you copied the existing buttonXXX style declarations from skin_styles.css as new, rotatedTitleButtonXXX declarations, and then added the lines:

                -ms-transform:     translate(-38px,0px) rotate(270deg);
                -webkit-transform: translate(-38px,0px) rotate(270deg);
                transform:         translate(-38px,0px) rotate(270deg);
                overflow: hidden;
                text-overflow: ellipsis;
                width:116px;

      in the declaration section beginning:

            .rotatedTitleButton,
            .rotatedTitleButtonSelected,
            .rotatedTitleButtonSelectedOver,
            .rotatedTitleButtonSelectedDown,
            .rotatedTitleButtonSelectedDisabled,
            .rotatedTitleButtonOver,
            .rotatedTitleButtonDown,
            .rotatedTitleButtonDisabled {

      then applying that style to the button with `overflow`: "clip_h" would yield a vertically-rendered title with overflow via ellipsis as expected, and also wrap with `Button.wrap`. Note that:
      - The explicit width applied via CSS is needed because rotated elements don't inherit dimensions in their new orientation from the DOM - the transform/rotation occurs independently of layout.
      - The translation transform required along the x-axis is roughly (width - height) / 2, but may need slight offsetting for optimal centering.
      - We've explicitly avoided describing an approach based on CSS "writing-mode", since support is incomplete and bugs are present in popular browsers such as Firefox and Safari that would prevent it from being used without Framework assistance.
      If this method is called after the component has been drawn/initialized: Sets the base CSS style. As the component changes state and/or is selected, suffixes will be added to the base style.
      Overrides:
        `setBaseStyle` in class `StatefulCanvas`
      Parameters:
        `baseStyle` - new base style. Default value is "stretchImgButton"
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `CSSStyleName`

    - #### getBaseStyle

          public java.lang.String getBaseStyle()

      Base CSS style className applied to the component.

      As the component changes `StatefulCanvas.state` and/or is selected, suffixes will be added to the base style. In some cases more than one suffix will be appended to reflect a combined state ("Selected" + "Disabled", for example).

      See `StatefulCanvas.getStateSuffix()` for a description of the default set of suffixes which may be applied to the baseStyle

      #### Rotated Titles

      The Framework doesn't have built-in support for rotating button titles in a fashion similar to `FacetChart.rotateLabels`. However, you can manually configure a button to render with a rotated title by applying custom CSS via this property.

      For example, given a button with a height of 120 and a width of 48, if you copied the existing buttonXXX style declarations from skin_styles.css as new, rotatedTitleButtonXXX declarations, and then added the lines:

                -ms-transform:     translate(-38px,0px) rotate(270deg);
                -webkit-transform: translate(-38px,0px) rotate(270deg);
                transform:         translate(-38px,0px) rotate(270deg);
                overflow: hidden;
                text-overflow: ellipsis;
                width:116px;

      in the declaration section beginning:

            .rotatedTitleButton,
            .rotatedTitleButtonSelected,
            .rotatedTitleButtonSelectedOver,
            .rotatedTitleButtonSelectedDown,
            .rotatedTitleButtonSelectedDisabled,
            .rotatedTitleButtonOver,
            .rotatedTitleButtonDown,
            .rotatedTitleButtonDisabled {

      then applying that style to the button with `overflow`: "clip_h" would yield a vertically-rendered title with overflow via ellipsis as expected, and also wrap with `Button.wrap`. Note that:
      - The explicit width applied via CSS is needed because rotated elements don't inherit dimensions in their new orientation from the DOM - the transform/rotation occurs independently of layout.
      - The translation transform required along the x-axis is roughly (width - height) / 2, but may need slight offsetting for optimal centering.
      - We've explicitly avoided describing an approach based on CSS "writing-mode", since support is incomplete and bugs are present in popular browsers such as Firefox and Safari that would prevent it from being used without Framework assistance.
      Overrides:
        `getBaseStyle` in class `StatefulCanvas`
      Returns:
        Current baseStyle value. Default value is "stretchImgButton"
      See Also:
        `CSSStyleName`

    - #### setCapSize

          public StretchImgButton setCapSize(int capSize)

      How big are the end pieces by default
      Overrides:
        `setCapSize` in class `StretchImg`
      Parameters:
        `capSize` - New capSize value. Default value is 12
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `Appearance overview and related methods`

    - #### getCapSize

          public int getCapSize()

      How big are the end pieces by default
      Overrides:
        `getCapSize` in class `StretchImg`
      Returns:
        Current capSize value. Default value is 12
      See Also:
        `Appearance overview and related methods`

    - #### setHeight

          public StretchImgButton setHeight(java.lang.Integer height)

      Size for this component's vertical dimension. See `Canvas.height` for more details.

      Note that if `StatefulCanvas.autoFit` is set on non-`StretchImgButton` instances, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
        `setHeight` in class `StatefulCanvas`
      Parameters:
        `height` - New height value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `StatefulCanvas.setAutoFit(java.lang.Boolean)`, `Sizing overview and related methods`

    - #### getHeight

          public java.lang.Integer getHeight()

      Size for this component's vertical dimension. See `Canvas.height` for more details.

      Note that if `StatefulCanvas.autoFit` is set on non-`StretchImgButton` instances, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
        `getHeight` in class `StatefulCanvas`
      Returns:
        Current height value. Default value is null
      See Also:
        `StatefulCanvas.getAutoFit()`, `Sizing overview and related methods`

    - #### setHeight

          public void setHeight(java.lang.String height)

      Size for this component's vertical dimension. See `Canvas.height` for more details.

      Note that if `StatefulCanvas.autoFit` is set on non-`StretchImgButton` instances, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
        `setHeight` in class `StatefulCanvas`
      Parameters:
        `height` - New height value. Default value is null
      See Also:
        `StatefulCanvas.setAutoFit(java.lang.Boolean)`, `Sizing overview and related methods`

    - #### getHeightAsString

          public java.lang.String getHeightAsString()

      Size for this component's vertical dimension. See `Canvas.height` for more details.

      Note that if `StatefulCanvas.autoFit` is set on non-`StretchImgButton` instances, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
        `getHeightAsString` in class `StatefulCanvas`
      Returns:
        Current height value. Default value is null
      See Also:
        `StatefulCanvas.getAutoFit()`, `Sizing overview and related methods`

    - #### setHiliteAccessKey

          public StretchImgButton setHiliteAccessKey(java.lang.Boolean hiliteAccessKey)

      If set to true, if the `title` of this button contains the specified `accessKey`, when the title is displayed to the user it will be modified to include HTML to underline the accessKey.
      Note that this property may cause titles that include HTML (rather than simple strings) to be inappropriately modified, so should be disabled if your title string includes HTML characters.
      Parameters:
        `hiliteAccessKey` - New hiliteAccessKey value. Default value is true
      Returns:
        `StretchImgButton` instance, for chaining setter calls

    - #### getHiliteAccessKey

          public java.lang.Boolean getHiliteAccessKey()

      If set to true, if the `title` of this button contains the specified `accessKey`, when the title is displayed to the user it will be modified to include HTML to underline the accessKey.
      Note that this property may cause titles that include HTML (rather than simple strings) to be inappropriately modified, so should be disabled if your title string includes HTML characters.
      Returns:
        Current hiliteAccessKey value. Default value is true

    - #### setIcon

          public StretchImgButton setIcon(java.lang.String icon)

      Optional icon to be shown with the button title text.

      Specify as the partial URL to an image, relative to the imgDir of this component. A sprited image can be specified using the `SCSpriteConfig` format.

      Note that the string "blank" is a valid setting for this attribute and will always result in the system blank image, with no state suffixes applied. Typically, this might be used when an iconStyle is also specified and the iconStyle renders the icon via a stateful background-image or other CSS approach.
      If this method is called after the component has been drawn/initialized: Change the icon being shown next to the title text.

      Overrides:
        `setIcon` in class `StatefulCanvas`
      Parameters:
        `icon` - URL of new icon. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `SCImgURL`, `ButtonIcon overview and related methods`

    - #### getIcon

          public java.lang.String getIcon()

      Optional icon to be shown with the button title text.

      Specify as the partial URL to an image, relative to the imgDir of this component. A sprited image can be specified using the `SCSpriteConfig` format.

      Note that the string "blank" is a valid setting for this attribute and will always result in the system blank image, with no state suffixes applied. Typically, this might be used when an iconStyle is also specified and the iconStyle renders the icon via a stateful background-image or other CSS approach.

      Overrides:
        `getIcon` in class `StatefulCanvas`
      Returns:
        Current icon value. Default value is null
      See Also:
        `SCImgURL`, `ButtonIcon overview and related methods`

    - #### setIconAlign

          public StretchImgButton setIconAlign(java.lang.String iconAlign)
                                        throws java.lang.IllegalStateException

      If this button is showing an icon should it be right or left aligned?
      Parameters:
        `iconAlign` - New iconAlign value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getIconAlign

          public java.lang.String getIconAlign()

      If this button is showing an icon should it be right or left aligned?
      Returns:
        Current iconAlign value. Default value is null
      See Also:
        `ButtonIcon overview and related methods`

    - #### setIconHeight

          public StretchImgButton setIconHeight(java.lang.Integer iconHeight)
                                         throws java.lang.IllegalStateException

      Height in pixels of the icon image.

      If unset, defaults to `iconSize`.

      Overrides:
        `setIconHeight` in class `StatefulCanvas`
      Parameters:
        `iconHeight` - New iconHeight value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getIconHeight

          public java.lang.Integer getIconHeight()

      Height in pixels of the icon image.

      If unset, defaults to `iconSize`.

      Overrides:
        `getIconHeight` in class `StatefulCanvas`
      Returns:
        Current iconHeight value. Default value is null
      See Also:
        `ButtonIcon overview and related methods`

    - #### setIconOrientation

          public StretchImgButton setIconOrientation(java.lang.String iconOrientation)
                                              throws java.lang.IllegalStateException

      If this button is showing an icon should it appear to the left or right of the title? valid options are `"left"` and `"right"`.
      If this method is called after the component has been drawn/initialized: Changes the orientation of the icon relative to the text of the button.
      Overrides:
        `setIconOrientation` in class `StatefulCanvas`
      Parameters:
        `iconOrientation` - The new orientation of the icon relative to the text of the button. Default value is "left"
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getIconOrientation

          public java.lang.String getIconOrientation()

      If this button is showing an icon should it appear to the left or right of the title? valid options are `"left"` and `"right"`.
      Overrides:
        `getIconOrientation` in class `StatefulCanvas`
      Returns:
        Current iconOrientation value. Default value is "left"
      See Also:
        `ButtonIcon overview and related methods`

    - #### setIconSize

          public StretchImgButton setIconSize(int iconSize)
                                       throws java.lang.IllegalStateException

      Size in pixels of the icon image.

      The `iconWidth` and `iconHeight` properties can be used to configure width and height separately.

      Note: When configuring the properties of a `StatefulCanvas` (or derivative) `AutoChild`, it is best to set the `iconWidth` and `iconHeight` to the same value rather than setting an `iconSize`. This is because certain skins or customizations thereto might set the `iconWidth` and `iconHeight`, making the customization of the AutoChild's `iconSize` ineffective.

      Overrides:
        `setIconSize` in class `StatefulCanvas`
      Parameters:
        `iconSize` - New iconSize value. Default value is 16
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getIconSize

          public int getIconSize()

      Size in pixels of the icon image.

      The `iconWidth` and `iconHeight` properties can be used to configure width and height separately.

      Note: When configuring the properties of a `StatefulCanvas` (or derivative) `AutoChild`, it is best to set the `iconWidth` and `iconHeight` to the same value rather than setting an `iconSize`. This is because certain skins or customizations thereto might set the `iconWidth` and `iconHeight`, making the customization of the AutoChild's `iconSize` ineffective.

      Overrides:
        `getIconSize` in class `StatefulCanvas`
      Returns:
        Current iconSize value. Default value is 16
      See Also:
        `ButtonIcon overview and related methods`

    - #### setIconSpacing

          public StretchImgButton setIconSpacing(int iconSpacing)
                                          throws java.lang.IllegalStateException

      Pixels between icon and title text.
      Parameters:
        `iconSpacing` - New iconSpacing value. Default value is 6
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getIconSpacing

          public int getIconSpacing()

      Pixels between icon and title text.
      Returns:
        Current iconSpacing value. Default value is 6
      See Also:
        `ButtonIcon overview and related methods`

    - #### setIconWidth

          public StretchImgButton setIconWidth(java.lang.Integer iconWidth)
                                        throws java.lang.IllegalStateException

      Width in pixels of the icon image.

      If unset, defaults to `iconSize`.

      Overrides:
        `setIconWidth` in class `StatefulCanvas`
      Parameters:
        `iconWidth` - New iconWidth value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getIconWidth

          public java.lang.Integer getIconWidth()

      Width in pixels of the icon image.

      If unset, defaults to `iconSize`.

      Overrides:
        `getIconWidth` in class `StatefulCanvas`
      Returns:
        Current iconWidth value. Default value is null
      See Also:
        `ButtonIcon overview and related methods`

    - #### setLabelBreadthPad

          public StretchImgButton setLabelBreadthPad(java.lang.Integer labelBreadthPad)

      The padding for a StretchImgButton's label is determined as follows.

      If `labelHPad` is set it will specify the horizontal padding applied to the label. Similarly if `labelVPad` is set it will specify the vertical padding for the label, regardless of the button's `vertical` setting.

      Otherwise `labelLengthPad` can be set to specify the label padding along the length axis (ie: horizontal padding if `vertical` is false, otherwise vertical padding), and `labelBreadthPad` can be set to specify the label padding along the other axis.

      Otherwise the padding on the length axis will match the `capSize` and will be set to zero on the breadth axis.

      So by default the label will be sized to match the center image of the StretchImgButton, but these settings allow the label to partially or wholly overlap the caps.

      Parameters:
        `labelBreadthPad` - New labelBreadthPad value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls

    - #### getLabelBreadthPad

          public java.lang.Integer getLabelBreadthPad()

      The padding for a StretchImgButton's label is determined as follows.

      If `labelHPad` is set it will specify the horizontal padding applied to the label. Similarly if `labelVPad` is set it will specify the vertical padding for the label, regardless of the button's `vertical` setting.

      Otherwise `labelLengthPad` can be set to specify the label padding along the length axis (ie: horizontal padding if `vertical` is false, otherwise vertical padding), and `labelBreadthPad` can be set to specify the label padding along the other axis.

      Otherwise the padding on the length axis will match the `capSize` and will be set to zero on the breadth axis.

      So by default the label will be sized to match the center image of the StretchImgButton, but these settings allow the label to partially or wholly overlap the caps.

      Returns:
        Current labelBreadthPad value. Default value is null

    - #### setLabelHPad

          public StretchImgButton setLabelHPad(java.lang.Integer labelHPad)

      The padding for a StretchImgButton's label is determined as follows.

      If `labelHPad` is set it will specify the horizontal padding applied to the label. Similarly if `labelVPad` is set it will specify the vertical padding for the label, regardless of the button's `vertical` setting.

      Otherwise `labelLengthPad` can be set to specify the label padding along the length axis (ie: horizontal padding if `vertical` is false, otherwise vertical padding), and `labelBreadthPad` can be set to specify the label padding along the other axis.

      Otherwise the padding on the length axis will match the `capSize` and will be set to zero on the breadth axis.

      So by default the label will be sized to match the center image of the StretchImgButton, but these settings allow the label to partially or wholly overlap the caps.

      Overrides:
        `setLabelHPad` in class `StatefulCanvas`
      Parameters:
        `labelHPad` - New labelHPad value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `setLabelHPad(java.lang.Integer)`

    - #### getLabelHPad

          public java.lang.Integer getLabelHPad()

      The padding for a StretchImgButton's label is determined as follows.

      If `labelHPad` is set it will specify the horizontal padding applied to the label. Similarly if `labelVPad` is set it will specify the vertical padding for the label, regardless of the button's `vertical` setting.

      Otherwise `labelLengthPad` can be set to specify the label padding along the length axis (ie: horizontal padding if `vertical` is false, otherwise vertical padding), and `labelBreadthPad` can be set to specify the label padding along the other axis.

      Otherwise the padding on the length axis will match the `capSize` and will be set to zero on the breadth axis.

      So by default the label will be sized to match the center image of the StretchImgButton, but these settings allow the label to partially or wholly overlap the caps.

      Overrides:
        `getLabelHPad` in class `StatefulCanvas`
      Returns:
        Current labelHPad value. Default value is null
      See Also:
        `getLabelHPad()`

    - #### setLabelLengthPad

          public StretchImgButton setLabelLengthPad(java.lang.Integer labelLengthPad)

      The padding for a StretchImgButton's label is determined as follows.

      If `labelHPad` is set it will specify the horizontal padding applied to the label. Similarly if `labelVPad` is set it will specify the vertical padding for the label, regardless of the button's `vertical` setting.

      Otherwise `labelLengthPad` can be set to specify the label padding along the length axis (ie: horizontal padding if `vertical` is false, otherwise vertical padding), and `labelBreadthPad` can be set to specify the label padding along the other axis.

      Otherwise the padding on the length axis will match the `capSize` and will be set to zero on the breadth axis.

      So by default the label will be sized to match the center image of the StretchImgButton, but these settings allow the label to partially or wholly overlap the caps.

      Parameters:
        `labelLengthPad` - New labelLengthPad value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls

    - #### getLabelLengthPad

          public java.lang.Integer getLabelLengthPad()

      The padding for a StretchImgButton's label is determined as follows.

      If `labelHPad` is set it will specify the horizontal padding applied to the label. Similarly if `labelVPad` is set it will specify the vertical padding for the label, regardless of the button's `vertical` setting.

      Otherwise `labelLengthPad` can be set to specify the label padding along the length axis (ie: horizontal padding if `vertical` is false, otherwise vertical padding), and `labelBreadthPad` can be set to specify the label padding along the other axis.

      Otherwise the padding on the length axis will match the `capSize` and will be set to zero on the breadth axis.

      So by default the label will be sized to match the center image of the StretchImgButton, but these settings allow the label to partially or wholly overlap the caps.

      Returns:
        Current labelLengthPad value. Default value is null

    - #### setLabelSkinImgDir

          public StretchImgButton setLabelSkinImgDir(java.lang.String labelSkinImgDir)

      Specifies a skinImgDir to apply to the label containing the title of this StretchImgButton. May be null in which case `this.skinImgDir` will be applied to the label as well.

      Note that icons displayed in the title may make use of the skin img dir set here
      If this method is called after the component has been drawn/initialized: setter for `labelSkinImgDir`.

      Note : This is an advanced setting

      Parameters:
        `labelSkinImgDir` - new skin img dir to apply to the label holding title text for this widget. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `URL`

    - #### getLabelSkinImgDir

          public java.lang.String getLabelSkinImgDir()

      Specifies a skinImgDir to apply to the label containing the title of this StretchImgButton. May be null in which case `this.skinImgDir` will be applied to the label as well.

      Note that icons displayed in the title may make use of the skin img dir set here

      Returns:
        Current labelSkinImgDir value. Default value is null
      See Also:
        `URL`

    - #### setLabelVPad

          public StretchImgButton setLabelVPad(java.lang.Integer labelVPad)

      The padding for a StretchImgButton's label is determined as follows.

      If `labelHPad` is set it will specify the horizontal padding applied to the label. Similarly if `labelVPad` is set it will specify the vertical padding for the label, regardless of the button's `vertical` setting.

      Otherwise `labelLengthPad` can be set to specify the label padding along the length axis (ie: horizontal padding if `vertical` is false, otherwise vertical padding), and `labelBreadthPad` can be set to specify the label padding along the other axis.

      Otherwise the padding on the length axis will match the `capSize` and will be set to zero on the breadth axis.

      So by default the label will be sized to match the center image of the StretchImgButton, but these settings allow the label to partially or wholly overlap the caps.

      Overrides:
        `setLabelVPad` in class `StatefulCanvas`
      Parameters:
        `labelVPad` - New labelVPad value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `setLabelVPad(java.lang.Integer)`

    - #### getLabelVPad

          public java.lang.Integer getLabelVPad()

      The padding for a StretchImgButton's label is determined as follows.

      If `labelHPad` is set it will specify the horizontal padding applied to the label. Similarly if `labelVPad` is set it will specify the vertical padding for the label, regardless of the button's `vertical` setting.

      Otherwise `labelLengthPad` can be set to specify the label padding along the length axis (ie: horizontal padding if `vertical` is false, otherwise vertical padding), and `labelBreadthPad` can be set to specify the label padding along the other axis.

      Otherwise the padding on the length axis will match the `capSize` and will be set to zero on the breadth axis.

      So by default the label will be sized to match the center image of the StretchImgButton, but these settings allow the label to partially or wholly overlap the caps.

      Overrides:
        `getLabelVPad` in class `StatefulCanvas`
      Returns:
        Current labelVPad value. Default value is null
      See Also:
        `getLabelVPad()`

    - #### setRadioGroup

          public StretchImgButton setRadioGroup(java.lang.String radioGroup)

      String identifier for this canvas's mutually exclusive selection group.

      Note : This is an advanced setting

      Overrides:
        `setRadioGroup` in class `StatefulCanvas`
      Parameters:
        `radioGroup` - New radioGroup value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `State overview and related methods`

    - #### getRadioGroup

          public java.lang.String getRadioGroup()

      String identifier for this canvas's mutually exclusive selection group.
      Overrides:
        `getRadioGroup` in class `StatefulCanvas`
      Returns:
        Current radioGroup value. Default value is null
      See Also:
        `State overview and related methods`

    - #### setShowClippedTitleOnHover

          public StretchImgButton setShowClippedTitleOnHover(java.lang.Boolean showClippedTitleOnHover)

      If true and the title is clipped, then a hover containing the full title of this button is enabled.
      Parameters:
        `showClippedTitleOnHover` - New showClippedTitleOnHover value. Default value is false
      Returns:
        `StretchImgButton` instance, for chaining setter calls

    - #### getShowClippedTitleOnHover

          public java.lang.Boolean getShowClippedTitleOnHover()

      If true and the title is clipped, then a hover containing the full title of this button is enabled.
      Returns:
        Current showClippedTitleOnHover value. Default value is false

    - #### setShowDisabled

          public StretchImgButton setShowDisabled(java.lang.Boolean showDisabled)

      Should we visibly change state when disabled?
      Overrides:
        `setShowDisabled` in class `StatefulCanvas`
      Parameters:
        `showDisabled` - New showDisabled value. Default value is true
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `State overview and related methods`

    - #### getShowDisabled

          public java.lang.Boolean getShowDisabled()

      Should we visibly change state when disabled?
      Overrides:
        `getShowDisabled` in class `StatefulCanvas`
      Returns:
        Current showDisabled value. Default value is true
      See Also:
        `State overview and related methods`

    - #### setShowDisabledIcon

          public StretchImgButton setShowDisabledIcon(java.lang.Boolean showDisabledIcon)
                                               throws java.lang.IllegalStateException

      If using an icon for this button, whether to switch the icon image if the button becomes disabled.
      Overrides:
        `setShowDisabledIcon` in class `StatefulCanvas`
      Parameters:
        `showDisabledIcon` - New showDisabledIcon value. Default value is true
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getShowDisabledIcon

          public java.lang.Boolean getShowDisabledIcon()

      If using an icon for this button, whether to switch the icon image if the button becomes disabled.
      Overrides:
        `getShowDisabledIcon` in class `StatefulCanvas`
      Returns:
        Current showDisabledIcon value. Default value is true
      See Also:
        `ButtonIcon overview and related methods`

    - #### setShowDown

          public StretchImgButton setShowDown(java.lang.Boolean showDown)

      Should we visibly change state when the mouse goes down in this object?
      Overrides:
        `setShowDown` in class `StatefulCanvas`
      Parameters:
        `showDown` - New showDown value. Default value is false
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `State overview and related methods`

    - #### getShowDown

          public java.lang.Boolean getShowDown()

      Should we visibly change state when the mouse goes down in this object?
      Overrides:
        `getShowDown` in class `StatefulCanvas`
      Returns:
        Current showDown value. Default value is false
      See Also:
        `State overview and related methods`

    - #### setShowDownIcon

          public StretchImgButton setShowDownIcon(java.lang.Boolean showDownIcon)
                                           throws java.lang.IllegalStateException

      If using an icon for this button, whether to switch the icon image when the mouse goes down on the button.
      Overrides:
        `setShowDownIcon` in class `StatefulCanvas`
      Parameters:
        `showDownIcon` - New showDownIcon value. Default value is false
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getShowDownIcon

          public java.lang.Boolean getShowDownIcon()

      If using an icon for this button, whether to switch the icon image when the mouse goes down on the button.
      Overrides:
        `getShowDownIcon` in class `StatefulCanvas`
      Returns:
        Current showDownIcon value. Default value is false
      See Also:
        `ButtonIcon overview and related methods`

    - #### setShowFocused

          public StretchImgButton setShowFocused(java.lang.Boolean showFocused)

      Should we visibly change state when the canvas receives focus? If `StatefulCanvas.showFocusedAsOver` is `true`, then `"over"` will be used to indicate focus. Otherwise a separate `"focused"` state will be used.
      Overrides:
        `setShowFocused` in class `StatefulCanvas`
      Parameters:
        `showFocused` - New showFocused value. Default value is false
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `State overview and related methods`

    - #### getShowFocused

          public java.lang.Boolean getShowFocused()

      Should we visibly change state when the canvas receives focus? If `StatefulCanvas.showFocusedAsOver` is `true`, then `"over"` will be used to indicate focus. Otherwise a separate `"focused"` state will be used.
      Overrides:
        `getShowFocused` in class `StatefulCanvas`
      Returns:
        Current showFocused value. Default value is false
      See Also:
        `State overview and related methods`

    - #### setShowFocusedIcon

          public StretchImgButton setShowFocusedIcon(java.lang.Boolean showFocusedIcon)
                                              throws java.lang.IllegalStateException

      If using an icon for this button, whether to switch the icon image when the button receives focus.

      If `StatefulCanvas.showFocusedAsOver` is true, the `"Over"` icon will be displayed when the canvas has focus, otherwise a separate `"Focused"` icon will be displayed

      Overrides:
        `setShowFocusedIcon` in class `StatefulCanvas`
      Parameters:
        `showFocusedIcon` - New showFocusedIcon value. Default value is false
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getShowFocusedIcon

          public java.lang.Boolean getShowFocusedIcon()

      If using an icon for this button, whether to switch the icon image when the button receives focus.

      If `StatefulCanvas.showFocusedAsOver` is true, the `"Over"` icon will be displayed when the canvas has focus, otherwise a separate `"Focused"` icon will be displayed

      Overrides:
        `getShowFocusedIcon` in class `StatefulCanvas`
      Returns:
        Current showFocusedIcon value. Default value is false
      See Also:
        `ButtonIcon overview and related methods`

    - #### setShowRollOver

          public StretchImgButton setShowRollOver(java.lang.Boolean showRollOver)

      Should we visibly change state when the mouse goes over this object?
      Overrides:
        `setShowRollOver` in class `StatefulCanvas`
      Parameters:
        `showRollOver` - New showRollOver value. Default value is false
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `State overview and related methods`

    - #### getShowRollOver

          public java.lang.Boolean getShowRollOver()

      Should we visibly change state when the mouse goes over this object?
      Overrides:
        `getShowRollOver` in class `StatefulCanvas`
      Returns:
        Current showRollOver value. Default value is false
      See Also:
        `State overview and related methods`

    - #### setShowRollOverIcon

          public StretchImgButton setShowRollOverIcon(java.lang.Boolean showRollOverIcon)
                                               throws java.lang.IllegalStateException

      If using an icon for this button, whether to switch the icon image on mouse rollover.
      Overrides:
        `setShowRollOverIcon` in class `StatefulCanvas`
      Parameters:
        `showRollOverIcon` - New showRollOverIcon value. Default value is false
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getShowRollOverIcon

          public java.lang.Boolean getShowRollOverIcon()

      If using an icon for this button, whether to switch the icon image on mouse rollover.
      Overrides:
        `getShowRollOverIcon` in class `StatefulCanvas`
      Returns:
        Current showRollOverIcon value. Default value is false
      See Also:
        `ButtonIcon overview and related methods`

    - #### setShowSelectedIcon

          public StretchImgButton setShowSelectedIcon(java.lang.Boolean showSelectedIcon)
                                               throws java.lang.IllegalStateException

      If using an icon for this button, whether to switch the icon image when the button becomes selected.
      Overrides:
        `setShowSelectedIcon` in class `StatefulCanvas`
      Parameters:
        `showSelectedIcon` - New showSelectedIcon value. Default value is false
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `ButtonIcon overview and related methods`

    - #### getShowSelectedIcon

          public java.lang.Boolean getShowSelectedIcon()

      If using an icon for this button, whether to switch the icon image when the button becomes selected.
      Overrides:
        `getShowSelectedIcon` in class `StatefulCanvas`
      Returns:
        Current showSelectedIcon value. Default value is false
      See Also:
        `ButtonIcon overview and related methods`

    - #### setShowTitle

          public StretchImgButton setShowTitle(java.lang.Boolean showTitle)

      Determines whether any specified `title` will be displayed for this component.
      Applies to Image-based components only, where the title will be rendered out in a label floating over the component
      Overrides:
        `setShowTitle` in class `StretchImg`
      Parameters:
        `showTitle` - New showTitle value. Default value is true
      Returns:
        `StretchImgButton` instance, for chaining setter calls

    - #### getShowTitle

          public java.lang.Boolean getShowTitle()

      Determines whether any specified `title` will be displayed for this component.
      Applies to Image-based components only, where the title will be rendered out in a label floating over the component
      Overrides:
        `getShowTitle` in class `StretchImg`
      Returns:
        Current showTitle value. Default value is true

    - #### setSrc

          public StretchImgButton setSrc(java.lang.String src)

      Base URL for the image. By default, StretchImgButtons consist of three image parts: A start image (displayed at the top or left), a scalable central image and an end image displayed at the bottom or right.

      The images displayed in the stretchImgButton are derived from this property in the following way:

      - When the button is in its standard state the suffixes "_start", "_end" and "_stretch" are applied to the src (before the file extension), so by default the images displayed will be "button_start.gif" (sized to be `this.capSize` by the specified width of the stretchImgButton), "button_stretch.gif" (stretched to the necessary width) and "button_end.gif" (sized the same as the start image).
      - As the button's state changes, the images will have suffixes appended before the "_start" / "_end" / "_stretch" to represent the button state. See `Img.src` for an overview of how states are combined into a compound URL.
      For example the center piece of a selected stretchImgButton with the mouse hovering over it might have the URL: `"button_Selected_Down_stretch.gif"`.

      Media should be present for each possible state of the _start, _end and _stretch images.

      Overrides:
        `setSrc` in class `StretchImg`
      Parameters:
        `src` - New src value. Default value is "button.gif"
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `SCImgURL`

    - #### getSrc

          public java.lang.String getSrc()

      Base URL for the image. By default, StretchImgButtons consist of three image parts: A start image (displayed at the top or left), a scalable central image and an end image displayed at the bottom or right.

      The images displayed in the stretchImgButton are derived from this property in the following way:

      - When the button is in its standard state the suffixes "_start", "_end" and "_stretch" are applied to the src (before the file extension), so by default the images displayed will be "button_start.gif" (sized to be `this.capSize` by the specified width of the stretchImgButton), "button_stretch.gif" (stretched to the necessary width) and "button_end.gif" (sized the same as the start image).
      - As the button's state changes, the images will have suffixes appended before the "_start" / "_end" / "_stretch" to represent the button state. See `Img.src` for an overview of how states are combined into a compound URL.
      For example the center piece of a selected stretchImgButton with the mouse hovering over it might have the URL: `"button_Selected_Down_stretch.gif"`.

      Media should be present for each possible state of the _start, _end and _stretch images.

      Overrides:
        `getSrc` in class `StretchImg`
      Returns:
        Current src value. Default value is "button.gif"
      See Also:
        `SCImgURL`

    - #### setState

          public StretchImgButton setState(State state)

      Current "state" of this widget. The state setting is automatically updated as the user interacts with the component (see `StatefulCanvas.showRollOver`, `StatefulCanvas.showDown`, `StatefulCanvas.showDisabled`).

      StatefulCanvases will have a different appearance based on their current state. By default this is handled by changing the css className applied to the StatefulCanvas - see `StatefulCanvas.baseStyle` and `StatefulCanvas.getStateSuffix()` for a description of how this is done.

      For `Img` or `StretchImg` based subclasses of StatefulCanvas, the appearance may also be updated by changing the src of the rendered image. See `Img.src` and `src` for a description of how the URL is modified to reflect the state of the widget in this case.
      If this method is called after the component has been drawn/initialized: Sets the `state` of this object, changing its appearance. Note: `newState` cannot be `State.STATE_DISABLED` if `this.showDisabled` is `false`.

      Note : This is an advanced setting

      Overrides:
        `setState` in class `StatefulCanvas`
      Parameters:
        `state` - the new state. Default value is ""
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `State`, `State overview and related methods`

    - #### getState

          public State getState()

      Current "state" of this widget. The state setting is automatically updated as the user interacts with the component (see `StatefulCanvas.showRollOver`, `StatefulCanvas.showDown`, `StatefulCanvas.showDisabled`).

      StatefulCanvases will have a different appearance based on their current state. By default this is handled by changing the css className applied to the StatefulCanvas - see `StatefulCanvas.baseStyle` and `StatefulCanvas.getStateSuffix()` for a description of how this is done.

      For `Img` or `StretchImg` based subclasses of StatefulCanvas, the appearance may also be updated by changing the src of the rendered image. See `Img.src` and `src` for a description of how the URL is modified to reflect the state of the widget in this case.

      Overrides:
        `getState` in class `StatefulCanvas`
      Returns:
        Return the state of this StatefulCanvas. Default value is ""
      See Also:
        `State`, `State overview and related methods`

    - #### setTitle

          public void setTitle(java.lang.String title)

      The title HTML to display in this button.
      If this method is called after the component has been drawn/initialized: Setter for the `title`.
      Overrides:
        `setTitle` in class `StatefulCanvas`
      Parameters:
        `title` - the new title HTML. Default value is null
      See Also:
        `HTMLString`, `Basics overview and related methods`

    - #### getTitle

          public java.lang.String getTitle()

      The title HTML to display in this button.
      Overrides:
        `getTitle` in class `StatefulCanvas`
      Returns:
        Return the title - HTML drawn inside the component.

        Default is to simply return this.title. Default value is null

      See Also:
        `HTMLString`, `Basics overview and related methods`

    - #### setTitleStyle

          public StretchImgButton setTitleStyle(java.lang.String titleStyle)

      CSS style applied to the title text only. Defaults to `baseStyle` when unset.

      With a separate `titleStyle` and `baseStyle` set, you can provide a backgroundColor via `baseStyle` that will allow translucent .png media to be "tinted" by the underlying background color, so that a single set of media can provide range of color options. In this usage, the `titleStyle` should generally not specify a background color as this would block out the media that appears behind the title.
      If this method is called after the component has been drawn/initialized: Sets the `titleStyle`, which is applied to the title text.

      Overrides:
        `setTitleStyle` in class `StatefulCanvas`
      Parameters:
        `titleStyle` - new title style. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `CSSStyleName`

    - #### getTitleStyle

          public java.lang.String getTitleStyle()

      CSS style applied to the title text only. Defaults to `baseStyle` when unset.

      With a separate `titleStyle` and `baseStyle` set, you can provide a backgroundColor via `baseStyle` that will allow translucent .png media to be "tinted" by the underlying background color, so that a single set of media can provide range of color options. In this usage, the `titleStyle` should generally not specify a background color as this would block out the media that appears behind the title.

      Returns:
        Current titleStyle value. Default value is null
      See Also:
        `CSSStyleName`

    - #### setValign

          public StretchImgButton setValign(VerticalAlignment valign)

      Vertical alignment of this component's title.
      Overrides:
        `setValign` in class `StatefulCanvas`
      Parameters:
        `valign` - New valign value. Default value is Canvas.CENTER
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `Appearance overview and related methods`

    - #### getValign

          public VerticalAlignment getValign()

      Vertical alignment of this component's title.
      Overrides:
        `getValign` in class `StatefulCanvas`
      Returns:
        Current valign value. Default value is Canvas.CENTER
      See Also:
        `Appearance overview and related methods`

    - #### setVertical

          public StretchImgButton setVertical(java.lang.Boolean vertical)

      Default is a horizontal button. Vertical StretchImgButtons are allowed, but title text, if any, will not be automatically rotated.
      Overrides:
        `setVertical` in class `StretchImg`
      Parameters:
        `vertical` - New vertical value. Default value is false
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `Appearance overview and related methods`

    - #### getVertical

          public java.lang.Boolean getVertical()

      Default is a horizontal button. Vertical StretchImgButtons are allowed, but title text, if any, will not be automatically rotated.
      Overrides:
        `getVertical` in class `StretchImg`
      Returns:
        Current vertical value. Default value is false
      See Also:
        `Appearance overview and related methods`

    - #### setWidth

          public StretchImgButton setWidth(java.lang.Integer width)

      Size for this component's horizontal dimension. See `Canvas.width` for more details.

      Note that if `StatefulCanvas.autoFit` is set, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
        `setWidth` in class `StatefulCanvas`
      Parameters:
        `width` - New width value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls
      See Also:
        `StatefulCanvas.setAutoFit(java.lang.Boolean)`, `Sizing overview and related methods`

    - #### getWidth

          public java.lang.Integer getWidth()

      Size for this component's horizontal dimension. See `Canvas.width` for more details.

      Note that if `StatefulCanvas.autoFit` is set, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
        `getWidth` in class `StatefulCanvas`
      Returns:
        Current width value. Default value is null
      See Also:
        `StatefulCanvas.getAutoFit()`, `Sizing overview and related methods`

    - #### setWidth

          public void setWidth(java.lang.String width)

      Size for this component's horizontal dimension. See `Canvas.width` for more details.

      Note that if `StatefulCanvas.autoFit` is set, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
        `setWidth` in class `StatefulCanvas`
      Parameters:
        `width` - New width value. Default value is null
      See Also:
        `StatefulCanvas.setAutoFit(java.lang.Boolean)`, `Sizing overview and related methods`

    - #### getWidthAsString

          public java.lang.String getWidthAsString()

      Size for this component's horizontal dimension. See `Canvas.width` for more details.

      Note that if `StatefulCanvas.autoFit` is set, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
        `getWidthAsString` in class `StatefulCanvas`
      Returns:
        Current width value. Default value is null
      See Also:
        `StatefulCanvas.getAutoFit()`, `Sizing overview and related methods`

    - #### setWrap

          public StretchImgButton setWrap(java.lang.Boolean wrap)

      Should the title for this button wrap? If unset, default behavior is to allow wrapping if this.vertical is true, otherwise disallow wrapping
      Parameters:
        `wrap` - New wrap value. Default value is null
      Returns:
        `StretchImgButton` instance, for chaining setter calls

    - #### getWrap

          public java.lang.Boolean getWrap()

      Should the title for this button wrap? If unset, default behavior is to allow wrapping if this.vertical is true, otherwise disallow wrapping
      Returns:
        Current wrap value. Default value is null

    - #### action

          public void action()

      This property contains the default 'action' for the Button to fire when activated.

    - #### addToRadioGroup

          public void addToRadioGroup(java.lang.String groupID)

      Add this widget to the specified mutually exclusive selection group with the ID passed in. Selecting this widget will then deselect any other StatefulCanvases with the same radioGroup ID. StatefulCanvases can belong to only one radioGroup, so this method will remove from any other radiogroup of which this button is already a member.
      Overrides:
        `addToRadioGroup` in class `StatefulCanvas`
      Parameters:
        `groupID` - - ID of the radiogroup to which this widget should be added
      See Also:
        `State overview and related methods`

    - #### deselect

          public void deselect()

      Select this object.
      Overrides:
        `deselect` in class `StatefulCanvas`
      See Also:
        `State overview and related methods`

    - #### addIconClickHandler

          public com.google.gwt.event.shared.HandlerRegistration addIconClickHandler(IconClickHandler handler)

      Add a iconClick handler.

      If this button is showing an `icon`, a separate click handler for the icon may be defined as `this.iconClick`. Returning false will suppress the standard button click handling code.

      Specified by:
        `addIconClickHandler` in interface `HasIconClickHandlers`
      Parameters:
        `handler` - the iconClick handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### removeFromRadioGroup

          public void removeFromRadioGroup()

      Remove this widget from the specified mutually exclusive selection group with the ID passed in. No-op's if this widget is not a member of the groupID passed in. If no groupID is passed in, defaults to removing from whatever radioGroup this widget is a member of.
      Overrides:
        `removeFromRadioGroup` in class `StatefulCanvas`
      See Also:
        `State overview and related methods`

    - #### removeFromRadioGroup

          public void removeFromRadioGroup(java.lang.String groupID)

      Remove this widget from the specified mutually exclusive selection group with the ID passed in. No-op's if this widget is not a member of the groupID passed in. If no groupID is passed in, defaults to removing from whatever radioGroup this widget is a member of.
      Overrides:
        `removeFromRadioGroup` in class `StatefulCanvas`
      Parameters:
        `groupID` - - optional radio group ID (to ensure the widget is removed from the appropriate group.
      See Also:
        `State overview and related methods`

    - #### select

          public void select()

      Select this object.
      Overrides:
        `select` in class `StatefulCanvas`
      See Also:
        `State overview and related methods`

    - #### titleClipped

          public boolean titleClipped()

      Is the title of this button clipped?
      Returns:
        whether the title is clipped.

    - #### addTitleHoverHandler

          public com.google.gwt.event.shared.HandlerRegistration addTitleHoverHandler(TitleHoverHandler handler)

      Add a titleHover handler.

      Optional stringMethod to fire when the user hovers over this button and the title is clipped. If `StretchImgButton.showClippedTitleOnHover` is true, the default behavior is to show a hover canvas containing the HTML returned by `StretchImgButton.titleHoverHTML()`. Call `TitleHoverEvent.cancel()` from within `TitleHoverHandler.onTitleHover(com.smartgwt.client.widgets.events.TitleHoverEvent)` to suppress this default behavior.

      Specified by:
        `addTitleHoverHandler` in interface `HasTitleHoverHandlers`
      Parameters:
        `handler` - the titleHover handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### titleHoverHTML

          public java.lang.String titleHoverHTML(java.lang.String defaultHTML)

      Returns the HTML that is displayed by the default `titleHover` handler. Return null or an empty string to cancel the hover.

      Use `setTitleHoverFormatter()` to provide a custom implementation.

      Parameters:
        `defaultHTML` - the HTML that would have been displayed by default. See `HTMLString`
      Returns:
        HTML to be displayed in the hover. If null or an empty string, then the hover is canceled. See `HTMLString`
      See Also:
        `HTMLString`

    - #### setDefaultProperties

          public static void setDefaultProperties(StretchImgButton stretchImgButtonProperties)

      Class level method to set the default properties of this class. If set, then all existing and subsequently created instances of this class will automatically have default properties corresponding to the properties set on the SmartGWT class instance passed to this function before its underlying SmartClient JS object was created. This is a powerful feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default properties of this class. Can also be used for skinning / styling purposes.

      Note: This method is intended for setting default attributes only and will affect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.

      Parameters:
        `stretchImgButtonProperties` - properties that should be used as new defaults when instances of this class are created
      See Also:
        `SGWTProperties`

    - #### setTitleHoverFormatter

          public void setTitleHoverFormatter(TitleHoverFormatter formatter)

      Provide a custom implementation of `titleHoverHTML(java.lang.String)`.

    - #### setLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject setLogicalStructure(com.smartgwt.logicalstructure.widgets.StretchImgButtonLogicalStructure s)

      Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.

    - #### getLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject getLogicalStructure()

      Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
      Specified by:
        `getLogicalStructure` in interface `LogicalStructure`
      Overrides:
        `getLogicalStructure` in class `StretchImg`