Merge "Changes needed for https://review.tizen.org/gerrit/#/c/191202/" into devel...
[platform/core/uifw/dali-adaptor.git] / dali / internal / accessibility / tizen-wayland / tizen-mobile / accessibility-adaptor-impl-mobile.h
1 #ifndef __DALI_INTERNAL_ACCESSIBILITY_ADAPTOR_MOBILE_H__
2 #define __DALI_INTERNAL_ACCESSIBILITY_ADAPTOR_MOBILE_H__
3
4 /*
5  * Copyright (c) 2015 Samsung Electronics Co., Ltd.
6  *
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
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  */
20
21 // INTERNAL INCLUDES
22 #include <dali/devel-api/adaptor-framework/accessibility-adaptor.h>
23 #include <dali/devel-api/adaptor-framework/accessibility-action-handler.h>
24 #include <dali/devel-api/adaptor-framework/accessibility-gesture-handler.h>
25 #include <dali/internal/window-system/common/indicator-interface.h>
26 #include <dali/internal/accessibility/common/accessibility-gesture-detector.h>
27 #include <dali/internal/accessibility/common/accessibility-adaptor-impl.h>
28
29 namespace Dali
30 {
31
32 namespace Internal
33 {
34
35 namespace Adaptor
36 {
37
38 /**
39  * This mobile version is different since it forwards events to the indicator.
40  */
41 class AccessibilityAdaptorMobile : public AccessibilityAdaptor
42 {
43 public:
44
45   /**
46    * Constructor.
47    */
48   AccessibilityAdaptorMobile();
49
50   // From AccessibilityAdaptor base class
51
52   /**
53    * @copydoc Dali::AccessibilityAdaptor::HandleActionNextEvent()
54    */
55   virtual bool HandleActionNextEvent( bool allowEndFeedback );
56
57   /**
58    * @copydoc Dali::AccessibilityAdaptor::HandleActionPreviousEvent()
59    */
60   virtual bool HandleActionPreviousEvent( bool allowEndFeedback );
61
62   /**
63    * @copydoc Dali::AccessibilityAdaptor::HandleActionActivateEvent()
64    */
65   virtual bool HandleActionActivateEvent();
66
67   /**
68    * @copydoc Dali::AccessibilityAdaptor::HandleActionReadEvent()
69    */
70   virtual bool HandleActionReadEvent( unsigned int x, unsigned int y, bool allowReadAgain );
71
72   /**
73    * @copydoc Dali::AccessibilityAdaptor::HandleActionReadNextEvent()
74    */
75   virtual bool HandleActionReadNextEvent( bool allowEndFeedback );
76
77   /**
78    * @copydoc Dali::AccessibilityAdaptor::HandleActionReadPreviousEvent()
79    */
80   virtual bool HandleActionReadPreviousEvent( bool allowEndFeedback );
81
82   /**
83    * @copydoc Dali::AccessibilityAdaptor::HandleActionUpEvent()
84    */
85   virtual bool HandleActionUpEvent();
86
87   /**
88    * @copydoc Dali::AccessibilityAdaptor::HandleActionDownEvent()
89    */
90   virtual bool HandleActionDownEvent();
91
92 private:
93
94   /**
95    * Destructor.
96    */
97   virtual ~AccessibilityAdaptorMobile();
98
99   // Undefined
100   AccessibilityAdaptorMobile( const AccessibilityAdaptorMobile& );
101   AccessibilityAdaptorMobile& operator=( AccessibilityAdaptorMobile& );
102
103 public:
104
105   // Helpers for public-api forwarding methods
106
107   inline static Internal::Adaptor::AccessibilityAdaptorMobile& GetImplementation(Dali::AccessibilityAdaptor& adaptor)
108   {
109     DALI_ASSERT_ALWAYS( adaptor && "AccessibilityAdaptorMobile handle is empty" );
110
111     BaseObject& handle = adaptor.GetBaseObject();
112
113     return static_cast<Internal::Adaptor::AccessibilityAdaptorMobile&>(handle);
114   }
115
116   inline static const Internal::Adaptor::AccessibilityAdaptorMobile& GetImplementation(const Dali::AccessibilityAdaptor& adaptor)
117   {
118     DALI_ASSERT_ALWAYS( adaptor && "AccessibilityAdaptorMobile handle is empty" );
119
120     const BaseObject& handle = adaptor.GetBaseObject();
121
122     return static_cast<const Internal::Adaptor::AccessibilityAdaptorMobile&>(handle);
123   }
124
125 };
126
127 } // namespace Adaptor
128
129 } // namespace Internal
130
131 } // namespace Dali
132
133 #endif // __DALI_INTERNAL_ACCESSIBILITY_ADAPTOR_MOBILE_H__