/*
- * 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.
// 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 );
// Step 1. Create shader
CreateLineShader();
// Step 4. Create an Actor
CreateActor();
- // Respond to a click anywhere on the stage
- stage.GetRootLayer().TouchSignal().Connect( this, &DrawLineController::OnTouch );
+ // Respond to a click anywhere on the window
+ window.GetRootLayer().TouchSignal().Connect( this, &DrawLineController::OnTouch );
+
+ // Respond to key events
+ window.KeyEventSignal().Connect( this, &DrawLineController::OnKeyEvent );
}
- bool OnTouch( Actor actor, const TouchData& touch )
+ bool OnTouch( Actor actor, const TouchEvent& touch )
{
// quit the application
mApplication.Quit();
}
/**
+ * @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.GetState() == KeyEvent::DOWN )
+ {
+ if ( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
+ {
+ mApplication.Quit();
+ }
+ }
+ }
+
+ /**
* This function creates a line geometry made of two vertices in order
* to draw a diagonal line.
*/
Vector2( 1.0f, 1.0f )
};
- PropertyBuffer vertexBuffer = PropertyBuffer::New( Property::Map()
- .Add( "aPosition", Property::VECTOR2 ) );
+ VertexBuffer vertexBuffer = VertexBuffer::New( Property::Map()
+ .Add( "aPosition", Property::VECTOR2 ) );
vertexBuffer.SetData( vertices, sizeof(vertices) / sizeof(Vector2) );
mGeometry = Geometry::New();
*/
void CreateActor()
{
- Stage stage = Stage::GetCurrent();
- Size size = stage.GetSize() * 0.25f;
+ Window window = mApplication.GetWindow();
+ Size size = Vector2(window.GetSize()) * 0.25f;
mActor = Actor::New();
- mActor.SetAnchorPoint( AnchorPoint::CENTER );
- mActor.SetParentOrigin( ParentOrigin::CENTER );
- mActor.SetPosition( Vector3( 0.0f, 0.0f, 0.0f ) );
- mActor.SetColor( Color::BLACK );
- mActor.SetSize( Vector3( size.x, size.x, size.x ) );
+ mActor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+ mActor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ mActor.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, 0.0f, 0.0f ) );
+ mActor.SetProperty( Actor::Property::COLOR, Color::BLACK );
+ mActor.SetProperty( Actor::Property::SIZE, Vector3( size.x, size.x, size.x ) );
mActor.AddRenderer( mRenderer );
- stage.Add( mActor );
+ window.Add( mActor );
}
private:
Actor mActor;
};
-void RunTest( Application& application )
-{
- DrawLineController test( application );
-
- application.MainLoop();
-}
-
-// Entry point for Linux & Tizen applications
-//
int DALI_EXPORT_API main( int argc, char **argv )
{
Application application = Application::New( &argc, &argv );
-
- RunTest( application );
-
+ DrawLineController test( application );
+ application.MainLoop();
return 0;
}