#define __DALI_TOOLKIT_INTERNAL_POPUP_H__
/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 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.
*/
// 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>
/**
* @brief Create Dimmed Backing (covers all content behind the dialog).
*
- * @return The backing actor.
+ * @return The backing control.
*/
- ImageActor CreateBacking();
+ Toolkit::Control CreateBacking();
/**
* @brief Creates the lower area within the popup.
*/
void SetExitAnimationData( const Property::Map& map );
+ /**
+ * @briefs Updates the popup background's position and size.
+ */
+ void UpdateBackgroundPositionAndSize();
+
public: // Signals
/**
/**
* 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 TouchData& touch);
/**
* Signal occurs when a mouse wheel event occurs on the dimmed backing.
/**
* 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 TouchData& touch );
/**
* @copydoc Toolkit::Control::OnInitialize()
/**
* Called when the popup is directly or indirectly parented to the stage.
*/
- virtual void OnControlStageConnection();
+ virtual void OnStageConnection( int depth );
/**
* 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 );
+ virtual void OnChildAdd( Actor& child );
/**
* @copydoc Control::OnRelayOut()
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 );
+
+private:
+
// Undefined.
Popup(const Popup&);
Layer mLayer; ///< Popup Layer (i.e. Dim backing and PopupBg reside in this).
Toolkit::TableView mPopupLayout; ///< Popup Background (i.e. dialog reside in this).
- ImageActor mBacking; ///< Backing actor (dim effect).
+ Toolkit::Control mBacking; ///< Backing actor (dim effect).
Actor mPreviousFocusedActor; ///< Store the previous focused actor to restore the focus when popup hide.
Actor mTailImage; ///< Stores the tail image.
Actor mPopupContainer; ///< This actor is used to house the background image and the main popup layout.
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.