VISIBLE = 0X0400,
SHOWING = 0X0800,
ACTIVE = 0X1000,
- INVALID = 0X2000,
+ HIGHLIGHTABLE = 0X2000,
+ INVALID = 0X4000,
};
/**
*/
bool isVisible() const;
+ /**
+ * @copydoc UiObject::isHighlightable()
+ */
+ bool isHighlightable() const;
+
public:
/**
* @brief Print Node information.
*/
bool isVisible() const;
+ /**
+ * @brief Gets object's highlightable property.
+ *
+ * @return true if highlightable else false
+ *
+ * @since_tizen 7.0
+ */
+ bool isHighlightable() const;
+
/**
* @brief Performs a click action on object.
*
*/
UiSelector *isSelectable(bool condition);
+ /**
+ * @brief Sets the search criteria to match the object that is highlightable.
+ *
+ * @param[in] condition object's highlightable condition
+ *
+ * @return UiSelector class instance
+ *
+ * @since_tizen 7.0
+ */
+ UiSelector *isHighlightable(bool condition);
+
/**
* @brief Sets the child selector.
*
bool mMatchActive;
bool mMatchVisible;
bool mMatchSelectable;
+ bool mMatchHighlightable;
int mMinDepth;
int mMaxDepth;
bool mIsactive;
bool mIsvisible;
bool mIsselectable;
+ bool mIshighlightable;
bool mGeometryIsEqual;
return hasFeatureProperty(NodeFeatureProperties::ACTIVE);
}
+bool AccessibleNode::isHighlightable() const
+{
+ return hasFeatureProperty(NodeFeatureProperties::HIGHLIGHTABLE);
+}
+
double AccessibleNode::getMinValue() const
{
return mMinValue;
element.append_attribute("active") = node->isActive();
element.append_attribute("visible") = node->isVisible();
element.append_attribute("selectable") = node->isSelectable();
+ element.append_attribute("highlightable") = node->isHighlightable();
mXNodeMap[node->getId()] = node;
case ATSPI_STATE_SENSITIVE:
setFeatureProperty(NodeFeatureProperties::CLICKABLE, true);
break;
+ case ATSPI_STATE_HIGHLIGHTABLE:
+ setFeatureProperty(NodeFeatureProperties::HIGHLIGHTABLE, true);
+ break;
case ATSPI_STATE_DEFUNCT:
case ATSPI_STATE_INVALID:
setFeatureProperty(NodeFeatureProperties::INVALID, true);
if (selector->mMatchActive && checkCriteria(selector->mIsactive, node->isActive())) return false;
if (selector->mMatchVisible && checkCriteria(selector->mIsvisible, node->isVisible())) return false;
if (selector->mMatchSelectable && checkCriteria(selector->mIsselectable, node->isSelectable())) return false;
+ if (selector->mMatchHighlightable && checkCriteria(selector->mIshighlightable, node->isHighlightable())) return false;
return true;
}
return getAccessibleNode()->isActive();
}
+bool UiObject::isHighlightable() const
+{
+ return getAccessibleNode()->isHighlightable();
+}
+
void UiObject::refresh() const
{
mNode->refresh();
mMatchId{}, mMatchAutomationId{}, mMatchRole{}, mMatchText{}, mMatchPkg{}, mMatchType{}, mMatchStyle{},
mMatchTextPartialMatch{}, mMatchXPath{}, mMatchOcrText{}, mMatchGeometry{}, mMatchChecked{}, mMatchCheckable{}, mMatchClickable{}, mMatchEnabled{},
mMatchFocused{}, mMatchFocusable{}, mMatchScrollable{}, mMatchSelected{}, mMatchShowing{}, mMatchActive{}, mMatchVisible{},
- mMatchSelectable{}, mMinDepth{}, mMaxDepth{}, mIschecked{}, mIscheckable{}, mIsclickable{}, mIsenabled{},
+ mMatchSelectable{}, mMatchHighlightable{}, mMinDepth{}, mMaxDepth{}, mIschecked{}, mIscheckable{}, mIsclickable{}, mIsenabled{},
mIsfocused{}, mIsfocusable{}, mIsscrollable{}, mIsselected{}, mIsshowing{}, mIsactive{}, mIsvisible{},
- mIsselectable{}, mChild{}, mParent{}, mGeometry{}, mGeometryIsEqual{}
+ mIsselectable{}, mIshighlightable{}, mChild{}, mParent{}, mGeometry{}, mGeometryIsEqual{}
{
}
if(this->mMatchActive) ss << "\"mMatchActive\":\"" << ((this->mMatchActive)?"true":"false") << "\", ";
if(this->mMatchVisible) ss << "\"mMatchVisible\":\"" << ((this->mMatchVisible)?"true":"false") << "\", ";
if(this->mMatchSelectable) ss << "\"mMatchSelectable\":\"" << ((this->mMatchSelectable)?"true":"false") << "\", ";
+ if(this->mMatchHighlightable) ss << "\"mMatchHighlightable\":\"" << ((this->mMatchHighlightable)?"true":"false") << "\", ";
if(this->mParent) {
ss << "\"mParent\":" << this->mParent->description();
}
return this;
}
+UiSelector *UiSelector::isHighlightable(bool condition)
+{
+ this->mIshighlightable = condition;
+ this->mMatchHighlightable = true;
+ return this;
+}
+
UiSelector *UiSelector::hasChild(std::shared_ptr<UiSelector> child)
{
mChild.push_back(child);
root->set_isactive(obj->isActive());
root->set_isvisible(obj->isVisible());
root->set_isselectable(obj->isSelectable());
+ root->set_ishighlightable(obj->isHighlightable());
root->set_minvalue(obj->getMinValue());
root->set_maxvalue(obj->getMaxValue());
if(mRequest->_xpath_case()) sel->xpath(mRequest->xpath());
if(mRequest->_ocrtext_case()) sel->ocrText(mRequest->ocrtext());
if(mRequest->_geometry_case()) sel->geometry(Rect<int>{mRequest->geometry().x(), mRequest->geometry().y(), mRequest->geometry().x() + mRequest->geometry().width(), mRequest->geometry().y() + mRequest->geometry().height()}, true);
+ if(mRequest->_isvisible_case()) sel->isVisible(mRequest->isvisible());
+ if(mRequest->_isselectable_case()) sel->isSelectable(mRequest->isselectable());
+ if(mRequest->_ishighlightable_case()) sel->isHighlightable(mRequest->ishighlightable());
return sel;
}
elm->set_isactive(obj->isActive());
elm->set_isvisible(obj->isVisible());
elm->set_isselectable(obj->isSelectable());
+ elm->set_ishighlightable(obj->isHighlightable());
elm->set_minvalue(obj->getMinValue());
elm->set_maxvalue(obj->getMaxValue());
if(mRequest->_xpath_case()) sel->xpath(mRequest->xpath());
if(mRequest->_ocrtext_case()) sel->ocrText(mRequest->ocrtext());
if(mRequest->_geometry_case()) sel->geometry(Rect<int>{mRequest->geometry().x(), mRequest->geometry().y(), mRequest->geometry().x() + mRequest->geometry().width(), mRequest->geometry().y() + mRequest->geometry().height()}, false);
+ if(mRequest->_isvisible_case()) sel->isVisible(mRequest->isvisible());
+ if(mRequest->_isselectable_case()) sel->isSelectable(mRequest->isselectable());
+ if(mRequest->_ishighlightable_case()) sel->isHighlightable(mRequest->ishighlightable());
return std::vector<std::shared_ptr<UiSelector>>{sel};
}
elm->set_isactive(obj->isActive());
elm->set_isvisible(obj->isVisible());
elm->set_isselectable(obj->isSelectable());
+ elm->set_ishighlightable(obj->isHighlightable());
elm->set_minvalue(obj->getMinValue());
elm->set_maxvalue(obj->getMaxValue());
bool isActive = 23;
bool isVisible = 24;
bool isSelectable = 25;
+ bool isHighlightable = 26;
- double minValue = 26;
- double maxValue = 27;
- double value = 28;
- double increment = 29;
+ double minValue = 27;
+ double maxValue = 28;
+ double value = 29;
+ double increment = 30;
}
message Point {
oneof _isactive {
bool isActive = 15;
}
+
oneof _mindepth {
int32 minDepth = 16;
}
oneof _geometry {
Rect geometry = 22;
}
+ oneof _isvisible {
+ bool isVisible = 23;
+ }
+
+ oneof _isselectable {
+ bool isSelectable = 24;
+ }
- repeated ReqFindElement children = 23;
+ oneof _ishighlightable {
+ bool isHighlightable = 25;
+ }
+
+ repeated ReqFindElement children = 26;
}
message RspFindElement {
oneof _isactive {
bool isActive = 15;
}
+
oneof _mindepth {
int32 minDepth = 16;
}
}
oneof _geometry {
- Rect geometry = 22;
+ Rect geometry = 22;
+ }
+
+ oneof _isvisible {
+ bool isVisible = 23;
+ }
+
+ oneof _isselectable {
+ bool isSelectable = 24;
+ }
+
+ oneof _ishighlightable {
+ bool isHighlightable = 25;
}
- repeated ReqFindElements children = 23;
+ repeated ReqFindElements children = 26;
}
message RspFindElements {