auto describedByObject = findObjectByRelationType(RelationType::DESCRIBED_BY);
- double currentValue = 0.0;
- double minimumIncrement = 0.0;
- double maximumValue = 0.0;
- double minimumValue = 0.0;
- auto* valueInterface = Value::DownCast(self);
+ double currentValue = 0.0;
+ std::string currentValueText;
+ double minimumIncrement = 0.0;
+ double maximumValue = 0.0;
+ double minimumValue = 0.0;
+ auto* valueInterface = Value::DownCast(self);
if(valueInterface)
{
currentValue = valueInterface->GetCurrent();
+ currentValueText = valueInterface->GetValueText();
minimumIncrement = valueInterface->GetMinimumIncrement();
maximumValue = valueInterface->GetMaximum();
minimumValue = valueInterface->GetMinimum();
}
}
+ auto attributes = self->GetAttributes();
+ auto itemCount = attributes.find("item_count");
auto atspiRole = self->GetRole();
int32_t listChildrenCount = 0;
- if(atspiRole == Role::DIALOG)
+ if(itemCount != attributes.end())
+ {
+ // "item_count" gives manual control to the application, so it has priority
+ listChildrenCount = std::atoi(itemCount->second.c_str());
+ }
+ else if(atspiRole == Role::DIALOG)
{
listChildrenCount = GetItemCountOfFirstDescendantContainer(self, Role::LIST, Role::LIST_ITEM, true);
}
nameFromTextInterface = textInterface->GetText(0, textInterface->GetCharacterCount());
}
- auto attributes = self->GetAttributes();
auto name = self->GetName();
auto role = static_cast<uint32_t>(atspiRole);
auto states = self->GetStates();
localizedRoleName,
childCount,
currentValue,
+ currentValueText,
minimumIncrement,
maximumValue,
minimumValue,