/*
- * Copyright (c) 2017 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/table-view/table-view.h>
using namespace Dali;
using namespace Dali::Toolkit;
// 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.SetBackgroundColor( Color::WHITE );
+ // Get a handle to the window
+ Window window = application.GetWindow();
+ window.SetBackgroundColor( Color::WHITE );
+
+ // Connect to the window's key signal to allow Back and Escape to exit.
+ window.KeyEventSignal().Connect( this, &ClippingDrawOrderVerification::OnKeyEvent );
// Create the title label.
TextLabel title = TextLabel::New( "Clipping draw order verification" );
title.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
title.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
- title.SetAnchorPoint( AnchorPoint::CENTER );
- title.SetParentOrigin( ParentOrigin::CENTER );
+ title.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+ title.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
// Create the description label.
TextLabel description = TextLabel::New( "The bottom tree should have the same draw order as the top tree.\nThey should look identical except \"C\" is clipped on the bottom tree." );
description.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
description.SetProperty( TextLabel::Property::MULTI_LINE, true );
- description.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
- description.SetParentOrigin( Vector3( 0.5f, 1.0f, 0.5f ) );
- stage.Add( description );
+ description.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_CENTER );
+ description.SetProperty( Actor::Property::PARENT_ORIGIN, Vector3( 0.5f, 1.0f, 0.5f ) );
+ window.Add( description );
/*
* Create a 4-row TableView.
* +---------------+
*/
TableView view = TableView::New( 4, 1 );
- view.SetAnchorPoint( AnchorPoint::CENTER );
- view.SetParentOrigin( ParentOrigin::CENTER );
+ view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+ view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
view.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
view.SetCellAlignment( Toolkit::TableView::CellPosition( 0, 0 ), HorizontalAlignment::CENTER, VerticalAlignment::CENTER );
for( int tree = 0; tree < 2; ++tree )
{
Control container = Control::New();
- container.SetAnchorPoint( AnchorPoint::TOP_CENTER );
- container.SetParentOrigin( ParentOrigin::TOP_CENTER );
+ container.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER );
+ container.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_CENTER );
container.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
Vector4 backgroundColor = tree == 0 ? Vector4( 0.77f, 1.0f, 0.77f, 1.0f ) : Vector4( 0.8f, 0.8f, 1.0f, 1.0f );
container.SetProperty( Control::Property::BACKGROUND, backgroundColor );
std::stringstream labelStream;
labelStream << static_cast<char>( static_cast<char>( i ) + 'A' );
TextLabel textLabel = TextLabel::New( labelStream.str() );
- textLabel.SetAnchorPoint( AnchorPoint::TOP_CENTER );
+ textLabel.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER );
image[i] = ImageView::New( images[i] );
- image[i].SetAnchorPoint( AnchorPoint::TOP_CENTER );
+ image[i].SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER );
// Calculate the relative positioning for the images and labels.
float depth = static_cast<float>( i == 0 ? 0 : ( ( i - 1 ) % 2 ) + 1 );
if( i == 0 )
{
- image[i].SetParentOrigin( Vector3( 0.5f, treeYStart, 0.5f ) );
- textLabel.SetParentOrigin( Vector3( 1.0f, 0.05f * depth, 0.5f ) );
+ image[i].SetProperty( Actor::Property::PARENT_ORIGIN, Vector3( 0.5f, treeYStart, 0.5f ) );
+ textLabel.SetProperty( Actor::Property::PARENT_ORIGIN, Vector3( 1.0f, 0.05f * depth, 0.5f ) );
}
else
{
float b = i > 2 ? 1.0f : -1.0f;
- image[i].SetParentOrigin( Vector3( 0.5f + ( 0.2f * b ), depthGap, 0.5f ) );
- textLabel.SetParentOrigin( Vector3( 0.98f + 0.215f * b + ( 0.04f * b * depth ), treeYStart + 0.02f + ( 0.16f * depth ), 0.5f ) );
+ image[i].SetProperty( Actor::Property::PARENT_ORIGIN, Vector3( 0.5f + ( 0.2f * b ), depthGap, 0.5f ) );
+ textLabel.SetProperty( Actor::Property::PARENT_ORIGIN, Vector3( 0.98f + 0.215f * b + ( 0.04f * b * depth ), treeYStart + 0.02f + ( 0.16f * depth ), 0.5f ) );
}
container.Add( textLabel );
TextLabel treeLabel = TextLabel::New( treeText );
treeLabel.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
treeLabel.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "BOTTOM" );
- treeLabel.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
- treeLabel.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
+ treeLabel.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_CENTER );
+ treeLabel.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_CENTER );
container.Add( treeLabel );
// Enable clipping for the 2nd tree.
view.AddChild( container, TableView::CellPosition( 1u + tree, 0u ) );
}
- // Add the finished TableView to the stage.
- stage.Add( view );
+ // Add the finished TableView to the window.
+ window.Add( view );
- // Respond to a click anywhere on the stage
- stage.GetRootLayer().TouchSignal().Connect( this, &ClippingDrawOrderVerification::OnTouch );
+ // Respond to a click anywhere on the window
+ window.GetRootLayer().TouchSignal().Connect( this, &ClippingDrawOrderVerification::OnTouch );
}
- bool OnTouch( Actor actor, const TouchData& touch )
+ bool OnTouch( Actor actor, const TouchEvent& touch )
{
// Quit the application.
mApplication.Quit();
return true;
}
+ /**
+ * @brief Called when any key event is received
+ *
+ * Will use this to quit the application if Back or the Escape key is received
+ * @param[in] event The key event information
+ */
+ void OnKeyEvent( const KeyEvent& event )
+ {
+ if( event.state == KeyEvent::Down )
+ {
+ if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
+ {
+ mApplication.Quit();
+ }
+ }
+ }
+
private:
Application& mApplication;
};
-void RunVerification( Application& application )
-{
- ClippingDrawOrderVerification verification( application );
-
- application.MainLoop();
-}
-
-// Entry point for Linux & Tizen applications.
int DALI_EXPORT_API main( int argc, char **argv )
{
Application application = Application::New( &argc, &argv );
-
- RunVerification( application );
-
+ ClippingDrawOrderVerification verification( application );
+ application.MainLoop();
return 0;
}