1 #ifndef DALI_TOOLKIT_ACCESSIBLE_IMPL_H
2 #define DALI_TOOLKIT_ACCESSIBLE_IMPL_H
4 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #include <dali/devel-api/adaptor-framework/accessibility-impl.h>
21 #include <dali/devel-api/adaptor-framework/accessibility.h>
24 #include <dali-toolkit/public-api/dali-toolkit-common.h>
26 namespace Dali::Toolkit::DevelControl {
29 * @brief Represents the Accessible object for Dali::Toolkit::Control and derived classes
31 * You can create a derived class (and register it using SetAccessibilityConstructor)
32 * in order to customize Accessibility for a given control.
34 * @see Dali::Toolkit::DevelControl::SetAccessibilityConstructor
35 * @see Dali::Accessibility::Accessible
36 * @see Dali::Accessibility::Component
37 * @see Dali::Accessibility::Collection
38 * @see Dali::Accessibility::Action
39 * @see Dali::Accessibility::Value
40 * @see Dali::Accessibility::Text
41 * @see Dali::Accessibility::EditableText
43 struct DALI_TOOLKIT_API AccessibleImpl : public virtual Dali::Accessibility::Accessible,
44 public virtual Dali::Accessibility::Component,
45 public virtual Dali::Accessibility::Collection,
46 public virtual Dali::Accessibility::Action
49 bool modal = false, root = false;
51 AccessibleImpl(Dali::Actor self, Dali::Accessibility::Role role, bool modal = false);
54 * @copydoc Dali::Accessibility::Accessible::GetName()
56 std::string GetName() override;
59 * @brief Returns the actor's name in the absence of ACCESSIBILITY_NAME property
61 virtual std::string GetNameRaw();
64 * @copydoc Dali::Accessibility::Accessible::GetDescription()
66 std::string GetDescription() override;
69 * @brief Returns the actor's description in the absence of ACCESSIBILITY_DESCRIPTION property
71 virtual std::string GetDescriptionRaw();
74 * @copydoc Dali::Accessibility::Accessible::GetParent()
76 Dali::Accessibility::Accessible* GetParent() override;
79 * @copydoc Dali::Accessibility::Accessible::GetChildCount()
81 size_t GetChildCount() override;
84 * @copydoc Dali::Accessibility::Accessible::GetChildAtIndex()
86 Dali::Accessibility::Accessible* GetChildAtIndex(size_t index) override;
89 * @copydoc Dali::Accessibility::Accessible::GetIndexInParent()
91 size_t GetIndexInParent() override;
94 * @copydoc Dali::Accessibility::Accessible::GetRole()
96 Dali::Accessibility::Role GetRole() override;
99 * @copydoc Dali::Accessibility::Accessible::GetStates()
101 Dali::Accessibility::States GetStates() override;
104 * @copydoc Dali::Accessibility::Accessible::GetAttributes()
106 Dali::Accessibility::Attributes GetAttributes() override;
109 * @copydoc Dali::Accessibility::Component::GetExtents()
111 Dali::Rect<> GetExtents(Dali::Accessibility::CoordType ctype) override;
114 * @copydoc Dali::Accessibility::Component::GetLayer()
116 Dali::Accessibility::ComponentLayer GetLayer() override;
119 * @copydoc Dali::Accessibility::Component::GetMdiZOrder()
121 int16_t GetMdiZOrder() override;
124 * @copydoc Dali::Accessibility::Component::GrabFocus()
126 bool GrabFocus() override;
129 * @copydoc Dali::Accessibility::Component::GetAlpha()
131 double GetAlpha() override;
134 * @copydoc Dali::Accessibility::Component::GrabHighlight()
136 bool GrabHighlight() override;
139 * @copydoc Dali::Accessibility::Component::ClearHighlight()
141 bool ClearHighlight() override;
144 * @copydoc Dali::Accessibility::Action::GetActionName()
146 std::string GetActionName(size_t index) override;
149 * @copydoc Dali::Accessibility::Action::GetLocalizedActionName()
151 std::string GetLocalizedActionName(size_t index) override;
154 * @copydoc Dali::Accessibility::Action::GetActionDescription()
156 std::string GetActionDescription(size_t index) override;
159 * @copydoc Dali::Accessibility::Action::GetActionCount()
161 size_t GetActionCount() override;
164 * @copydoc Dali::Accessibility::Action::GetActionKeyBinding()
166 std::string GetActionKeyBinding(size_t index) override;
169 * @copydoc Dali::Accessibility::Action::DoAction(size_t)
171 bool DoAction(size_t index) override;
174 * @copydoc Dali::Accessibility::Action::DoAction(const std::string&)
176 bool DoAction(const std::string& name) override;
179 * @copydoc Dali::Accessibility::Accessible::DoGesture()
181 bool DoGesture(const Dali::Accessibility::GestureInfo& gestureInfo) override;
184 * @copydoc Dali::Accessibility::Accessible::GetRelationSet()
186 std::vector<Dali::Accessibility::Relation> GetRelationSet() override;
189 * @copydoc Dali::Accessibility::Accessible::GetStates()
191 virtual Dali::Accessibility::States CalculateStates();
194 * @brief Makes sure that a given child of this container (e.g. ItemView) is visible
196 virtual void EnsureChildVisible(Actor child);
199 * @brief Makes sure this actor is visible (when moving the highlight frame to an
200 * actor that is scrolled out of the viewport)
202 virtual void EnsureSelfVisible();
205 * @brief Returns the index of the property that represents this actor's name
207 virtual Dali::Property::Index GetNamePropertyIndex();
210 * @brief Returns the index of the property that represents this actor's description
212 virtual Dali::Property::Index GetDescriptionPropertyIndex();
215 } // namespace Dali::Toolkit::DevelControl
217 #endif // DALI_TOOLKIT_ACCESSIBLE_IMPL_H