X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fcontrol%2Fcontrol-data-impl.h;h=e0421133c989f79b916f5c599660c65e7b32a2f6;hp=a0ff3d1f4a2e3ccbe4675d638ae2218c28af365b;hb=ee7b436210b09635d032b50eefecb7369be136e7;hpb=aff52b6dbc13a5be62bbd5db2e4c76d3746d9e40 diff --git a/dali-toolkit/internal/controls/control/control-data-impl.h b/dali-toolkit/internal/controls/control/control-data-impl.h index a0ff3d1..e042113 100755 --- a/dali-toolkit/internal/controls/control/control-data-impl.h +++ b/dali-toolkit/internal/controls/control/control-data-impl.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_CONTROL_DATA_IMPL_H /* - * Copyright (c) 2017 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. @@ -24,7 +24,7 @@ #include // INTERNAL INCLUDES -#include +#include #include #include #include @@ -64,7 +64,7 @@ typedef Dali::OwnerContainer< RegisteredVisual* > RegisteredVisualContainer; /** * @brief Holds the Implementation for the internal control class */ -class Control::Impl : public ConnectionTracker, public Visual::ResourceObserver +class Control::Impl : public ConnectionTracker, public Visual::EventObserver { public: @@ -83,7 +83,7 @@ public: /** * @brief Constructor. - * @param[in] controlImpl The control which own this implementation + * @param[in] controlImpl The control which owns this implementation */ Impl( Control& controlImpl ); @@ -123,9 +123,17 @@ public: /** * @brief Called when a resource is ready. * @param[in] object The visual whose resources are ready - * @note Overriding method in Visual::ResourceObserver. + * @note Overriding method in Visual::EventObserver. */ - virtual void ResourceReady( Visual::Base& object ); + void ResourceReady( Visual::Base& object ) override; + + /** + * @brief Called when an event occurs. + * @param[in] object The visual whose events occur + * @param[in] signalId The signal to emit. See Visual to find supported signals + * @note Overriding method in Visual::EventObserver. + */ + void NotifyVisualEvent( Visual::Base& object, Property::Index signalId ) override; /** * @copydoc Dali::Toolkit::DevelControl::RegisterVisual() @@ -185,6 +193,16 @@ public: Toolkit::Visual::ResourceStatus GetVisualResourceStatus( Property::Index index ) const; /** + * @param[in,out] animation Handle to existing animation, or an empty handle that + * can be set to a New animation if createAnimation is true + * @param[in] transitionData The transition data describing the animation + * @param[in] createAnimation True if the animation should be created + */ + void AddTransitions( Dali::Animation& animation, + const Toolkit::TransitionData& transitionData, + bool createAnimation = false ); + + /** * @copydoc Dali::Toolkit::DevelControl::CreateTransition() */ Dali::Animation CreateTransition( const Toolkit::TransitionData& transitionData ); @@ -272,9 +290,9 @@ public: bool IsResourceReady() const; /** - * @copydoc CustomActorImpl::OnStageDisconnection() + * @copydoc CustomActorImpl::OnSceneDisconnection() */ - void OnStageDisconnection(); + void OnSceneDisconnection(); /** * @brief Sets the margin. @@ -313,6 +331,22 @@ public: */ bool FilterKeyEvent( const KeyEvent& event ); + /** + * @copydoc DevelControl::VisualEventSignal() + */ + DevelControl::VisualEventSignalType& VisualEventSignal(); + + /** + * @brief Sets the shadow with a property map. + * @param[in] map The shadow property map + */ + void SetShadow(const Property::Map& map); + + /** + * @brief Clear the shadow. + */ + void ClearShadow(); + private: /** @@ -352,6 +386,16 @@ private: */ void RegisterVisual( Property::Index index, Toolkit::Visual::Base& visual, VisualState::Type enabled, DepthIndexValue::Type depthIndexValueSet, int depthIndex = 0 ); + /** + * @brief Emits the resource ready signal. + */ + void EmitResourceReadySignal(); + + /** + * @brief Callbacks called on idle. + */ + void OnIdleCallback(); + public: Control& mControlImpl; @@ -373,6 +417,7 @@ public: Toolkit::Control::KeyInputFocusSignalType mKeyInputFocusGainedSignal; Toolkit::Control::KeyInputFocusSignalType mKeyInputFocusLostSignal; Toolkit::Control::ResourceReadySignalType mResourceReadySignal; + DevelControl::VisualEventSignalType mVisualEventSignal; // Gesture Detection PinchGestureDetector mPinchGestureDetector; @@ -384,13 +429,17 @@ public: TooltipPtr mTooltip; InputMethodContext mInputMethodContext; + CallbackBase* mIdleCallback; ///< The idle callback to emit the resource ready signal. ControlBehaviour mFlags : CONTROL_BEHAVIOUR_FLAG_COUNT; ///< Flags passed in from constructor. bool mIsKeyboardNavigationSupported :1; ///< Stores whether keyboard navigation is supported by the control. bool mIsKeyboardFocusGroup :1; ///< Stores whether the control is a focus group. + bool mIsEmittingResourceReadySignal :1; ///< True during ResourceReady(). + bool mNeedToEmitResourceReady :1; ///< True if need to emit the resource ready signal again. RegisteredVisualContainer mRemoveVisuals; ///< List of visuals that are being replaced by another visual once ready + // Properties - these need to be members of Internal::Control::Impl as they access private methods/data of Internal::Control and Internal::Control::Impl. static const PropertyRegistration PROPERTY_1; static const PropertyRegistration PROPERTY_2; @@ -406,6 +455,7 @@ public: static const PropertyRegistration PROPERTY_12; static const PropertyRegistration PROPERTY_13; static const PropertyRegistration PROPERTY_14; + static const PropertyRegistration PROPERTY_15; };