AddFunctionToInterface(desc, "GetReadingMaterial", &BridgeAccessible::GetReadingMaterial);
AddFunctionToInterface(desc, "GetRelationSet", &BridgeAccessible::GetRelationSet);
AddFunctionToInterface(desc, "SetListenPostRender", &BridgeAccessible::SetListenPostRender);
+ AddFunctionToInterface(desc, "GetNodeInfo", &BridgeAccessible::GetNodeInfo);
mDbusServer.addInterface("/", desc, true);
}
describedByObject};
}
+BridgeAccessible::NodeInfoType BridgeAccessible::GetNodeInfo()
+{
+ auto self = FindSelf();
+ auto roleName = self->GetRoleName();
+ auto name = self->GetName();
+ auto toolkitName = "dali";
+ auto attributes = self->GetAttributes();
+ auto states = self->GetStates();
+
+ auto* component = Component::DownCast(self);
+ Dali::Rect<> screenExtents = {0, 0, 0, 0};
+ Dali::Rect<> windowExtents = {0, 0, 0, 0};
+ if (component)
+ {
+ screenExtents = component->GetExtents(CoordinateType::SCREEN);
+ windowExtents = component->GetExtents(CoordinateType::WINDOW);
+ }
+
+ auto* valueInterface = Value::DownCast(self);
+ double currentValue = 0.0;
+ double minimumIncrement = 0.0;
+ double maximumValue = 0.0;
+ double minimumValue = 0.0;
+ if(valueInterface)
+ {
+ currentValue = valueInterface->GetCurrent();
+ minimumIncrement = valueInterface->GetMinimumIncrement();
+ maximumValue = valueInterface->GetMaximum();
+ minimumValue = valueInterface->GetMinimum();
+ }
+
+ return {
+ roleName,
+ name,
+ toolkitName,
+ attributes,
+ states,
+ {screenExtents.x, screenExtents.y, screenExtents.width, screenExtents.height},
+ {windowExtents.x, windowExtents.y, windowExtents.width, windowExtents.height},
+ currentValue,
+ minimumIncrement,
+ maximumValue,
+ minimumValue};
+}
+
DBus::ValueOrError<bool> BridgeAccessible::DoGesture(Dali::Accessibility::Gesture type, int32_t startPositionX, int32_t startPositionY, int32_t endPositionX, int32_t endPositionY, Dali::Accessibility::GestureState state, uint32_t eventTime)
{
// Please be aware of sending GestureInfo point in the different order with parameters
Dali::Accessibility::Accessible* // describedByObject
>;
+ using NodeInfoType = DBus::ValueOrError<
+ std::string, // role name
+ std::string, // name
+ std::string, // toolkit name
+ std::unordered_map<std::string, std::string>, // attributes
+ Dali::Accessibility::States, // states
+ std::tuple<int32_t, int32_t, int32_t, int32_t>, // screen extents
+ std::tuple<int32_t, int32_t, int32_t, int32_t>, // window extents
+ double, // current value
+ double, // minimum increment
+ double, // maximum value
+ double // minimum value
+ >;
+
using Relation = std::tuple<uint32_t, std::vector<Dali::Accessibility::Accessible*>>;
/**
*/
DBus::ValueOrError<void> SetListenPostRender(bool enabled);
+ /**
+ * @brief Gets Node information of the self object.
+ * @return Node information
+ */
+ NodeInfoType GetNodeInfo();
+
private:
/**
* @brief Calculates Neighbor candidate object in root node.