X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fcontrol.h;h=6d2f7e756b245a860ed65e03f711f6b84edda512;hp=c6e3b1d7de812981a943254d72769763b4fbbc34;hb=57afbf908526aa7e2bb721caef152342cc92c248;hpb=5bd894028f19daf459f08340a1482aeb679a87f8 diff --git a/dali-toolkit/public-api/controls/control.h b/dali-toolkit/public-api/controls/control.h index c6e3b1d..6d2f7e7 100644 --- a/dali-toolkit/public-api/controls/control.h +++ b/dali-toolkit/public-api/controls/control.h @@ -2,7 +2,7 @@ #define __DALI_TOOLKIT_CONTROL_H__ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 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. @@ -58,6 +58,7 @@ class Control; * | keyEvent | @ref KeyEventSignal() | * | keyInputFocusGained | @ref KeyInputFocusGainedSignal() | * | keyInputFocusLost | @ref KeyInputFocusLostSignal() | + * | resourceReady | @ref ResourceReadySignal() | * | tapped | @ref GetTapGestureDetector().DetectedSignal() | * | panned | @ref GetPanGestureDetector().DetectedSignal() | * | pinched | @ref GetPinchGestureDetector().DetectedSignal() | @@ -73,7 +74,7 @@ class DALI_IMPORT_API Control : public CustomActor public: /** - * @brief The start and end property ranges for control. + * @brief Enumeration for the start and end property ranges for control. * @SINCE_1_0.0 */ enum PropertyRange @@ -84,47 +85,77 @@ public: }; /** - * @brief An enumeration of properties belonging to the Control class. + * @brief Enumeration for the instance of properties belonging to the Control class. * @SINCE_1_0.0 */ struct Property { /** - * @brief An enumeration of properties belonging to the Control class. + * @brief Enumeration for the instance of properties belonging to the Control class. * @SINCE_1_0.0 */ enum { /** - * @brief name "styleName", type std::string + * @brief The name of the style to be applied to the control. + * @details Name "styleName", type Property::STRING. + * @see Toolkit::Control::SetStyleName() * @SINCE_1_0.0 - * @see SetStyleName */ STYLE_NAME = PROPERTY_START_INDEX, + /** * @DEPRECATED_1_1.3 - * @brief name "background-color", mutually exclusive with BACKGROUND_IMAGE & BACKGROUND, type Vector4 + * @brief The background color of the control. + * + * Mutually exclusive with BACKGROUND_IMAGE & BACKGROUND. + * @details Name "backgroundColor", type Property::VECTOR4. + * @see Toolkit::Control::SetStyleName() * @SINCE_1_0.0 - * @see SetStyleName */ BACKGROUND_COLOR, + /** * @DEPRECATED_1_1.3 - * @brief name "background-image", mutually exclusive with BACKGROUND_COLOR & BACKGROUND, type Map + * @brief The background image of the control. + * + * Mutually exclusive with BACKGROUND_COLOR & BACKGROUND. + * @details Name "backgroundImage", type Property::MAP. * @SINCE_1_0.0 */ BACKGROUND_IMAGE, + /** - * @brief name "keyInputFocus", type bool + * @brief Receives key events to the control. + * @details Name "keyInputFocus", type Property::BOOLEAN. + * @see Toolkit::Control::SetKeyInputFocus() * @SINCE_1_0.0 - * @see SetKeyInputFocus */ KEY_INPUT_FOCUS, + /** - * @brief name "background", mutually exclusive with BACKGROUND_COLOR & BACKGROUND_IMAGE, type Map or std::string for URL + * @brief The background of the control. + * + * Mutually exclusive with BACKGROUND_COLOR & BACKGROUND_IMAGE. + * @details Name "background", type Property::MAP or std::string for URL or Property::VECTOR4 for Color. * @SINCE_1_1.3 */ BACKGROUND, + + /** + * @brief The outer space around the control. + * @details Name "margin", type Property::EXTENTS. + * @SINCE_1_2.62 + * @note Margin property is to be supported by Layout algorithms and containers in future. + */ + MARGIN, + + /** + * @brief The inner space of the control. + * @details Name "padding", type Property::EXTENTS. + * @SINCE_1_2.62 + */ + PADDING }; }; @@ -135,7 +166,7 @@ public: struct KeyboardFocus { /** - * @brief Keyboard focus direction + * @brief Keyboard focus direction. * @SINCE_1_0.0 */ enum Direction @@ -151,24 +182,27 @@ public: // Typedefs - /// @brief Key Event signal type; + /// @brief Key Event signal type. @SINCE_1_0.0 typedef Signal KeyEventSignalType; - /// @brief Key InputFocusType signal type; + /// @brief Key InputFocusType signal type. @SINCE_1_0.0 typedef Signal KeyInputFocusSignalType; + /// @brief ResourceReady signal type. @SINCE_1_2.60 + typedef Signal ResourceReadySignalType; + public: // Creation & Destruction /** - * @brief Create a new instance of a Control. + * @brief Creates a new instance of a Control. * * @SINCE_1_0.0 - * @return A handle to a new Control. + * @return A handle to a new Control */ static Control New(); /** - * @brief Create an uninitialized Control handle. + * @brief Creates an uninitialized Control handle. * * Only derived versions can be instantiated. Calling member * functions with an uninitialized Dali::Object is not allowed. @@ -201,17 +235,17 @@ public: // operators * Changes this handle to point to another real object. * @SINCE_1_0.0 * @param[in] handle Object to assign this to - * @return reference to this + * @return Reference to this */ Control& operator=( const Control& handle ); public: /** - * @brief Downcast a handle to Control handle. + * @brief Downcasts a handle to Control handle. * - * If handle points to a Control the downcast produces valid - * handle. If not the returned handle is left uninitialized. + * If handle points to a Control, the downcast produces valid handle. + * If not, the returned handle is left uninitialized. * * @SINCE_1_0.0 * @param[in] handle Handle to an object @@ -242,7 +276,7 @@ public: * As the key input focus mechanism works like a stack, the top most control receives all the key events, and passes on the * unhandled events to the controls below in the stack. A control in the stack will regain key input focus when there are no more * controls above it in the focus stack. - * To query for the conrol which is on top of the focus stack use Dali::Toolkit::KeyInputFocusManager::GetCurrentKeyboardFocusActor(). + * To query for the control which is on top of the focus stack use Dali::Toolkit::KeyInputFocusManager::GetCurrentKeyboardFocusActor(). */ bool HasKeyInputFocus(); @@ -261,7 +295,7 @@ public: * @brief Retrieves the pinch gesture detector of the control. * * @SINCE_1_0.0 - * @return The pinch gesture detector. + * @return The pinch gesture detector * @note Will return an empty handle if the control does not handle the gesture itself. */ PinchGestureDetector GetPinchGestureDetector() const; @@ -270,7 +304,7 @@ public: * @brief Retrieves the pan gesture detector of the control. * * @SINCE_1_0.0 - * @return The pan gesture detector. + * @return The pan gesture detector * @note Will return an empty handle if the control does not handle the gesture itself. */ PanGestureDetector GetPanGestureDetector() const; @@ -279,7 +313,7 @@ public: * @brief Retrieves the tap gesture detector of the control. * * @SINCE_1_0.0 - * @return The tap gesture detector. + * @return The tap gesture detector * @note Will return an empty handle if the control does not handle the gesture itself. */ TapGestureDetector GetTapGestureDetector() const; @@ -288,7 +322,7 @@ public: * @brief Retrieves the long press gesture detector of the control. * * @SINCE_1_0.0 - * @return The long press gesture detector. + * @return The long press gesture detector * @note Will return an empty handle if the control does not handle the gesture itself. */ LongPressGestureDetector GetLongPressGestureDetector() const; @@ -299,14 +333,14 @@ public: * @brief Sets the name of the style to be applied to the control. * * @SINCE_1_0.0 - * @param[in] styleName A string matching a style described in a stylesheet. + * @param[in] styleName A string matching a style described in a stylesheet */ void SetStyleName( const std::string& styleName ); /** * @brief Retrieves the name of the style to be applied to the control (if any). * @SINCE_1_0.0 - * @return A string matching a style or an empty string. + * @return A string matching a style, or an empty string */ const std::string& GetStyleName() const; @@ -318,7 +352,7 @@ public: * @SINCE_1_0.0 * @param[in] color The required background color of the control * - * @note if SetBackgroundImage is called later, this background color is removed. + * @note If SetBackgroundImage is called later, this background color is removed. * * @note The background color fully blends with the actor color. */ @@ -330,7 +364,7 @@ public: * @brief Retrieves the background color of the control. * * @SINCE_1_0.0 - * @return The background color of the control. + * @return The background color of the control */ Vector4 GetBackgroundColor() const DALI_DEPRECATED_API; @@ -340,7 +374,7 @@ public: * @brief Sets an image as the background of the control. * * @SINCE_1_0.0 - * @param[in] image The image to set as the background. + * @param[in] image The image to set as the background */ void SetBackgroundImage( Image image ) DALI_DEPRECATED_API; @@ -350,6 +384,17 @@ public: */ void ClearBackground(); + // Resources + + /** + * @brief Query if all resources required by a control are loaded and ready. + * + * Most resources are only loaded when the control is placed on stage. + * @SINCE_1_2.60 + * @return true if the resources are loaded and ready, false otherwise + */ + bool IsResourceReady() const; + // Signals /** @@ -362,7 +407,7 @@ public: * The return value of True, indicates that the event should be consumed. * Otherwise the signal will be emitted on the next parent of the actor. * @SINCE_1_0.0 - * @return The signal to connect to. + * @return The signal to connect to * @pre The Control has been initialized. */ KeyEventSignalType& KeyEventSignal(); @@ -377,14 +422,15 @@ public: * The return value of True, indicates that the event should be consumed. * Otherwise the signal will be emitted on the next parent of the actor. * @SINCE_1_0.0 - * @return The signal to connect to. + * @return The signal to connect to * @pre The Control has been initialized. */ KeyInputFocusSignalType& KeyInputFocusGainedSignal(); /** - * @brief This signal is emitted when the control loses Key Input Focus - * which could be due to it being gained by another Control or Actor or just cleared from + * @brief This signal is emitted when the control loses Key Input Focus. + * + * This could be due to it being gained by another Control or Actor or just cleared from * this control as no longer required. * * A callback of the following type may be connected: @@ -394,20 +440,34 @@ public: * The return value of True, indicates that the event should be consumed. * Otherwise the signal will be emitted on the next parent of the actor. * @SINCE_1_0.0 - * @return The signal to connect to. + * @return The signal to connect to * @pre The Control has been initialized. */ KeyInputFocusSignalType& KeyInputFocusLostSignal(); + /** + * @brief This signal is emitted after all resources required by a control are loaded and ready. + * + * Most resources are only loaded when the control is placed on stage. + * + * A callback of the following type may be connected: + * @code + * void YourCallbackName( Control control ); + * @endcode + * + * @SINCE_1_2.60 + * @note A RelayoutRequest is queued by Control before this signal is emitted + */ + ResourceReadySignalType& ResourceReadySignal(); + public: // Intended for control developers /** - * @brief Create an initialised Control. + * @brief Creates an initialized Control. * * @SINCE_1_0.0 - * @param[in] implementation The implementation for this control. - * @return A handle to a newly allocated Dali resource. - * + * @param[in] implementation The implementation for this control + * @return A handle to a newly allocated Dali resource * @note Should NOT be called to create a handle from the implementation. As stated, this allocates a NEW Dali resource. */ explicit Control(Internal::Control& implementation); @@ -417,7 +477,7 @@ public: // Intended for control developers * using an Internal CustomActor pointer. * * @SINCE_1_0.0 - * @param [in] internal A pointer to a newly allocated Dali resource + * @param[in] internal A pointer to a newly allocated Dali resource */ explicit Control(Dali::Internal::CustomActor* internal); @@ -426,11 +486,11 @@ public: // Templates for Deriving Classes /** * @brief Template to allow deriving controls to DownCast handles to deriving handle classes. * - * @tparam T The handle class - * @tparam I The implementation class + * @tparam T The handle class + * @tparam I The implementation class * @SINCE_1_0.0 - * @param[in] handle Handle to an object - * @return Handle to a class T or an uninitialized handle. + * @param[in] handle Handle to an object + * @return Handle to a class T or an uninitialized handle * @see DownCast(BaseHandle) */ template @@ -458,9 +518,9 @@ public: // Templates for Deriving Classes * @brief Template to allow deriving controls to verify whether the Internal::CustomActor* is actually an * implementation of their class. * - * @tparam I The implementation class + * @tparam I The implementation class * @SINCE_1_0.0 - * @param[in] internal Pointer to the Internal::CustomActor + * @param[in] internal Pointer to the Internal::CustomActor */ template DALI_INTERNAL void VerifyCustomActorPointer(Dali::Internal::CustomActor* internal)