X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=examples%2Ftransitions%2Ftransition-application.cpp;h=d8e2ae2dfa901a09193a32bdb19be489e5c597ca;hb=1b19fd140ff139b5854a1a62447faf31b175d8f6;hp=ab0daf05caa0ece5b22b50c817e84f57f9e218e0;hpb=8ab0decf971a6605ded520fe0a636a1a0affdf2e;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/transitions/transition-application.cpp b/examples/transitions/transition-application.cpp index ab0daf0..d8e2ae2 100644 --- a/examples/transitions/transition-application.cpp +++ b/examples/transitions/transition-application.cpp @@ -1,5 +1,5 @@ /* - * 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. @@ -24,134 +24,166 @@ // External includes #include -#include "beat-control.h" +#include +#include #include #include +#include "shadow-button.h" // Internal includes using namespace Dali; using namespace Dali::Toolkit; -namespace Demo +namespace +{ +void SetLabelText(Button button, const char* label) { + button.SetProperty(Toolkit::Button::Property::LABEL, label); +} -const char* TransitionApplication::DEMO_THEME_ONE_PATH( DEMO_STYLE_DIR "style-example-theme-one.json" ); +} // namespace +namespace Demo +{ +const char* TransitionApplication::DEMO_THEME_ONE_PATH(DEMO_STYLE_DIR "style-example-theme-one.json"); +const char* TransitionApplication::DEMO_THEME_TWO_PATH(DEMO_STYLE_DIR "style-example-theme-two.json"); -TransitionApplication::TransitionApplication( Application& application ) -: mApplication( application ), +TransitionApplication::TransitionApplication(Application& application) +: mApplication(application), mTitle(), - mBeatControl(), + mShadowButton(), mActionButtons(), - mActionIndex( Property::INVALID_INDEX ) + mVisualIndex(Property::INVALID_INDEX), + mActionIndex(Property::INVALID_INDEX) { - application.InitSignal().Connect( this, &TransitionApplication::Create ); + application.InitSignal().Connect(this, &TransitionApplication::Create); } TransitionApplication::~TransitionApplication() { } -void TransitionApplication::Create( Application& application ) +void TransitionApplication::Create(Application& application) { - Stage stage = Stage::GetCurrent(); - stage.KeyEventSignal().Connect(this, &TransitionApplication::OnKeyEvent); - stage.SetBackgroundColor( Vector4( 0.1f, 0.1f, 0.1f, 1.0f ) ); - - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); + Window window = application.GetWindow(); + window.KeyEventSignal().Connect(this, &TransitionApplication::OnKeyEvent); + window.SetBackgroundColor(Vector4(0.1f, 0.1f, 0.1f, 1.0f)); // Content panes: - TableView contentLayout = TableView::New( 3, 1 ); - contentLayout.SetName("ContentLayout"); - contentLayout.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - contentLayout.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - contentLayout.SetParentOrigin( ParentOrigin::TOP_LEFT ); - contentLayout.SetCellPadding( Size( 10, 10 ) ); - + TableView contentLayout = TableView::New(3, 1); + contentLayout.SetProperty(Dali::Actor::Property::NAME, "ContentLayout"); + contentLayout.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); + contentLayout.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); + contentLayout.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); + contentLayout.SetCellPadding(Vector2(0.0f, 5.0f)); + contentLayout.SetBackgroundColor(Vector4(0.949, 0.949, 0.949, 1.0)); // Assign all rows the size negotiation property of fitting to children - stage.Add( contentLayout ); + window.Add(contentLayout); - mTitle = TextLabel::New( "Custom Control Transition Example" ); - mTitle.SetName( "Title" ); + mTitle = TextLabel::New("Custom Control Transition Example"); + mTitle.SetProperty(Dali::Actor::Property::NAME, "Title"); mTitle.SetStyleName("Title"); - mTitle.SetAnchorPoint( AnchorPoint::TOP_CENTER ); - mTitle.SetParentOrigin( ParentOrigin::TOP_CENTER ); - mTitle.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); - mTitle.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT ); - mTitle.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); - contentLayout.Add( mTitle ); - contentLayout.SetFitHeight(0); - - mBeatControl = BeatControl::New(); - mBeatControl.SetName("BeatControl"); - mBeatControl.SetAnchorPoint( AnchorPoint::CENTER ); - mBeatControl.SetParentOrigin( ParentOrigin::CENTER ); - mBeatControl.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - contentLayout.Add( mBeatControl ); - // beat control should fill the tableview cell, so no change to default parameters - - TableView actionButtonLayout = TableView::New( 1, 4 ); - actionButtonLayout.SetName("ThemeButtonsLayout"); - actionButtonLayout.SetCellPadding( Vector2( 6.0f, 0.0f ) ); - - actionButtonLayout.SetAnchorPoint( AnchorPoint::CENTER ); - actionButtonLayout.SetParentOrigin( ParentOrigin::CENTER ); - actionButtonLayout.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); - actionButtonLayout.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT ); - actionButtonLayout.SetCellPadding( Size( 10, 10 ) ); - actionButtonLayout.SetFitHeight( 0 ); - - TextLabel label = TextLabel::New( "Action: "); - label.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); + mTitle.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH); + mTitle.SetResizePolicy(ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT); + mTitle.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER"); + contentLayout.Add(mTitle); + contentLayout.SetFitHeight(0); // Fill width + + // Provide some padding around the center cell + TableView buttonLayout = TableView::New(3, 3); + buttonLayout.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); + buttonLayout.SetFixedHeight(1, 100); + buttonLayout.SetFixedWidth(1, 350); + contentLayout.Add(buttonLayout); + + mShadowButton = ShadowButton::New(); + mShadowButton.SetProperty(Dali::Actor::Property::NAME, "ShadowButton"); + mShadowButton.SetActiveState(false); + mShadowButton.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER); + mShadowButton.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + mShadowButton.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); + mShadowButton.SetProperty(DevelControl::Property::STATE, DevelControl::DISABLED); + mShadowButton.SetProperty(DevelControl::Property::SUB_STATE, "UNCHECKED"); + + buttonLayout.AddChild(mShadowButton, TableView::CellPosition(1, 1)); + + TableView actionButtonLayout = TableView::New(1, NUMBER_OF_ACTION_BUTTONS + 1); + actionButtonLayout.SetProperty(Dali::Actor::Property::NAME, "ThemeButtonsLayout"); + actionButtonLayout.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH); + actionButtonLayout.SetResizePolicy(ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT); + actionButtonLayout.SetFitHeight(0); + + TextLabel label = TextLabel::New("Action: "); + label.SetResizePolicy(ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS); label.SetStyleName("ActionLabel"); - label.SetAnchorPoint( AnchorPoint::TOP_CENTER ); - label.SetParentOrigin( ParentOrigin::TOP_CENTER ); - actionButtonLayout.AddChild( label, TableView::CellPosition( 0, 0 ) ); - actionButtonLayout.SetCellAlignment( TableView::CellPosition( 0, 0 ), HorizontalAlignment::LEFT, VerticalAlignment::CENTER ); + actionButtonLayout.AddChild(label, TableView::CellPosition(0, 0)); + actionButtonLayout.SetCellAlignment(TableView::CellPosition(0, 0), HorizontalAlignment::LEFT, VerticalAlignment::CENTER); - for( int i=0; i<3; ++i ) + for(int i = 0; i < NUMBER_OF_ACTION_BUTTONS; ++i) { mActionButtons[i] = PushButton::New(); - mActionButtons[i].SetName("ActionButton"); + mActionButtons[i].SetProperty(Dali::Actor::Property::NAME, "ActionButton"); mActionButtons[i].SetStyleName("ActionButton"); - mActionButtons[i].SetParentOrigin( ParentOrigin::CENTER ); - mActionButtons[i].SetAnchorPoint( ParentOrigin::CENTER ); - mActionButtons[i].SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); - mActionButtons[i].SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT ); - mActionIndex = mActionButtons[i].RegisterProperty( "actionId", i, Property::READ_WRITE ); - mActionButtons[i].ClickedSignal().Connect( this, &TransitionApplication::OnActionButtonClicked ); - actionButtonLayout.AddChild( mActionButtons[i], TableView::CellPosition( 0, 1+i ) ); + mActionButtons[i].SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH); + mActionButtons[i].SetResizePolicy(ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT); + mActionIndex = mActionButtons[i].RegisterProperty("actionId", i, Property::READ_WRITE); + mActionButtons[i].ClickedSignal().Connect(this, &TransitionApplication::OnActionButtonClicked); + actionButtonLayout.AddChild(mActionButtons[i], TableView::CellPosition(0, 1 + i)); } - mActionButtons[0].SetLabelText( "Bounce" ); - mActionButtons[1].SetLabelText( "X" ); - mActionButtons[2].SetLabelText( "Y" ); + SetLabelText(mActionButtons[0], "Enable"); + SetLabelText(mActionButtons[1], "Check"); + mActionButtons[1].SetProperty(Button::Property::DISABLED, true); - contentLayout.Add( actionButtonLayout ); + contentLayout.Add(actionButtonLayout); contentLayout.SetFitHeight(2); } - -bool TransitionApplication::OnActionButtonClicked( Button button ) +bool TransitionApplication::OnActionButtonClicked(Button button) { - int action = button.GetProperty( mActionIndex ); - switch( action ) + int action = button.GetProperty(mActionIndex); + switch(action) { case 0: { - mBeatControl.StartBounceAnimation(); + bool activeState = mShadowButton.GetActiveState(); + mShadowButton.SetActiveState(!activeState); + if(activeState) + { + SetLabelText(button, "Enable"); + mShadowButton.SetProperty(DevelControl::Property::STATE, DevelControl::DISABLED); + } + else + { + SetLabelText(button, "Disable"); + mShadowButton.SetProperty(DevelControl::Property::STATE, DevelControl::NORMAL); + } + mActionButtons[1].SetProperty(Button::Property::DISABLED, activeState); break; } case 1: { - mBeatControl.StartXAnimation(); + bool checkState = mShadowButton.GetCheckState(); + mShadowButton.SetCheckState(!checkState); + if(checkState) + { + SetLabelText(button, "Check"); + mShadowButton.SetProperty(DevelControl::Property::SUB_STATE, "UNCHECKED"); + } + else + { + SetLabelText(button, "Uncheck"); + mShadowButton.SetProperty(DevelControl::Property::SUB_STATE, "CHECKED"); + } break; } case 2: { - mBeatControl.StartYAnimation(); + break; + } + case 3: + { break; } } @@ -159,27 +191,27 @@ bool TransitionApplication::OnActionButtonClicked( Button button ) return true; } -void TransitionApplication::OnKeyEvent( const KeyEvent& keyEvent ) +void TransitionApplication::OnKeyEvent(const KeyEvent& keyEvent) { static int keyPressed = 0; - if( keyEvent.state == KeyEvent::Down) + if(keyEvent.GetState() == KeyEvent::DOWN) { - if( keyPressed == 0 ) // Is this the first down event? + if(keyPressed == 0) // Is this the first down event? { - printf("Key pressed: %s %d\n", keyEvent.keyPressedName.c_str(), keyEvent.keyCode ); + printf("Key pressed: %s %d\n", keyEvent.GetKeyName().c_str(), keyEvent.GetKeyCode()); - if( IsKey( keyEvent, DALI_KEY_ESCAPE) || IsKey( keyEvent, DALI_KEY_BACK ) ) + if(IsKey(keyEvent, DALI_KEY_ESCAPE) || IsKey(keyEvent, DALI_KEY_BACK)) { mApplication.Quit(); } - else if( keyEvent.keyPressedName.compare("Return") == 0 ) + else if(keyEvent.GetKeyName().compare("Return") == 0) { } } keyPressed = 1; } - else if( keyEvent.state == KeyEvent::Up ) + else if(keyEvent.GetState() == KeyEvent::UP) { keyPressed = 0; }