Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUi_AccessibilityContainerImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17
18 /**
19  * @file        FUi_AccessibilityContainerImpl.h
20  * @brief       This is the header file for the _AccessibilityContainerImpl class.
21  *
22  * This header file contains the declarations of the _AccessibilityContainerImpl class.
23  *
24  */
25 #ifndef _FUI_INTERNAL_ACCESSIBILITY_CONTAINER_IMPL_H_
26 #define _FUI_INTERNAL_ACCESSIBILITY_CONTAINER_IMPL_H_
27
28 #include <FBaseResult.h>
29 #include <FBaseObject.h>
30 #include <FUiAccessibilityTypes.h>
31 #include "FUi_ControlManager.h"
32 #include "FUi_IAccessibilityListener.h"
33
34 namespace Tizen { namespace Base
35 {
36 class String;
37 }} //Tizen::Base
38
39 namespace Tizen { namespace Base { namespace Collection
40 {
41 class IList;
42 }}} //Tizen::Base::Collection
43
44 namespace Tizen { namespace Ui
45 {
46
47 class Control;
48 class AccessibilityContainer;
49 class _ControlImpl;
50 class _AccessibilityElementImpl;
51 class _AccessibilityContainer;
52
53 class _AccessibilityContainerImpl
54         : public Tizen::Base::Object
55         , virtual public _IAccessibilityListener
56 {
57 public:
58         _AccessibilityContainerImpl(const _ControlImpl& controlImpl, const AccessibilityContainer& publicInstance, const _AccessibilityContainer& coreInstance);
59         virtual ~_AccessibilityContainerImpl(void);
60         _ControlImpl& GetOwner(void);
61         AccessibilityContainer& GetPublic(void);
62         result AddAccessibilityListener(const IAccessibilityListener& listener);
63         result RemoveAccessibilityListener(const IAccessibilityListener& listener);
64
65         result AddElement(const _AccessibilityElementImpl& element);
66         result AddElements(const Tizen::Base::Collection::IList& elementList);
67
68         Tizen::Base::Collection::IList* GetElementsN(void);
69         AccessibilityElement* GetChildElement(const Tizen::Base::String& name);
70
71         result RemoveElement(const _AccessibilityElementImpl& element);
72         result RemoveAllElement(void);
73
74         result MoveElement(const _AccessibilityElementImpl* pPreviousElement, const _AccessibilityElementImpl& element);
75
76         Tizen::Base::String GetCurrentGrammar(void) const;
77         AccessibilityScreenReaderStatus GetStatus(void) const;
78         void ReadingAll(void);
79
80         static AccessibilityContainer* CreateAccessibilityContainerN(const _ControlImpl& controlImpl);
81         static _AccessibilityContainerImpl* GetInstance(AccessibilityContainer& container);
82         static const _AccessibilityContainerImpl* GetInstance(const AccessibilityContainer& container);
83
84         virtual bool OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element);
85         virtual bool OnAccessibilityFocusMovedPrevious(const _AccessibilityContainer& control, const _AccessibilityElement& element);
86         virtual bool OnAccessibilityReadElement(const _AccessibilityContainer& control, const _AccessibilityElement& element);
87         virtual bool OnAccessibilityFocusIn(const _AccessibilityContainer& control, const _AccessibilityElement& element);
88         virtual bool OnAccessibilityFocusOut(const _AccessibilityContainer& control, const _AccessibilityElement& element);
89         virtual bool OnAccessibilityActionPerformed(const _AccessibilityContainer& control, const _AccessibilityElement& element);
90         virtual bool OnAccessibilityValueIncreased(const _AccessibilityContainer& control, const _AccessibilityElement& element) ;
91         virtual bool OnAccessibilityValueDecreased(const _AccessibilityContainer& control, const _AccessibilityElement& element);
92
93 private:
94         _AccessibilityContainerImpl(const _AccessibilityContainerImpl& rhs);
95         _AccessibilityContainerImpl& operator =(const _AccessibilityContainerImpl& rhs);
96
97         void AddSystemElement(const AccessibilityElement& element);
98         bool ControlCoreExists(_ControlHandle handle) const;
99
100 private:
101         _ControlImpl* __pControlImpl;
102         AccessibilityContainer* __pPublic;
103         _AccessibilityContainer* __pCore;
104         Tizen::Base::Collection::LinkedListT<AccessibilityElement*> __elementList;
105         Tizen::Base::Collection::LinkedListT<IAccessibilityListener*> __listenerList;
106         _ControlHandle __coreHandle;
107 }; //class _AccessibilityContainerImpl
108 }} //Tizen::Ui
109
110 #endif //_FUI_INTERNAL_ACCESSIBILITY_CONTAINER_IMPL_H_