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=ed68e1570edb96baa8918c1ccb8d428176a28251;hp=3f2f169c789a96f6c471059b771a08dc2aa2b51d;hb=refs%2Fchanges%2F99%2F210399%2F9;hpb=867aa572372bf901975516db0fa77630754a8c27 diff --git a/dali-toolkit/public-api/controls/control.h b/dali-toolkit/public-api/controls/control.h index 3f2f169..ed68e15 100644 --- a/dali-toolkit/public-api/controls/control.h +++ b/dali-toolkit/public-api/controls/control.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_CONTROL_H__ -#define __DALI_TOOLKIT_CONTROL_H__ +#ifndef DALI_TOOLKIT_CONTROL_H +#define DALI_TOOLKIT_CONTROL_H /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 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. @@ -20,7 +20,7 @@ // EXTERNAL INCLUDES #include -#include +#include #include #include #include @@ -28,6 +28,9 @@ #include #include +// INTERNAL INCLUDES +#include + namespace Dali { @@ -58,6 +61,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() | @@ -68,7 +72,7 @@ class Control; * |------------------------|----------------------------------------------------| * | accessibilityActivated | %OnAccessibilityActivated() | */ -class DALI_IMPORT_API Control : public CustomActor +class DALI_TOOLKIT_API Control : public CustomActor { public: @@ -96,35 +100,46 @@ public: 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, + + RESERVED_PROPERTY_01, ///< Reserved index for a removed property. + RESERVED_PROPERTY_02, ///< Reserved index for a removed property. + /** - * @DEPRECATED_1_1.3 - * @brief name "backgroundColor", mutually exclusive with BACKGROUND_IMAGE & BACKGROUND, type Vector4. + * @brief Receives key events to the control. + * @details Name "keyInputFocus", type Property::BOOLEAN. + * @see Toolkit::Control::SetKeyInputFocus() * @SINCE_1_0.0 - * @see SetStyleName */ - BACKGROUND_COLOR, + KEY_INPUT_FOCUS, + /** - * @DEPRECATED_1_1.3 - * @brief name "backgroundImage", mutually exclusive with BACKGROUND_COLOR & BACKGROUND, type Map. - * @SINCE_1_0.0 + * @brief The background of the control. + * + * @details Name "background", type Property::MAP or std::string for URL or Property::VECTOR4 for Color. + * @SINCE_1_1.3 */ - BACKGROUND_IMAGE, + BACKGROUND, + /** - * @brief name "keyInputFocus", type bool. - * @SINCE_1_0.0 - * @see SetKeyInputFocus + * @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. */ - KEY_INPUT_FOCUS, + MARGIN, + /** - * @brief name "background", mutually exclusive with BACKGROUND_COLOR & BACKGROUND_IMAGE, type Map or std::string for URL. - * @SINCE_1_1.3 + * @brief The inner space of the control. + * @details Name "padding", type Property::EXTENTS. + * @SINCE_1_2.62 */ - BACKGROUND, + PADDING }; }; @@ -151,12 +166,15 @@ 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 /** @@ -325,30 +343,30 @@ public: void SetBackgroundColor( const Vector4& color ); /** - * @DEPRECATED_1_1.3 - * - * @brief Retrieves the background color of the control. - * + * @brief Clears the background. * @SINCE_1_0.0 - * @return The background color of the control */ - Vector4 GetBackgroundColor() const DALI_DEPRECATED_API; + void ClearBackground(); + + // Resources /** - * @DEPRECATED_1_2_8, use Property::BACKGROUND instead - * - * @brief Sets an image as the background of the control. + * @brief Query if all resources required by a control are loaded and ready. * - * @SINCE_1_0.0 - * @param[in] image The image to set as the background + * 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 */ - void SetBackgroundImage( Image image ) DALI_DEPRECATED_API; + bool IsResourceReady() const; /** - * @brief Clears the background. - * @SINCE_1_0.0 + * @brief Get the loading state of the visual resource. + * + * @SINCE_1_3_5 + * @param[in] index The Property index of the visual + * @return Return the loading status (PREPARING, READY and FAILED) of visual resource */ - void ClearBackground(); + Visual::ResourceStatus GetVisualResourceStatus( const Dali::Property::Index index ); // Signals @@ -383,8 +401,9 @@ public: 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: @@ -399,6 +418,39 @@ public: */ 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. + * + * If resources are shared between ImageViews, they are cached. + * In this case, the ResourceReady signal may be sent before there is an object to connect to. + * To protect against this, IsResourceReady() can be checked first. + * + * @code + * auto newControl = Control::New(); + * newControl.SetResource( resourceUrl ); + * if ( newControl.IsResourceReady() ) + * { + * // do something + * } + * else + * { + * newControl.ResourceReadySignal.Connect( .... ) + * } + * @endcode + * + * A callback of the following type may be connected: + * @code + * void YourCallbackName( Control control ); + * @endcode + * + * @SINCE_1_2.60 + * @return The signal to connect to + * @note A RelayoutRequest is queued by Control before this signal is emitted + */ + ResourceReadySignalType& ResourceReadySignal(); + public: // Intended for control developers /** @@ -481,4 +533,4 @@ public: // Templates for Deriving Classes } // namespace Dali -#endif // __DALI_TOOLKIT_CONTROL_H__ +#endif // DALI_TOOLKIT_CONTROL_H