2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FUi_AccessibilityContainer.h
20 * @brief This is the header file for the _AccessibilityContainer class.
22 * This header file contains the declarations of the _AccessibilityContainer class.
25 #ifndef _FUI_INTERNAL_ACCESSIBILITY_CONTAINER_H_
26 #define _FUI_INTERNAL_ACCESSIBILITY_CONTAINER_H_
28 #include <FBaseObject.h>
29 #include <FBaseResult.h>
30 #include <FBaseColLinkedListT.h>
31 #include <FUiAccessibilityTypes.h>
32 #include "FUi_AccessibilityManager.h"
34 namespace Tizen { namespace Base
38 namespace Tizen { namespace Graphics
44 namespace Tizen { namespace Ui {
46 class IAccessibilityListener;
47 class _AccessibilityElement;
48 class _IAccessibilityListener;
51 enum AccessibilityScreenReaderSpeechRate
53 ACCESSIBILITY_SCREEN_READER_SPEECH_RATE_SYSTEM_SETTING, /**< The speech rate from system setting */
54 ACCESSIBILITY_SCREEN_READER_SPEECH_RATE_VERY_SLOW, /**< The very slow speech rate */
55 ACCESSIBILITY_SCREEN_READER_SPEECH_RATE_SLOW, /**< The slow speech rate*/
56 ACCESSIBILITY_SCREEN_READER_SPEECH_RATE_NORMAL, /**< The normal speech rate */
57 ACCESSIBILITY_SCREEN_READER_SPEECH_RATE_FAST, /**< The fast speech rate */
58 ACCESSIBILITY_SCREEN_READER_SPEECH_RATE_VERY_FAST /**< The very fast speech rate */
62 * @enum AccessibilityTraits
64 * Defines the trait of the accessibility element.
68 enum AccessibilityTraits
70 ACCESSIBILITY_TRAITS_NONE,
71 ACCESSIBILITY_TRAITS_TITLE,
72 ACCESSIBILITY_TRAITS_OPTION_HEADER,
73 ACCESSIBILITY_TRAITS_PICTURE,
74 ACCESSIBILITY_TRAITS_STATUS_BAR,
75 ACCESSIBILITY_TRAITS_TEXT_FIELD,
76 ACCESSIBILITY_TRAITS_RATING,
77 ACCESSIBILITY_TRAITS_ACTION_BAR,
78 ACCESSIBILITY_TRAITS_ACTION_BAR_MENU,
79 ACCESSIBILITY_TRAITS_BACK_BUTTON,
80 ACCESSIBILITY_TRAITS_BUTTON,
81 ACCESSIBILITY_TRAITS_LABEL,
82 ACCESSIBILITY_TRAITS_LIST,
83 ACCESSIBILITY_TRAITS_DATA_SELECTOR,
84 ACCESSIBILITY_TRAITS_DRAG_SCROLL,
85 ACCESSIBILITY_TRAITS_EXPAND_BUTTON,
86 ACCESSIBILITY_TRAITS_FUNCTION_PANEL,
87 ACCESSIBILITY_TRAITS_IN_DEPTH_BUTTON,
88 ACCESSIBILITY_TRAITS_INDEX_SCROLL,
89 ACCESSIBILITY_TRAITS_IMAGE,
90 ACCESSIBILITY_TRAITS_INDICATOR,
91 ACCESSIBILITY_TRAITS_NOTIFICATION,
92 ACCESSIBILITY_TRAITS_RADIO_BUTTON,
93 ACCESSIBILITY_TRAITS_SCROLL_BAR,
94 ACCESSIBILITY_TRAITS_SEARCH_FIELD,
95 ACCESSIBILITY_TRAITS_SEGMENT,
96 ACCESSIBILITY_TRAITS_SLIDER,
97 ACCESSIBILITY_TRAITS_SOFT_KEY,
98 ACCESSIBILITY_TRAITS_SUB_MENU_TITLE,
99 ACCESSIBILITY_TRAITS_TAB,
100 ACCESSIBILITY_TRAITS_TICKBOX,
101 ACCESSIBILITY_TRAITS_TIME_SELECTOR,
102 ACCESSIBILITY_TRAITS_VOLUME_SLIDER,
103 ACCESSIBILITY_TRAITS_HOUR,
104 ACCESSIBILITY_TRAITS_MINUTE,
105 ACCESSIBILITY_TRAITS_SECOND,
106 ACCESSIBILITY_TRAITS_YEAR,
107 ACCESSIBILITY_TRAITS_MONTH,
108 ACCESSIBILITY_TRAITS_DAY,
109 ACCESSIBILITY_TRAITS_END
112 const int ACCESSIBILITY_PRIORTY_TOP = 55555;
113 const int ACCESSIBILITY_PRIORTY_NORMAL = 10000;
114 const int ACCESSIBILITY_PRIORTY_BOTTOM = 0;
116 class _AccessibilityContainer
119 _AccessibilityContainer(const _Control& owner);
120 ~_AccessibilityContainer(void);
121 _Control& GetOwner(void);
122 const _Control& GetOwner(void) const;
124 void AddListener(const _IAccessibilityListener& listener);
125 Tizen::Base::Collection::IListT<_IAccessibilityListener*>* GetListenerListN(void) const;
126 void RemoveListener(const _IAccessibilityListener& listener);
128 result AddChildContainer(const _AccessibilityContainer& child);
129 result RemoveChildContainer(const _AccessibilityContainer& child);
130 const Tizen::Base::Collection::LinkedListT<_AccessibilityContainer*>* GetChildContainerList(void) const;
132 result AddElement(const _AccessibilityElement& element);
133 result AddElements(const Tizen::Base::Collection::IListT<_AccessibilityElement*>& elementList);
134 result InsertElement(const _AccessibilityElement& element, int index);
135 result RemoveElement(const _AccessibilityElement& element);
136 result RemoveAllElement(void);
138 _AccessibilityElement* GetChildElement(const Tizen::Base::String& name) const;
139 void GetElements(Tizen::Base::Collection::IListT<_AccessibilityElement*>& list) const;
140 Tizen::Base::Collection::IListT<_AccessibilityElement*>* GetElementsN(void) const;
142 result MoveElement(const _AccessibilityElement* pPreviousElement, const _AccessibilityElement& element);
144 void ManageFocus(bool set);
145 bool IsFocusManaged(void);
146 void SetCurrentFocusedElement(_AccessibilityElement* pElement);
147 _AccessibilityElement* GetCurrentFocusedElement(void) const;
148 _AccessibilityElement* Hit(const Tizen::Graphics::Point& point) const;
149 bool MoveFocus(_AccessibilityFocusDirection direction);
150 bool MoveFocus(const Tizen::Graphics::Point& point);
151 void ResetFocus(void);
152 void SortElements(void);
154 bool SetParent(const _AccessibilityContainer& parent);
155 _AccessibilityContainer* GetParent(void) const;
156 void SetPriority(int level);
157 int GetPriority(void);
158 void SetEnableState(bool enabledState);
159 bool GetEnableState(void);
160 void Activate(bool enable);
161 bool IsActivated(void) const;
162 Tizen::Graphics::Rectangle GetAbsoluteBounds(void) const;
164 void ReadingAll(void);
165 Tizen::Base::String GetCurrentGrammar(void) const;
166 AccessibilityScreenReaderStatus GetStatus(void) const;
167 Tizen::Base::_HandleT <_AccessibilityContainer> GetHandle(void) const;
170 _AccessibilityContainer(const _AccessibilityContainer& rhs);
171 _AccessibilityContainer& operator =(const _AccessibilityContainer& rhs);
174 Tizen::Base::_HandleT <_AccessibilityContainer> __handle;
176 _AccessibilityContainer* __pParent;
177 Tizen::Base::Collection::LinkedListT<_AccessibilityElement*> __elementList;
178 Tizen::Base::Collection::LinkedListT<_AccessibilityContainer*> __childContainerList;
179 Tizen::Base::Collection::LinkedListT<_IAccessibilityListener*> __listenerList;
180 int __currentElementIndex;
183 IAccessibilityListener* __pListener;
186 }; //class _AccessibilityContainer
189 #endif //_FUI_INTERNAL_ACCESSIBILITY_CONTAINER_H_