48 if (
label->isEditableOnSingleClick() != isEditable ||
label->isEditableOnDoubleClick() != isEditable)
50 label->setEditable (isEditable, isEditable,
false);
56 label->setAccessible (isLabelEditable);
64 return label->isEditable();
69 label->setJustificationType (justification);
74 return label->getJustificationType();
80 label->setTooltip (newTooltip);
95 if (newItemText.
isNotEmpty() && newItemId != 0)
96 currentMenu.addItem (newItemId, newItemText,
true,
false);
101 for (
auto&
i : itemsToAdd)
122 item->isEnabled = shouldBeEnabled;
128 return item->isEnabled;
136 item->text = newText;
145 if (!
label->isEditable())
156 auto& item = iterator.getItem();
158 if (item.itemID == itemId)
172 auto& item = iterator.getItem();
174 if (item.itemID != 0)
188 auto& item = iterator.getItem();
190 if (item.itemID != 0)
221 auto& item = iterator.getItem();
223 if (item.itemID == itemId)
226 else if (item.itemID != 0)
262 auto newItemText = item !=
nullptr ? item->text :
String();
308 return label->getText();
315 auto& item = iterator.getItem();
318 && item.text == newText)
329 if (
label->getText() != newText)
408 std::unique_ptr<Label> newLabel (
getLookAndFeel().createComboBoxTextBox (*
this));
411 if (
label !=
nullptr)
413 newLabel->setEditable (
label->isEditable());
414 newLabel->setJustificationType (
label->getJustificationType());
415 newLabel->setTooltip (
label->getTooltip());
419 std::swap (
label, newLabel);
433 label->addMouseListener (
this,
false);
513 if (combo !=
nullptr)
529 if (menu.getNumItems() > 0)
535 auto& item = iterator.getItem();
537 if (item.itemID != 0)
538 item.isTicked = (item.itemID == selectedId);
548 menu.setLookAndFeel (&lf);
549 menu.showMenuAsync (lf.getOptionsForComboBoxPopupMenu (*
this, *
label),
660 { std::make_unique<ComboBoxValueInterface> (comboBoxToWrap) }),
661 comboBox (comboBoxToWrap)
669 return comboBox.isPopupActive() ? state.withExpanded() : state.withCollapsed();
709 return std::make_unique<ComboBoxAccessibilityHandler> (*
this);
#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
void handleUpdateNowIfNeeded()
Definition juce_AsyncUpdater.cpp:79
void triggerAsyncUpdate()
Definition juce_AsyncUpdater.cpp:62
Definition juce_ComboBox.h:290
String getCurrentValueAsString() const override
Definition juce_ComboBox.cpp:685
ComboBoxValueInterface(ComboBox &comboBoxToWrap)
Definition juce_ComboBox.cpp:679
void setValueAsString(const String &) override
Definition juce_ComboBox.cpp:686
bool isReadOnly() const override
Definition juce_ComboBox.cpp:684
ComboBox & comboBox
Definition juce_ComboBox.cpp:689
String getHelp() const override
Definition juce_ComboBox.cpp:673
String getTitle() const override
Definition juce_ComboBox.cpp:672
AccessibleState getCurrentState() const override
Definition juce_ComboBox.cpp:665
ComboBox & comboBox
Definition juce_ComboBox.cpp:701
ComboBoxAccessibilityHandler(ComboBox &comboBoxToWrap)
Definition juce_ComboBox.cpp:656
static AccessibilityActions getAccessibilityActions(ComboBox &comboBox)
Definition juce_ComboBox.cpp:695
Definition juce_ComboBox.h:49
bool menuActive
Definition juce_ComboBox.h:444
void handleAsyncUpdate() override
Definition juce_ComboBox.cpp:622
@ textColourId
Definition juce_ComboBox.h:357
void showEditor()
Definition juce_ComboBox.cpp:336
void valueChanged(Value &) override
Definition juce_ComboBox.cpp:299
void colourChanged() override
Definition juce_ComboBox.cpp:393
void setText(const String &newText, NotificationType notification=sendNotificationAsync)
Definition juce_ComboBox.cpp:311
void addItemList(const StringArray &items, int firstItemIdOffset)
Definition juce_ComboBox.cpp:99
bool selectIfEnabled(int index)
Definition juce_ComboBox.cpp:276
bool scrollWheelEnabled
Definition juce_ComboBox.h:444
String noChoicesMessage
Definition juce_ComboBox.h:448
void setJustificationType(Justification justification)
Definition juce_ComboBox.cpp:67
float mouseWheelAccumulator
Definition juce_ComboBox.h:445
bool nudgeSelectedItem(int delta)
Definition juce_ComboBox.cpp:290
void clear(NotificationType notification=sendNotificationAsync)
Definition juce_ComboBox.cpp:141
int lastCurrentId
Definition juce_ComboBox.h:443
ListenerList< Listener > listeners
Definition juce_ComboBox.h:446
void resized() override
Definition juce_ComboBox.cpp:379
PopupMenu currentMenu
Definition juce_ComboBox.h:441
void lookAndFeelChanged() override
Definition juce_ComboBox.cpp:403
bool isItemEnabled(int itemId) const noexcept
Definition juce_ComboBox.cpp:125
bool isButtonDown
Definition juce_ComboBox.h:444
void addSectionHeading(const String &headingName)
Definition juce_ComboBox.cpp:110
void mouseDrag(const MouseEvent &) override
Definition juce_ComboBox.cpp:564
void focusGained(Component::FocusChangeType) override
Definition juce_ComboBox.cpp:482
PopupMenu::Item * getItemForId(int) const noexcept
Definition juce_ComboBox.cpp:150
void hidePopup()
Definition juce_ComboBox.cpp:501
virtual void showPopup()
Definition juce_ComboBox.cpp:522
Value currentId
Definition juce_ComboBox.h:442
void setItemEnabled(int itemId, bool shouldBeEnabled)
Definition juce_ComboBox.cpp:119
void setSelectedItemIndex(int newItemIndex, NotificationType notification=sendNotificationAsync)
Definition juce_ComboBox.cpp:245
void mouseUp(const MouseEvent &) override
Definition juce_ComboBox.cpp:572
void showPopupIfNotActive()
Definition juce_ComboBox.cpp:486
void addListener(Listener *listener)
Definition juce_ComboBox.cpp:619
void paint(Graphics &) override
Definition juce_ComboBox.cpp:369
void setSelectedId(int newItemId, NotificationType notification=sendNotificationAsync)
Definition juce_ComboBox.cpp:259
String textWhenNothingSelected
Definition juce_ComboBox.h:448
EditableState
Definition juce_ComboBox.h:435
@ labelIsEditable
Definition juce_ComboBox.h:438
@ labelIsNotEditable
Definition juce_ComboBox.h:437
void parentHierarchyChanged() override
Definition juce_ComboBox.cpp:398
bool keyStateChanged(bool) override
Definition juce_ComboBox.cpp:471
void setScrollWheelEnabled(bool enabled) noexcept
Definition juce_ComboBox.cpp:613
void mouseDown(const MouseEvent &) override
Definition juce_ComboBox.cpp:554
Justification getJustificationType() const noexcept
Definition juce_ComboBox.cpp:72
void mouseWheelMove(const MouseEvent &, const MouseWheelDetails &) override
Definition juce_ComboBox.cpp:589
std::function< void()> onChange
Definition juce_ComboBox.h:307
std::unique_ptr< AccessibilityHandler > createAccessibilityHandler() override
Definition juce_ComboBox.cpp:707
void setTextWhenNothingSelected(const String &newMessage)
Definition juce_ComboBox.cpp:344
String getItemText(int index) const
Definition juce_ComboBox.cpp:197
void setTooltip(const String &newTooltip) override
Definition juce_ComboBox.cpp:77
bool isTextEditable() const noexcept
Definition juce_ComboBox.cpp:62
void setEditableText(bool isEditable)
Definition juce_ComboBox.cpp:46
int indexOfItemId(int itemId) const noexcept
Definition juce_ComboBox.cpp:213
int getItemId(int index) const noexcept
Definition juce_ComboBox.cpp:205
void addSeparator()
Definition juce_ComboBox.cpp:105
ComboBox(const String &componentName={})
Definition juce_ComboBox.cpp:29
String getTextWhenNoChoicesAvailable() const
Definition juce_ComboBox.cpp:363
PopupMenu::Item * getItemForIndex(int) const noexcept
Definition juce_ComboBox.cpp:166
void changeItemText(int itemId, const String &newText)
Definition juce_ComboBox.cpp:133
void focusLost(Component::FocusChangeType) override
Definition juce_ComboBox.cpp:483
void sendChange(NotificationType)
Definition juce_ComboBox.cpp:637
int getSelectedId() const noexcept
Definition juce_ComboBox.cpp:250
String getText() const
Definition juce_ComboBox.cpp:306
void addItem(const String &newItemText, int newItemId)
Definition juce_ComboBox.cpp:84
int getNumItems() const noexcept
Definition juce_ComboBox.cpp:182
String getTextWhenNothingSelected() const
Definition juce_ComboBox.cpp:353
std::unique_ptr< Label > label
Definition juce_ComboBox.h:447
bool keyPressed(const KeyPress &) override
Definition juce_ComboBox.cpp:448
~ComboBox() override
Definition juce_ComboBox.cpp:38
void enablementChanged() override
Definition juce_ComboBox.cpp:385
int getSelectedItemIndex() const
Definition juce_ComboBox.cpp:235
EditableState labelEditableState
Definition juce_ComboBox.h:449
void removeListener(Listener *listener)
Definition juce_ComboBox.cpp:620
void setTextWhenNoChoicesAvailable(const String &newMessage)
Definition juce_ComboBox.cpp:358
Definition juce_Component.h:2331
bool shouldBailOut() const noexcept
Definition juce_Component.cpp:3252
Definition juce_Component.h:2287
void setRepaintsOnMouseActivity(bool shouldRepaint) noexcept
Definition juce_Component.cpp:1881
bool reallyContains(Point< int > localPoint, bool returnTrueIfWithinAChild)
Definition juce_Component.cpp:1454
int getHeight() const noexcept
Definition juce_Component.h:274
void addAndMakeVisible(Component *child, int zOrder=-1)
Definition juce_Component.cpp:1554
FocusChangeType
Definition juce_Component.h:1890
AccessibilityHandler * getAccessibilityHandler()
Definition juce_Component.cpp:3302
void repaint()
Definition juce_Component.cpp:1917
Component() noexcept
Definition juce_Component.cpp:517
void setWantsKeyboardFocus(bool wantsFocus) noexcept
Definition juce_Component.cpp:2842
Colour findColour(int colourID, bool inheritFromParent=false) const
Definition juce_Component.cpp:2219
int getWidth() const noexcept
Definition juce_Component.h:271
void mouseWheelMove(const MouseEvent &event, const MouseWheelDetails &wheel) override
Definition juce_Component.cpp:2303
static void JUCE_CALLTYPE beginDragAutoRepeat(int millisecondsBetweenCallbacks)
Definition juce_Component.cpp:2745
bool isEnabled() const noexcept
Definition juce_Component.cpp:3104
LookAndFeel & getLookAndFeel() const noexcept
Definition juce_Component.cpp:2173
Definition juce_GraphicsContext.h:45
Definition juce_Justification.h:41
Definition juce_KeyPress.h:40
static const int upKey
Definition juce_KeyPress.h:198
static bool isKeyCurrentlyDown(int keyCode)
Definition juce_linux_Windowing.cpp:804
static const int rightKey
Definition juce_KeyPress.h:201
static const int downKey
Definition juce_KeyPress.h:199
static const int returnKey
Definition juce_KeyPress.h:191
static const int leftKey
Definition juce_KeyPress.h:200
@ backgroundColourId
Definition juce_Label.h:106
@ textColourId
Definition juce_Label.h:107
static bool callAsync(std::function< void()> functionToCall)
Definition juce_MessageManager.cpp:192
static ModalComponentManager::Callback * forComponent(void(*functionToCall)(int, ComponentType *), ComponentType *component)
Definition juce_ModalComponentManager.h:276
Definition juce_MouseEvent.h:39
MouseEvent getEventRelativeTo(Component *newComponent) const noexcept
Definition juce_MouseEvent.cpp:61
Component *const eventComponent
Definition juce_MouseEvent.h:173
Definition juce_StringArray.h:35
Definition juce_String.h:53
bool isNotEmpty() const noexcept
Definition juce_String.h:316
@ backgroundColourId
Definition juce_TextEditor.h:209
@ highlightColourId
Definition juce_TextEditor.h:217
@ textColourId
Definition juce_TextEditor.h:212
@ outlineColourId
Definition juce_TextEditor.h:223
Definition juce_Value.h:51
* e
Definition inflate.c:1404
int * l
Definition inflate.c:1579
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
static const char * name
Definition pugl.h:1582
#define TRANS(stringLiteral)
Definition juce_LocalisedStrings.h:208
const Colour transparentBlack
Definition juce_Colours.h:40
Definition carla_juce.cpp:31
@ valueChanged
Definition juce_AccessibilityEvent.h:44
NotificationType
Definition juce_NotificationType.h:32
@ sendNotification
Definition juce_NotificationType.h:34
@ sendNotificationSync
Definition juce_NotificationType.h:35
@ dontSendNotification
Definition juce_NotificationType.h:33
@ showMenu
Definition juce_AccessibilityActions.h:61
@ press
Definition juce_AccessibilityActions.h:40
static void comboBoxPopupMenuFinishedCallback(int result, ComboBox *combo)
Definition juce_ComboBox.cpp:511
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
AccessibilityRole
Definition juce_AccessibilityRole.h:37
Definition juce_MouseEvent.h:392
float deltaY
Definition juce_MouseEvent.h:410
int n
Definition crypt.c:458
ZCONST char * key
Definition crypt.c:587
void handler(int signal)
Definition fileio.c:1632
int result
Definition process.c:1455
#define const
Definition zconf.h:137