}));
}
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Toolkit_DevelControl_AppendAccessibilityAttribute(void* arg1, char* arg2, char* arg3)
-{
- GUARD_ON_NULL_RET(arg1);
- GUARD_ON_NULL_RET(arg2);
- GUARD_ON_NULL_RET(arg3);
- try_catch(([&]() {
- auto* control = (Dali::Toolkit::Control*)arg1;
- const std::string key(arg2);
- const std::string value(arg3);
- AppendAccessibilityAttribute(*control, key, value);
- }));
-}
-
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Toolkit_DevelControl_RemoveAccessibilityAttribute(void* arg1, char* arg2)
-{
- GUARD_ON_NULL_RET(arg1);
- GUARD_ON_NULL_RET(arg2);
- try_catch(([&]() {
- auto* control = (Dali::Toolkit::Control*)arg1;
- const std::string key(arg2);
- RemoveAccessibilityAttribute(*control, key);
- }));
-}
-
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Toolkit_DevelControl_ClearAccessibilityAttributes(void* arg1)
-{
- GUARD_ON_NULL_RET(arg1);
- try_catch(([&]() {
- auto* control = (Dali::Toolkit::Control*)arg1;
- ClearAccessibilityAttributes(*control);
- }));
-}
-
SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Toolkit_DevelControl_SetAccessibilityReadingInfoType2(void* arg1, int arg2)
{
using namespace Dali::Accessibility;
using Interface = Accessibility::AtspiInterface;
+namespace
+{
+void GetAttributesCallback(const char* key, const char* value, Accessibility::Attributes* attributes)
+{
+ attributes->insert_or_assign(key, value);
+}
+
+using GetAttributesCallbackType = decltype(&GetAttributesCallback);
+
+} // unnamed namespace
+
// Keep this structure layout binary compatible with the respective C# structure!
struct NUIViewAccessible::AccessibilityDelegate
{
bool (*clearSelection) (RefObject*); // 34
bool (*deselectChild) (RefObject*, int); // 35
Rect<int>* (*getRangeExtents) (RefObject*, int, int, int); // 36
+ void (*getAttributes) (RefObject*, GetAttributesCallbackType, Accessibility::Attributes*); // 37
// clang-format on
};
return Accessibility::States{states};
}
+Accessibility::Attributes NUIViewAccessible::GetAttributes() const
+{
+ auto attributes = ControlAccessible::GetAttributes();
+
+ CallMethod<Interface::ACCESSIBLE>(mTable->getAttributes, &GetAttributesCallback, &attributes);
+
+ return attributes;
+}
+
Property::Index NUIViewAccessible::GetNamePropertyIndex()
{
return Property::INVALID_INDEX;
Dali::Accessibility::States CalculateStates() override;
+ Dali::Accessibility::Attributes GetAttributes() const override;
+
Dali::Property::Index GetNamePropertyIndex() override;
Dali::Property::Index GetDescriptionPropertyIndex() override;