return result;
}
};
+ getters[ { EvaluationValue::Kind::UIELEMENT, "name" }] = [&](const EvaluationValue & self) -> EvaluationValue {
+ auto uiElem = self.asUiElement();
+ ASSERT(uiElem->getObject());
+ Optional<std::string> result;
+ executeOnMainThread([&]()
+ {
+ auto root = getVisibleRoot();
+ auto atspi = Singleton<UniversalSwitch>::instance().getAtspi();
+ auto found = atspi->getName(uiElem->getObject());
+ if (found)
+ result = std::move(*found);
+ });
+ if (!result) throw EvaluationFailure{} << "failed to get at-spi object's name (use dlogutil to get at-spi error message)";
+ return *result;
+ };
for (auto activityName : ActivityFactory::getInstance()->getAllActivityTypes()) {
variables[activityName] = EvaluationValue::FunctionType::Type{
[ = ](EvaluationContext & ec, std::vector<EvaluationValue> args) -> EvaluationValue {