Updated demos to use DALi clang-format
[platform/core/uifw/dali-demo.git] / examples / simple-text-field / simple-text-field.cpp
index d96906b..948279a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 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.
 using namespace Dali;
 using namespace Dali::Toolkit;
 
-
 /**
  * @brief The main class of the demo.
  */
 class SimpleTextFieldExample : public ConnectionTracker
 {
 public:
-
-  SimpleTextFieldExample( Application& application )
-  : mApplication( application )
+  SimpleTextFieldExample(Application& application)
+  : mApplication(application)
   {
     // Connect to the Application's Init signal
-    mApplication.InitSignal().Connect( this, &SimpleTextFieldExample::Create );
+    mApplication.InitSignal().Connect(this, &SimpleTextFieldExample::Create);
   }
 
   ~SimpleTextFieldExample()
@@ -50,43 +48,57 @@ public:
   /**
    * One-time setup in response to Application InitSignal.
    */
-  void Create( Application& application )
+  void Create(Application& application)
   {
-    Stage stage = Stage::GetCurrent();
-    stage.SetBackgroundColor( Vector4( 0.04f, 0.345f, 0.392f, 1.0f ) );
+    Window window = application.GetWindow();
+    window.KeyEventSignal().Connect(this, &SimpleTextFieldExample::OnKeyEvent);
+    window.SetBackgroundColor(Vector4(0.04f, 0.345f, 0.392f, 1.0f));
 
     TextField field = TextField::New();
-    field.SetParentOrigin( ParentOrigin::CENTER );
-    field.SetSize( 300.f, 60.f );
-    field.SetBackgroundColor( Color::WHITE );
-    field.SetBackgroundColor( Vector4( 1.f, 1.f, 1.f, 0.15f ) );
+    field.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+    field.SetProperty(Actor::Property::SIZE, Vector2(300.f, 60.f));
+    field.SetBackgroundColor(Color::WHITE);
+    field.SetBackgroundColor(Vector4(1.f, 1.f, 1.f, 0.15f));
 
-    field.SetProperty( TextField::Property::TEXT_COLOR, Color::BLACK );
-    field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Unnamed folder" );
-    field.SetProperty( TextField::Property::PLACEHOLDER_TEXT_FOCUSED, "Enter folder name." );
+    field.SetProperty(TextField::Property::TEXT_COLOR, Color::BLACK);
+    field.SetProperty(TextField::Property::PLACEHOLDER_TEXT, "Unnamed folder");
+    field.SetProperty(TextField::Property::PLACEHOLDER_TEXT_FOCUSED, "Enter folder name.");
 
-    stage.Add( field );
+    window.Add(field);
   }
 
-private:
+  /**
+   * Main key event handler
+   */
+  void OnKeyEvent(const KeyEvent& event)
+  {
+    if(event.GetState() == KeyEvent::DOWN)
+    {
+      if(IsKey(event, DALI_KEY_ESCAPE) || IsKey(event, DALI_KEY_BACK))
+      {
+        mApplication.Quit();
+      }
+    }
+  }
 
+private:
   Application& mApplication;
 };
 
-void RunTest( Application& application )
+void RunTest(Application& application)
 {
-  SimpleTextFieldExample test( application );
+  SimpleTextFieldExample test(application);
 
   application.MainLoop();
 }
 
 /** Entry point for Linux & Tizen applications */
-int main( int argc, char **argv )
+int DALI_EXPORT_API main(int argc, char** argv)
 {
   // DALI_DEMO_THEME_PATH not passed to Application so TextField example uses default Toolkit style sheet.
-  Application application = Application::New( &argc, &argv );
+  Application application = Application::New(&argc, &argv);
 
-  RunTest( application );
+  RunTest(application);
 
   return 0;
 }