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