/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2015 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 "application.h"
// EXTERNAL INCLUDES
-#include <orientation.h>
#include <dali/integration-api/debug.h>
// INTERNAL INCLUDES
#include <application-impl.h>
-#include <orientation-impl.h>
namespace Dali
{
Application Application::New( int* argc, char **argv[] )
{
- Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::New( argc, argv, "Dali Application", DeviceLayout::DEFAULT_BASE_LAYOUT, OPAQUE );
- return Application(internal.Get());
-}
+ Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::GetPreInitializedApplication();
+ if( internal )
+ {
+ if( argc && ( *argc > 0 ) )
+ {
+ internal->GetWindow().SetClass( (*argv)[0], "" );
+ }
-Application Application::New( int* argc, char **argv[], const std::string& name )
-{
- Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::New( argc, argv, name, DeviceLayout::DEFAULT_BASE_LAYOUT, OPAQUE );
- return Application(internal.Get());
+ return Application( internal.Get() );
+ }
+ else
+ {
+ internal = Internal::Adaptor::Application::New( argc, argv, "", OPAQUE, PositionSize(),
+ Internal::Adaptor::Framework::NORMAL);
+ return Application(internal.Get());
+ }
}
-Application Application::New( int* argc, char **argv[], const std::string& name, WINDOW_MODE windowMode )
+Application Application::New( int* argc, char **argv[], const std::string& stylesheet )
{
- Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::New( argc, argv, name, DeviceLayout::DEFAULT_BASE_LAYOUT, windowMode );
- return Application(internal.Get());
+ Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::GetPreInitializedApplication();
+ if( internal )
+ {
+ if( argc && ( *argc > 0 ) )
+ {
+ 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());
+ }
}
-Application Application::New(int* argc, char **argv[], const DeviceLayout& baseLayout)
+Application Application::New( int* argc, char **argv[], const std::string& stylesheet, WINDOW_MODE windowMode )
{
- Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::New( argc, argv, "Dali Application", baseLayout, OPAQUE );
- return Application(internal.Get());
+ Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::GetPreInitializedApplication();
+ if( internal )
+ {
+ if( argc && ( *argc > 0 ) )
+ {
+ internal->GetWindow().SetClass( (*argv)[0], "" );
+ }
+ 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());
+ }
}
-Application Application::New(int* argc, char **argv[], const std::string& name, const DeviceLayout& baseLayout)
+Application Application::New( int* argc, char **argv[], const std::string& stylesheet, Application::WINDOW_MODE windowMode, PositionSize positionSize )
{
- Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::New( argc, argv, name, baseLayout, OPAQUE );
- return Application(internal.Get());
+ Internal::Adaptor::ApplicationPtr internal = Internal::Adaptor::Application::GetPreInitializedApplication();
+ if( internal )
+ {
+ if( argc && ( *argc > 0 ) )
+ {
+ internal->GetWindow().SetClass( (*argv)[0], "" );
+ }
+ 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() );
+ }
+ else
+ {
+ internal = Internal::Adaptor::Application::New( argc, argv, stylesheet, windowMode, positionSize, Internal::Adaptor::Framework::NORMAL );
+ return Application( internal.Get() );
+ }
}
Application::~Application()
void Application::MainLoop()
{
- Internal::Adaptor::GetImplementation(*this).MainLoop();
+ Internal::Adaptor::GetImplementation(*this).MainLoop(Configuration::APPLICATION_HANDLES_CONTEXT_LOSS);
+}
+
+void Application::MainLoop(Configuration::ContextLoss configuration)
+{
+ Internal::Adaptor::GetImplementation(*this).MainLoop(configuration);
}
void Application::Lower()
Internal::Adaptor::GetImplementation(*this).Quit();
}
-Orientation Application::GetOrientation()
+bool Application::AddIdle( CallbackBase* callback )
{
- Window window = GetWindow();
- if( window )
- {
- return window.GetOrientation();
- }
- return Orientation();
+ return Internal::Adaptor::GetImplementation(*this).AddIdle( callback );
+}
+
+Window Application::GetWindow()
+{
+ return Internal::Adaptor::GetImplementation(*this).GetWindow();
}
-bool Application::AddIdle(boost::function<void(void)> callBack)
+void Application::ReplaceWindow(PositionSize windowPosition, const std::string& name)
{
- return Internal::Adaptor::GetImplementation(*this).AddIdle(callBack);
+ Internal::Adaptor::GetImplementation(*this).ReplaceWindow(windowPosition, name);
}
-Window Application::GetWindow()
+std::string Application::GetResourcePath()
{
- return Internal::Adaptor::GetImplementation(*this).GetWindow();
+ return Internal::Adaptor::Application::GetResourcePath();
+}
+
+std::string Application::GetRegion() const
+{
+ return Internal::Adaptor::GetImplementation(*this).GetRegion();
+}
+
+std::string Application::GetLanguage() const
+{
+ return Internal::Adaptor::GetImplementation(*this).GetLanguage();
}
void Application::SetViewMode( ViewMode viewMode )
return Internal::Adaptor::GetImplementation(*this).GetStereoBase();
}
-Application::AppSignalV2& Application::InitSignal()
+Application::AppSignalType& Application::InitSignal()
{
return Internal::Adaptor::GetImplementation(*this).InitSignal();
}
-Application::AppSignalV2& Application::TerminateSignal()
+Application::AppSignalType& Application::TerminateSignal()
{
return Internal::Adaptor::GetImplementation(*this).TerminateSignal();
}
-Application::AppSignalV2& Application::PauseSignal()
+Application::AppSignalType& Application::PauseSignal()
{
return Internal::Adaptor::GetImplementation(*this).PauseSignal();
}
-Application::AppSignalV2& Application::ResumeSignal()
+Application::AppSignalType& Application::ResumeSignal()
{
return Internal::Adaptor::GetImplementation(*this).ResumeSignal();
}
-Application::AppSignalV2& Application::ResetSignal()
+Application::AppSignalType& Application::ResetSignal()
{
return Internal::Adaptor::GetImplementation(*this).ResetSignal();
}
-Application::AppSignalV2& Application::ResizeSignal()
+Application::AppSignalType& Application::ResizeSignal()
{
+ DALI_LOG_WARNING_NOFN( "DEPRECATION WARNING: ResizeSignal() is deprecated and will be removed from next release. Use Window::ResizedSignal() instead.\n" );
+
return Internal::Adaptor::GetImplementation(*this).ResizeSignal();
}
-Application::AppSignalV2& Application::LanguageChangedSignal()
+Application::AppControlSignalType & Application::AppControlSignal()
+{
+ return Internal::Adaptor::GetImplementation(*this).AppControlSignal();
+}
+
+Application::AppSignalType& Application::LanguageChangedSignal()
{
return Internal::Adaptor::GetImplementation(*this).LanguageChangedSignal();
}
+Application::AppSignalType& Application::RegionChangedSignal()
+{
+ return Internal::Adaptor::GetImplementation(*this).RegionChangedSignal();
+}
+
+Application::AppSignalType& Application::BatteryLowSignal()
+{
+ DALI_LOG_WARNING_NOFN( "DEPRECATION WARNING: BatteryLowSignal() is deprecated and will be removed from next release. Use Application::LowBatterySignal() instead.\n" );
+ return Internal::Adaptor::GetImplementation(*this).BatteryLowSignal();
+}
+
+Application::AppSignalType& Application::MemoryLowSignal()
+{
+ DALI_LOG_WARNING_NOFN( "DEPRECATION WARNING: MemoryLowSignal() is deprecated and will be removed from next release. Use Application::LowMemorySignal() instead.\n" );
+ return Internal::Adaptor::GetImplementation(*this).MemoryLowSignal();
+}
+
+Application::LowBatterySignalType& Application::LowBatterySignal()
+{
+ return Internal::Adaptor::GetImplementation(*this).LowBatterySignal();
+}
+
+Application::LowMemorySignalType& Application::LowMemorySignal()
+{
+ return Internal::Adaptor::GetImplementation(*this).LowMemorySignal();
+}
+
Application::Application(Internal::Adaptor::Application* application)
: BaseHandle(application)
{