ApplicationPtr Application::New(
int* argc,
char **argv[],
- const std::string& name,
- const DeviceLayout& baseLayout,
+ const std::string& stylesheet,
Dali::Application::WINDOW_MODE windowMode)
{
- ApplicationPtr application ( new Application (argc, argv, name, baseLayout, windowMode ) );
+ ApplicationPtr application ( new Application (argc, argv, stylesheet, windowMode ) );
return application;
}
-Application::Application( int* argc, char** argv[], const std::string& name, const DeviceLayout& baseLayout, Dali::Application::WINDOW_MODE windowMode)
+Application::Application( int* argc, char** argv[], const std::string& stylesheet, Dali::Application::WINDOW_MODE windowMode )
: mInitSignal(),
mTerminateSignal(),
mPauseSignal(),
mMemoryLowSignal(),
mEventLoop( NULL ),
mFramework( NULL ),
+ mContextLossConfiguration( Configuration::APPLICATION_DOES_NOT_HANDLE_CONTEXT_LOSS ),
mCommandLineOptions( NULL ),
mSingletonService( SingletonService::New() ),
mAdaptor( NULL ),
mWindow(),
mWindowMode( windowMode ),
- mName( name ),
+ mName(),
+ mStylesheet( stylesheet ),
+ mEnvironmentOptions(),
mInitialized( false ),
- mBaseLayout( baseLayout ),
mSlotDelegate( this )
{
+ // Get mName from environment options
+ mName = mEnvironmentOptions.GetWindowName();
+ if( mName.empty() && argc && ( *argc > 0 ) )
+ {
+ // Set mName from command-line args if environment option not set
+ mName = (*argv)[0];
+ }
+
mCommandLineOptions = new CommandLineOptions(argc, argv);
- mFramework = new Framework(*this, argc, argv, name);
+ mFramework = new Framework( *this, argc, argv );
}
Application::~Application()
if( mCommandLineOptions->stageWidth > 0 && mCommandLineOptions->stageHeight > 0 )
{
- // let the command line options over ride
+ // Command line options override environment options and full screen
windowPosition = PositionSize( 0, 0, mCommandLineOptions->stageWidth, mCommandLineOptions->stageHeight );
}
+ else if( mEnvironmentOptions.GetWindowWidth() && mEnvironmentOptions.GetWindowHeight() )
+ {
+ // Environment options override full screen functionality if command line arguments not provided
+ windowPosition = PositionSize( 0, 0, mEnvironmentOptions.GetWindowWidth(), mEnvironmentOptions.GetWindowHeight() );
+ }
+
+ const std::string& windowClassName = mEnvironmentOptions.GetWindowClassName();
+ mWindow = Dali::Window::New( windowPosition, mName, windowClassName, mWindowMode == Dali::Application::TRANSPARENT );
- mWindow = Dali::Window::New( windowPosition, mName, mWindowMode == Dali::Application::TRANSPARENT );
+ // Quit the application when the window is closed
+ GetImplementation( mWindow ).DeleteRequestSignal().Connect( mSlotDelegate, &Application::Quit );
}
void Application::CreateAdaptor()
{
DALI_ASSERT_ALWAYS( mWindow && "Window required to create adaptor" );
- mAdaptor = &Dali::Adaptor::New( mWindow, mBaseLayout, mContextLossConfiguration );
-
- std::string dpiStr = mCommandLineOptions->stageDPI;
- if(!dpiStr.empty())
- {
- // Use DPI from command line.
- unsigned int hDPI = 0;
- unsigned int vDPI = 0;
-
- sscanf(dpiStr.c_str(), "%ux%u", &hDPI, &vDPI);
-
- Internal::Adaptor::Adaptor::GetImplementation( *mAdaptor ).SetDpi(hDPI, vDPI);
- }
+ mAdaptor = Dali::Internal::Adaptor::Adaptor::New( mWindow, mContextLossConfiguration, &mEnvironmentOptions );
mAdaptor->ResizedSignal().Connect( mSlotDelegate, &Application::OnResize );
}
Internal::Adaptor::Adaptor::GetImplementation( *mAdaptor ).SetViewMode( viewMode );
}
+ if( ! mStylesheet.empty() )
+ {
+ Dali::StyleMonitor::Get().SetTheme( mStylesheet );
+ }
+
mInitialized = true;
// Wire up the LifecycleController
Dali::Application application(this);
mInitSignal.Emit( application );
- Internal::Adaptor::Adaptor::GetImplementation( *mAdaptor ).GetCore().SceneCreated();
+ mAdaptor->NotifySceneCreated();
}
void Application::OnTerminate()
void Application::OnLanguageChanged()
{
mAdaptor->NotifyLanguageChanged();
+ Dali::Application application(this);
+ mLanguageChangedSignal.Emit( application );
}
void Application::OnRegionChanged()
return mWindow;
}
-const std::string& Application::GetTheme()
-{
- return Dali::StyleMonitor::Get().GetTheme();
-}
-
-void Application::SetTheme(const std::string& themeFilePath)
-{
- return Dali::StyleMonitor::Get().SetTheme(themeFilePath);
-}
-
// Stereoscopy
void Application::SetViewMode( ViewMode viewMode )