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_AccessibilityManager.h
20 * @brief This is the header file for the _AccessibilityManager class.
22 * This header file contains the declarations of the _AccessibilityManager class.
25 #ifndef _FUI_INTERNAL_ACCESSIBILITY_MANAGER_H_
26 #define _FUI_INTERNAL_ACCESSIBILITY_MANAGER_H_
28 #include <FBaseResult.h>
29 #include <FGrpPoint.h>
30 #include <FGrpRectangle.h>
31 #include <FUiAccessibilityTypes.h>
32 #include <FBaseColLinkedListT.h>
33 #include <FBase_ObjectManagerT.h>
34 #include "FUi_ControlManager.h"
35 #include "FUi_AccessibilityGesture.h"
37 namespace Tizen { namespace Base
42 namespace Tizen { namespace Ui { namespace Animations
45 }}} //Tizen::Ui::Animations
47 namespace Tizen { namespace Ui
51 class _TouchGestureDetector;
52 class _AccessibilityTtsPlayer;
53 class _AccessibilitySystemSettingLoader;
54 class _AccessibilityContainer;
55 class _AccessibilityElement;
57 enum _AccessibilityFocusDirection
59 _ACCESSIBILITY_FOCUS_DIRECTION_PREVIOUS = -1,
60 _ACCESSIBILITY_FOCUS_DIRECTION_NONE = 0,
61 _ACCESSIBILITY_FOCUS_DIRECTION_NEXT = 1
64 class _AccessibilityManager
67 static _AccessibilityManager* GetInstance(void);
68 static void CreateInstance(void);
69 static void ReleaseInstance(void);
70 ~_AccessibilityManager(void);
72 AccessibilityScreenReaderStatus GetReadingtatus(void);
73 void ReadElement(int index);
74 result ReadElement(const _AccessibilityElement& element);
75 result ReadContent(const Tizen::Base::String& content);
76 result ReadingStop(void);
77 result ReadingPause(void);
78 result ReadingResume(void);
79 void OnStartReading(const Tizen::Base::String& grammar);
80 void OnFinishReading(const Tizen::Base::String& grammar);
82 void AddContainer(const _AccessibilityContainer& container);
83 void RemoveContainer(const _AccessibilityContainer& container);
85 bool ProcessGesture(_AccessibilityGestureType type, const Tizen::Graphics::Point& point,const _TouchGestureDetector* pDetector = null);
86 Tizen::Base::String GetCurrentGrammar(void);
88 void OnAccessibilityScreenReaderIsActivated(bool set);
89 bool IsAccessibilityActivated(void);
90 bool IsScreenReaderActivated(void);
91 int GetLargeFontSize(void);
93 void RequestToDrawFocusUi(void);
94 void RequestAutoReading(void);
96 Tizen::Base::_HandleT <_AccessibilityContainer> Register(_AccessibilityContainer* pObject);
97 void Unregister(Tizen::Base::_HandleT <_AccessibilityContainer> handle);
99 static bool IsActivated();
108 _AccessibilityManager(void);
109 _AccessibilityManager(const _AccessibilityManager& rhs);
110 _AccessibilityManager& operator =(const _AccessibilityManager& rhs);
111 static void InitializeInstance(void);
112 bool MoveFocus(_AccessibilityFocusDirection direction);
113 void DrawFocusUi(const _AccessibilityContainer& container);
115 void MakeList(_AccessibilityContainer* container);
116 void Initialize(void);
117 void ShowPopup(const Tizen::Base::String& content);
118 void ShowPopup(void);
119 void HidePopup(void);
120 bool IsContainerValid(_AccessibilityContainer* pContainer);
121 bool IsTargetContainerValid(void);
122 bool IsVisible(_AccessibilityElement* pElement);
123 bool IsVisible(_AccessibilityContainer* pContainer);
124 void SetGestureMode(GestureMode mode);
125 GestureMode GetGestureMode(void);
128 Tizen::Base::_ObjectManagerT <_AccessibilityContainer> __objectManager;
129 _AccessibilityGesture* __pAccGesture;
130 _AccessibilityTtsPlayer* __pPlayer;
131 _AccessibilitySystemSettingLoader* __pSettingLoader;
132 _AccessibilityContainer* __pTargetContainer;
133 _AccessibilityElement* __pTargetElement;
134 _AccessibilityElement* __pTitleElement;
135 Tizen::Base::Collection::LinkedListT<_AccessibilityContainer*> __containerList;
136 Tizen::Base::Collection::LinkedListT<_AccessibilityElement*> __candidateList;
138 _ControlHandle __targetControlHandle;
139 Tizen::Ui::Animations::VisualElement* __pReadingVe;
140 Tizen::Ui::Animations::VisualElement* __pFocusVe;
141 _Control* __pPanningControl;
142 static bool __screenReaderIsEnabled;
143 };//class _AccessibilityManager
146 #endif //_FUI_INTERNAL_ACCESSIBILITY_MANAGER_H_