JUCE
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines
Classes | Public Types | Public Member Functions | Protected Member Functions
Label Class Reference

A component that displays a text string, and can optionally become a text editor when clicked. More...

Inherits Component, SettableTooltipClient, TextEditor::Listener, ComponentListener, and Value::Listener.

List of all members.

Classes

struct  Ids
class  Listener
 A class for receiving events from a Label. More...

Public Types

enum  ColourIds { backgroundColourId = 0x1000280, textColourId = 0x1000281, outlineColourId = 0x1000282 }
 A set of colour IDs to use to change the colour of various aspects of the label. More...

Public Member Functions

 Label (const String &componentName=String::empty, const String &labelText=String::empty)
 Creates a Label.
 ~Label ()
 Destructor.
void setText (const String &newText, bool broadcastChangeMessage)
 Changes the label text.
String getText (bool returnActiveEditorContents=false) const
 Returns the label's current text.
ValuegetTextValue ()
 Returns the text content as a Value object.
void setFont (const Font &newFont)
 Changes the font to use to draw the text.
const FontgetFont () const noexcept
 Returns the font currently being used.
void setJustificationType (const Justification &justification)
 Sets the style of justification to be used for positioning the text.
Justification getJustificationType () const noexcept
 Returns the type of justification, as set in setJustificationType().
void setBorderSize (int horizontalBorder, int verticalBorder)
 Changes the gap that is left between the edge of the component and the text.
int getHorizontalBorderSize () const noexcept
 Returns the size of the horizontal gap being left around the text.
int getVerticalBorderSize () const noexcept
 Returns the size of the vertical gap being left around the text.
void attachToComponent (Component *owner, bool onLeft)
 Makes this label "stick to" another component.
ComponentgetAttachedComponent () const
 If this label has been attached to another component using attachToComponent, this returns the other component.
bool isAttachedOnLeft () const noexcept
 If the label is attached to the left of another component, this returns true.
void setMinimumHorizontalScale (float newScale)
 Specifies the minimum amount that the font can be squashed horizantally before it starts using ellipsis.
float getMinimumHorizontalScale () const noexcept
void addListener (Listener *listener)
 Registers a listener that will be called when the label's text changes.
void removeListener (Listener *listener)
 Deregisters a previously-registered listener.
void setEditable (bool editOnSingleClick, bool editOnDoubleClick=false, bool lossOfFocusDiscardsChanges=false)
 Makes the label turn into a TextEditor when clicked.
bool isEditableOnSingleClick () const noexcept
 Returns true if this option was set using setEditable().
bool isEditableOnDoubleClick () const noexcept
 Returns true if this option was set using setEditable().
bool doesLossOfFocusDiscardChanges () const noexcept
 Returns true if this option has been set in a call to setEditable().
bool isEditable () const noexcept
 Returns true if the user can edit this label's text.
void showEditor ()
 Makes the editor appear as if the label had been clicked by the user.
void hideEditor (bool discardCurrentEditorContents)
 Hides the editor if it was being shown.
bool isBeingEdited () const noexcept
 Returns true if the editor is currently focused and active.
void refreshFromValueTree (const ValueTree &, ComponentBuilder &)

Protected Member Functions

virtual TextEditorcreateEditorComponent ()
 Creates the TextEditor component that will be used when the user has clicked on the label.
virtual void textWasEdited ()
 Called after the user changes the text.
virtual void textWasChanged ()
 Called when the text has been altered.
virtual void editorShown (TextEditor *editorComponent)
 Called when the text editor has just appeared, due to a user click or other focus change.
virtual void editorAboutToBeHidden (TextEditor *editorComponent)
 Called when the text editor is going to be deleted, after editing has finished.
void paint (Graphics &g)
void resized ()
void mouseUp (const MouseEvent &e)
void mouseDoubleClick (const MouseEvent &e)
void componentMovedOrResized (Component &component, bool wasMoved, bool wasResized)
void componentParentHierarchyChanged (Component &component)
void componentVisibilityChanged (Component &component)
void inputAttemptWhenModal ()
void focusGained (FocusChangeType)
void enablementChanged ()
KeyboardFocusTraversercreateFocusTraverser ()
void textEditorTextChanged (TextEditor &editor)
void textEditorReturnKeyPressed (TextEditor &editor)
void textEditorEscapeKeyPressed (TextEditor &editor)
void textEditorFocusLost (TextEditor &editor)
void colourChanged ()
void valueChanged (Value &)

Detailed Description

A component that displays a text string, and can optionally become a text editor when clicked.


Member Enumeration Documentation

A set of colour IDs to use to change the colour of various aspects of the label.

These constants can be used either via the Component::setColour(), or LookAndFeel::setColour() methods.

Note that you can also use the constants from TextEditor::ColourIds to change the colour of the text editor that is opened when a label is editable.

See also:
Component::setColour, Component::findColour, LookAndFeel::setColour, LookAndFeel::findColour
Enumerator:
backgroundColourId 

The background colour to fill the label with.

textColourId 

The colour for the text.

outlineColourId 

An optional colour to use to draw a border around the label.

Leave this transparent to not have an outline.


Constructor & Destructor Documentation

Label::Label ( const String componentName = String::empty,
const String labelText = String::empty 
)

Creates a Label.

Parameters:
componentNamethe name to give the component
labelTextthe text to show in the label

Destructor.


Member Function Documentation

void Label::setText ( const String newText,
bool  broadcastChangeMessage 
)

Changes the label text.

If broadcastChangeMessage is true and the new text is different to the current text, then the class will broadcast a change message to any Label::Listener objects that are registered.

String Label::getText ( bool  returnActiveEditorContents = false) const

Returns the label's current text.

Parameters:
returnActiveEditorContentsif this is true and the label is currently being edited, then this method will return the text as it's being shown in the editor. If false, then the value returned here won't be updated until the user has finished typing and pressed the return key.

Returns the text content as a Value object.

You can call Value::referTo() on this object to make the label read and control a Value object that you supply.

void Label::setFont ( const Font newFont)

Changes the font to use to draw the text.

See also:
getFont
const Font& Label::getFont ( ) const

Returns the font currently being used.

See also:
setFont
void Label::setJustificationType ( const Justification justification)

Sets the style of justification to be used for positioning the text.

(The default is Justification::centredLeft)

Returns the type of justification, as set in setJustificationType().

void Label::setBorderSize ( int  horizontalBorder,
int  verticalBorder 
)

Changes the gap that is left between the edge of the component and the text.

By default there's a small gap left at the sides of the component to allow for the drawing of the border, but you can change this if necessary.

Returns the size of the horizontal gap being left around the text.

Returns the size of the vertical gap being left around the text.

void Label::attachToComponent ( Component owner,
bool  onLeft 
)

Makes this label "stick to" another component.

This will cause the label to follow another component around, staying either to its left or above it.

Parameters:
ownerthe component to follow
onLeftif true, the label will stay on the left of its component; if false, it will stay above it.

If this label has been attached to another component using attachToComponent, this returns the other component.

Returns 0 if the label is not attached.

bool Label::isAttachedOnLeft ( ) const

If the label is attached to the left of another component, this returns true.

Returns false if the label is above the other component. This is only relevent if attachToComponent() has been called.

void Label::setMinimumHorizontalScale ( float  newScale)

Specifies the minimum amount that the font can be squashed horizantally before it starts using ellipsis.

See also:
Graphics::drawFittedText
void Label::addListener ( Listener listener)

Registers a listener that will be called when the label's text changes.

void Label::removeListener ( Listener listener)

Deregisters a previously-registered listener.

void Label::setEditable ( bool  editOnSingleClick,
bool  editOnDoubleClick = false,
bool  lossOfFocusDiscardsChanges = false 
)

Makes the label turn into a TextEditor when clicked.

By default this is turned off.

If turned on, then single- or double-clicking will turn the label into an editor. If the user then changes the text, then the ChangeBroadcaster base class will be used to send change messages to any listeners that have registered.

If the user changes the text, the textWasEdited() method will be called afterwards, and subclasses can override this if they need to do anything special.

Parameters:
editOnSingleClickif true, just clicking once on the label will start editing the text
editOnDoubleClickif true, a double-click is needed to start editing
lossOfFocusDiscardsChangesif true, clicking somewhere else while the text is being edited will discard any changes; if false, then this will commit the changes.
See also:
showEditor, setEditorColours, TextEditor

Returns true if this option was set using setEditable().

Returns true if this option was set using setEditable().

Returns true if this option has been set in a call to setEditable().

bool Label::isEditable ( ) const

Returns true if the user can edit this label's text.

Makes the editor appear as if the label had been clicked by the user.

See also:
textWasEdited, setEditable
void Label::hideEditor ( bool  discardCurrentEditorContents)

Hides the editor if it was being shown.

Parameters:
discardCurrentEditorContentsif true, the label's text will be reset to whatever it was before the editor was shown; if false, the current contents of the editor will be used to set the label's text before it is hidden.
bool Label::isBeingEdited ( ) const

Returns true if the editor is currently focused and active.

virtual TextEditor* Label::createEditorComponent ( ) [protected, virtual]

Creates the TextEditor component that will be used when the user has clicked on the label.

Subclasses can override this if they need to customise this component in some way.

virtual void Label::textWasEdited ( ) [protected, virtual]

Called after the user changes the text.

virtual void Label::textWasChanged ( ) [protected, virtual]

Called when the text has been altered.

virtual void Label::editorShown ( TextEditor editorComponent) [protected, virtual]

Called when the text editor has just appeared, due to a user click or other focus change.

virtual void Label::editorAboutToBeHidden ( TextEditor editorComponent) [protected, virtual]

Called when the text editor is going to be deleted, after editing has finished.

void Label::paint ( Graphics g) [protected, virtual]

Reimplemented from Component.

void Label::resized ( ) [protected, virtual]

Reimplemented from Component.

void Label::mouseUp ( const MouseEvent e) [protected, virtual]

Reimplemented from Component.

void Label::mouseDoubleClick ( const MouseEvent e) [protected, virtual]

Reimplemented from Component.

void Label::componentMovedOrResized ( Component component,
bool  wasMoved,
bool  wasResized 
) [protected, virtual]

Reimplemented from ComponentListener.

void Label::componentParentHierarchyChanged ( Component component) [protected, virtual]

Reimplemented from ComponentListener.

void Label::componentVisibilityChanged ( Component component) [protected, virtual]

Reimplemented from ComponentListener.

void Label::inputAttemptWhenModal ( ) [protected, virtual]

Reimplemented from Component.

void Label::focusGained ( FocusChangeType  ) [protected, virtual]

Reimplemented from Component.

void Label::enablementChanged ( ) [protected, virtual]

Reimplemented from Component.

Reimplemented from Component.

void Label::textEditorTextChanged ( TextEditor editor) [protected, virtual]

Reimplemented from TextEditor::Listener.

void Label::textEditorReturnKeyPressed ( TextEditor editor) [protected, virtual]

Reimplemented from TextEditor::Listener.

void Label::textEditorEscapeKeyPressed ( TextEditor editor) [protected, virtual]

Reimplemented from TextEditor::Listener.

void Label::textEditorFocusLost ( TextEditor editor) [protected, virtual]

Reimplemented from TextEditor::Listener.

void Label::colourChanged ( ) [protected, virtual]

Reimplemented from Component.

void Label::valueChanged ( Value ) [protected, virtual]

Implements Value::Listener.


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