1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

PopupMenu Accessibility: Report menu-item ticked state on Windows

This commit is contained in:
reuk 2022-03-04 13:57:46 +00:00
parent 7b1fba4bae
commit c51b331318
No known key found for this signature in database
GPG key ID: 9ADCD339CFC98A11

View file

@ -187,29 +187,6 @@ struct ItemComponent : public Component
PopupMenu::Item item; PopupMenu::Item item;
private: private:
class ValueInterface : public AccessibilityValueInterface
{
public:
ValueInterface() = default;
bool isReadOnly() const override { return true; }
double getCurrentValue() const override
{
return 1.0;
}
String getCurrentValueAsString() const override
{
return TRANS ("Checked");
}
void setValue (double) override {}
void setValueAsString (const String&) override {}
AccessibleValueRange getRange() const override { return {}; }
};
//============================================================================== //==============================================================================
class ItemAccessibilityHandler : public AccessibilityHandler class ItemAccessibilityHandler : public AccessibilityHandler
{ {
@ -218,9 +195,7 @@ private:
: AccessibilityHandler (itemComponentToWrap, : AccessibilityHandler (itemComponentToWrap,
isAccessibilityHandlerRequired (itemComponentToWrap.item) ? AccessibilityRole::menuItem isAccessibilityHandlerRequired (itemComponentToWrap.item) ? AccessibilityRole::menuItem
: AccessibilityRole::ignored, : AccessibilityRole::ignored,
getAccessibilityActions (*this, itemComponentToWrap), getAccessibilityActions (*this, itemComponentToWrap)),
AccessibilityHandler::Interfaces { itemComponentToWrap.item.isTicked ? std::make_unique<ValueInterface>()
: nullptr }),
itemComponent (itemComponentToWrap) itemComponent (itemComponentToWrap)
{ {
} }
@ -242,7 +217,7 @@ private:
} }
if (itemComponent.item.isTicked) if (itemComponent.item.isTicked)
state = state.withChecked(); state = state.withCheckable().withChecked();
return state.isFocused() ? state.withSelected() : state; return state.isFocused() ? state.withSelected() : state;
} }