X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fcontrol-impl.h;h=9c156d4ba0cc687b795d5dc424318c752d041590;hb=4203f71ecd2d3d5da986271504fae10880b389f6;hp=48c6b9c54ad08b1bd25cac623195c7d40c08f8cb;hpb=3ea3bc2160dead96a69eae4c12175b6bd760a006;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 48c6b9c..9c156d4 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) 2021 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. @@ -43,9 +43,14 @@ namespace Toolkit class StyleManager; -namespace Internal +namespace DevelControl { +class ControlAccessible; + +} // namespace DevelControl +namespace Internal +{ /** * @brief This is the internal base class for all controls. * @@ -60,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. * @@ -110,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 /** @@ -254,7 +276,6 @@ public: DALI_INTERNAL void KeyboardEnter(); /// @endcond - // Signals /** @@ -382,9 +403,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 @@ -402,6 +421,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 @@ -426,6 +458,11 @@ public: // API for derived classes to override */ virtual void OnInitialize(); + /** + * @copydoc Dali::Toolkit::Control::IsResourceReady + */ + virtual bool IsResourceReady() const; + // Styling /** @@ -477,6 +514,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 /** @@ -630,8 +685,7 @@ public: // API for derived classes to override * @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); + 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.