#define DALI_DEMO_INTERNAL_IMAGE_CHANNEL_CONTROL_IMPL_H
/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
* limitations under the License.
*/
-#include "image-channel-control.h"
-#include <dali-toolkit/public-api/controls/control-impl.h>
+#include <dali-toolkit/devel-api/visual-factory/transition-data.h>
#include <dali-toolkit/devel-api/visual-factory/visual-base.h>
+#include <dali-toolkit/public-api/controls/control-impl.h>
+#include <dali/public-api/animation/animation.h>
+#include "image-channel-control.h"
namespace Demo
{
-
namespace Internal // To use TypeRegistry, handle and body classes need the same name
{
-
class ImageChannelControl : public Dali::Toolkit::Internal::Control
{
public:
/**
* @copydoc ImageChannelControl::SetImage
*/
- void SetImage( const std::string& url );
+ void SetImage(const std::string& url);
+
+ /**
+ * @copydoc ImageChannelControl::SetVisibility
+ */
+ void SetVisibility(bool visibility);
-public: // Properties
+public: // Properties
/**
* Called when a property of an object of this type is set.
* @param[in] object The object whose property is set.
* @param[in] index The property index.
* @param[in] value The new property value.
*/
- static void SetProperty( Dali::BaseObject* object, Dali::Property::Index index, const Dali::Property::Value& value );
+ static void SetProperty(Dali::BaseObject* object, Dali::Property::Index index, const Dali::Property::Value& value);
/**
* Called to retrieve a property of an object of this type.
* @param[in] index The property index.
* @return The current value of the property.
*/
- static Dali::Property::Value GetProperty( Dali::BaseObject* object, Dali::Property::Index propertyIndex );
+ static Dali::Property::Value GetProperty(Dali::BaseObject* object, Dali::Property::Index propertyIndex);
private: // From Control
/**
virtual void OnInitialize();
/**
- * @copydoc Toolkit::Control::OnStageConnect()
+ * @copydoc Toolkit::Control::OnSceneConnection()
*/
- virtual void OnStageConnection( int depth );
+ virtual void OnSceneConnection(int depth);
/**
- * @copydoc Toolkit::Control::OnStageDisconnection()
+ * @copydoc Toolkit::Control::OnSceneDisconnection()
*/
- virtual void OnStageDisconnection();
+ virtual void OnSceneDisconnection();
/**
* @copydoc Toolkit::Control::OnSizeSet()
*/
- virtual void OnSizeSet( const Dali::Vector3& targetSize );
+ virtual void OnSizeSet(const Dali::Vector3& targetSize);
/**
* @copydoc Toolkit::Control::GetNaturalSize
*/
virtual Dali::Vector3 GetNaturalSize();
+ /**
+ * @copydoc Toolkit::Control::OnStyleChange
+ */
+ virtual void OnStyleChange(Dali::Toolkit::StyleManager styleManager, Dali::StyleChange::Type change);
+
+private:
+ void OnStateChangeAnimationFinished(Dali::Animation& handle);
+
private:
//undefined
- ImageChannelControl( const ImageChannelControl& );
- ImageChannelControl& operator=( const ImageChannelControl& );
+ ImageChannelControl(const ImageChannelControl&);
+ ImageChannelControl& operator=(const ImageChannelControl&);
private:
// Implementation details
- std::string mUrl;
- Dali::Toolkit::Visual::Base mVisual;
- Dali::Vector3 mChannels;
- Dali::Property::Index mChannelIndex;
+ std::string mUrl;
+ Dali::Toolkit::Visual::Base mVisual;
+ Dali::Vector3 mChannels;
+ Dali::Toolkit::TransitionData mEnableVisibilityTransition;
+ Dali::Toolkit::TransitionData mDisableVisibilityTransition;
+ Dali::Animation mAnimation;
+ Dali::Property::Index mChannelIndex;
+ bool mVisibility : 1;
+ bool mTargetVisibility : 1;
};
-} // Internal
+} // namespace Internal
-inline Internal::ImageChannelControl& GetImpl( Demo::ImageChannelControl& handle )
+inline Internal::ImageChannelControl& GetImpl(Demo::ImageChannelControl& handle)
{
- DALI_ASSERT_ALWAYS( handle );
+ DALI_ASSERT_ALWAYS(handle);
Dali::RefObject& object = handle.GetImplementation();
return static_cast<Internal::ImageChannelControl&>(object);
}
-inline const Internal::ImageChannelControl& GetImpl( const Demo::ImageChannelControl& handle )
+inline const Internal::ImageChannelControl& GetImpl(const Demo::ImageChannelControl& handle)
{
- DALI_ASSERT_ALWAYS( handle );
+ DALI_ASSERT_ALWAYS(handle);
const Dali::RefObject& object = handle.GetImplementation();
return static_cast<const Internal::ImageChannelControl&>(object);
}
-} // Demo
+} // namespace Demo
#endif // DALI_DEMO_IMAGE_CHANNEL_CONTROL_IMPL_H