DrawableButton Class Reference

A button that displays a Drawable. More...

Inherits Button.

List of all members.

Public Types

enum  ButtonStyle { ImageFitted, ImageRaw, ImageAboveTextLabel, ImageOnButtonBackground }

Public Member Functions

 DrawableButton (const String &buttonName, ButtonStyle buttonStyle)
 Creates a DrawableButton.
 ~DrawableButton ()
 Destructor.
void setImages (const Drawable *normalImage, const Drawable *overImage=0, const Drawable *downImage=0, const Drawable *disabledImage=0, const Drawable *normalImageOn=0, const Drawable *overImageOn=0, const Drawable *downImageOn=0, const Drawable *disabledImageOn=0)
 Sets up the images to draw for the various button states.
void setButtonStyle (ButtonStyle newStyle)
 Changes the button's style.
void setBackgroundColours (const Colour &toggledOffColour, const Colour &toggledOnColour)
 Changes the button's background colours.
const ColourgetBackgroundColour () const throw ()
 Returns the current background colour being used.
void setEdgeIndent (int numPixelsIndent)
 Gives the button an optional amount of space around the edge of the drawable.
const DrawablegetCurrentImage () const throw ()
 Returns the image that the button is currently displaying.
const DrawablegetNormalImage () const throw ()
const DrawablegetOverImage () const throw ()
const DrawablegetDownImage () const throw ()

Protected Member Functions

void paintButton (Graphics &g, bool isMouseOverButton, bool isButtonDown)

Detailed Description

A button that displays a Drawable.

Up to three Drawable objects can be given to this button, to represent the 'normal', 'over' and 'down' states.

See also:
Button

Member Enumeration Documentation

Enumerator:
ImageFitted 

The button will just display the images, but will resize and centre them to fit inside it.

ImageRaw 

The button will just display the images in their normal size and position.

This leaves it up to the caller to make sure the images are the correct size and position for the button.

ImageAboveTextLabel 

Draws the button as a text label across the bottom with the image resized and scaled to fit above it.

ImageOnButtonBackground 

Draws the button as a standard rounded-rectangle button with the image on top.


Constructor & Destructor Documentation

DrawableButton::DrawableButton ( const String buttonName,
ButtonStyle  buttonStyle 
)

Creates a DrawableButton.

After creating one of these, use setImages() to specify the drawables to use.

Parameters:
buttonName the name to give the component
buttonStyle the layout to use
See also:
ButtonStyle, setButtonStyle, setImages
DrawableButton::~DrawableButton (  ) 

Destructor.


Member Function Documentation

void DrawableButton::setImages ( const Drawable normalImage,
const Drawable overImage = 0,
const Drawable downImage = 0,
const Drawable disabledImage = 0,
const Drawable normalImageOn = 0,
const Drawable overImageOn = 0,
const Drawable downImageOn = 0,
const Drawable disabledImageOn = 0 
)

Sets up the images to draw for the various button states.

The button will keep its own internal copies of these drawables.

Parameters:
normalImage the thing to draw for the button's 'normal' state. An internal copy will be made of the object passed-in if it is non-zero.
overImage the thing to draw for the button's 'over' state - if this is zero, the button's normal image will be used when the mouse is over it. An internal copy will be made of the object passed-in if it is non-zero.
downImage the thing to draw for the button's 'down' state - if this is zero, the 'over' image will be used instead (or the normal image as a last resort). An internal copy will be made of the object passed-in if it is non-zero.
disabledImage an image to draw when the button is disabled. If this is zero, the normal image will be drawn with a reduced opacity instead. An internal copy will be made of the object passed-in if it is non-zero.
normalImageOn same as the normalImage, but this is used when the button's toggle state is 'on'. If this is 0, the normal image is used instead
overImageOn same as the overImage, but this is used when the button's toggle state is 'on'. If this is 0, the normalImageOn is drawn instead
downImageOn same as the downImage, but this is used when the button's toggle state is 'on'. If this is 0, the overImageOn is drawn instead
disabledImageOn same as the disabledImage, but this is used when the button's toggle state is 'on'. If this is 0, the normal image will be drawn instead with a reduced opacity
void DrawableButton::setButtonStyle ( ButtonStyle  newStyle  ) 

Changes the button's style.

See also:
ButtonStyle
void DrawableButton::setBackgroundColours ( const Colour toggledOffColour,
const Colour toggledOnColour 
)

Changes the button's background colours.

The toggledOffColour is the colour to use when the button's toggle state is off, and toggledOnColour when it's on.

For an ImageOnly or ImageAboveTextLabel style, the background colour is used to fill the background of the component.

For an ImageOnButtonBackground style, the colour is used to draw the button's lozenge shape and exactly how the colour's used will depend on the LookAndFeel.

const Colour& DrawableButton::getBackgroundColour (  )  const throw ()

Returns the current background colour being used.

See also:
setBackgroundColour
void DrawableButton::setEdgeIndent ( int  numPixelsIndent  ) 

Gives the button an optional amount of space around the edge of the drawable.

This will only apply to ImageFitted or ImageRaw styles, it won't affect the ones on a button background. If the button is too small for the given gap, a smaller gap will be used.

By default there's a gap of about 3 pixels.

const Drawable* DrawableButton::getCurrentImage (  )  const throw ()

Returns the image that the button is currently displaying.

const Drawable* DrawableButton::getNormalImage (  )  const throw ()
const Drawable* DrawableButton::getOverImage (  )  const throw ()
const Drawable* DrawableButton::getDownImage (  )  const throw ()
void DrawableButton::paintButton ( Graphics g,
bool  isMouseOverButton,
bool  isButtonDown 
) [protected, virtual]

For internal use only.

Implements Button.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Mon Apr 26 11:42:11 2010 for JUCE by  doxygen 1.6.3