/*
- * Copyright (c) 2015 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.
*/
#include <dali-toolkit/dali-toolkit.h>
-#include <dali-toolkit/devel-api/controls/renderer-factory/renderer-factory.h>
-#include <dali-toolkit/devel-api/controls/renderer-factory/control-renderer.h>
+#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
#include "shared/view.h"
using namespace Dali;
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 );
+
}
// This example shows how to render color gradients
GradientController( Application& application )
: mApplication( application ),
- mIndex( 0 )
+ mIndex( 0 ),
+ mRoundedCorner( false )
{
// Connect to the Application's Init signal
mApplication.InitSignal().Connect( this, &GradientController::Create );
APPLICATION_TITLE );
PushButton changeButton = Toolkit::PushButton::New();
- changeButton.SetUnselectedImage( CHANGE_ICON );
- changeButton.SetSelectedImage( CHANGE_ICON_SELECTED );
+ 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 );
+ 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 );
+
+ mGradientControl = Control::New();
+ mGradientControl.SetAnchorPoint( AnchorPoint::CENTER );
+ mGradientControl.SetParentOrigin( ParentOrigin::CENTER );
+ mGradientControl.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
+ Vector3 offset( 0.9f, 0.7f, 0.0f );
+ mGradientControl.SetSizeModeFactor( offset );
+ content.Add( mGradientControl );
+
// ---- Gradient for background
- mGradientMap.Insert("rendererType", "gradientRenderer");
+ 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.f );
- mGradientMap.Insert("gradientStopOffset", stopOffsets);
+ 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("gradientStopColor", stopColors);
+ mGradientMap.Insert( GradientVisual::Property::STOP_COLOR, stopColors );
+
+ mGradientMap.Insert( DevelVisual::Property::CORNER_RADIUS, mRoundedCorner ? CORNER_RADIUS_VALUE : 0.0f );
- OnChangeIconClicked( changeButton );
+ UpdateGradientMap();
}
bool OnChangeIconClicked( Toolkit::Button button )
{
+ mIndex++;
+ UpdateGradientMap();
+ return true;
+ }
+
+ bool OnRoundedCornerClicked( Toolkit::Button button )
+ {
+ mRoundedCorner = !mRoundedCorner;
+ mGradientMap[DevelVisual::Property::CORNER_RADIUS] = mRoundedCorner ? CORNER_RADIUS_VALUE : 0.0f;
+
+ UpdateGradientMap();
+
+ return true;
+ }
+
+ void UpdateGradientMap()
+ {
Property::Map gradientMap;
switch( mIndex%4 )
{
case 0: // linear gradient with units as objectBoundingBox
{
- gradientMap.Insert("gradientStartPosition", Vector2( 0.5f, 0.5f ));
- gradientMap.Insert("gradientEndPosition", 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 halfStageSize = Stage::GetCurrent().GetSize()*0.5f;
- gradientMap.Insert("gradientStartPosition", halfStageSize);
- gradientMap.Insert("gradientEndPosition", -halfStageSize );
- gradientMap.Insert("gradientUnits", "userSpace");
+ gradientMap.Insert( GradientVisual::Property::START_POSITION, halfStageSize );
+ gradientMap.Insert( GradientVisual::Property::END_POSITION, -halfStageSize );
+ gradientMap.Insert( GradientVisual::Property::UNITS, GradientVisual::Units::USER_SPACE );
break;
}
case 2: // radial gradient with units as objectBoundingBox
{
- gradientMap.Insert("gradientCenter", Vector2(0.5f, 0.5f));
- gradientMap.Insert("gradientRadius", 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 stageSize = Stage::GetCurrent().GetSize();
- gradientMap.Insert("gradientCenter", stageSize*0.5f);
- gradientMap.Insert("gradientRadius", stageSize.Length());
- gradientMap.Insert("gradientUnits", "userSpace");
+ gradientMap.Insert( GradientVisual::Property::CENTER, stageSize * 0.5f );
+ gradientMap.Insert( GradientVisual::Property::RADIUS, stageSize.Length());
+ gradientMap.Insert( GradientVisual::Property::UNITS, GradientVisual::Units::USER_SPACE );
break;
}
}
gradientMap.Merge( mGradientMap );
- mView.SetProperty( Control::Property::BACKGROUND, gradientMap );
-
- mIndex++;
- return true;
- }
-
- bool OnTouch( Actor actor, const TouchEvent& touch )
- {
- // quit the application
- mApplication.Quit();
- return true;
+ mGradientControl.SetProperty( Control::Property::BACKGROUND, gradientMap );
}
void OnKeyEvent(const KeyEvent& event)
Property::Map mGradientMap;
Control mView;
+ Control mGradientControl;
unsigned mIndex;
+ bool mRoundedCorner;
};
-void RunTest( Application& application )
+int DALI_EXPORT_API main( int argc, char **argv )
{
+ Application application = Application::New( &argc, &argv );
GradientController test( application );
-
application.MainLoop();
-}
-
-// Entry point for Linux & Tizen applications
-//
-int main( int argc, char **argv )
-{
- Application application = Application::New( &argc, &argv );
-
- RunTest( application );
-
return 0;
}