JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::FocusOutline Class Reference

Adds a focus outline to a component. More...

#include <juce_FocusOutline.h>

Inheritance diagram for juce::FocusOutline:
Collaboration diagram for juce::FocusOutline:

Classes

struct  OutlineWindowProperties
 Defines the focus outline window properties. More...
 

Public Member Functions

 FocusOutline (std::unique_ptr< OutlineWindowProperties > props)
 Creates a FocusOutline. More...
 
 ~FocusOutline () override
 Destructor. More...
 
void setOwner (Component *componentToFollow)
 Attaches the outline to a component. More...
 

Private Member Functions

virtual void componentBeingDeleted (Component &component)
 Called when the component is in the process of being deleted. More...
 
void componentBroughtToFront (Component &) override
 Called when the component is brought to the top of the z-order. More...
 
virtual void componentChildrenChanged (Component &component)
 Called when the component has children added or removed, or their z-order changes. More...
 
virtual void componentEnablementChanged (Component &component)
 
void componentMovedOrResized (Component &, bool, bool) override
 Called when the component's position or size changes. More...
 
virtual void componentNameChanged (Component &component)
 Called when the component's name is changed. More...
 
void componentParentHierarchyChanged (Component &) override
 Called to indicate that the component's parents have changed. More...
 
void componentVisibilityChanged (Component &) override
 Called when the component is made visible or invisible. More...
 
void updateOutlineWindow ()
 
void updateParent ()
 

Private Attributes

WeakReference< ComponentlastParentComp
 
std::unique_ptr< ComponentoutlineWindow
 
WeakReference< Componentowner
 
std::unique_ptr< OutlineWindowPropertiesproperties
 
bool reentrant = false
 

Detailed Description

Adds a focus outline to a component.

This object creates and manages a component that sits on top of a target component. It will track the position of the target component and will be brought to the front with the tracked component.

Use the Component::setHasFocusOutline() method to indicate that a component should have a focus outline drawn around it, and when it receives keyboard focus one of these objects will be created using the LookAndFeel::createFocusOutlineForComponent() method. You can override this method in your own LookAndFeel classes to draw a custom outline if required.

@tags{GUI}

Constructor & Destructor Documentation

◆ FocusOutline()

juce::FocusOutline::FocusOutline ( std::unique_ptr< OutlineWindowProperties props)

Creates a FocusOutline.

Call setOwner to attach it to a component.

◆ ~FocusOutline()

juce::FocusOutline::~FocusOutline ( )
override

Destructor.

Member Function Documentation

◆ componentBeingDeleted()

virtual void juce::ComponentListener::componentBeingDeleted ( Component component)
virtualinherited

Called when the component is in the process of being deleted.

This callback is made from inside the destructor, so be very, very cautious about what you do in here.

In particular, bear in mind that it's the Component base class's destructor that calls this - so if the object that's being deleted is a subclass of Component, then the subclass layers of the object will already have been destructed when it gets to this point!

Parameters
componentthe component that was deleted

Reimplemented in juce::ComponentMovementWatcher, and juce::RelativeCoordinatePositionerBase.

◆ componentBroughtToFront()

void juce::FocusOutline::componentBroughtToFront ( Component component)
overrideprivatevirtual

Called when the component is brought to the top of the z-order.

Parameters
componentthe component that was moved
See also
Component::toFront, Component::broughtToFront

Reimplemented from juce::ComponentListener.

◆ componentChildrenChanged()

virtual void juce::ComponentListener::componentChildrenChanged ( Component component)
virtualinherited

Called when the component has children added or removed, or their z-order changes.

Parameters
componentthe component whose children have changed
See also
Component::childrenChanged, Component::addChildComponent, Component::removeChildComponent

Reimplemented in juce::DropShadower, and juce::RelativeCoordinatePositionerBase.

◆ componentEnablementChanged()

virtual void juce::ComponentListener::componentEnablementChanged ( Component component)
virtualinherited

◆ componentMovedOrResized()

void juce::FocusOutline::componentMovedOrResized ( Component component,
bool  wasMoved,
bool  wasResized 
)
overrideprivatevirtual

Called when the component's position or size changes.

Parameters
componentthe component that was moved or resized
wasMovedtrue if the component's top-left corner has just moved
wasResizedtrue if the component's width or height has just changed
See also
Component::setBounds, Component::resized, Component::moved

Reimplemented from juce::ComponentListener.

◆ componentNameChanged()

virtual void juce::ComponentListener::componentNameChanged ( Component component)
virtualinherited

Called when the component's name is changed.

Parameters
componentthe component that had its name changed
See also
Component::setName, Component::getName

Reimplemented in juce::MultiDocumentPanel.

◆ componentParentHierarchyChanged()

void juce::FocusOutline::componentParentHierarchyChanged ( Component component)
overrideprivatevirtual

Called to indicate that the component's parents have changed.

When a component is added or removed from its parent, all of its children will produce this notification (recursively - so all children of its children will also be called as well).

Parameters
componentthe component that this listener is registered with
See also
Component::parentHierarchyChanged

Reimplemented from juce::ComponentListener.

◆ componentVisibilityChanged()

void juce::FocusOutline::componentVisibilityChanged ( Component component)
overrideprivatevirtual

Called when the component is made visible or invisible.

Parameters
componentthe component that changed
See also
Component::setVisible

Reimplemented from juce::ComponentListener.

◆ setOwner()

void juce::FocusOutline::setOwner ( Component componentToFollow)

Attaches the outline to a component.

◆ updateOutlineWindow()

void juce::FocusOutline::updateOutlineWindow ( )
private

◆ updateParent()

void juce::FocusOutline::updateParent ( )
private

Member Data Documentation

◆ lastParentComp

WeakReference<Component> juce::FocusOutline::lastParentComp
private

◆ outlineWindow

std::unique_ptr<Component> juce::FocusOutline::outlineWindow
private

◆ owner

WeakReference<Component> juce::FocusOutline::owner
private

◆ properties

std::unique_ptr<OutlineWindowProperties> juce::FocusOutline::properties
private

◆ reentrant

bool juce::FocusOutline::reentrant = false
private

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