X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fcontrol-impl.h;h=9a68ca19ea2fc0f17ec5e9e9c55737d0432caeee;hb=HEAD;hp=6717f5b7962a032c55339eb8965554024f7ab32b;hpb=5359a575636e678baf178dab5209b587be1a7551;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/public-api/controls/control-impl.h b/dali-toolkit/public-api/controls/control-impl.h index 6717f5b..9e2915e 100644 --- a/dali-toolkit/public-api/controls/control-impl.h +++ b/dali-toolkit/public-api/controls/control-impl.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_CONTROL_IMPL_H /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 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,6 +20,8 @@ // EXTERNAL INCLUDES #include +#include +#include #include #include #include @@ -41,6 +43,12 @@ namespace Toolkit class StyleManager; +namespace DevelControl +{ +class ControlAccessible; + +} // namespace DevelControl + namespace Internal { /** @@ -57,7 +65,6 @@ public: class Extension; ///< Forward declare future extension interface // Creation & Destruction - /** * @brief Creates a new ControlImpl instance that does not require touch by default. * @@ -107,6 +114,24 @@ public: */ void ClearBackground(); + /** + * @brief Called when resources of control are ready. this api does not request relayout. + */ + void SetResourceReady(); + + // Accessibility + + /** + * @brief Gets the Accessible object that represents this control. + * + * This method calls CreateAccessibleObject() if CreateAccessible is true. + * + * @return The Accessible object + * + * @see CreateAccessibleObject() + */ + Toolkit::DevelControl::ControlAccessible* GetAccessibleObject(); + // Gesture Detection /** @@ -239,12 +264,6 @@ public: /// @cond internal /** - * @brief Called by the AccessibilityManager to activate the Control. - * @SINCE_1_0.0 - */ - DALI_INTERNAL void AccessibilityActivate(); - - /** * @brief Called by the KeyboardFocusManager. * @SINCE_1_0.0 */ @@ -378,9 +397,7 @@ protected: // From CustomActorImpl */ void OnLayoutNegotiated(float size, Dimension::Type dimension) override; -protected: // Helpers for deriving classes - // Construction - +public: // Helpers for deriving classes /** * @brief Flags for the constructor. * @SINCE_1_0.0 @@ -398,6 +415,19 @@ protected: // Helpers for deriving classes static const int CONTROL_BEHAVIOUR_FLAG_COUNT = Log::value + 1; ///< Total count of flags /** + * @brief Creates a new ControlImpl instance that does not require touch by default. + * + * If touch is required, then the user can connect to this class' touch signal. + * @SINCE_2_1.8 + * @param[in] additionalBehaviour Additional control behaviour. + * @return A handle to the ControlImpl instance + */ + static Toolkit::Control New(ControlBehaviour additionalBehaviour); + +protected: + // Construction + + /** * @brief Control constructor. * * @SINCE_1_0.0 @@ -422,6 +452,11 @@ public: // API for derived classes to override */ virtual void OnInitialize(); + /** + * @copydoc Dali::Toolkit::Control::IsResourceReady + */ + virtual bool IsResourceReady() const; + // Styling /** @@ -473,6 +508,24 @@ public: // API for derived classes to override */ virtual bool OnAccessibilityZoom(); + /** + * @brief This method should be overriden by deriving classes when they wish to be + * represented by a custom Accessible object implementation. + * + * The AT-SPI infrastructure is responsible for destroying the returned object. + * + * Currently, this method is called at most once in a given Control's lifetime, when + * GetAccessibleObject() is called for the first time. A future version of the + * AT-SPI infrastructure, however, may delete the Accessible object and request a new + * one to be created (by calling this method) multiple times, for example during + * scene connection and disconnection. + * + * @return The newly created Accessible object + * + * @see GetAccessibleObject() + */ + virtual DevelControl::ControlAccessible* CreateAccessibleObject(); + // Keyboard focus /** @@ -614,6 +667,49 @@ public: // API for derived classes to override return NULL; } + // Transition APIs + + /** + * @brief Make visual transition from source control to destination control about specific Visual. + * If both of source and destination control have same visual index, than generates information for the transition of this Control. + * + * @param[out] sourcePropertyMap Source property map to be applied on this Control. + * @param[out] destinationPropertyMap Destination property map to be applied on this Control. + * @param[in] source Source control of the animation. + * @param[in] destination Destination control of the animation. + * @param[in] visualIndex Property::Index to make animation. + */ + void MakeVisualTransition(Dali::Property::Map& sourcePropertyMap, Dali::Property::Map& destinationPropertyMap, Dali::Toolkit::Control source, Dali::Toolkit::Control destination, Dali::Property::Index visualIndex); + + /** + * @brief Retrieves source and destination visual properties for the Transition of this Control. + * The properties of this Control will be transitioned from the propeties of source Control to that of destination control. + * If a property value is different between source and destination Control, + * the property information of each Control will be included in sourceProperties and destinationProperties. + * + * @param[out] sourceProperties Source property list to be applied on this Control. + * @param[out] destinationProperties Destination property list to be applied on this Control. + * @param[in] source Source control of the animation. + * @param[in] destination Destination control of the animation. + * + * @note This method do not handle Actor properties. + * And the size and order of the sourceProperties and destinationProperties must be synchronized. + */ + virtual void OnCreateTransitions(std::vector>& sourceProperties, + std::vector>& destinationProperties, + Dali::Toolkit::Control source, + Dali::Toolkit::Control destination) + { + } + + /** + * @brief Update visual properties. + * @param[in] properties Property list to be used to update visual properties of this Control. + */ + virtual void OnUpdateVisualProperties(const std::vector>& properties) + { + } + private: /// @cond internal