[Tizen] Support Device orientation and window orientation event.
[platform/core/uifw/dali-adaptor.git] / dali / public-api / adaptor-framework / application.cpp
index 5cfeeab..5daf923 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
@@ -43,14 +43,12 @@ Application Application::New(int* argc, char** argv[])
     {
       internal->GetWindow().SetClass((*argv)[0], "");
     }
-
-    return Application(internal.Get());
   }
   else
   {
-    internal = Internal::Adaptor::Application::New(argc, argv, "", OPAQUE, PositionSize(), Internal::Adaptor::Framework::NORMAL);
-    return Application(internal.Get());
+    internal = Internal::Adaptor::Application::New(argc, argv, "", OPAQUE, PositionSize(), Internal::Adaptor::Framework::NORMAL, WindowType::NORMAL, false);
   }
+  return Application(internal.Get());
 }
 
 Application Application::New(int* argc, char** argv[], const std::string& stylesheet)
@@ -65,14 +63,12 @@ Application Application::New(int* argc, char** argv[], const std::string& styles
       internal->GetWindow().SetClass((*argv)[0], "");
     }
     internal->SetStyleSheet(stylesheet);
-
-    return Application(internal.Get());
   }
   else
   {
-    internal = Internal::Adaptor::Application::New(argc, argv, stylesheet, OPAQUE, PositionSize(), Internal::Adaptor::Framework::NORMAL);
-    return Application(internal.Get());
+    internal = Internal::Adaptor::Application::New(argc, argv, stylesheet, OPAQUE, PositionSize(), Internal::Adaptor::Framework::NORMAL, WindowType::NORMAL, false);
   }
+  return Application(internal.Get());
 }
 
 Application Application::New(int* argc, char** argv[], const std::string& stylesheet, WINDOW_MODE windowMode)
@@ -89,14 +85,12 @@ Application Application::New(int* argc, char** argv[], const std::string& styles
     internal->SetStyleSheet(stylesheet);
 
     internal->GetWindow().SetTransparency((windowMode == Application::OPAQUE ? false : true));
-
-    return Application(internal.Get());
   }
   else
   {
-    internal = Internal::Adaptor::Application::New(argc, argv, stylesheet, windowMode, PositionSize(), Internal::Adaptor::Framework::NORMAL);
-    return Application(internal.Get());
+    internal = Internal::Adaptor::Application::New(argc, argv, stylesheet, windowMode, PositionSize(), Internal::Adaptor::Framework::NORMAL, WindowType::NORMAL, false);
   }
+  return Application(internal.Get());
 }
 
 Application Application::New(int* argc, char** argv[], const std::string& stylesheet, Application::WINDOW_MODE windowMode, PositionSize positionSize)
@@ -113,16 +107,40 @@ Application Application::New(int* argc, char** argv[], const std::string& styles
     internal->SetStyleSheet(stylesheet);
 
     internal->GetWindow().SetTransparency((windowMode == Application::OPAQUE ? false : true));
-    internal->GetWindow().SetSize(Window::WindowSize(positionSize.width, positionSize.height));
-    internal->GetWindow().SetPosition(Window::WindowPosition(positionSize.x, positionSize.y));
 
-    return Application(internal.Get());
+    //Store only the value before adaptor is created
+    internal->StoreWindowPositionSize(positionSize);
+  }
+  else
+  {
+    internal = Internal::Adaptor::Application::New(argc, argv, stylesheet, windowMode, positionSize, Internal::Adaptor::Framework::NORMAL, WindowType::NORMAL, false);
+  }
+  return Application(internal.Get());
+}
+
+Application Application::New(int* argc, char** argv[], const std::string& stylesheet, Application::WINDOW_MODE windowMode, PositionSize positionSize, bool useUiThread)
+{
+  Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::GetPreInitializedApplication();
+  if(internal)
+  {
+    // pre-initialized application
+    internal->SetCommandLineOptions(argc, argv);
+    if(argc && (*argc > 0))
+    {
+      internal->GetWindow().SetClass((*argv)[0], "");
+    }
+    internal->SetStyleSheet(stylesheet);
+
+    internal->GetWindow().SetTransparency((windowMode == Application::OPAQUE ? false : true));
+
+    //Store only the value before adaptor is created
+    internal->StoreWindowPositionSize(positionSize);
   }
   else
   {
-    internal = Internal::Adaptor::Application::New(argc, argv, stylesheet, windowMode, positionSize, Internal::Adaptor::Framework::NORMAL);
-    return Application(internal.Get());
+    internal = Internal::Adaptor::Application::New(argc, argv, stylesheet, windowMode, positionSize, Internal::Adaptor::Framework::NORMAL, WindowType::NORMAL, useUiThread);
   }
+  return Application(internal.Get());
 }
 
 Application::~Application()
@@ -236,9 +254,49 @@ Application::LowMemorySignalType& Application::LowMemorySignal()
   return Internal::Adaptor::GetImplementation(*this).LowMemorySignal();
 }
 
-Graphics::Controller& Application::GetController()
+Application::DeviceOrientationChangedSignalType& Application::DeviceOrientationChangedSignal()
+{
+  return Internal::Adaptor::GetImplementation(*this).DeviceOrientationChangedSignal();
+}
+
+Application::AppSignalType& Application::TaskInitSignal()
+{
+  return Internal::Adaptor::GetImplementation(*this).TaskInitSignal();
+}
+
+Application::AppSignalType& Application::TaskTerminateSignal()
+{
+  return Internal::Adaptor::GetImplementation(*this).TaskTerminateSignal();
+}
+
+Application::AppControlSignalType& Application::TaskAppControlSignal()
+{
+  return Internal::Adaptor::GetImplementation(*this).TaskAppControlSignal();
+}
+
+Application::AppSignalType& Application::TaskLanguageChangedSignal()
+{
+  return Internal::Adaptor::GetImplementation(*this).TaskLanguageChangedSignal();
+}
+
+Application::AppSignalType& Application::TaskRegionChangedSignal()
+{
+  return Internal::Adaptor::GetImplementation(*this).TaskRegionChangedSignal();
+}
+
+Application::LowBatterySignalType& Application::TaskLowBatterySignal()
+{
+  return Internal::Adaptor::GetImplementation(*this).TaskLowBatterySignal();
+}
+
+Application::LowMemorySignalType& Application::TaskLowMemorySignal()
+{
+  return Internal::Adaptor::GetImplementation(*this).TaskLowMemorySignal();
+}
+
+Application::DeviceOrientationChangedSignalType& Application::TaskDeviceOrientationChangedSignal()
 {
-  return Internal::Adaptor::GetImplementation(*this).GetController();
+  return Internal::Adaptor::GetImplementation(*this).TaskDeviceOrientationChangedSignal();
 }
 
 Application::Application(Internal::Adaptor::Application* application)