101 bool editOnDoubleClick,
102 bool lossOfFocusDiscards)
108 const auto isKeybordFocusable = (editOnSingleClick || editOnDoubleClick);
163 auto f = lf.getLabelFont (*
this);
164 auto borderSize = lf.getLabelBorderSize (*
this);
169 + borderSize.getLeftAndRight(),
176 auto height = borderSize.getTopAndBottom() + 6 +
roundToInt (
f.getHeight() + 0.5f);
185 parent->addChildComponent (
this);
230 editor->addListener (
this);
231 editor->grabKeyboardFocus();
244 editor->grabKeyboardFocus();
274 std::unique_ptr<TextEditor> outgoingEditor;
275 std::swap (outgoingEditor,
editor);
279 const bool changed = (! discardCurrentEditorContents)
281 outgoingEditor.reset();
283 if (deletionChecker !=
nullptr)
289 if (deletionChecker !=
nullptr)
292 if (changed && deletionChecker !=
nullptr)
315 if (
l.isColourSpecified (colourID) ||
l.getLookAndFeel().isColourSpecified (colourID))
316 ed.
setColour (targetColourID,
l.findColour (colourID));
348 && ! (
e.mouseWasDraggedSinceMouseDown() ||
e.mods.isPopupMenu()))
358 && !
e.mods.isPopupMenu())
429 if (
auto* ed =
owner.getCurrentTextEditor())
439 return owner.findKeyboardFocusContainer();
451 return std::make_unique<LabelKeyboardFocusTraverser> (*
this);
497 if (changed && deletionChecker !=
nullptr)
501 if (deletionChecker !=
nullptr)
531 { std::make_unique<LabelValueInterface> (labelToWrap) }),
541 if (
label.isBeingEdited())
552 :
label (labelToWrap)
569 if (
label.isEditable())
583 return std::make_unique<LabelAccessibilityHandler> (*
this);
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_AccessibilityActions.h:73
AccessibilityActions & addAction(AccessibilityActionType type, std::function< void()> actionCallback)
Definition juce_AccessibilityActions.h:88
virtual AccessibleState getCurrentState() const
Definition juce_AccessibilityHandler.cpp:75
AccessibilityHandler(Component &componentToWrap, AccessibilityRole accessibilityRole, AccessibilityActions actions={}, Interfaces interfaces={})
Definition juce_AccessibilityHandler.cpp:55
Definition juce_AccessibilityValueInterface.h:140
Definition juce_AccessibilityState.h:39
Definition juce_BorderSize.h:42
Definition juce_Component.h:2331
bool shouldBailOut() const noexcept
Definition juce_Component.cpp:3252
Definition juce_Component.h:36
bool contains(Point< int > localPoint)
Definition juce_Component.cpp:1434
void copyAllExplicitColoursTo(Component &target) const
Definition juce_Component.cpp:2248
bool isVisible() const noexcept
Definition juce_Component.h:122
Component * getParentComponent() const noexcept
Definition juce_Component.h:804
void setFocusContainerType(FocusContainerType containerType) noexcept
Definition juce_Component.cpp:2862
int getHeight() const noexcept
Definition juce_Component.h:274
int getX() const noexcept
Definition juce_Component.h:259
void addAndMakeVisible(Component *child, int zOrder=-1)
Definition juce_Component.cpp:1554
FocusChangeType
Definition juce_Component.h:1890
@ focusChangedByTabKey
Definition juce_Component.h:1892
bool hasKeyboardFocus(bool trueIfChildIsFocused) const
Definition juce_Component.cpp:3086
bool isCurrentlyBlockedByAnotherModalComponent() const
Definition juce_Component.cpp:1832
void repaint()
Definition juce_Component.cpp:1917
Component() noexcept
Definition juce_Component.cpp:517
@ none
Definition juce_Component.h:1283
@ keyboardFocusContainer
Definition juce_Component.h:1307
void exitModalState(int returnValue)
Definition juce_Component.cpp:1795
int getY() const noexcept
Definition juce_Component.h:268
void setBounds(int x, int y, int width, int height)
Definition juce_Component.cpp:1147
void setColour(int colourID, Colour newColour)
Definition juce_Component.cpp:2242
void enterModalState(bool takeKeyboardFocus=true, ModalComponentManager::Callback *callback=nullptr, bool deleteWhenDismissed=false)
Definition juce_Component.cpp:1764
void setWantsKeyboardFocus(bool wantsFocus) noexcept
Definition juce_Component.cpp:2842
int getWidth() const noexcept
Definition juce_Component.h:271
bool isEnabled() const noexcept
Definition juce_Component.cpp:3104
LookAndFeel & getLookAndFeel() const noexcept
Definition juce_Component.cpp:2173
Rectangle< int > getLocalBounds() const noexcept
Definition juce_Component.cpp:2283
virtual void setVisible(bool shouldBeVisible)
Definition juce_Component.cpp:575
void invalidateAccessibilityHandler()
Definition juce_Component.cpp:3297
String getName() const noexcept
Definition juce_Component.h:76
Definition juce_Font.h:42
Definition juce_GraphicsContext.h:45
Definition juce_Justification.h:41
Definition juce_KeyboardFocusTraverser.h:46
Component * getPreviousComponent(Component *current) override
Definition juce_KeyboardFocusTraverser.cpp:59
std::vector< Component * > getAllComponents(Component *parentComponent) override
Definition juce_KeyboardFocusTraverser.cpp:74
Component * getNextComponent(Component *current) override
Definition juce_KeyboardFocusTraverser.cpp:53
Component * getDefaultComponent(Component *parentComponent) override
Definition juce_KeyboardFocusTraverser.cpp:65
Definition juce_Label.h:183
Label & label
Definition juce_Label.cpp:561
LabelValueInterface(Label &labelToWrap)
Definition juce_Label.cpp:551
String getCurrentValueAsString() const override
Definition juce_Label.cpp:557
void setValueAsString(const String &) override
Definition juce_Label.cpp:558
bool isReadOnly() const override
Definition juce_Label.cpp:556
AccessibleState getCurrentState() const override
Definition juce_Label.cpp:539
Label & label
Definition juce_Label.cpp:575
static AccessibilityActions getAccessibilityActions(Label &label)
Definition juce_Label.cpp:567
String getTitle() const override
Definition juce_Label.cpp:536
String getHelp() const override
Definition juce_Label.cpp:537
LabelAccessibilityHandler(Label &labelToWrap)
Definition juce_Label.cpp:527
Definition juce_Label.h:41
~Label() override
Definition juce_Label.cpp:41
virtual void editorShown(TextEditor *)
Definition juce_Label.cpp:197
WeakReference< Component > ownerComponent
Definition juce_Label.h:350
virtual TextEditor * createEditorComponent()
Definition juce_Label.cpp:319
virtual void textWasEdited()
Definition juce_Label.cpp:194
bool editDoubleClick
Definition juce_Label.h:355
std::unique_ptr< AccessibilityHandler > createAccessibilityHandler() override
Definition juce_Label.cpp:581
void setEditable(bool editOnSingleClick, bool editOnDoubleClick=false, bool lossOfFocusDiscardsChanges=false)
Definition juce_Label.cpp:100
ListenerList< Listener > listeners
Definition juce_Label.h:349
void attachToComponent(Component *owner, bool onLeft)
Definition juce_Label.cpp:141
Component * getAttachedComponent() const
Definition juce_Label.cpp:136
std::function< void()> onTextChange
Definition juce_Label.h:206
void callChangeListeners()
Definition juce_Label.cpp:458
void componentMovedOrResized(Component &, bool wasMoved, bool wasResized) override
Definition juce_Label.cpp:160
@ outlineWhenEditingColourId
Definition juce_Label.h:112
@ textWhenEditingColourId
Definition juce_Label.h:111
@ backgroundWhenEditingColourId
Definition juce_Label.h:110
virtual void editorAboutToBeHidden(TextEditor *)
Definition juce_Label.cpp:209
void resized() override
Definition juce_Label.cpp:364
void setFont(const Font &newFont)
Definition juce_Label.cpp:86
Font font
Definition juce_Label.h:346
void hideEditor(bool discardCurrentEditorContents)
Definition juce_Label.cpp:269
void valueChanged(Value &) override
Definition juce_Label.cpp:79
void textEditorEscapeKeyPressed(TextEditor &) override
Definition juce_Label.cpp:507
bool isBeingEdited() const noexcept
Definition juce_Label.cpp:308
String lastTextValue
Definition juce_Label.h:345
void showEditor()
Definition juce_Label.cpp:221
void componentParentHierarchyChanged(Component &) override
Definition juce_Label.cpp:182
std::function< void()> onEditorShow
Definition juce_Label.h:209
Label(const String &componentName=String(), const String &labelText=String())
Definition juce_Label.cpp:29
std::unique_ptr< TextEditor > editor
Definition juce_Label.h:348
Justification justification
Definition juce_Label.h:347
bool leftOfOwnerComp
Definition juce_Label.h:357
float minimumHorizontalScale
Definition juce_Label.h:352
bool editSingleClick
Definition juce_Label.h:354
Value textValue
Definition juce_Label.h:344
void mouseUp(const MouseEvent &) override
Definition juce_Label.cpp:343
void textEditorReturnKeyPressed(TextEditor &) override
Definition juce_Label.cpp:487
std::function< void()> onEditorHide
Definition juce_Label.h:212
String getText(bool returnActiveEditorContents=false) const
Definition juce_Label.cpp:72
std::unique_ptr< ComponentTraverser > createKeyboardFocusTraverser() override
Definition juce_Label.cpp:449
TextInputTarget::VirtualKeyboardType keyboardType
Definition juce_Label.h:353
bool updateFromTextEditorContents(TextEditor &)
Definition juce_Label.cpp:248
void addListener(Listener *listener)
Definition juce_Label.cpp:455
void textEditorTextChanged(TextEditor &) override
Definition juce_Label.cpp:471
bool lossOfFocusDiscardsChanges
Definition juce_Label.h:356
void textEditorFocusLost(TextEditor &) override
Definition juce_Label.cpp:518
void setMinimumHorizontalScale(float newScale)
Definition juce_Label.cpp:390
void removeListener(Listener *listener)
Definition juce_Label.cpp:456
Font getFont() const noexcept
Definition juce_Label.cpp:95
void mouseDoubleClick(const MouseEvent &) override
Definition juce_Label.cpp:354
void componentVisibilityChanged(Component &) override
Definition juce_Label.cpp:188
BorderSize< int > border
Definition juce_Label.h:351
void setJustificationType(Justification justification)
Definition juce_Label.cpp:117
virtual void textWasChanged()
Definition juce_Label.cpp:195
TextEditor * getCurrentTextEditor() const noexcept
Definition juce_Label.cpp:332
void setBorderSize(BorderSize< int > newBorderSize)
Definition juce_Label.cpp:126
void enablementChanged() override
Definition juce_Label.cpp:380
void colourChanged() override
Definition juce_Label.cpp:385
void focusGained(FocusChangeType) override
Definition juce_Label.cpp:370
void setText(const String &newText, NotificationType notification)
Definition juce_Label.cpp:52
void inputAttemptWhenModal() override
Definition juce_Label.cpp:297
void paint(Graphics &) override
Definition juce_Label.cpp:338
Component * getNextComponent(Component *c) override
Definition juce_Label.cpp:415
Label & owner
Definition juce_Label.cpp:444
Component * getPreviousComponent(Component *c) override
Definition juce_Label.cpp:416
Component * getDefaultComponent(Component *parent) override
Definition juce_Label.cpp:407
Component * getKeyboardFocusContainer(Component *parent) const
Definition juce_Label.cpp:436
LabelKeyboardFocusTraverser(Label &l)
Definition juce_Label.cpp:405
Component * getComp(Component *current) const
Definition juce_Label.cpp:427
std::vector< Component * > getAllComponents(Component *parent) override
Definition juce_Label.cpp:418
Definition juce_MouseEvent.h:39
Definition juce_Range.h:40
Definition juce_String.h:53
Definition juce_TextEditor.h:43
@ backgroundColourId
Definition juce_TextEditor.h:209
@ textColourId
Definition juce_TextEditor.h:212
@ outlineColourId
Definition juce_TextEditor.h:223
@ focusedOutlineColourId
Definition juce_TextEditor.h:226
String getText() const
Definition juce_TextEditor.cpp:2516
Definition juce_Value.h:51
Definition juce_WeakReference.h:78
* e
Definition inflate.c:1404
int * l
Definition inflate.c:1579
int g
Definition inflate.c:1573
unsigned f
Definition inflate.c:1572
static const char * name
Definition pugl.h:1582
static int int height
Definition pugl.h:1594
static int width
Definition pugl.h:1593
static uintptr_t parent
Definition pugl.h:1644
const Colour transparentBlack
Definition juce_Colours.h:40
const Colour black
Definition juce_Colours.h:50
Definition carla_juce.cpp:31
static void copyColourIfSpecified(Label &l, TextEditor &ed, int colourID, int targetColourID)
Definition juce_Label.cpp:313
NotificationType
Definition juce_NotificationType.h:32
@ sendNotification
Definition juce_NotificationType.h:34
@ dontSendNotification
Definition juce_NotificationType.h:33
@ press
Definition juce_AccessibilityActions.h:40
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
AccessibilityRole
Definition juce_AccessibilityRole.h:37
@ editableText
Definition juce_AccessibilityRole.h:46
return c
Definition crypt.c:175
#define const
Definition zconf.h:137