X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Fgradients%2Fgradients-example.cpp;h=2125c95f1e6e3b3c5056ab09c63019a1bb38c741;hb=f29ed9f0eacff3584e754f8478ec331f8fe5b3ce;hp=6ea9b15749980d026afb085046e07db31c825573;hpb=f21ab838cd0c67956285717243c35e22f4e5a963;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/gradients/gradients-example.cpp b/examples/gradients/gradients-example.cpp index 6ea9b15..2125c95 100644 --- a/examples/gradients/gradients-example.cpp +++ b/examples/gradients/gradients-example.cpp @@ -1,5 +1,5 @@ /* - * 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. @@ -16,8 +16,7 @@ */ #include -#include -#include +#include #include "shared/view.h" using namespace Dali; @@ -27,9 +26,14 @@ namespace { const char * const APPLICATION_TITLE( "Color Gradients" ); -const char * const TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" ); -const char * const CHANGE_ICON( DALI_IMAGE_DIR "icon-change.png" ); -const char * const CHANGE_ICON_SELECTED( DALI_IMAGE_DIR "icon-change-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 ); + } // This example shows how to render color gradients @@ -40,7 +44,8 @@ public: GradientController( Application& application ) : mApplication( application ), - mIndex( 0 ) + mIndex( 0 ), + mRoundedCorner( false ) { // Connect to the Application's Init signal mApplication.InitSignal().Connect( this, &GradientController::Create ); @@ -54,12 +59,12 @@ public: // The Init signal is received once (only) during the Application lifetime void Create( Application& application ) { - // Get a handle to the stage - Stage stage = Stage::GetCurrent(); - stage.KeyEventSignal().Connect(this, &GradientController::OnKeyEvent); + // Get a handle to the window + auto window = application.GetWindow(); + window.KeyEventSignal().Connect(this, &GradientController::OnKeyEvent); // Creates a default view with a default tool bar. - // The view is added to the stage. + // The view is added to the window. Toolkit::ToolBar toolBar; Layer content = DemoHelper::CreateView( application, mView, @@ -69,83 +74,111 @@ public: 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.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 - mGradientMap.Insert("renderer-type", "gradient-renderer"); + 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("gradient-stop-offset", 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("gradient-stop-color", 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("gradient-start-position", Vector2( 0.5f, 0.5f )); - gradientMap.Insert("gradient-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 halfStageSize = Stage::GetCurrent().GetSize()*0.5f; - gradientMap.Insert("gradient-start-position", halfStageSize); - gradientMap.Insert("gradient-end-position", -halfStageSize ); - gradientMap.Insert("gradient-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("gradient-center", Vector2(0.5f, 0.5f)); - gradientMap.Insert("gradient-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 stageSize = Stage::GetCurrent().GetSize(); - gradientMap.Insert("gradient-center", stageSize*0.5f); - gradientMap.Insert("gradient-radius", stageSize.Length()); - gradientMap.Insert("gradient-units", "user-space"); + 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 ); 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) @@ -164,23 +197,15 @@ private: 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; }