Merge "Remove Adaptor::Pause()/Resume() from application::OnPause()/OnResume()" into...
[platform/core/uifw/dali-adaptor.git] / adaptors / common / accessibility-adaptor-impl.h
index c529a80..f6a59f5 100644 (file)
@@ -30,7 +30,7 @@
 #include <accessibility-adaptor.h>
 #include <accessibility-action-handler.h>
 #include <accessibility-gesture-handler.h>
-#include <indicator-impl.h>
+#include <indicator-interface.h>
 #include <accessibility-gesture-detector.h>
 
 namespace Dali
@@ -49,21 +49,19 @@ class AccessibilityAdaptor : public Dali::BaseObject
 {
 public:
 
-  // Creation
-
   /**
    * Constructor.
    */
   AccessibilityAdaptor();
 
   /**
-   * Get an instance of the AccessibilityAdaptor.
+   * @brief Get an instance of the AccessibilityAdaptor.
+   *
+   * @note This singleton-style getter can be reimplemented for different platforms.
    * @return The instance of the AccessibilityAdaptor.
    */
   static Dali::AccessibilityAdaptor Get();
 
-  // Public API
-
   /**
    * Turn on accessibility action
    * This method should be called by vconf callback
@@ -97,49 +95,50 @@ public:
   void SetGestureHandler(AccessibilityGestureHandler& handler);
 
   /**
-   * Set the Indicator
+   * @brief Set the Indicator
+   * @param[in] Indiciator interface
    */
-  void SetIndicator(Indicator* indicator);
+  void SetIndicator( IndicatorInterface* indicator );
 
   /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionNextEvent()
    */
-  bool HandleActionNextEvent(bool allowEndFeedback = true);
+  virtual bool HandleActionNextEvent( bool allowEndFeedback = true);
 
   /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionPreviousEvent()
    */
-  bool HandleActionPreviousEvent(bool allowEndFeedback = true);
+  virtual bool HandleActionPreviousEvent( bool allowEndFeedback = true);
 
   /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionActivateEvent()
    */
-  bool HandleActionActivateEvent();
+  virtual bool HandleActionActivateEvent();
 
   /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionReadEvent()
    */
-  bool HandleActionReadEvent(unsigned int x, unsigned int y, bool allowReadAgain);
+  virtual bool HandleActionReadEvent( unsigned int x, unsigned int y, bool allowReadAgain );
 
   /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionReadNextEvent()
    */
-  bool HandleActionReadNextEvent(bool allowEndFeedback = true);
+  virtual bool HandleActionReadNextEvent( bool allowEndFeedback = true);
 
   /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionReadPreviousEvent()
    */
-  bool HandleActionReadPreviousEvent(bool allowEndFeedback = true);
+  virtual bool HandleActionReadPreviousEvent( bool allowEndFeedback = true);
 
   /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionUpEvent()
    */
-  bool HandleActionUpEvent();
+  virtual bool HandleActionUpEvent();
 
   /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionDownEvent()
    */
-  bool HandleActionDownEvent();
+  virtual bool HandleActionDownEvent();
 
   /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionClearFocusEvent()
@@ -241,32 +240,41 @@ public:
    */
   bool HandleActionStartStopEvent();
 
-private:
-
-  // Destruction
+protected:
 
   /**
    * Destructor.
    */
   virtual ~AccessibilityAdaptor();
 
+private:
+
+  /**
+   * @brief Called when the singleton is destroyed.
+   *
+   * @note This can be reimplemented for different platforms.
+   * @return The instance of the AccessibilityAdaptor.
+   */
+  static void OnDestroy();
+
   // Undefined
   AccessibilityAdaptor( const AccessibilityAdaptor& );
   AccessibilityAdaptor& operator=( AccessibilityAdaptor& );
 
-private:
+protected:
 
   Dali::Integration::TouchEventCombiner mCombiner; ///< Combines multi-touch events.
 
-  bool mIsEnabled; ///< enable/disable the accessibility action
   Vector2 mReadPosition; ///< ActionRead position
 
   AccessibilityActionHandler* mActionHandler; ///< The pointer of accessibility action handler
 
   AccessibilityGestureDetectorPtr mAccessibilityGestureDetector; ///< The accessibility gesture detector
 
-  Indicator* mIndicator; ///< The indicator
-  bool mIndicatorFocused; ///< Whether the Indicator is focused
+  IndicatorInterface* mIndicator; ///< The indicator
+
+  bool mIsEnabled        : 1; ///< enable/disable the accessibility action
+  bool mIndicatorFocused : 1; ///< Whether the Indicator is focused
 
 public: