LookAndFeel objects define the appearance of all the JUCE widgets, and subclasses can be used to apply different 'skins' to the application. More...

Inheritance diagram for LookAndFeel:

Public Member Functions

 LookAndFeel ()
 Creates the default JUCE look and feel. More...
 
virtual ~LookAndFeel ()
 Destructor. More...
 
Colour findColour (int colourId) const noexcept
 Looks for a colour that has been registered with the given colour ID number. More...
 
void setColour (int colourId, Colour colour) noexcept
 Registers a colour to be used for a particular purpose. More...
 
bool isColourSpecified (int colourId) const noexcept
 Returns true if the specified colour ID has been explicitly set using the setColour() method. More...
 
virtual Typeface::Ptr getTypefaceForFont (const Font &)
 Returns the typeface that should be used for a given font. More...
 
void setDefaultSansSerifTypefaceName (const String &newName)
 Allows you to change the default sans-serif font. More...
 
virtual MouseCursor getMouseCursorFor (Component &)
 Override this to get the chance to swap a component's mouse cursor for a customised one. More...
 
virtual LowLevelGraphicsContextcreateGraphicsContext (const Image &imageToRenderOn, const Point< int > &origin, const RectangleList< int > &initialClip)
 Creates a new graphics context object. More...
 
void setUsingNativeAlertWindows (bool shouldUseNativeAlerts)
 
bool isUsingNativeAlertWindows ()
 
virtual void drawSpinningWaitAnimation (Graphics &, const Colour &colour, int x, int y, int w, int h)=0
 Draws a small image that spins to indicate that something's happening. More...
 
virtual Path getTickShape (float height)=0
 Returns a tick shape for use in yes/no boxes, etc. More...
 
virtual Path getCrossShape (float height)=0
 Returns a cross shape for use in yes/no boxes, etc. More...
 
virtual DropShadowercreateDropShadowerForComponent (Component *)=0
 
virtual void playAlertSound ()
 Plays the system's default 'beep' noise, to alert the user about something very important. More...
 
- Public Member Functions inherited from ScrollBar::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual bool areScrollbarButtonsVisible ()=0
 
virtual void drawScrollbarButton (Graphics &g, ScrollBar &scrollbar, int width, int height, int buttonDirection, bool isScrollbarVertical, bool isMouseOverButton, bool isButtonDown)=0
 Draws one of the buttons on a scrollbar. More...
 
virtual void drawScrollbar (Graphics &g, ScrollBar &scrollbar, int x, int y, int width, int height, bool isScrollbarVertical, int thumbStartPosition, int thumbSize, bool isMouseOver, bool isMouseDown)=0
 Draws the thumb area of a scrollbar. More...
 
virtual ImageEffectFiltergetScrollbarEffect ()=0
 Returns the component effect to use for a scrollbar. More...
 
virtual int getMinimumScrollbarThumbSize (ScrollBar &)=0
 Returns the minimum length in pixels to use for a scrollbar thumb. More...
 
virtual int getDefaultScrollbarWidth ()=0
 Returns the default thickness to use for a scrollbar. More...
 
virtual int getScrollbarButtonSize (ScrollBar &)=0
 Returns the length in pixels to use for a scrollbar button. More...
 
- Public Member Functions inherited from Button::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawButtonBackground (Graphics &, Button &, const Colour &backgroundColour, bool isMouseOverButton, bool isButtonDown)=0
 
virtual Font getTextButtonFont (TextButton &, int buttonHeight)=0
 
virtual int getTextButtonWidthToFitText (TextButton &, int buttonHeight)=0
 
virtual void drawButtonText (Graphics &, TextButton &, bool isMouseOverButton, bool isButtonDown)=0
 Draws the text for a TextButton. More...
 
virtual void drawToggleButton (Graphics &, ToggleButton &, bool isMouseOverButton, bool isButtonDown)=0
 Draws the contents of a standard ToggleButton. More...
 
virtual void changeToggleButtonWidthToFitText (ToggleButton &)=0
 
virtual void drawTickBox (Graphics &, Component &, float x, float y, float w, float h, bool ticked, bool isEnabled, bool isMouseOverButton, bool isButtonDown)=0
 
virtual void drawDrawableButton (Graphics &, DrawableButton &, bool isMouseOverButton, bool isButtonDown)=0
 
- Public Member Functions inherited from ImageButton::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawImageButton (Graphics &, Image *, int imageX, int imageY, int imageW, int imageH, const Colour &overlayColour, float imageOpacity, ImageButton &)=0
 
- Public Member Functions inherited from TextEditor::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void fillTextEditorBackground (Graphics &, int width, int height, TextEditor &)=0
 
virtual void drawTextEditorOutline (Graphics &, int width, int height, TextEditor &)=0
 
virtual CaretComponentcreateCaretComponent (Component *keyFocusOwner)=0
 
- Public Member Functions inherited from FileBrowserComponent::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual const DrawablegetDefaultFolderImage ()=0
 
virtual const DrawablegetDefaultDocumentFileImage ()=0
 
virtual AttributedString createFileChooserHeaderText (const String &title, const String &instructions)=0
 
virtual void drawFileBrowserRow (Graphics &, int width, int height, const File &file, const String &filename, Image *optionalIcon, const String &fileSizeDescription, const String &fileTimeDescription, bool isDirectory, bool isItemSelected, int itemIndex, DirectoryContentsDisplayComponent &)=0
 
virtual ButtoncreateFileBrowserGoUpButton ()=0
 
virtual void layoutFileBrowserComponent (FileBrowserComponent &browserComp, DirectoryContentsDisplayComponent *fileListComponent, FilePreviewComponent *previewComp, ComboBox *currentPathBox, TextEditor *filenameBox, Button *goUpButton)=0
 
- Public Member Functions inherited from TreeView::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawTreeviewPlusMinusBox (Graphics &, const Rectangle< float > &area, Colour backgroundColour, bool isItemOpen, bool isMouseOver)=0
 
virtual bool areLinesDrawnForTreeView (TreeView &)=0
 
virtual int getTreeViewIndentSize (TreeView &)=0
 
- Public Member Functions inherited from BubbleComponent::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawBubble (Graphics &, BubbleComponent &, const Point< float > &positionOfTip, const Rectangle< float > &body)=0
 
- Public Member Functions inherited from AlertWindow::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual AlertWindowcreateAlertWindow (const String &title, const String &message, const String &button1, const String &button2, const String &button3, AlertWindow::AlertIconType iconType, int numButtons, Component *associatedComponent)=0
 
virtual void drawAlertBox (Graphics &, AlertWindow &, const Rectangle< int > &textArea, TextLayout &)=0
 
virtual int getAlertBoxWindowFlags ()=0
 
virtual Array< int > getWidthsForTextButtons (AlertWindow &, const Array< TextButton *> &)=0
 
virtual int getAlertWindowButtonHeight ()=0
 
virtual Font getAlertWindowTitleFont ()=0
 
virtual Font getAlertWindowMessageFont ()=0
 
virtual Font getAlertWindowFont ()=0
 
- Public Member Functions inherited from PopupMenu::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawPopupMenuBackground (Graphics &, int width, int height)=0
 Fills the background of a popup menu component. More...
 
virtual void drawPopupMenuItem (Graphics &, const Rectangle< int > &area, bool isSeparator, bool isActive, bool isHighlighted, bool isTicked, bool hasSubMenu, const String &text, const String &shortcutKeyText, const Drawable *icon, const Colour *textColour)=0
 Draws one of the items in a popup menu. More...
 
virtual void drawPopupMenuSectionHeader (Graphics &, const Rectangle< int > &area, const String &sectionName)=0
 
virtual Font getPopupMenuFont ()=0
 Returns the size and style of font to use in popup menus. More...
 
virtual void drawPopupMenuUpDownArrow (Graphics &, int width, int height, bool isScrollUpArrow)=0
 
virtual void getIdealPopupMenuItemSize (const String &text, bool isSeparator, int standardMenuItemHeight, int &idealWidth, int &idealHeight)=0
 Finds the best size for an item in a popup menu. More...
 
virtual int getMenuWindowFlags ()=0
 
virtual void drawMenuBarBackground (Graphics &, int width, int height, bool isMouseOverBar, MenuBarComponent &)=0
 
virtual int getDefaultMenuBarHeight ()=0
 
virtual int getMenuBarItemWidth (MenuBarComponent &, int itemIndex, const String &itemText)=0
 
virtual Font getMenuBarFont (MenuBarComponent &, int itemIndex, const String &itemText)=0
 
virtual void drawMenuBarItem (Graphics &, int width, int height, int itemIndex, const String &itemText, bool isMouseOverItem, bool isMenuOpen, bool isMouseOverBar, MenuBarComponent &)=0
 
virtual ComponentgetParentComponentForMenuOptions (const PopupMenu::Options &options)=0
 
virtual void preparePopupMenuWindow (Component &newWindow)=0
 
virtual bool shouldPopupMenuScaleWithTargetComponent (const PopupMenu::Options &options)=0
 Return true if you want your popup menus to scale with the target component's AffineTransform or scale factor. More...
 
virtual int getPopupMenuBorderSize ()=0
 
- Public Member Functions inherited from ComboBox::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawComboBox (Graphics &, int width, int height, bool isButtonDown, int buttonX, int buttonY, int buttonW, int buttonH, ComboBox &)=0
 
virtual Font getComboBoxFont (ComboBox &)=0
 
virtual LabelcreateComboBoxTextBox (ComboBox &)=0
 
virtual void positionComboBoxText (ComboBox &, Label &labelToPosition)=0
 
- Public Member Functions inherited from Label::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawLabel (Graphics &, Label &)=0
 
virtual Font getLabelFont (Label &)=0
 
- Public Member Functions inherited from Slider::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawLinearSlider (Graphics &, int x, int y, int width, int height, float sliderPos, float minSliderPos, float maxSliderPos, const Slider::SliderStyle, Slider &)=0
 
virtual void drawLinearSliderBackground (Graphics &, int x, int y, int width, int height, float sliderPos, float minSliderPos, float maxSliderPos, const Slider::SliderStyle style, Slider &)=0
 
virtual void drawLinearSliderThumb (Graphics &, int x, int y, int width, int height, float sliderPos, float minSliderPos, float maxSliderPos, const Slider::SliderStyle, Slider &)=0
 
virtual int getSliderThumbRadius (Slider &)=0
 
virtual void drawRotarySlider (Graphics &, int x, int y, int width, int height, float sliderPosProportional, float rotaryStartAngle, float rotaryEndAngle, Slider &)=0
 
virtual ButtoncreateSliderButton (Slider &, bool isIncrement)=0
 
virtual LabelcreateSliderTextBox (Slider &)=0
 
virtual ImageEffectFiltergetSliderEffect (Slider &)=0
 
virtual Font getSliderPopupFont (Slider &)=0
 
virtual int getSliderPopupPlacement (Slider &)=0
 
virtual SliderLayout getSliderLayout (Slider &)=0
 
- Public Member Functions inherited from ResizableWindow::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawCornerResizer (Graphics &, int w, int h, bool isMouseOver, bool isMouseDragging)=0
 
virtual void drawResizableFrame (Graphics &, int w, int h, const BorderSize< int > &)=0
 
virtual void fillResizableWindowBackground (Graphics &, int w, int h, const BorderSize< int > &, ResizableWindow &)=0
 
virtual void drawResizableWindowBorder (Graphics &, int w, int h, const BorderSize< int > &border, ResizableWindow &)=0
 
- Public Member Functions inherited from DocumentWindow::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawDocumentWindowTitleBar (DocumentWindow &, Graphics &, int w, int h, int titleSpaceX, int titleSpaceW, const Image *icon, bool drawTitleTextOnLeft)=0
 
virtual ButtoncreateDocumentWindowButton (int buttonType)=0
 
virtual void positionDocumentWindowButtons (DocumentWindow &, int titleBarX, int titleBarY, int titleBarW, int titleBarH, Button *minimiseButton, Button *maximiseButton, Button *closeButton, bool positionTitleBarButtonsOnLeft)=0
 
- Public Member Functions inherited from TooltipWindow::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual Rectangle< int > getTooltipBounds (const String &tipText, Point< int > screenPos, Rectangle< int > parentArea)=0
 returns the bounds for a tooltip at the given screen coordinate, constrained within the given desktop area. More...
 
virtual void drawTooltip (Graphics &, const String &text, int width, int height)=0
 
- Public Member Functions inherited from TabbedButtonBar::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual int getTabButtonSpaceAroundImage ()=0
 
virtual int getTabButtonOverlap (int tabDepth)=0
 
virtual int getTabButtonBestWidth (TabBarButton &, int tabDepth)=0
 
virtual Rectangle< int > getTabButtonExtraComponentBounds (const TabBarButton &, Rectangle< int > &textArea, Component &extraComp)=0
 
virtual void drawTabButton (TabBarButton &, Graphics &, bool isMouseOver, bool isMouseDown)=0
 
virtual Font getTabButtonFont (TabBarButton &, float height)=0
 
virtual void drawTabButtonText (TabBarButton &, Graphics &, bool isMouseOver, bool isMouseDown)=0
 
virtual void drawTabbedButtonBarBackground (TabbedButtonBar &, Graphics &)=0
 
virtual void drawTabAreaBehindFrontButton (TabbedButtonBar &, Graphics &, int w, int h)=0
 
virtual void createTabButtonShape (TabBarButton &, Path &path, bool isMouseOver, bool isMouseDown)=0
 
virtual void fillTabButtonShape (TabBarButton &, Graphics &, const Path &path, bool isMouseOver, bool isMouseDown)=0
 
virtual ButtoncreateTabBarExtrasButton ()=0
 
- Public Member Functions inherited from PropertyComponent::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawPropertyPanelSectionHeader (Graphics &, const String &name, bool isOpen, int width, int height)=0
 
virtual void drawPropertyComponentBackground (Graphics &, int width, int height, PropertyComponent &)=0
 
virtual void drawPropertyComponentLabel (Graphics &, int width, int height, PropertyComponent &)=0
 
virtual Rectangle< int > getPropertyComponentContentPosition (PropertyComponent &)=0
 
- Public Member Functions inherited from FilenameComponent::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual ButtoncreateFilenameComponentBrowseButton (const String &text)=0
 
virtual void layoutFilenameComponent (FilenameComponent &, ComboBox *filenameBox, Button *browseButton)=0
 
- Public Member Functions inherited from GroupComponent::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawGroupComponentOutline (Graphics &, int w, int h, const String &text, const Justification &, GroupComponent &)=0
 
- Public Member Functions inherited from TableHeaderComponent::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawTableHeaderBackground (Graphics &, TableHeaderComponent &)=0
 
virtual void drawTableHeaderColumn (Graphics &, TableHeaderComponent &, const String &columnName, int columnId, int width, int height, bool isMouseOver, bool isMouseDown, int columnFlags)=0
 
- Public Member Functions inherited from CallOutBox::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawCallOutBoxBackground (CallOutBox &, Graphics &, const Path &, Image &)=0
 
virtual int getCallOutBoxBorderSize (const CallOutBox &)=0
 
- Public Member Functions inherited from Toolbar::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void paintToolbarBackground (Graphics &, int width, int height, Toolbar &)=0
 
virtual ButtoncreateToolbarMissingItemsButton (Toolbar &)=0
 
virtual void paintToolbarButtonBackground (Graphics &, int width, int height, bool isMouseOver, bool isMouseDown, ToolbarItemComponent &)=0
 
virtual void paintToolbarButtonLabel (Graphics &, int x, int y, int width, int height, const String &text, ToolbarItemComponent &)=0
 
- Public Member Functions inherited from ConcertinaPanel::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawConcertinaPanelHeader (Graphics &, const Rectangle< int > &area, bool isMouseOver, bool isMouseDown, ConcertinaPanel &, Component &)=0
 
- Public Member Functions inherited from ProgressBar::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawProgressBar (Graphics &, ProgressBar &, int width, int height, double progress, const String &textToShow)=0
 Draws a progress bar. More...
 
virtual bool isProgressBarOpaque (ProgressBar &)=0
 
- Public Member Functions inherited from StretchableLayoutResizerBar::LookAndFeelMethods
virtual ~LookAndFeelMethods ()
 
virtual void drawStretchableLayoutResizerBar (Graphics &, int w, int h, bool isVerticalBar, bool isMouseOver, bool isMouseDragging)=0
 
- Public Member Functions inherited from ExtraLookAndFeelBaseClasses::KeyMappingEditorComponentMethods
virtual ~KeyMappingEditorComponentMethods ()
 
virtual void drawKeymapChangeButton (Graphics &, int width, int height, Button &, const String &keyDescription)=0
 
- Public Member Functions inherited from ExtraLookAndFeelBaseClasses::AudioDeviceSelectorComponentMethods
virtual ~AudioDeviceSelectorComponentMethods ()
 
virtual void drawLevelMeter (Graphics &, int width, int height, float level)=0
 
- Public Member Functions inherited from ExtraLookAndFeelBaseClasses::LassoComponentMethods
virtual ~LassoComponentMethods ()
 
virtual void drawLasso (Graphics &, Component &lassoComp)=0
 

Static Public Member Functions

static LookAndFeelgetDefaultLookAndFeel () noexcept
 Returns the current default look-and-feel for a component to use when it hasn't got one explicitly set. More...
 
static void setDefaultLookAndFeel (LookAndFeel *newDefaultLookAndFeel) noexcept
 Changes the default look-and-feel. More...
 

Detailed Description

LookAndFeel objects define the appearance of all the JUCE widgets, and subclasses can be used to apply different 'skins' to the application.

This class is an abstract base-class - for actual look-and-feels that you can instantiate, see LookAndFeel_V1, LookAndFeel_V2 and LookAndFeel_V3.

See also
LookAndFeel_V1, LookAndFeel_V2, LookAndFeel_V3

Constructor & Destructor Documentation

◆ LookAndFeel()

LookAndFeel::LookAndFeel ( )

Creates the default JUCE look and feel.

◆ ~LookAndFeel()

virtual LookAndFeel::~LookAndFeel ( )
virtual

Destructor.

Member Function Documentation

◆ getDefaultLookAndFeel()

static LookAndFeel& LookAndFeel::getDefaultLookAndFeel ( )
staticnoexcept

Returns the current default look-and-feel for a component to use when it hasn't got one explicitly set.

See also
setDefaultLookAndFeel

◆ setDefaultLookAndFeel()

static void LookAndFeel::setDefaultLookAndFeel ( LookAndFeel newDefaultLookAndFeel)
staticnoexcept

Changes the default look-and-feel.

Parameters
newDefaultLookAndFeelthe new look-and-feel object to use - if this is set to null, it will revert to using the default one. The object passed-in must be deleted by the caller when it's no longer needed.
See also
getDefaultLookAndFeel

◆ findColour()

Colour LookAndFeel::findColour ( int  colourId) const
noexcept

Looks for a colour that has been registered with the given colour ID number.

If a colour has been set for this ID number using setColour(), then it is returned. If none has been set, it will just return Colours::black.

The colour IDs for various purposes are stored as enums in the components that they are relevant to - for an example, see Slider::ColourIds, Label::ColourIds, TextEditor::ColourIds, TreeView::ColourIds, etc.

If you're looking up a colour for use in drawing a component, it's usually best not to call this directly, but to use the Component::findColour() method instead. That will first check whether a suitable colour has been registered directly with the component, and will fall-back on calling the component's LookAndFeel's findColour() method if none is found.

See also
setColour, Component::findColour, Component::setColour

Referenced by StandalonePluginHolder::showAudioSettingsDialog().

◆ setColour()

void LookAndFeel::setColour ( int  colourId,
Colour  colour 
)
noexcept

Registers a colour to be used for a particular purpose.

For more details, see the comments for findColour().

See also
findColour, Component::findColour, Component::setColour

◆ isColourSpecified()

bool LookAndFeel::isColourSpecified ( int  colourId) const
noexcept

Returns true if the specified colour ID has been explicitly set using the setColour() method.

◆ getTypefaceForFont()

virtual Typeface::Ptr LookAndFeel::getTypefaceForFont ( const Font )
virtual

Returns the typeface that should be used for a given font.

The default implementation just does what you'd expect it to, but you can override this if you want to intercept fonts and use your own custom typeface object.

◆ setDefaultSansSerifTypefaceName()

void LookAndFeel::setDefaultSansSerifTypefaceName ( const String newName)

Allows you to change the default sans-serif font.

If you need to supply your own Typeface object for any of the default fonts, rather than just supplying the name (e.g. if you want to use an embedded font), then you should instead override getTypefaceForFont() to create and return the typeface.

◆ getMouseCursorFor()

virtual MouseCursor LookAndFeel::getMouseCursorFor ( Component )
virtual

Override this to get the chance to swap a component's mouse cursor for a customised one.

◆ createGraphicsContext()

virtual LowLevelGraphicsContext* LookAndFeel::createGraphicsContext ( const Image imageToRenderOn,
const Point< int > &  origin,
const RectangleList< int > &  initialClip 
)
virtual

Creates a new graphics context object.

◆ setUsingNativeAlertWindows()

void LookAndFeel::setUsingNativeAlertWindows ( bool  shouldUseNativeAlerts)

◆ isUsingNativeAlertWindows()

bool LookAndFeel::isUsingNativeAlertWindows ( )

◆ drawSpinningWaitAnimation()

virtual void LookAndFeel::drawSpinningWaitAnimation ( Graphics ,
const Colour colour,
int  x,
int  y,
int  w,
int  h 
)
pure virtual

Draws a small image that spins to indicate that something's happening.

This method should use the current time to animate itself, so just keep repainting it every so often.

Implemented in LookAndFeel_V2.

◆ getTickShape()

virtual Path LookAndFeel::getTickShape ( float  height)
pure virtual

Returns a tick shape for use in yes/no boxes, etc.

Implemented in LookAndFeel_V4, LookAndFeel_V2, and LookAndFeel_V3.

◆ getCrossShape()

virtual Path LookAndFeel::getCrossShape ( float  height)
pure virtual

Returns a cross shape for use in yes/no boxes, etc.

Implemented in LookAndFeel_V4, LookAndFeel_V2, and LookAndFeel_V3.

◆ createDropShadowerForComponent()

virtual DropShadower* LookAndFeel::createDropShadowerForComponent ( Component )
pure virtual

Implemented in LookAndFeel_V2.

◆ playAlertSound()

virtual void LookAndFeel::playAlertSound ( )
virtual

Plays the system's default 'beep' noise, to alert the user about something very important.


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