/*
- * Copyright (c) 2014 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.
// CLASS HEADER
#include <dali-toolkit/public-api/controls/control.h>
+// EXTERNAL INCLUDES
+#include <dali/integration-api/debug.h>
+
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
+#include <dali-toolkit/internal/controls/control/control-data-impl.h>
namespace Dali
{
{
}
-Control::Control(const Control& uiControl)
-: CustomActor( uiControl ? static_cast< const Internal::Control& >( uiControl.GetImplementation() ).GetOwner() : NULL)
+Control::Control( const Control& uiControl )
+: CustomActor( uiControl )
{
}
return DownCast< Control, Internal::Control >(handle);
}
-Internal::Control& Control::GetImplementation()
-{
- return static_cast<Internal::Control&>(CustomActor::GetImplementation());
-}
-
-const Internal::Control& Control::GetImplementation() const
-{
- return static_cast<const Internal::Control&>(CustomActor::GetImplementation());
-}
-
void Control::SetKeyInputFocus()
{
- GetImplementation().SetKeyInputFocus();
+ Internal::GetImplementation(*this).SetKeyInputFocus();
}
bool Control::HasKeyInputFocus()
{
- return GetImplementation().HasKeyInputFocus();
+ return Internal::GetImplementation(*this).HasKeyInputFocus();
}
void Control::ClearKeyInputFocus()
{
- GetImplementation().ClearKeyInputFocus();
+ Internal::GetImplementation(*this).ClearKeyInputFocus();
}
PinchGestureDetector Control::GetPinchGestureDetector() const
{
- return GetImplementation().GetPinchGestureDetector();
+ return Internal::GetImplementation(*this).GetPinchGestureDetector();
}
PanGestureDetector Control::GetPanGestureDetector() const
{
- return GetImplementation().GetPanGestureDetector();
+ return Internal::GetImplementation(*this).GetPanGestureDetector();
}
TapGestureDetector Control::GetTapGestureDetector() const
{
- return GetImplementation().GetTapGestureDetector();
+ return Internal::GetImplementation(*this).GetTapGestureDetector();
}
LongPressGestureDetector Control::GetLongPressGestureDetector() const
{
- return GetImplementation().GetLongPressGestureDetector();
+ return Internal::GetImplementation(*this).GetLongPressGestureDetector();
}
void Control::SetStyleName( const std::string& styleName )
{
- GetImplementation().SetStyleName( styleName );
+ Internal::GetImplementation(*this).SetStyleName( styleName );
}
const std::string& Control::GetStyleName() const
{
- return GetImplementation().GetStyleName();
+ return Internal::GetImplementation(*this).GetStyleName();
}
void Control::SetBackgroundColor( const Vector4& color )
{
- GetImplementation().SetBackgroundColor( color );
+ Internal::GetImplementation(*this).SetBackgroundColor( color );
}
-Vector4 Control::GetBackgroundColor() const
+void Control::ClearBackground()
{
- return GetImplementation().GetBackgroundColor();
+ Internal::GetImplementation(*this).ClearBackground();
}
-void Control::SetBackgroundImage( Image image )
+bool Control::IsResourceReady() const
{
- GetImplementation().SetBackgroundImage( image );
+ const Internal::Control& internalControl = Toolkit::Internal::GetImplementation( *this );
+ const Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( internalControl );
+
+ return controlDataImpl.IsResourceReady();
}
-void Control::ClearBackground()
+Toolkit::Visual::ResourceStatus Control::GetVisualResourceStatus( Dali::Property::Index index )
{
- GetImplementation().ClearBackground();
+ const Internal::Control& internalControl = Toolkit::Internal::GetImplementation( *this );
+ const Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( internalControl );
+ return controlDataImpl.GetVisualResourceStatus( index );
}
-Actor Control::GetBackgroundActor() const
+Control::KeyEventSignalType& Control::KeyEventSignal()
{
- return GetImplementation().GetBackgroundActor();
+ return Internal::GetImplementation(*this).KeyEventSignal();
}
-Control::KeyEventSignalType& Control::KeyEventSignal()
+Control::KeyInputFocusSignalType& Control::KeyInputFocusGainedSignal()
+{
+ return Internal::GetImplementation(*this).KeyInputFocusGainedSignal();
+}
+
+Control::KeyInputFocusSignalType& Control::KeyInputFocusLostSignal()
{
- return GetImplementation().KeyEventSignal();
+ return Internal::GetImplementation(*this).KeyInputFocusLostSignal();
+}
+
+Control::ResourceReadySignalType& Control::ResourceReadySignal()
+{
+ Internal::Control& internalControl = Toolkit::Internal::GetImplementation( *this );
+ Internal::Control::Impl& controlImpl = Internal::Control::Impl::Get( internalControl );
+
+ return controlImpl.mResourceReadySignal;
}
Control::Control(Internal::Control& implementation)