openshot-audio  0.1.6
Classes | Public Member Functions | Protected Member Functions | List of all members
juce::ImageButton Class Reference

#include <juce_gui_basics.h>

Inheritance diagram for juce::ImageButton:
juce::Button juce::Component juce::SettableTooltipClient juce::MouseListener juce::TooltipClient

Classes

struct  LookAndFeelMethods
 

Public Member Functions

 ImageButton (const String &name=String::empty)
 
 ~ImageButton ()
 
void setImages (bool resizeButtonNowToFitThisImage, bool rescaleImagesWhenButtonSizeChanges, bool preserveImageProportions, const Image &normalImage, float imageOpacityWhenNormal, Colour overlayColourWhenNormal, const Image &overImage, float imageOpacityWhenOver, Colour overlayColourWhenOver, const Image &downImage, float imageOpacityWhenDown, Colour overlayColourWhenDown, float hitTestAlphaThreshold=0.0f)
 
Image getNormalImage () const
 
Image getOverImage () const
 
Image getDownImage () const
 
- Public Member Functions inherited from juce::Button
virtual ~Button ()
 
void setButtonText (const String &newText)
 
const StringgetButtonText () const
 
bool isDown () const noexcept
 
bool isOver () const noexcept
 
void setToggleState (bool shouldBeOn, NotificationType notification)
 
bool getToggleState () const noexcept
 
ValuegetToggleStateValue () noexcept
 
void setClickingTogglesState (bool shouldAutoToggleOnClick) noexcept
 
bool getClickingTogglesState () const noexcept
 
void setRadioGroupId (int newGroupId, NotificationType notification=sendNotification)
 
int getRadioGroupId () const noexcept
 
void addListener (Listener *newListener)
 
void removeListener (Listener *listener)
 
virtual void triggerClick ()
 
void setCommandToTrigger (ApplicationCommandManager *commandManagerToUse, CommandID commandID, bool generateTooltip)
 
CommandID getCommandID () const noexcept
 
void addShortcut (const KeyPress &)
 
void clearShortcuts ()
 
bool isRegisteredForShortcut (const KeyPress &) const
 
void setRepeatSpeed (int initialDelayInMillisecs, int repeatDelayInMillisecs, int minimumDelayInMillisecs=-1) noexcept
 
void setTriggeredOnMouseDown (bool isTriggeredOnMouseDown) noexcept
 
uint32 getMillisecondsSinceButtonDown () const noexcept
 
void setTooltip (const String &newTooltip) override
 
void setConnectedEdges (int connectedEdgeFlags)
 
int getConnectedEdgeFlags () const noexcept
 
bool isConnectedOnLeft () const noexcept
 
bool isConnectedOnRight () const noexcept
 
bool isConnectedOnTop () const noexcept
 
bool isConnectedOnBottom () const noexcept
 
void setState (ButtonState newState)
 
ButtonState getState () const noexcept
 
 JUCE_DEPRECATED (void setToggleState(bool, bool))
 
- Public Member Functions inherited from juce::Component
 Component () noexcept
 
virtual ~Component ()
 
 Component (const String &componentName) noexcept
 
const StringgetName () const noexcept
 
virtual void setName (const String &newName)
 
const StringgetComponentID () const noexcept
 
void setComponentID (const String &newID)
 
virtual void setVisible (bool shouldBeVisible)
 
bool isVisible () const noexcept
 
bool isShowing () const
 
virtual void addToDesktop (int windowStyleFlags, void *nativeWindowToAttachTo=nullptr)
 
void removeFromDesktop ()
 
bool isOnDesktop () const noexcept
 
ComponentPeergetPeer () const
 
virtual void userTriedToCloseWindow ()
 
virtual void minimisationStateChanged (bool isNowMinimised)
 
virtual float getDesktopScaleFactor () const
 
void toFront (bool shouldAlsoGainFocus)
 
void toBack ()
 
void toBehind (Component *other)
 
void setAlwaysOnTop (bool shouldStayOnTop)
 
bool isAlwaysOnTop () const noexcept
 
int getX () const noexcept
 
int getY () const noexcept
 
int getWidth () const noexcept
 
int getHeight () const noexcept
 
int getRight () const noexcept
 
Point< int > getPosition () const noexcept
 
int getBottom () const noexcept
 
const Rectangle< int > & getBounds () const noexcept
 
Rectangle< int > getLocalBounds () const noexcept
 
Rectangle< int > getBoundsInParent () const noexcept
 
int getScreenX () const
 
int getScreenY () const
 
Point< int > getScreenPosition () const
 
Rectangle< int > getScreenBounds () const
 
Point< int > getLocalPoint (const Component *sourceComponent, Point< int > pointRelativeToSourceComponent) const
 
Point< float > getLocalPoint (const Component *sourceComponent, Point< float > pointRelativeToSourceComponent) const
 
Rectangle< int > getLocalArea (const Component *sourceComponent, const Rectangle< int > &areaRelativeToSourceComponent) const
 
Point< int > localPointToGlobal (Point< int > localPoint) const
 
Point< float > localPointToGlobal (Point< float > localPoint) const
 
Rectangle< int > localAreaToGlobal (const Rectangle< int > &localArea) const
 
void setTopLeftPosition (int x, int y)
 
void setTopLeftPosition (Point< int > newTopLeftPosition)
 
void setTopRightPosition (int x, int y)
 
void setSize (int newWidth, int newHeight)
 
void setBounds (int x, int y, int width, int height)
 
void setBounds (const Rectangle< int > &newBounds)
 
void setBounds (const RelativeRectangle &newBounds)
 
void setBounds (const String &newBoundsExpression)
 
void setBoundsRelative (float proportionalX, float proportionalY, float proportionalWidth, float proportionalHeight)
 
void setBoundsInset (const BorderSize< int > &borders)
 
void setBoundsToFit (int x, int y, int width, int height, Justification justification, bool onlyReduceInSize)
 
void setCentrePosition (int x, int y)
 
void setCentreRelative (float x, float y)
 
void centreWithSize (int width, int height)
 
void setTransform (const AffineTransform &transform)
 
AffineTransform getTransform () const
 
bool isTransformed () const noexcept
 
int proportionOfWidth (float proportion) const noexcept
 
int proportionOfHeight (float proportion) const noexcept
 
int getParentWidth () const noexcept
 
int getParentHeight () const noexcept
 
Rectangle< int > getParentMonitorArea () const
 
int getNumChildComponents () const noexcept
 
ComponentgetChildComponent (int index) const noexcept
 
int getIndexOfChildComponent (const Component *child) const noexcept
 
ComponentfindChildWithID (StringRef componentID) const noexcept
 
void addChildComponent (Component *child, int zOrder=-1)
 
void addChildComponent (Component &child, int zOrder=-1)
 
void addAndMakeVisible (Component *child, int zOrder=-1)
 
void addAndMakeVisible (Component &child, int zOrder=-1)
 
void addChildAndSetID (Component *child, const String &componentID)
 
void removeChildComponent (Component *childToRemove)
 
ComponentremoveChildComponent (int childIndexToRemove)
 
void removeAllChildren ()
 
void deleteAllChildren ()
 
ComponentgetParentComponent () const noexcept
 
template<class TargetClass >
TargetClass * findParentComponentOfClass () const
 
ComponentgetTopLevelComponent () const noexcept
 
bool isParentOf (const Component *possibleChild) const noexcept
 
virtual void childrenChanged ()
 
void setInterceptsMouseClicks (bool allowClicksOnThisComponent, bool allowClicksOnChildComponents) noexcept
 
void getInterceptsMouseClicks (bool &allowsClicksOnThisComponent, bool &allowsClicksOnChildComponents) const noexcept
 
bool contains (Point< int > localPoint)
 
bool reallyContains (Point< int > localPoint, bool returnTrueIfWithinAChild)
 
ComponentgetComponentAt (int x, int y)
 
ComponentgetComponentAt (Point< int > position)
 
void repaint ()
 
void repaint (int x, int y, int width, int height)
 
void repaint (const Rectangle< int > &area)
 
void setBufferedToImage (bool shouldBeBuffered)
 
Image createComponentSnapshot (const Rectangle< int > &areaToGrab, bool clipImageToComponentBounds=true, float scaleFactor=1.0f)
 
void paintEntireComponent (Graphics &context, bool ignoreAlphaLevel)
 
void setPaintingIsUnclipped (bool shouldPaintWithoutClipping) noexcept
 
void setComponentEffect (ImageEffectFilter *newEffect)
 
ImageEffectFiltergetComponentEffect () const noexcept
 
LookAndFeelgetLookAndFeel () const noexcept
 
void setLookAndFeel (LookAndFeel *newLookAndFeel)
 
virtual void lookAndFeelChanged ()
 
void sendLookAndFeelChange ()
 
void setOpaque (bool shouldBeOpaque)
 
bool isOpaque () const noexcept
 
void setBroughtToFrontOnMouseClick (bool shouldBeBroughtToFront) noexcept
 
bool isBroughtToFrontOnMouseClick () const noexcept
 
void setWantsKeyboardFocus (bool wantsFocus) noexcept
 
bool getWantsKeyboardFocus () const noexcept
 
void setMouseClickGrabsKeyboardFocus (bool shouldGrabFocus)
 
bool getMouseClickGrabsKeyboardFocus () const noexcept
 
void grabKeyboardFocus ()
 
bool hasKeyboardFocus (bool trueIfChildIsFocused) const
 
void moveKeyboardFocusToSibling (bool moveToNext)
 
virtual KeyboardFocusTraversercreateFocusTraverser ()
 
int getExplicitFocusOrder () const
 
void setExplicitFocusOrder (int newFocusOrderIndex)
 
void setFocusContainer (bool shouldBeFocusContainer) noexcept
 
bool isFocusContainer () const noexcept
 
bool isEnabled () const noexcept
 
void setEnabled (bool shouldBeEnabled)
 
void setAlpha (float newAlpha)
 
float getAlpha () const
 
void setMouseCursor (const MouseCursor &cursorType)
 
virtual MouseCursor getMouseCursor ()
 
void updateMouseCursor () const
 
virtual void paintOverChildren (Graphics &g)
 
virtual void mouseMove (const MouseEvent &event) override
 
virtual void mouseDoubleClick (const MouseEvent &event) override
 
virtual void mouseWheelMove (const MouseEvent &event, const MouseWheelDetails &wheel) override
 
virtual void mouseMagnify (const MouseEvent &event, float scaleFactor)
 
void setRepaintsOnMouseActivity (bool shouldRepaint) noexcept
 
void addMouseListener (MouseListener *newListener, bool wantsEventsForAllNestedChildComponents)
 
void removeMouseListener (MouseListener *listenerToRemove)
 
void addKeyListener (KeyListener *newListener)
 
void removeKeyListener (KeyListener *listenerToRemove)
 
virtual bool keyStateChanged (bool isKeyDown)
 
virtual void modifierKeysChanged (const ModifierKeys &modifiers)
 
virtual void focusOfChildComponentChanged (FocusChangeType cause)
 
bool isMouseOver (bool includeChildren=false) const
 
bool isMouseButtonDown () const
 
bool isMouseOverOrDragging () const
 
Point< int > getMouseXYRelative () const
 
virtual void resized ()
 
virtual void moved ()
 
virtual void childBoundsChanged (Component *child)
 
virtual void parentSizeChanged ()
 
virtual void broughtToFront ()
 
void addComponentListener (ComponentListener *newListener)
 
void removeComponentListener (ComponentListener *listenerToRemove)
 
void postCommandMessage (int commandId)
 
int runModalLoop ()
 
void enterModalState (bool takeKeyboardFocus=true, ModalComponentManager::Callback *callback=nullptr, bool deleteWhenDismissed=false)
 
void exitModalState (int returnValue)
 
bool isCurrentlyModal () const noexcept
 
bool isCurrentlyBlockedByAnotherModalComponent () const
 
virtual bool canModalEventBeSentToComponent (const Component *targetComponent)
 
virtual void inputAttemptWhenModal ()
 
NamedValueSetgetProperties () noexcept
 
const NamedValueSetgetProperties () const noexcept
 
Colour findColour (int colourId, bool inheritFromParent=false) const
 
void setColour (int colourId, Colour newColour)
 
void removeColour (int colourId)
 
bool isColourSpecified (int colourId) const
 
void copyAllExplicitColoursTo (Component &target) const
 
virtual void colourChanged ()
 
virtual MarkerListgetMarkers (bool xAxis)
 
void * getWindowHandle () const
 
PositionergetPositioner () const noexcept
 
void setPositioner (Positioner *newPositioner)
 
void setCachedComponentImage (CachedComponentImage *newCachedImage)
 
CachedComponentImagegetCachedComponentImage () const noexcept
 
 JUCE_DEPRECATED (Point< int > relativePositionToGlobal(Point< int >) const)
 
 JUCE_DEPRECATED (Point< int > globalPositionToRelative(Point< int >) const)
 
 JUCE_DEPRECATED (Point< int > relativePositionToOtherComponent(const Component *, Point< int >) const)
 
- Public Member Functions inherited from juce::MouseListener
virtual ~MouseListener ()
 
- Public Member Functions inherited from juce::SettableTooltipClient
virtual ~SettableTooltipClient ()
 
virtual String getTooltip ()
 
- Public Member Functions inherited from juce::TooltipClient
virtual ~TooltipClient ()
 

Protected Member Functions

bool hitTest (int x, int y) override
 
void paintButton (Graphics &, bool isMouseOver, bool isButtonDown) override
 
- Protected Member Functions inherited from juce::Button
 Button (const String &buttonName)
 
virtual void clicked ()
 
virtual void clicked (const ModifierKeys &modifiers)
 
virtual void buttonStateChanged ()
 
virtual void internalClickCallback (const ModifierKeys &)
 
void handleCommandMessage (int commandId) override
 
void mouseEnter (const MouseEvent &) override
 
void mouseExit (const MouseEvent &) override
 
void mouseDown (const MouseEvent &) override
 
void mouseDrag (const MouseEvent &) override
 
void mouseUp (const MouseEvent &) override
 
bool keyPressed (const KeyPress &) override
 
void paint (Graphics &) override
 
void parentHierarchyChanged () override
 
void visibilityChanged () override
 
void focusGained (FocusChangeType) override
 
void focusLost (FocusChangeType) override
 
void enablementChanged () override
 
- Protected Member Functions inherited from juce::Component
virtual ComponentPeercreateNewPeer (int styleFlags, void *nativeWindowToAttachTo)
 
- Protected Member Functions inherited from juce::SettableTooltipClient
 SettableTooltipClient ()
 

Additional Inherited Members

- Public Types inherited from juce::Button
enum  ConnectedEdgeFlags { ConnectedOnLeft = 1, ConnectedOnRight = 2, ConnectedOnTop = 4, ConnectedOnBottom = 8 }
 
enum  ButtonState { buttonNormal, buttonOver, buttonDown }
 
- Public Types inherited from juce::Component
enum  FocusChangeType { focusChangedByMouseClick, focusChangedByTabKey, focusChangedDirectly }
 
- Static Public Member Functions inherited from juce::Component
static Component *JUCE_CALLTYPE getCurrentlyFocusedComponent () noexcept
 
static void JUCE_CALLTYPE unfocusAllComponents ()
 
static void JUCE_CALLTYPE beginDragAutoRepeat (int millisecondsBetweenCallbacks)
 
static bool JUCE_CALLTYPE isMouseButtonDownAnywhere () noexcept
 
static int JUCE_CALLTYPE getNumCurrentlyModalComponents () noexcept
 
static Component *JUCE_CALLTYPE getCurrentlyModalComponent (int index=0) noexcept
 

Detailed Description

As the title suggests, this is a button containing an image.

The colour and transparency of the image can be set to vary when the button state changes.

See also
Button, ShapeButton, TextButton

Constructor & Destructor Documentation

◆ ImageButton()

ImageButton::ImageButton ( const String name = String::empty)
explicit

Creates an ImageButton.

Use setImage() to specify the image to use. The colours and opacities that are specified here can be changed later using setImages().

Parameters
namethe name to give the component

◆ ~ImageButton()

ImageButton::~ImageButton ( )

Destructor.

Member Function Documentation

◆ getDownImage()

Image ImageButton::getDownImage ( ) const

Returns the image that's drawn when the button is held down.

If a valid 'down' image has been set, this will return it; otherwise it'll return the 'over' image or normal image, depending on what's available.

◆ getNormalImage()

Image ImageButton::getNormalImage ( ) const

Returns the currently set 'normal' image.

◆ getOverImage()

Image ImageButton::getOverImage ( ) const

Returns the image that's drawn when the mouse is over the button.

If a valid 'over' image has been set, this will return it; otherwise it'll just return the normal image.

◆ hitTest()

bool ImageButton::hitTest ( int  x,
int  y 
)
overrideprotectedvirtual

Tests whether a given point is inside the component.

Overriding this method allows you to create components which only intercept mouse-clicks within a user-defined area.

This is called to find out whether a particular x, y coordinate is considered to be inside the component or not, and is used by methods such as contains() and getComponentAt() to work out which component the mouse is clicked on.

Components with custom shapes will probably want to override it to perform some more complex hit-testing.

The default implementation of this method returns either true or false, depending on the value that was set by calling setInterceptsMouseClicks() (true is the default return value).

Note that the hit-test region is not related to the opacity with which areas of a component are painted.

Applications should never call hitTest() directly - instead use the contains() method, because this will also test for occlusion by the component's parent.

Note that for components on the desktop, this method will be ignored, because it's not always possible to implement this behaviour on all platforms.

Parameters
xthe x coordinate to test, relative to the left hand edge of this component. This value is guaranteed to be greater than or equal to zero, and less than the component's width
ythe y coordinate to test, relative to the top edge of this component. This value is guaranteed to be greater than or equal to zero, and less than the component's height
Returns
true if the click is considered to be inside the component
See also
setInterceptsMouseClicks, contains

Reimplemented from juce::Component.

◆ paintButton()

void ImageButton::paintButton ( Graphics g,
bool  isMouseOverButton,
bool  isButtonDown 
)
overrideprotectedvirtual

Subclasses should override this to actually paint the button's contents.

It's better to use this than the paint method, because it gives you information about the over/down state of the button.

Parameters
gthe graphics context to use
isMouseOverButtontrue if the button is either in the 'over' or 'down' state
isButtonDowntrue if the button should be drawn in the 'down' position

Implements juce::Button.

◆ setImages()

void ImageButton::setImages ( bool  resizeButtonNowToFitThisImage,
bool  rescaleImagesWhenButtonSizeChanges,
bool  preserveImageProportions,
const Image normalImage,
float  imageOpacityWhenNormal,
Colour  overlayColourWhenNormal,
const Image overImage,
float  imageOpacityWhenOver,
Colour  overlayColourWhenOver,
const Image downImage,
float  imageOpacityWhenDown,
Colour  overlayColourWhenDown,
float  hitTestAlphaThreshold = 0.0f 
)

Sets up the images to draw in various states.

Parameters
resizeButtonNowToFitThisImageif true, the button will be immediately resized to the same dimensions as the normal image
rescaleImagesWhenButtonSizeChangesif true, the image will be rescaled to fit the button when the button's size changes
preserveImageProportionsif true then any rescaling of the image to fit the button will keep the image's x and y proportions correct - i.e. it won't distort its shape, although this might create gaps around the edges
normalImagethe image to use when the button is in its normal state. button no longer needs it.
imageOpacityWhenNormalthe opacity to use when drawing the normal image.
overlayColourWhenNormalan overlay colour to use to fill the alpha channel of the normal image - if this colour is transparent, no overlay will be drawn. The overlay will be drawn over the top of the image, so you can basically add a solid or semi-transparent colour to the image to brighten or darken it
overImagethe image to use when the mouse is over the button. If you want to use the same image as was set in the normalImage parameter, this value can be a null image.
imageOpacityWhenOverthe opacity to use when drawing the image when the mouse is over the button
overlayColourWhenOveran overlay colour to use to fill the alpha channel of the image when the mouse is over - if this colour is transparent, no overlay will be drawn
downImagean image to use when the button is pressed down. If set to a null image, the 'over' image will be drawn instead (or the normal image if there isn't an 'over' image either).
imageOpacityWhenDownthe opacity to use when drawing the image when the button is pressed
overlayColourWhenDownan overlay colour to use to fill the alpha channel of the image when the button is pressed down - if this colour is transparent, no overlay will be drawn
hitTestAlphaThresholdif set to zero, the mouse is considered to be over the button whenever it's inside the button's bounding rectangle. If set to values higher than 0, the mouse will only be considered to be over the image when the value of the image's alpha channel at that position is greater than this level.

The documentation for this class was generated from the following files: