diff options
Diffstat (limited to 'dali/internal')
18 files changed, 239 insertions, 205 deletions
diff --git a/dali/internal/accessibility/bridge/accessible.cpp b/dali/internal/accessibility/bridge/accessible.cpp index b1bb36ea8..fb75de86d 100644 --- a/dali/internal/accessibility/bridge/accessible.cpp +++ b/dali/internal/accessibility/bridge/accessible.cpp @@ -48,9 +48,9 @@ std::vector<std::string> Accessible::GetInterfaces() { tmp.push_back(AtspiDbusInterfaceComponent); } - if(auto d = dynamic_cast<Action*>(this)) + if(auto action = dynamic_cast<Action*>(this)) { - if(d->GetActionCount() > 0) + if(action->GetActionCount() > 0) { tmp.push_back(AtspiDbusInterfaceAction); } @@ -68,99 +68,101 @@ Accessible::Accessible() Accessible::~Accessible() { - auto b = bridgeData.lock(); - if(b) - b->knownObjects.erase(this); + auto handle = mBridgeData.lock(); + if(handle) + { + handle->mKnownObjects.erase(this); + } } void Accessible::EmitActiveDescendantChanged(Accessible* obj, Accessible* child) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitActiveDescendantChanged(obj, child); + bridgeData->mBridge->EmitActiveDescendantChanged(obj, child); } } -void Accessible::EmitStateChanged(State state, int newValue1, int newValue2) +void Accessible::EmitStateChanged(State state, int newValue, int reserved) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitStateChanged(this, state, newValue1, newValue2); + bridgeData->mBridge->EmitStateChanged(this, state, newValue, reserved); } } -void Accessible::EmitShowing(bool showing) +void Accessible::EmitShowing(bool isShowing) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitStateChanged(this, State::SHOWING, showing ? 1 : 0, 0); + bridgeData->mBridge->EmitStateChanged(this, State::SHOWING, isShowing ? 1 : 0, 0); } } -void Accessible::EmitVisible(bool visible) +void Accessible::EmitVisible(bool isVisible) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitStateChanged(this, State::VISIBLE, visible ? 1 : 0, 0); + bridgeData->mBridge->EmitStateChanged(this, State::VISIBLE, isVisible ? 1 : 0, 0); } } -void Accessible::EmitHighlighted(bool set) +void Accessible::EmitHighlighted(bool isHighlighted) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitStateChanged(this, State::HIGHLIGHTED, set ? 1 : 0, 0); + bridgeData->mBridge->EmitStateChanged(this, State::HIGHLIGHTED, isHighlighted ? 1 : 0, 0); } } -void Accessible::EmitFocused(bool set) +void Accessible::EmitFocused(bool isFocused) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitStateChanged(this, State::FOCUSED, set ? 1 : 0, 0); + bridgeData->mBridge->EmitStateChanged(this, State::FOCUSED, isFocused ? 1 : 0, 0); } } void Accessible::EmitTextInserted(unsigned int position, unsigned int length, const std::string& content) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitTextChanged(this, TextChangedState::INSERTED, position, length, content); + bridgeData->mBridge->EmitTextChanged(this, TextChangedState::INSERTED, position, length, content); } } void Accessible::EmitTextDeleted(unsigned int position, unsigned int length, const std::string& content) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitTextChanged(this, TextChangedState::DELETED, position, length, content); + bridgeData->mBridge->EmitTextChanged(this, TextChangedState::DELETED, position, length, content); } } -void Accessible::EmitTextCaretMoved(unsigned int cursorPosition) +void Accessible::EmitTextCursorMoved(unsigned int cursorPosition) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitCaretMoved(this, cursorPosition); + bridgeData->mBridge->EmitCursorMoved(this, cursorPosition); } } -void Accessible::Emit(WindowEvent we, unsigned int detail1) +void Accessible::Emit(WindowEvent event, unsigned int detail) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->Emit(this, we, detail1); + bridgeData->mBridge->Emit(this, event, detail); } } -void Accessible::Emit(ObjectPropertyChangeEvent ev) +void Accessible::Emit(ObjectPropertyChangeEvent event) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->Emit(this, ev); + bridgeData->mBridge->Emit(this, event); } } void Accessible::EmitBoundsChanged(Rect<> rect) { - if(auto b = GetBridgeData()) + if(auto bridgeData = GetBridgeData()) { - b->bridge->EmitBoundsChanged(this, rect); + bridgeData->mBridge->EmitBoundsChanged(this, rect); } } @@ -176,37 +178,39 @@ std::vector<Accessible*> Accessible::GetChildren() std::shared_ptr<Bridge::Data> Accessible::GetBridgeData() { - auto b = bridgeData.lock(); - if(!b) + auto handle = mBridgeData.lock(); + if(!handle) { - auto p = Bridge::GetCurrentBridge(); - b = p->data; + auto bridge = Bridge::GetCurrentBridge(); + handle = bridge->mData; } - return b; + return handle; } Address Accessible::GetAddress() { - auto b = bridgeData.lock(); - if(!b) + auto handle = mBridgeData.lock(); + if(!handle) { - b = GetBridgeData(); - if(b) - b->bridge->RegisterOnBridge(this); + handle = GetBridgeData(); + if(handle) + { + handle->mBridge->RegisterOnBridge(this); + } } std::ostringstream tmp; tmp << this; - return {b ? b->busName : "", tmp.str()}; + return {handle ? handle->mBusName : "", tmp.str()}; } -void Bridge::RegisterOnBridge(Accessible* obj) +void Bridge::RegisterOnBridge(Accessible* object) { - assert(!obj->bridgeData.lock() || obj->bridgeData.lock() == data); - if(!obj->bridgeData.lock()) + assert(!object->mBridgeData.lock() || object->mBridgeData.lock() == mData); + if(!object->mBridgeData.lock()) { - assert(data); - data->knownObjects.insert(obj); - obj->bridgeData = data; + assert(mData); + mData->mKnownObjects.insert(object); + object->mBridgeData = mData; } } @@ -220,32 +224,37 @@ Accessible* Accessible::GetDefaultLabel() return this; } -void Accessible::NotifyAccessibilityStateChange(Dali::Accessibility::States states, bool doRecursive) +void Accessible::NotifyAccessibilityStateChange(Dali::Accessibility::States states, bool isRecursive) { - if(auto b = GetBridgeData()) + if(auto data = GetBridgeData()) { - auto s = GetStates() & states; - for(auto i = 0u; i < s.size(); i++) + auto currentState = GetStates() & states; + for(auto i = 0u; i < currentState.size(); i++) { auto index = static_cast<Dali::Accessibility::State>(i); - if(s[index]) - b->bridge->EmitStateChanged(this, index, 1, 0); + if(currentState[index]) + { + data->mBridge->EmitStateChanged(this, index, 1, 0); + } } - if(doRecursive) + + if(isRecursive) { auto children = GetChildren(); - for(auto c : children) - c->NotifyAccessibilityStateChange(states, doRecursive); + for(auto iter : children) + { + iter->NotifyAccessibilityStateChange(states, isRecursive); + } } } } -void Accessible::FindWordSeparationsUtf8(const utf8_t* s, size_t length, const char* language, char* breaks) +void Accessible::FindWordSeparationsUtf8(const utf8_t* string, size_t length, const char* language, char* breaks) { - set_wordbreaks_utf8(s, length, language, breaks); + set_wordbreaks_utf8(string, length, language, breaks); } -void Accessible::FindLineSeparationsUtf8(const utf8_t* s, size_t length, const char* language, char* breaks) +void Accessible::FindLineSeparationsUtf8(const utf8_t* string, size_t length, const char* language, char* breaks) { - set_linebreaks_utf8(s, length, language, breaks); + set_linebreaks_utf8(string, length, language, breaks); } diff --git a/dali/internal/accessibility/bridge/bridge-accessible.cpp b/dali/internal/accessibility/bridge/bridge-accessible.cpp index 309be51d1..4021e830c 100644 --- a/dali/internal/accessibility/bridge/bridge-accessible.cpp +++ b/dali/internal/accessibility/bridge/bridge-accessible.cpp @@ -34,16 +34,16 @@ namespace { bool SortVertically(Component* lhs, Component* rhs) { - auto leftRect = lhs->GetExtents(CoordType::WINDOW); - auto rightRect = rhs->GetExtents(CoordType::WINDOW); + auto leftRect = lhs->GetExtents(CoordinateType::WINDOW); + auto rightRect = rhs->GetExtents(CoordinateType::WINDOW); return leftRect.y < rightRect.y; } bool SortHorizontally(Component* lhs, Component* rhs) { - auto leftRect = lhs->GetExtents(CoordType::WINDOW); - auto rightRect = rhs->GetExtents(CoordType::WINDOW); + auto leftRect = lhs->GetExtents(CoordinateType::WINDOW); + auto rightRect = rhs->GetExtents(CoordinateType::WINDOW); return leftRect.x < rightRect.x; } @@ -52,7 +52,7 @@ std::vector<std::vector<Component*>> SplitLines(const std::vector<Component*>& c { // Find first with non-zero area auto first = std::find_if(children.begin(), children.end(), [](Component* component) -> bool { - auto extents = component->GetExtents(CoordType::WINDOW); + auto extents = component->GetExtents(CoordinateType::WINDOW); return extents.height != 0.0f && extents.width != 0.0f; }); @@ -62,7 +62,7 @@ std::vector<std::vector<Component*>> SplitLines(const std::vector<Component*>& c } std::vector<std::vector<Component*>> lines(1); - Dali::Rect<> lineRect = (*first)->GetExtents(CoordType::WINDOW); + Dali::Rect<> lineRect = (*first)->GetExtents(CoordinateType::WINDOW); Dali::Rect<> rect; // Split into lines @@ -70,7 +70,7 @@ std::vector<std::vector<Component*>> SplitLines(const std::vector<Component*>& c { auto child = *it; - rect = child->GetExtents(CoordType::WINDOW); + rect = child->GetExtents(CoordinateType::WINDOW); if(rect.height == 0.0f || rect.width == 0.0f) { // Zero area, ignore @@ -164,11 +164,11 @@ static bool ObjectIsCollapsed(Component* obj) return states[State::EXPANDABLE] && !states[State::EXPANDED]; } -static bool OobjectIsZeroSize(Component* obj) +static bool ObjectIsZeroSize(Component* obj) { if(!obj) return false; - auto extents = obj->GetExtents(CoordType::WINDOW); + auto extents = obj->GetExtents(CoordinateType::WINDOW); return extents.height == 0 || extents.width == 0; } @@ -195,7 +195,7 @@ static bool AcceptObject(Component* obj) } else { - if(OobjectIsZeroSize(obj)) + if(ObjectIsZeroSize(obj)) { return false; } @@ -218,7 +218,7 @@ static std::string objDump(Component* obj) if(!obj) return "nullptr"; std::ostringstream o; - auto e = obj->GetExtents(CoordType::SCREEN); + auto e = obj->GetExtents(CoordinateType::SCREEN); o << "name: " << obj->GetName() << " extent: (" << e.x << ", " << e.y << "), [" << e.width << ", " << e.height << "]"; return o.str(); @@ -248,30 +248,40 @@ static std::string makeIndent(unsigned int maxRecursionDepth) return std::string(GET_NAVIGABLE_AT_POINT_MAX_RECURSION_DEPTH - maxRecursionDepth, ' '); } -Component* BridgeAccessible::CalculateNavigableAccessibleAtPoint(Accessible* root, Point p, CoordType cType, unsigned int maxRecursionDepth) +Component* BridgeAccessible::CalculateNavigableAccessibleAtPoint(Accessible* root, Point p, CoordinateType type, unsigned int maxRecursionDepth) { if(!root || maxRecursionDepth == 0) + { return nullptr; + } + auto root_component = dynamic_cast<Component*>(root); LOG() << "CalculateNavigableAccessibleAtPoint: checking: " << makeIndent(maxRecursionDepth) << objDump(root_component); - if(root_component && !root_component->Contains(p, cType)) + if(root_component && !root_component->IsAccessibleContainedAtPoint(p, type)) + { return nullptr; + } auto children = root->GetChildren(); for(auto childIt = children.rbegin(); childIt != children.rend(); childIt++) { //check recursively all children first - auto result = CalculateNavigableAccessibleAtPoint(*childIt, p, cType, maxRecursionDepth - 1); + auto result = CalculateNavigableAccessibleAtPoint(*childIt, p, type, maxRecursionDepth - 1); if(result) + { return result; + } } + if(root_component) { //Found a candidate, all its children are already checked auto controledBy = GetObjectInRelation(root_component, RelationType::CONTROLLED_BY); if(!controledBy) + { controledBy = root_component; + } if(controledBy->IsProxy() || AcceptObject(controledBy)) { @@ -376,12 +386,12 @@ DBus::ValueOrError<bool> BridgeAccessible::DoGesture(Dali::Accessibility::Gestur return FindSelf()->DoGesture(Dali::Accessibility::GestureInfo{type, xBeg, xEnd, yBeg, yEnd, state, eventTime}); } -DBus::ValueOrError<Accessible*, uint8_t, Accessible*> BridgeAccessible::GetNavigableAtPoint(int32_t x, int32_t y, uint32_t coordType) +DBus::ValueOrError<Accessible*, uint8_t, Accessible*> BridgeAccessible::GetNavigableAtPoint(int32_t x, int32_t y, uint32_t coordinateType) { Accessible* deputy = nullptr; auto accessible = FindSelf(); - auto cType = static_cast<CoordType>(coordType); - LOG() << "GetNavigableAtPoint: " << x << ", " << y << " type: " << coordType; + auto cType = static_cast<CoordinateType>(coordinateType); + LOG() << "GetNavigableAtPoint: " << x << ", " << y << " type: " << coordinateType; auto component = CalculateNavigableAccessibleAtPoint(accessible, {x, y}, cType, GET_NAVIGABLE_AT_POINT_MAX_RECURSION_DEPTH); bool recurse = false; if(component) diff --git a/dali/internal/accessibility/bridge/bridge-accessible.h b/dali/internal/accessibility/bridge/bridge-accessible.h index d5bdc52f4..255dc44e7 100644 --- a/dali/internal/accessibility/bridge/bridge-accessible.h +++ b/dali/internal/accessibility/bridge/bridge-accessible.h @@ -56,7 +56,7 @@ public: DBus::ValueOrError<std::array<uint32_t, 2>> GetStates(); DBus::ValueOrError<std::unordered_map<std::string, std::string>> GetAttributes(); DBus::ValueOrError<std::vector<std::string>> GetInterfaces(); - DBus::ValueOrError<Dali::Accessibility::Accessible*, uint8_t, Dali::Accessibility::Accessible*> GetNavigableAtPoint(int32_t x, int32_t y, uint32_t coordType); + DBus::ValueOrError<Dali::Accessibility::Accessible*, uint8_t, Dali::Accessibility::Accessible*> GetNavigableAtPoint(int32_t x, int32_t y, uint32_t coordinateType); DBus::ValueOrError<Dali::Accessibility::Accessible*, uint8_t> GetNeighbor(std::string root_path, int32_t direction, int32_t search_mode); DBus::ValueOrError<Dali::Accessibility::Accessible*, uint32_t, std::unordered_map<std::string, std::string>> GetDefaultLabelInfo(); using ReadingMaterialType = DBus::ValueOrError< @@ -100,7 +100,7 @@ private: Dali::Accessibility::Accessible* GetCurrentlyHighlighted(); Dali::Accessibility::Accessible* DirectionalDepthFirstSearchTryNonDefunctSibling(bool& all_children_visited, Dali::Accessibility::Accessible* node, Dali::Accessibility::Accessible* start, Dali::Accessibility::Accessible* root, unsigned char forward); Dali::Accessibility::Accessible* GetNextNonDefunctSibling(Dali::Accessibility::Accessible* obj, Dali::Accessibility::Accessible* start, Dali::Accessibility::Accessible* root, unsigned char forward); - Dali::Accessibility::Component* CalculateNavigableAccessibleAtPoint(Dali::Accessibility::Accessible* root, Dali::Accessibility::Point p, Dali::Accessibility::CoordType cType, unsigned int maxRecursionDepth); + Dali::Accessibility::Component* CalculateNavigableAccessibleAtPoint(Dali::Accessibility::Accessible* root, Dali::Accessibility::Point p, Dali::Accessibility::CoordinateType type, unsigned int maxRecursionDepth); Dali::Accessibility::Component* GetObjectInRelation(Dali::Accessibility::Accessible* obj, Dali::Accessibility::RelationType ralationType); }; diff --git a/dali/internal/accessibility/bridge/bridge-base.cpp b/dali/internal/accessibility/bridge/bridge-base.cpp index 3c1ca0bdf..1e47300d1 100644 --- a/dali/internal/accessibility/bridge/bridge-base.cpp +++ b/dali/internal/accessibility/bridge/bridge-base.cpp @@ -126,7 +126,7 @@ BridgeBase::ForceUpResult BridgeBase::ForceUp() } con = DBusWrapper::Installed()->eldbus_address_connection_get_impl(std::get<0>(addr)); - data->busName = DBus::getConnectionName(con); + mData->mBusName = DBus::getConnectionName(con); dbusServer = {con}; { @@ -166,7 +166,7 @@ void BridgeBase::ForceDown() const std::string& BridgeBase::GetBusName() const { static std::string empty; - return data ? data->busName : empty; + return mData ? mData->mBusName : empty; } Accessible* BridgeBase::FindByPath(const std::string& name) const @@ -181,22 +181,22 @@ Accessible* BridgeBase::FindByPath(const std::string& name) const } } -void BridgeBase::AddPopup(Accessible* obj) +void BridgeBase::AddPopup(Accessible* object) { - if(std::find(popups.begin(), popups.end(), obj) != popups.end()) + if(std::find(popups.begin(), popups.end(), object) != popups.end()) { return; } - popups.push_back(obj); + popups.push_back(object); if(IsUp()) { - obj->Emit(WindowEvent::ACTIVATE, 0); + object->Emit(WindowEvent::ACTIVATE, 0); } } -void BridgeBase::RemovePopup(Accessible* obj) +void BridgeBase::RemovePopup(Accessible* object) { - auto it = std::find(popups.begin(), popups.end(), obj); + auto it = std::find(popups.begin(), popups.end(), object); if(it == popups.end()) { return; @@ -204,7 +204,7 @@ void BridgeBase::RemovePopup(Accessible* obj) popups.erase(it); if(IsUp()) { - obj->Emit(WindowEvent::DEACTIVATE, 0); + object->Emit(WindowEvent::DEACTIVATE, 0); if(popups.empty()) { application.children.back()->Emit(WindowEvent::ACTIVATE, 0); @@ -246,43 +246,46 @@ Accessible* BridgeBase::Find(const std::string& path) const { return &application; } - void* p; + + void* accessible; std::istringstream tmp{path}; - if(!(tmp >> p)) + if(!(tmp >> accessible)) { throw std::domain_error{"invalid path '" + path + "'"}; } - auto it = data->knownObjects.find(static_cast<Accessible*>(p)); - if(it == data->knownObjects.end()) + + auto it = mData->mKnownObjects.find(static_cast<Accessible*>(accessible)); + if(it == mData->mKnownObjects.end()) { throw std::domain_error{"unknown object '" + path + "'"}; } - return static_cast<Accessible*>(p); + + return static_cast<Accessible*>(accessible); } Accessible* BridgeBase::Find(const Address& ptr) const { - assert(ptr.GetBus() == data->busName); + assert(ptr.GetBus() == mData->mBusName); return Find(ptr.GetPath()); } Accessible* BridgeBase::FindSelf() const { - auto pth = DBus::DBusServer::getCurrentObjectPath(); + auto path = DBus::DBusServer::getCurrentObjectPath(); auto size = strlen(AtspiPath); - if(pth.size() <= size) + if(path.size() <= size) { - throw std::domain_error{"invalid path '" + pth + "'"}; + throw std::domain_error{"invalid path '" + path + "'"}; } - if(pth.substr(0, size) != AtspiPath) + if(path.substr(0, size) != AtspiPath) { - throw std::domain_error{"invalid path '" + pth + "'"}; + throw std::domain_error{"invalid path '" + path + "'"}; } - if(pth[size] != '/') + if(path[size] != '/') { - throw std::domain_error{"invalid path '" + pth + "'"}; + throw std::domain_error{"invalid path '" + path + "'"}; } - return Find(StripPrefix(pth)); + return Find(StripPrefix(path)); } void BridgeBase::IdSet(int id) diff --git a/dali/internal/accessibility/bridge/bridge-base.h b/dali/internal/accessibility/bridge/bridge-base.h index ea6c746b2..fa46045b8 100644 --- a/dali/internal/accessibility/bridge/bridge-base.h +++ b/dali/internal/accessibility/bridge/bridge-base.h @@ -130,8 +130,8 @@ public: const std::string& GetBusName() const override; void AddTopLevelWindow(Dali::Accessibility::Accessible* window) override; void RemoveTopLevelWindow(Dali::Accessibility::Accessible* window) override; - void AddPopup(Dali::Accessibility::Accessible*) override; - void RemovePopup(Dali::Accessibility::Accessible*) override; + void AddPopup(Dali::Accessibility::Accessible* object) override; + void RemovePopup(Dali::Accessibility::Accessible* object) override; Dali::Accessibility::Accessible* GetApplication() const override { diff --git a/dali/internal/accessibility/bridge/bridge-component.cpp b/dali/internal/accessibility/bridge/bridge-component.cpp index bd85a23fd..d373bcf35 100644 --- a/dali/internal/accessibility/bridge/bridge-component.cpp +++ b/dali/internal/accessibility/bridge/bridge-component.cpp @@ -31,8 +31,12 @@ BridgeComponent::BridgeComponent() void BridgeComponent::RegisterInterfaces() { + // The second arguments below are the names (or signatures) of DBus methods. + // Screen Reader will call the methods with the exact names as specified in the AT-SPI Component interface: + // https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/master/xml/Component.xml + DBus::DBusInterfaceDescription desc{AtspiDbusInterfaceComponent}; - AddFunctionToInterface(desc, "Contains", &BridgeComponent::Contains); + AddFunctionToInterface(desc, "Contains", &BridgeComponent::IsAccessibleContainedAtPoint); AddFunctionToInterface(desc, "GetAccessibleAtPoint", &BridgeComponent::GetAccessibleAtPoint); AddFunctionToInterface(desc, "GetExtents", &BridgeComponent::GetExtents); AddFunctionToInterface(desc, "GetPosition", &BridgeComponent::GetPosition); @@ -56,27 +60,27 @@ Component* BridgeComponent::FindSelf() const return s2; } -DBus::ValueOrError<bool> BridgeComponent::Contains(int32_t x, int32_t y, uint32_t coordType) +DBus::ValueOrError<bool> BridgeComponent::IsAccessibleContainedAtPoint(int32_t x, int32_t y, uint32_t coordType) { - return FindSelf()->Contains({x, y}, static_cast<CoordType>(coordType)); + return FindSelf()->IsAccessibleContainedAtPoint({x, y}, static_cast<CoordinateType>(coordType)); } DBus::ValueOrError<Accessible*> BridgeComponent::GetAccessibleAtPoint(int32_t x, int32_t y, uint32_t coordType) { - return FindSelf()->GetAccessibleAtPoint({x, y}, static_cast<CoordType>(coordType)); + return FindSelf()->GetAccessibleAtPoint({x, y}, static_cast<CoordinateType>(coordType)); } DBus::ValueOrError<std::tuple<int32_t, int32_t, int32_t, int32_t> > BridgeComponent::GetExtents(uint32_t coordType) { - auto p = FindSelf()->GetExtents(static_cast<CoordType>(coordType)); + auto p = FindSelf()->GetExtents(static_cast<CoordinateType>(coordType)); return std::tuple<int32_t, int32_t, int32_t, int32_t>{p.x, p.y, p.width, p.height}; } DBus::ValueOrError<int32_t, int32_t> BridgeComponent::GetPosition(uint32_t coordType) { - auto p = FindSelf()->GetExtents(static_cast<CoordType>(coordType)); + auto p = FindSelf()->GetExtents(static_cast<CoordinateType>(coordType)); return {static_cast<int32_t>(p.x), static_cast<int32_t>(p.y)}; } DBus::ValueOrError<int32_t, int32_t> BridgeComponent::GetSize(uint32_t coordType) { - auto p = FindSelf()->GetExtents(static_cast<CoordType>(coordType)); + auto p = FindSelf()->GetExtents(static_cast<CoordinateType>(coordType)); return {static_cast<int32_t>(p.width), static_cast<int32_t>(p.height)}; } DBus::ValueOrError<ComponentLayer> BridgeComponent::GetLayer() diff --git a/dali/internal/accessibility/bridge/bridge-component.h b/dali/internal/accessibility/bridge/bridge-component.h index f07314829..423184361 100644 --- a/dali/internal/accessibility/bridge/bridge-component.h +++ b/dali/internal/accessibility/bridge/bridge-component.h @@ -38,7 +38,7 @@ protected: Dali::Accessibility::Component* FindSelf() const; public: - DBus::ValueOrError<bool> Contains(int32_t x, int32_t y, uint32_t coordType); + DBus::ValueOrError<bool> IsAccessibleContainedAtPoint(int32_t x, int32_t y, uint32_t coordType); DBus::ValueOrError<Dali::Accessibility::Accessible*> GetAccessibleAtPoint(int32_t x, int32_t y, uint32_t coordType); DBus::ValueOrError<std::tuple<int32_t, int32_t, int32_t, int32_t> > GetExtents(uint32_t coordType); DBus::ValueOrError<int32_t, int32_t> GetPosition(uint32_t coordType); diff --git a/dali/internal/accessibility/bridge/bridge-impl.cpp b/dali/internal/accessibility/bridge/bridge-impl.cpp index 80b3fb472..11c580e4c 100644 --- a/dali/internal/accessibility/bridge/bridge-impl.cpp +++ b/dali/internal/accessibility/bridge/bridge-impl.cpp @@ -99,18 +99,18 @@ public: return Consumed::NO; } - unsigned int evType = 0; + unsigned int keyType = 0; switch(type) { case KeyEventType::KEY_PRESSED: { - evType = 0; + keyType = 0; break; } case KeyEventType::KEY_RELEASED: { - evType = 1; + keyType = 1; break; } default: @@ -119,7 +119,7 @@ public: } } auto m = registryClient.method<bool(std::tuple<uint32_t, int32_t, int32_t, int32_t, int32_t, std::string, bool>)>("NotifyListenersSync"); - auto result = m.call(std::tuple<uint32_t, int32_t, int32_t, int32_t, int32_t, std::string, bool>{evType, 0, static_cast<int32_t>(keyCode), 0, static_cast<int32_t>(timeStamp), keyName, isText ? 1 : 0}); + auto result = m.call(std::tuple<uint32_t, int32_t, int32_t, int32_t, int32_t, std::string, bool>{keyType, 0, static_cast<int32_t>(keyCode), 0, static_cast<int32_t>(timeStamp), keyName, isText ? 1 : 0}); if(!result) { LOG() << result.getError().message; @@ -199,14 +199,14 @@ public: void ForceDown() override { - if(data) + if(mData) { - if(data->currentlyHighlightedActor && data->highlightActor) + if(mData->mCurrentlyHighlightedActor && mData->mHighlightActor) { - data->currentlyHighlightedActor.Remove(data->highlightActor); + mData->mCurrentlyHighlightedActor.Remove(mData->mHighlightActor); } - data->currentlyHighlightedActor = {}; - data->highlightActor = {}; + mData->mCurrentlyHighlightedActor = {}; + mData->mHighlightActor = {}; } highlightedActor = {}; highlightClearAction = {}; @@ -218,10 +218,10 @@ public: void Terminate() override { - if(data) + if(mData) { - data->currentlyHighlightedActor = {}; - data->highlightActor = {}; + mData->mCurrentlyHighlightedActor = {}; + mData->mHighlightActor = {}; } ForceDown(); listenOnAtspiEnabledSignalClient = {}; @@ -314,17 +314,19 @@ public: void Initialize() override { - auto req = DBus::DBusClient{A11yDbusName, A11yDbusPath, A11yDbusStatusInterface, DBus::ConnectionType::SESSION}; - auto p = req.property<bool>("ScreenReaderEnabled").get(); - if(p) + auto dbusClient = DBus::DBusClient{A11yDbusName, A11yDbusPath, A11yDbusStatusInterface, DBus::ConnectionType::SESSION}; + auto enabled = dbusClient.property<bool>("ScreenReaderEnabled").get(); + if(enabled) { - screenReaderEnabled = std::get<0>(p); + screenReaderEnabled = std::get<0>(enabled); } - p = req.property<bool>("IsEnabled").get(); - if(p) + + enabled = dbusClient.property<bool>("IsEnabled").get(); + if(enabled) { - isEnabled = std::get<0>(p); + isEnabled = std::get<0>(enabled); } + if(screenReaderEnabled || isEnabled) { ForceUp(); @@ -336,7 +338,7 @@ public: return screenReaderEnabled; } - bool GetIsEnabled() + bool IsEnabled() { return isEnabled; } diff --git a/dali/internal/accessibility/bridge/bridge-object.cpp b/dali/internal/accessibility/bridge/bridge-object.cpp index 06bb80d0a..a0c157d3c 100644 --- a/dali/internal/accessibility/bridge/bridge-object.cpp +++ b/dali/internal/accessibility/bridge/bridge-object.cpp @@ -111,11 +111,11 @@ void BridgeObject::Emit(Accessible* obj, Dali::Accessibility::ObjectPropertyChan } } -void BridgeObject::Emit(Accessible* obj, WindowEvent we, unsigned int detail1) +void BridgeObject::Emit(Accessible* obj, WindowEvent event, unsigned int detail) { if(!IsUp()) return; const char* name = nullptr; - switch(we) + switch(event) { case WindowEvent::PROPERTY_CHANGE: { @@ -226,14 +226,14 @@ void BridgeObject::Emit(Accessible* obj, WindowEvent we, unsigned int detail1) AtspiDbusInterfaceEventWindow, name, "", - detail1, + detail, 0, {0}, {"", "root"}); } } -void BridgeObject::EmitStateChanged(Accessible* obj, State state, int newValue1, int newValue2) +void BridgeObject::EmitStateChanged(Accessible* obj, State state, int newValue, int reserved) { if(!IsUp()) return; const char* stateName = nullptr; @@ -487,8 +487,8 @@ void BridgeObject::EmitStateChanged(Accessible* obj, State state, int newValue1, AtspiDbusInterfaceEventObject, "StateChanged", stateName, - newValue1, - newValue2, + newValue, + reserved, {0}, {"", "root"}); } @@ -521,7 +521,7 @@ void BridgeObject::EmitBoundsChanged(Accessible* obj, Dali::Rect<> rect) }); } -void BridgeObject::EmitCaretMoved(Accessible* obj, unsigned int cursorPosition) +void BridgeObject::EmitCursorMoved(Accessible* obj, unsigned int cursorPosition) { auto addr = obj->GetAddress(); std::string p = addr ? ATSPI_PREFIX_PATH + addr.GetPath() : ATSPI_NULL_PATH; diff --git a/dali/internal/accessibility/bridge/bridge-object.h b/dali/internal/accessibility/bridge/bridge-object.h index d2b980d2e..f836c205e 100644 --- a/dali/internal/accessibility/bridge/bridge-object.h +++ b/dali/internal/accessibility/bridge/bridge-object.h @@ -38,10 +38,10 @@ protected: DBus::DBusInterfaceDescription::SignalId stateChanged; void EmitActiveDescendantChanged(Dali::Accessibility::Accessible* obj, Dali::Accessibility::Accessible* child) override; - void EmitCaretMoved(Dali::Accessibility::Accessible* obj, unsigned int cursorPosition) override; + void EmitCursorMoved(Dali::Accessibility::Accessible* obj, unsigned int cursorPosition) override; void EmitTextChanged(Dali::Accessibility::Accessible* obj, Dali::Accessibility::TextChangedState state, unsigned int position, unsigned int length, const std::string& content) override; - void EmitStateChanged(Dali::Accessibility::Accessible* obj, Dali::Accessibility::State state, int val1, int val2) override; - void Emit(Dali::Accessibility::Accessible* obj, Dali::Accessibility::WindowEvent we, unsigned int detail1) override; + void EmitStateChanged(Dali::Accessibility::Accessible* obj, Dali::Accessibility::State state, int newValue, int reserved) override; + void Emit(Dali::Accessibility::Accessible* obj, Dali::Accessibility::WindowEvent event, unsigned int detail) override; void Emit(Dali::Accessibility::Accessible* obj, Dali::Accessibility::ObjectPropertyChangeEvent we) override; void EmitBoundsChanged(Dali::Accessibility::Accessible* obj, Dali::Rect<> rect) override; }; diff --git a/dali/internal/accessibility/bridge/bridge-text.cpp b/dali/internal/accessibility/bridge/bridge-text.cpp index 8bcd27715..9ca694c11 100644 --- a/dali/internal/accessibility/bridge/bridge-text.cpp +++ b/dali/internal/accessibility/bridge/bridge-text.cpp @@ -25,26 +25,32 @@ using namespace Dali::Accessibility; void BridgeText::RegisterInterfaces() { + // The second arguments below are the names (or signatures) of DBus methods. + // Screen Reader will call the methods with the exact names as specified in the AT-SPI Text interface: + // https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/master/xml/Text.xml + DBus::DBusInterfaceDescription desc{AtspiDbusInterfaceText}; AddFunctionToInterface(desc, "GetText", &BridgeText::GetText); AddGetPropertyToInterface(desc, "CharacterCount", &BridgeText::GetCharacterCount); - AddGetPropertyToInterface(desc, "CaretOffset", &BridgeText::GetCaretOffset); - AddFunctionToInterface(desc, "SetCaretOffset", &BridgeText::SetCaretOffset); + AddGetPropertyToInterface(desc, "CaretOffset", &BridgeText::GetCursorOffset); + AddFunctionToInterface(desc, "SetCaretOffset", &BridgeText::SetCursorOffset); AddFunctionToInterface(desc, "GetTextAtOffset", &BridgeText::GetTextAtOffset); - AddFunctionToInterface(desc, "GetSelection", &BridgeText::GetSelection); - AddFunctionToInterface(desc, "SetSelection", &BridgeText::SetSelection); + AddFunctionToInterface(desc, "GetSelection", &BridgeText::GetRangeOfSelection); + AddFunctionToInterface(desc, "SetSelection", &BridgeText::SetRangeOfSelection); AddFunctionToInterface(desc, "RemoveSelection", &BridgeText::RemoveSelection); dbusServer.addInterface("/", desc, true); } Text* BridgeText::FindSelf() const { - auto s = BridgeBase::FindSelf(); - assert(s); - auto s2 = dynamic_cast<Text*>(s); - if(!s2) - throw std::domain_error{"object " + s->GetAddress().ToString() + " doesn't have Text interface"}; - return s2; + auto self = BridgeBase::FindSelf(); + assert(self); + auto textObject = dynamic_cast<Text*>(self); + if(!textObject) + { + throw std::domain_error{"object " + textObject->GetAddress().ToString() + " doesn't have Text interface"}; + } + return textObject; } DBus::ValueOrError<std::string> BridgeText::GetText(int startOffset, int endOffset) @@ -57,26 +63,26 @@ DBus::ValueOrError<int32_t> BridgeText::GetCharacterCount() return FindSelf()->GetCharacterCount(); } -DBus::ValueOrError<int32_t> BridgeText::GetCaretOffset() +DBus::ValueOrError<int32_t> BridgeText::GetCursorOffset() { - return FindSelf()->GetCaretOffset(); + return FindSelf()->GetCursorOffset(); } -DBus::ValueOrError<bool> BridgeText::SetCaretOffset(int32_t offset) +DBus::ValueOrError<bool> BridgeText::SetCursorOffset(int32_t offset) { - return FindSelf()->SetCaretOffset(offset); + return FindSelf()->SetCursorOffset(offset); } DBus::ValueOrError<std::string, int, int> BridgeText::GetTextAtOffset(int32_t offset, uint32_t boundary) { - auto r = FindSelf()->GetTextAtOffset(offset, static_cast<TextBoundary>(boundary)); - return {r.content, static_cast<int>(r.startOffset), static_cast<int>(r.endOffset)}; + auto range = FindSelf()->GetTextAtOffset(offset, static_cast<TextBoundary>(boundary)); + return {range.content, static_cast<int>(range.startOffset), static_cast<int>(range.endOffset)}; } -DBus::ValueOrError<int, int> BridgeText::GetSelection(int32_t selectionNum) +DBus::ValueOrError<int, int> BridgeText::GetRangeOfSelection(int32_t selectionNum) { - auto r = FindSelf()->GetSelection(selectionNum); - return {static_cast<int>(r.startOffset), static_cast<int>(r.endOffset)}; + auto range = FindSelf()->GetRangeOfSelection(selectionNum); + return {static_cast<int>(range.startOffset), static_cast<int>(range.endOffset)}; } DBus::ValueOrError<bool> BridgeText::RemoveSelection(int32_t selectionNum) @@ -84,7 +90,7 @@ DBus::ValueOrError<bool> BridgeText::RemoveSelection(int32_t selectionNum) return FindSelf()->RemoveSelection(selectionNum); } -DBus::ValueOrError<bool> BridgeText::SetSelection(int32_t selectionNum, int32_t startOffset, int32_t endOffset) +DBus::ValueOrError<bool> BridgeText::SetRangeOfSelection(int32_t selectionNum, int32_t startOffset, int32_t endOffset) { - return FindSelf()->SetSelection(selectionNum, startOffset, endOffset); + return FindSelf()->SetRangeOfSelection(selectionNum, startOffset, endOffset); } diff --git a/dali/internal/accessibility/bridge/bridge-text.h b/dali/internal/accessibility/bridge/bridge-text.h index 7618b2830..86c33d2b6 100644 --- a/dali/internal/accessibility/bridge/bridge-text.h +++ b/dali/internal/accessibility/bridge/bridge-text.h @@ -33,12 +33,12 @@ protected: public: DBus::ValueOrError<std::string> GetText(int startOffset, int endOffset); DBus::ValueOrError<int32_t> GetCharacterCount(); - DBus::ValueOrError<int32_t> GetCaretOffset(); - DBus::ValueOrError<bool> SetCaretOffset(int32_t offset); + DBus::ValueOrError<int32_t> GetCursorOffset(); + DBus::ValueOrError<bool> SetCursorOffset(int32_t offset); DBus::ValueOrError<std::string, int, int> GetTextAtOffset(int32_t offset, uint32_t boundary); - DBus::ValueOrError<int, int> GetSelection(int32_t selectionNum); + DBus::ValueOrError<int, int> GetRangeOfSelection(int32_t selectionNum); DBus::ValueOrError<bool> RemoveSelection(int32_t selectionNum); - DBus::ValueOrError<bool> SetSelection(int32_t selectionNum, int32_t startOffset, int32_t endOffset); + DBus::ValueOrError<bool> SetRangeOfSelection(int32_t selectionNum, int32_t startOffset, int32_t endOffset); }; #endif // DALI_INTERNAL_ACCESSIBILITY_BRIDGE_TEXT_H diff --git a/dali/internal/accessibility/bridge/component.cpp b/dali/internal/accessibility/bridge/component.cpp index 7e85d568c..a94df8616 100644 --- a/dali/internal/accessibility/bridge/component.cpp +++ b/dali/internal/accessibility/bridge/component.cpp @@ -25,19 +25,19 @@ using namespace Dali::Accessibility; -bool Component::Contains(Point p, CoordType ctype) +bool Component::IsAccessibleContainedAtPoint(Point point, Dali::Accessibility::CoordinateType type) { - auto extents = GetExtents(ctype); - return p.x >= extents.x && p.y >= extents.y && p.x <= extents.x + extents.width && p.y <= extents.y + extents.height; + auto extents = GetExtents(type); + return point.x >= extents.x && point.y >= extents.y && point.x <= extents.x + extents.width && point.y <= extents.y + extents.height; } -Accessible* Component::GetAccessibleAtPoint(Point p, CoordType ctype) +Accessible* Component::GetAccessibleAtPoint(Point point, Dali::Accessibility::CoordinateType type) { auto children = GetChildren(); for(auto childIt = children.rbegin(); childIt != children.rend(); childIt++) { auto component = dynamic_cast<Component*>(*childIt); - if(component && component->Contains(p, ctype)) + if(component && component->IsAccessibleContainedAtPoint(point, type)) { return component; } diff --git a/dali/internal/accessibility/bridge/dummy-atspi.cpp b/dali/internal/accessibility/bridge/dummy-atspi.cpp index 71cdb5e9d..716a2e72c 100644 --- a/dali/internal/accessibility/bridge/dummy-atspi.cpp +++ b/dali/internal/accessibility/bridge/dummy-atspi.cpp @@ -59,12 +59,12 @@ bool Accessibility::Component::IsScrollable() return false; } -bool Accessibility::Component::Contains(Point p, CoordType ctype) +bool Accessibility::Component::IsAccessibleContainedAtPoint(Point point, CoordinateType type) { return false; } -Accessibility::Accessible* Accessibility::Component::GetAccessibleAtPoint(Accessibility::Point p, Accessibility::CoordType ctype) +Accessibility::Accessible* Accessibility::Component::GetAccessibleAtPoint(Accessibility::Point p, Accessibility::CoordinateType ctype) { return nullptr; } @@ -82,7 +82,7 @@ void Accessibility::Bridge::EnableAutoInit() { } -void Accessibility::Accessible::EmitStateChanged(Accessibility::State state, int newValue1, int newValue2) +void Accessibility::Accessible::EmitStateChanged(Accessibility::State state, int newValue, int reserved) { } @@ -118,7 +118,7 @@ void Accessibility::Accessible::EmitTextDeleted(unsigned int position, unsigned { } -void Accessibility::Accessible::EmitTextCaretMoved(unsigned int cursorPosition) +void Accessibility::Accessible::EmitTextCursorMoved(unsigned int cursorPosition) { } @@ -126,15 +126,15 @@ void Accessibility::Accessible::EmitActiveDescendantChanged(Accessibility::Acces { } -void Accessibility::Accessible::FindWordSeparationsUtf8(const utf8_t* s, size_t length, const char* language, char* breaks) +void Accessibility::Accessible::FindWordSeparationsUtf8(const utf8_t* string, size_t length, const char* language, char* breaks) { } -void Accessibility::Accessible::FindLineSeparationsUtf8(const utf8_t* s, size_t length, const char* language, char* breaks) +void Accessibility::Accessible::FindLineSeparationsUtf8(const utf8_t* string, size_t length, const char* language, char* breaks) { } -void Accessibility::Accessible::NotifyAccessibilityStateChange(Accessibility::States states, bool doRecursive) +void Accessibility::Accessible::NotifyAccessibilityStateChange(Accessibility::States states, bool isRecursive) { } diff --git a/dali/internal/accessibility/bridge/dummy-atspi.h b/dali/internal/accessibility/bridge/dummy-atspi.h index bf935530e..f48e878a4 100644 --- a/dali/internal/accessibility/bridge/dummy-atspi.h +++ b/dali/internal/accessibility/bridge/dummy-atspi.h @@ -35,23 +35,23 @@ struct DummyBridge : Dali::Accessibility::Bridge return name; } - void AddTopLevelWindow(Accessibility::Accessible*) override + void AddTopLevelWindow(Accessibility::Accessible* object) override { } - void RemoveTopLevelWindow(Accessibility::Accessible*) override + void RemoveTopLevelWindow(Accessibility::Accessible* object) override { } - void AddPopup(Accessibility::Accessible*) override + void AddPopup(Accessibility::Accessible* object) override { } - void RemovePopup(Accessibility::Accessible*) override + void RemovePopup(Accessibility::Accessible* object) override { } - void SetApplicationName(std::string) override + void SetApplicationName(std::string name) override { } @@ -60,7 +60,7 @@ struct DummyBridge : Dali::Accessibility::Bridge return nullptr; } - Accessibility::Accessible* FindByPath(const std::string& s) const override + Accessibility::Accessible* FindByPath(const std::string& path) const override { return nullptr; } @@ -90,7 +90,7 @@ struct DummyBridge : Dali::Accessibility::Bridge { } - void EmitCaretMoved(Accessibility::Accessible* obj, unsigned int cursorPosition) override + void EmitCursorMoved(Accessibility::Accessible* obj, unsigned int cursorPosition) override { } @@ -102,11 +102,11 @@ struct DummyBridge : Dali::Accessibility::Bridge { } - void EmitStateChanged(Accessibility::Accessible* obj, Accessibility::State state, int val1, int val2) override + void EmitStateChanged(Accessibility::Accessible* obj, Accessibility::State state, int newValue, int reserved) override { } - void Emit(Accessibility::Accessible* obj, Accessibility::WindowEvent we, unsigned int detail1) override + void Emit(Accessibility::Accessible* obj, Accessibility::WindowEvent event, unsigned int detail) override { } @@ -148,7 +148,7 @@ struct DummyBridge : Dali::Accessibility::Bridge return false; } - bool GetIsEnabled() override + bool IsEnabled() override { return false; } diff --git a/dali/internal/adaptor/common/adaptor-impl.cpp b/dali/internal/adaptor/common/adaptor-impl.cpp index c849f93bf..6338359af 100644 --- a/dali/internal/adaptor/common/adaptor-impl.cpp +++ b/dali/internal/adaptor/common/adaptor-impl.cpp @@ -308,7 +308,7 @@ void Adaptor::Initialize(GraphicsFactory& graphicsFactory) auto bridge = Accessibility::Bridge::GetCurrentBridge(); bridge->SetApplicationName(appName); bridge->Initialize(); - Dali::Stage::GetCurrent().KeyEventSignal().Connect(&accessibilityObserver, &AccessibilityObserver::OnAccessibleKeyEvent); + Dali::Stage::GetCurrent().KeyEventSignal().Connect(&mAccessibilityObserver, &AccessibilityObserver::OnAccessibleKeyEvent); } void Adaptor::AccessibilityObserver::OnAccessibleKeyEvent(const Dali::KeyEvent& event) diff --git a/dali/internal/adaptor/common/adaptor-impl.h b/dali/internal/adaptor/common/adaptor-impl.h index b69ad05e7..331ab9a3c 100644 --- a/dali/internal/adaptor/common/adaptor-impl.h +++ b/dali/internal/adaptor/common/adaptor-impl.h @@ -691,7 +691,7 @@ private: // Data public: void OnAccessibleKeyEvent(const Dali::KeyEvent& event); }; - AccessibilityObserver accessibilityObserver; + AccessibilityObserver mAccessibilityObserver; public: inline static Adaptor& GetImplementation(Dali::Adaptor& adaptor) diff --git a/dali/internal/window-system/common/window-impl.cpp b/dali/internal/window-system/common/window-impl.cpp index 0aa1cb17d..44f8b66bf 100644 --- a/dali/internal/window-system/common/window-impl.cpp +++ b/dali/internal/window-system/common/window-impl.cpp @@ -100,8 +100,8 @@ Window::~Window() if(mAdaptor) { auto bridge = Accessibility::Bridge::GetCurrentBridge(); - auto accessible2 = mScene.GetRootLayer(); - auto accessible = Accessibility::Accessible::Get(accessible2); + auto rootLayer = mScene.GetRootLayer(); + auto accessible = Accessibility::Accessible::Get(rootLayer); bridge->RemoveTopLevelWindow(accessible); mAdaptor->RemoveWindow(this); @@ -171,8 +171,8 @@ void Window::OnAdaptorSet(Dali::Adaptor& adaptor) mEventHandler->AddObserver(*this); auto bridge = Accessibility::Bridge::GetCurrentBridge(); - auto v = mScene.GetRootLayer(); - auto accessible = Accessibility::Accessible::Get(v, true); + auto rootLayer = mScene.GetRootLayer(); + auto accessible = Accessibility::Accessible::Get(rootLayer, true); bridge->AddTopLevelWindow(accessible); // If you call the 'Show' before creating the adaptor, the application cannot know the app resource id. @@ -746,15 +746,15 @@ void Window::OnFocusChanged(bool focusIn) mSurface->SetFullSwapNextFrame(); - if(auto b = Dali::Accessibility::Bridge::GetCurrentBridge()) + if(auto bridge = Dali::Accessibility::Bridge::GetCurrentBridge()) { if(focusIn) { - b->ApplicationShown(); + bridge->ApplicationShown(); } else { - b->ApplicationHidden(); + bridge->ApplicationHidden(); } } } |