*/
#include <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/controls/control-devel.h>
#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
#include "shared/view.h"
namespace
{
-const char * const APPLICATION_TITLE( "Color Gradients" );
+const char* const APPLICATION_TITLE("Color Gradients");
-const char * const TOOLBAR_IMAGE( DEMO_IMAGE_DIR "top-bar.png" );
-const char * const CHANGE_ICON( DEMO_IMAGE_DIR "icon-change.png" );
-const char * const CHANGE_ICON_SELECTED( DEMO_IMAGE_DIR "icon-change-selected.png" );
-const char * const ROUNDED_CORNER_ICON( DEMO_IMAGE_DIR "icon-replace.png" );
-const char * const ROUNDED_CORNER_ICON_SELECTED( DEMO_IMAGE_DIR "icon-replace-selected.png" );
+const char* const TOOLBAR_IMAGE(DEMO_IMAGE_DIR "top-bar.png");
+const char* const CHANGE_ICON(DEMO_IMAGE_DIR "icon-change.png");
+const char* const CHANGE_ICON_SELECTED(DEMO_IMAGE_DIR "icon-change-selected.png");
+const char* const ROUNDED_CORNER_ICON(DEMO_IMAGE_DIR "icon-replace.png");
+const char* const ROUNDED_CORNER_ICON_SELECTED(DEMO_IMAGE_DIR "icon-replace-selected.png");
-const float CORNER_RADIUS_VALUE( 20.0f );
+constexpr Vector4 CORNER_RADIUS_VALUE(20.0f, 20.0f, 20.0f, 20.0f);
-}
+} // namespace
// This example shows how to render color gradients
//
class GradientController : public ConnectionTracker
{
public:
-
- GradientController( Application& application )
- : mApplication( application ),
- mIndex( 0 ),
- mRoundedCorner( false )
+ GradientController(Application& application)
+ : mApplication(application),
+ mIndex(0),
+ mRoundedCorner(false)
{
// Connect to the Application's Init signal
- mApplication.InitSignal().Connect( this, &GradientController::Create );
+ mApplication.InitSignal().Connect(this, &GradientController::Create);
}
~GradientController()
}
// The Init signal is received once (only) during the Application lifetime
- void Create( Application& application )
+ void Create(Application& application)
{
// Get a handle to the window
auto window = application.GetWindow();
// Creates a default view with a default tool bar.
// The view is added to the window.
Toolkit::ToolBar toolBar;
- Layer content = DemoHelper::CreateView( application,
- mView,
- toolBar,
- "",
- TOOLBAR_IMAGE,
- APPLICATION_TITLE );
+ Layer content = DemoHelper::CreateView(application,
+ mView,
+ toolBar,
+ "",
+ TOOLBAR_IMAGE,
+ APPLICATION_TITLE);
PushButton changeButton = Toolkit::PushButton::New();
- changeButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, CHANGE_ICON );
- changeButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, CHANGE_ICON_SELECTED );
- changeButton.ClickedSignal().Connect( this, &GradientController::OnChangeIconClicked );
- toolBar.AddControl( changeButton,
- DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage,
- Toolkit::Alignment::HorizontalRight,
- DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
+ changeButton.SetProperty(Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, CHANGE_ICON);
+ changeButton.SetProperty(Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, CHANGE_ICON_SELECTED);
+ changeButton.ClickedSignal().Connect(this, &GradientController::OnChangeIconClicked);
+ toolBar.AddControl(changeButton,
+ DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage,
+ Toolkit::Alignment::HORIZONTAL_RIGHT,
+ DemoHelper::DEFAULT_MODE_SWITCH_PADDING);
PushButton roundedCornerButton = Toolkit::PushButton::New();
- roundedCornerButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, ROUNDED_CORNER_ICON );
- roundedCornerButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, ROUNDED_CORNER_ICON_SELECTED );
- roundedCornerButton.ClickedSignal().Connect( this, &GradientController::OnRoundedCornerClicked );
- toolBar.AddControl( roundedCornerButton,
- DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage,
- Toolkit::Alignment::HorizontalCenter,
- DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
+ roundedCornerButton.SetProperty(Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, ROUNDED_CORNER_ICON);
+ roundedCornerButton.SetProperty(Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, ROUNDED_CORNER_ICON_SELECTED);
+ roundedCornerButton.ClickedSignal().Connect(this, &GradientController::OnRoundedCornerClicked);
+ toolBar.AddControl(roundedCornerButton,
+ DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage,
+ Toolkit::Alignment::HORIZONTAL_CENTER,
+ DemoHelper::DEFAULT_MODE_SWITCH_PADDING);
mGradientControl = Control::New();
- mGradientControl.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
- mGradientControl.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
- mGradientControl.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
- Vector3 offset( 0.9f, 0.7f, 0.0f );
- mGradientControl.SetProperty( Actor::Property::SIZE_MODE_FACTOR, offset );
- content.Add( mGradientControl );
+ mGradientControl.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
+ mGradientControl.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ mGradientControl.SetResizePolicy(ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS);
+ Vector3 offset(0.9f, 0.7f, 0.0f);
+ mGradientControl.SetProperty(Actor::Property::SIZE_MODE_FACTOR, offset);
+ content.Add(mGradientControl);
-// ---- Gradient for background
+ // ---- Gradient for background
- mGradientMap.Insert( Toolkit::Visual::Property::TYPE, Visual::GRADIENT );
+ mGradientMap.Insert(Toolkit::Visual::Property::TYPE, Visual::GRADIENT);
Property::Array stopOffsets;
- stopOffsets.PushBack( 0.0f );
- stopOffsets.PushBack( 0.3f );
- stopOffsets.PushBack( 0.6f );
- stopOffsets.PushBack( 0.8f );
- stopOffsets.PushBack( 1.0f );
- mGradientMap.Insert( GradientVisual::Property::STOP_OFFSET, stopOffsets );
+ stopOffsets.PushBack(0.0f);
+ stopOffsets.PushBack(0.3f);
+ stopOffsets.PushBack(0.6f);
+ stopOffsets.PushBack(0.8f);
+ stopOffsets.PushBack(1.0f);
+ mGradientMap.Insert(GradientVisual::Property::STOP_OFFSET, stopOffsets);
Property::Array stopColors;
- stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 255.f )/255.f );
- stopColors.PushBack( Vector4( 196.f, 198.f, 71.f, 122.f )/255.f );
- stopColors.PushBack( Vector4( 214.f, 37.f, 139.f, 191.f )/255.f );
- stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 150.f )/255.f );
- stopColors.PushBack( Color::YELLOW );
- mGradientMap.Insert( GradientVisual::Property::STOP_COLOR, stopColors );
+ stopColors.PushBack(Vector4(129.f, 198.f, 193.f, 255.f) / 255.f);
+ stopColors.PushBack(Vector4(196.f, 198.f, 71.f, 122.f) / 255.f);
+ stopColors.PushBack(Vector4(214.f, 37.f, 139.f, 191.f) / 255.f);
+ stopColors.PushBack(Vector4(129.f, 198.f, 193.f, 150.f) / 255.f);
+ stopColors.PushBack(Color::YELLOW);
+ mGradientMap.Insert(GradientVisual::Property::STOP_COLOR, stopColors);
- mGradientMap.Insert( DevelVisual::Property::CORNER_RADIUS, mRoundedCorner ? CORNER_RADIUS_VALUE : 0.0f );
+ mGradientMap.Insert(DevelVisual::Property::CORNER_RADIUS, mRoundedCorner ? CORNER_RADIUS_VALUE : Vector4::ZERO);
UpdateGradientMap();
}
- bool OnChangeIconClicked( Toolkit::Button button )
+ bool OnChangeIconClicked(Toolkit::Button button)
{
mIndex++;
UpdateGradientMap();
return true;
}
- bool OnRoundedCornerClicked( Toolkit::Button button )
+ bool OnRoundedCornerClicked(Toolkit::Button button)
{
mRoundedCorner = !mRoundedCorner;
- mGradientMap[DevelVisual::Property::CORNER_RADIUS] = mRoundedCorner ? CORNER_RADIUS_VALUE : 0.0f;
- UpdateGradientMap();
+ Animation animation = Animation::New(2.0f);
+ if(mRoundedCorner)
+ {
+ animation.AnimateTo(DevelControl::GetVisualProperty(mGradientControl, Control::Property::BACKGROUND, DevelVisual::Property::CORNER_RADIUS), CORNER_RADIUS_VALUE);
+ }
+ else
+ {
+ animation.AnimateTo(DevelControl::GetVisualProperty(mGradientControl, Control::Property::BACKGROUND, DevelVisual::Property::CORNER_RADIUS), Vector4::ZERO);
+ }
+ animation.Play();
return true;
}
{
Property::Map gradientMap;
- switch( mIndex%4 )
+ switch(mIndex % 4)
{
case 0: // linear gradient with units as objectBoundingBox
{
- gradientMap.Insert( GradientVisual::Property::START_POSITION, Vector2( 0.5f, 0.5f ) );
- gradientMap.Insert( GradientVisual::Property::END_POSITION, Vector2( -0.5f, -0.5f ) );
+ gradientMap.Insert(GradientVisual::Property::START_POSITION, Vector2(0.5f, 0.5f));
+ gradientMap.Insert(GradientVisual::Property::END_POSITION, Vector2(-0.5f, -0.5f));
break;
}
case 1: // linear gradient with units as userSpaceOnUse
{
- Vector2 halfWindowSize = Vector2(mApplication.GetWindow().GetSize())*0.5f;
- gradientMap.Insert( GradientVisual::Property::START_POSITION, halfWindowSize );
- gradientMap.Insert( GradientVisual::Property::END_POSITION, -halfWindowSize );
- gradientMap.Insert( GradientVisual::Property::UNITS, GradientVisual::Units::USER_SPACE );
+ Vector2 halfWindowSize = Vector2(mApplication.GetWindow().GetSize()) * 0.5f;
+ gradientMap.Insert(GradientVisual::Property::START_POSITION, halfWindowSize);
+ gradientMap.Insert(GradientVisual::Property::END_POSITION, -halfWindowSize);
+ gradientMap.Insert(GradientVisual::Property::UNITS, GradientVisual::Units::USER_SPACE);
break;
}
case 2: // radial gradient with units as objectBoundingBox
{
- gradientMap.Insert( GradientVisual::Property::CENTER, Vector2( 0.5f, 0.5f ) );
- gradientMap.Insert( GradientVisual::Property::RADIUS, 1.414f );
+ gradientMap.Insert(GradientVisual::Property::CENTER, Vector2(0.5f, 0.5f));
+ gradientMap.Insert(GradientVisual::Property::RADIUS, 1.414f);
break;
}
default: // radial gradient with units as userSpaceOnUse
{
Vector2 windowSize = mApplication.GetWindow().GetSize();
- gradientMap.Insert( GradientVisual::Property::CENTER, windowSize * 0.5f );
- gradientMap.Insert( GradientVisual::Property::RADIUS, windowSize.Length());
- gradientMap.Insert( GradientVisual::Property::UNITS, GradientVisual::Units::USER_SPACE );
+ gradientMap.Insert(GradientVisual::Property::CENTER, windowSize * 0.5f);
+ gradientMap.Insert(GradientVisual::Property::RADIUS, windowSize.Length());
+ gradientMap.Insert(GradientVisual::Property::UNITS, GradientVisual::Units::USER_SPACE);
break;
}
}
- gradientMap.Merge( mGradientMap );
- mGradientControl.SetProperty( Control::Property::BACKGROUND, gradientMap );
+ gradientMap.Merge(mGradientMap);
+ mGradientControl.SetProperty(Control::Property::BACKGROUND, gradientMap);
}
void OnKeyEvent(const KeyEvent& event)
{
- if(event.state == KeyEvent::Down)
+ if(event.GetState() == KeyEvent::DOWN)
{
- if( IsKey( event, Dali::DALI_KEY_ESCAPE) || IsKey( event, Dali::DALI_KEY_BACK) )
+ if(IsKey(event, Dali::DALI_KEY_ESCAPE) || IsKey(event, Dali::DALI_KEY_BACK))
{
mApplication.Quit();
}
}
private:
- Application& mApplication;
+ Application& mApplication;
Property::Map mGradientMap;
- Control mView;
- Control mGradientControl;
- unsigned mIndex;
- bool mRoundedCorner;
+ Control mView;
+ Control mGradientControl;
+ unsigned mIndex;
+ bool mRoundedCorner;
};
-int DALI_EXPORT_API main( int argc, char **argv )
+int DALI_EXPORT_API main(int argc, char** argv)
{
- Application application = Application::New( &argc, &argv );
- GradientController test( application );
+ Application application = Application::New(&argc, &argv);
+ GradientController test(application);
application.MainLoop();
return 0;
}