[AT-SPI] Squashed implementation
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / popup / popup-impl.h
old mode 100755 (executable)
new mode 100644 (file)
index 884cab3..8c60d40
@@ -1,8 +1,8 @@
-#ifndef __DALI_TOOLKIT_INTERNAL_POPUP_H__
-#define __DALI_TOOLKIT_INTERNAL_POPUP_H__
+#ifndef DALI_TOOLKIT_INTERNAL_POPUP_H
+#define DALI_TOOLKIT_INTERNAL_POPUP_H
 
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@
  */
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/actors/image-actor.h>
 #include <dali/public-api/actors/layer.h>
 #include <dali/public-api/adaptor-framework/timer.h>
 #include <dali/public-api/animation/animation.h>
@@ -27,7 +26,7 @@
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
 #include <dali-toolkit/devel-api/controls/popup/popup.h>
 
 namespace Dali
@@ -348,6 +347,11 @@ private:
    */
   void SetExitAnimationData( const Property::Map& map );
 
+  /**
+   * @briefs Updates the popup background's position and size.
+   */
+  void UpdateBackgroundPositionAndSize();
+
 public: // Signals
 
   /**
@@ -397,10 +401,10 @@ private:
   /**
    * Signal occurs when the dimmed backing for the Popup is touched.
    * @param[in] actor The Actor Touched
-   * @param[in] event The Touch Event.
+   * @param[in] touch The Touch Data.
    * @return Whether to consume event or not.
    */
-  bool OnBackingTouched(Actor actor, const TouchEvent& event);
+  bool OnBackingTouched(Actor actor, const TouchEvent& touch);
 
   /**
    * Signal occurs when a mouse wheel event occurs on the dimmed backing.
@@ -413,15 +417,15 @@ private:
   /**
    * Signal occurs when the dialog has been touched.
    * @param[in] actor The Actor Touched
-   * @param[in] event The Touch Event.
+   * @param[in] touch The Touch Data.
    * @return Whether to consume event or not.
    */
-  bool OnDialogTouched(Actor actor, const TouchEvent& event);
+  bool OnDialogTouched( Actor actor, const TouchEvent& touch );
 
   /**
    * @copydoc Toolkit::Control::OnInitialize()
    */
-  virtual void OnInitialize();
+  void OnInitialize() override;
 
   /**
    * Called whenever the popup layout is re-set up.
@@ -433,43 +437,44 @@ private:
   /**
    * Called when the popup is directly or indirectly parented to the stage.
    */
-  virtual void OnControlStageConnection();
+  void OnSceneConnection( int depth ) override;
+  void OnSceneDisconnection() override;
 
   /**
    * From Control; called after a child has been added to the owning actor.
    * @param[in] child The child which has been added.
    */
-  virtual void OnControlChildAdd( Actor& child );
+  void OnChildAdd( Actor& child ) override;
 
   /**
    * @copydoc Control::OnRelayOut()
    */
-  virtual void OnRelayout( const Vector2& size, RelayoutContainer& container );
+  void OnRelayout( const Vector2& size, RelayoutContainer& container ) override;
 
   /**
    * @copydoc Control::OnSetResizePolicy()
    */
-  virtual void OnSetResizePolicy( ResizePolicy::Type policy, Dimension::Type dimension );
+  void OnSetResizePolicy( ResizePolicy::Type policy, Dimension::Type dimension ) override;
 
   /**
    * @copydoc Control::GetNaturalSize()
    */
-  virtual Vector3 GetNaturalSize();
+  Vector3 GetNaturalSize() override;
 
   /**
    * @copydoc Control::GetHeightForWidth()
    */
-  virtual float GetHeightForWidth( float width );
+  float GetHeightForWidth( float width ) override;
 
   /**
    * @copydoc Control::GetWidthForHeight()
    */
-  virtual float GetWidthForHeight( float height );
+  float GetWidthForHeight( float height ) override;
 
   /**
    * @copydoc Control::OnKeyEvent()
    */
-  virtual bool OnKeyEvent( const KeyEvent& event );
+  bool OnKeyEvent( const KeyEvent& event ) override;
 
   /**
    * @copydoc Control::GetNextKeyboardFocusableActor()
@@ -478,6 +483,31 @@ private:
 
 private:
 
+  /**
+   * Recursively add any focusable actors or layout containers to the provided vector.
+   * Include the top level actor if it is a layout container.
+   *
+   * @param[in]     parent          The actor to start from
+   * @param[in/out] focusableActors The vector to add focusable actors to
+   */
+  void AddFocusableChildren( Actor parent, std::vector< Actor >& focusableActors );
+
+  /**
+   * Recursively add any focusable actors or layout containers to the provided vector.
+   *
+   * @param[in]     parent          The actor to start from
+   * @param[in/out] focusableActors The vector to add focusable actors to
+   */
+  void AddFocusableChildrenRecursive( Actor parent, std::vector< Actor >& focusableActors );
+
+  /**
+   * Sets up the touch signals connections as required.
+   * @note This must be called after all the members have been created.
+   */
+  void SetupTouch();
+
+private:
+
   // Undefined.
   Popup(const Popup&);
 
@@ -524,7 +554,7 @@ private:
   bool mBackingEnabled;                              ///< True if a dimmed backing will be used.
   Vector4 mBackingColor;                             ///< The color of the backing.
   Actor mPopupBackgroundImage;                       ///< Stores the background image.
-  Vector4 mBackgroundOuterBorder;                    ///< Background external border margin size
+  Rect<int> mBackgroundBorder;                       ///< Background border.
   float mMargin;                                     ///< Internal margin for popup contents.
   std::string mTailUpImage;                          ///< Image used for the tail for the up direction.
   std::string mTailDownImage;                        ///< Image used for the tail for the down direction.
@@ -558,4 +588,4 @@ inline const Toolkit::Internal::Popup& GetImpl( const Toolkit::Popup& publicObje
 
 } // namespace Dali
 
-#endif // __DALI_TOOLKIT_INTERNAL_POPUP_H__
+#endif // DALI_TOOLKIT_INTERNAL_POPUP_H