diff options
author | Artur Świgoń <a.swigon@samsung.com> | 2022-04-21 17:12:57 +0200 |
---|---|---|
committer | Artur Świgoń <a.swigon@samsung.com> | 2022-07-07 17:44:09 +0200 |
commit | 6d8848873388f6a187ced9473e12e4f77ca9684c (patch) | |
tree | f1e5ccd86323be84045fc7890e5329f8518a1b99 /dali/internal/accessibility/bridge | |
parent | dc60601c7426f0a10aefae793ecfdb6b5355a9ba (diff) | |
download | dali-adaptor-6d8848873388f6a187ced9473e12e4f77ca9684c.tar.gz dali-adaptor-6d8848873388f6a187ced9473e12e4f77ca9684c.tar.bz2 dali-adaptor-6d8848873388f6a187ced9473e12e4f77ca9684c.zip |
[AT-SPI] Implement Socket in ApplicationAccessible
The ApplicationAccessible needs to expose the Socket interface in order
to be embeddable in a remote process (the WidgetView).
Change-Id: I1141749d8cb64038157c46a3e295abdc09c2c299
Diffstat (limited to 'dali/internal/accessibility/bridge')
-rw-r--r-- | dali/internal/accessibility/bridge/bridge-base.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/dali/internal/accessibility/bridge/bridge-base.h b/dali/internal/accessibility/bridge/bridge-base.h index 2449842c0..1db8cc45a 100644 --- a/dali/internal/accessibility/bridge/bridge-base.h +++ b/dali/internal/accessibility/bridge/bridge-base.h @@ -30,18 +30,23 @@ #include <dali/devel-api/atspi-interfaces/accessible.h> #include <dali/devel-api/atspi-interfaces/application.h> #include <dali/devel-api/atspi-interfaces/collection.h> +#include <dali/devel-api/atspi-interfaces/socket.h> #include <dali/internal/accessibility/bridge/accessibility-common.h> /** * @brief The ApplicationAccessible class is to define Accessibility Application. */ -class ApplicationAccessible : public virtual Dali::Accessibility::Accessible, public virtual Dali::Accessibility::Collection, public virtual Dali::Accessibility::Application +class ApplicationAccessible : public virtual Dali::Accessibility::Accessible, + public virtual Dali::Accessibility::Application, + public virtual Dali::Accessibility::Collection, + public virtual Dali::Accessibility::Socket { public: Dali::Accessibility::ProxyAccessible mParent; std::vector<Dali::Accessibility::Accessible*> mChildren; std::string mName; std::string mToolkitName{"dali"}; + bool mIsEmbedded{false}; std::string GetName() const override { @@ -80,6 +85,11 @@ public: size_t GetIndexInParent() override { + if(mIsEmbedded) + { + return 0u; + } + throw std::domain_error{"can't call GetIndexInParent on application object"}; } @@ -156,6 +166,23 @@ public: { return std::to_string(Dali::ADAPTOR_MAJOR_VERSION) + "." + std::to_string(Dali::ADAPTOR_MINOR_VERSION); } + + Dali::Accessibility::Address Embed(Dali::Accessibility::Address plug) override + { + mIsEmbedded = true; + mParent.SetAddress(plug); + + return GetAddress(); + } + + void Unembed(Dali::Accessibility::Address plug) override + { + if(mParent.GetAddress() == plug) + { + mIsEmbedded = false; + mParent.SetAddress({}); + } + } }; /** |