1 #ifndef DALI_ADAPTOR_ACTOR_ACCESSIBLE_H
2 #define DALI_ADAPTOR_ACTOR_ACCESSIBLE_H
5 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
21 #include <dali/public-api/actors/actor.h>
22 #include <dali/public-api/object/weak-handle.h>
25 #include <dali/devel-api/atspi-interfaces/accessible.h>
26 #include <dali/devel-api/atspi-interfaces/collection.h>
27 #include <dali/devel-api/atspi-interfaces/component.h>
29 namespace Dali::Accessibility
31 class DALI_ADAPTOR_API ActorAccessible : public virtual Accessible, public virtual Collection, public virtual Component
34 ActorAccessible() = delete;
36 ActorAccessible(Actor actor);
39 * @copydoc Dali::Accessibility::Accessible::GetName()
41 std::string GetName() const override;
44 * @copydoc Dali::Accessibility::Accessible::GetDescription()
46 std::string GetDescription() const override;
49 * @copydoc Dali::Accessibility::Accessible::GetParent()
51 Accessible* GetParent() override;
54 * @copydoc Dali::Accessibility::Accessible::GetChildCount()
56 std::size_t GetChildCount() const override;
59 * @copydoc Dali::Accessibility::Accessible::GetChildren()
61 std::vector<Accessible*> GetChildren() override;
64 * @copydoc Dali::Accessibility::Accessible::GetChildAtIndex()
66 Accessible* GetChildAtIndex(std::size_t index) override;
69 * @copydoc Dali::Accessibility::Accessible::GetIndexInParent()
71 std::size_t GetIndexInParent() override;
74 * @copydoc Dali::Accessibility::Accessible::GetInternalActor()
76 Dali::Actor GetInternalActor() override;
79 * @copydoc Dali::Accessibility::Component::GetLayer()
81 ComponentLayer GetLayer() const override;
84 * @copydoc Dali::Accessibility::Component::GetMdiZOrder()
86 std::int16_t GetMdiZOrder() const override;
89 * @copydoc Dali::Accessibility::Component::GetAlpha()
91 double GetAlpha() const override;
94 * @copydoc Dali::Accessibility::Component::IsScrollable()
96 bool IsScrollable() const override;
99 * @copydoc Dali::Accessibility::Component::GetExtents()
101 Dali::Rect<> GetExtents(CoordinateType type) const override;
104 Dali::Actor Self() const
106 auto handle = mSelf.GetHandle();
108 // It is a bug if the Accessible outlives its Actor
109 DALI_ASSERT_ALWAYS(handle);
115 Dali::WeakHandle<Dali::Actor> mSelf;
118 } // namespace Dali::Accessibility
120 #endif // DALI_ADAPTOR_ACTOR_ACCESSIBLE_H