-#ifndef __DALI_INTERNAL_APPLICATION_H__
-#define __DALI_INTERNAL_APPLICATION_H__
+#ifndef DALI_INTERNAL_APPLICATION_H
+#define DALI_INTERNAL_APPLICATION_H
/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 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.
// INTERNAL INCLUDES
#include <dali/public-api/adaptor-framework/application.h>
-#include <dali/devel-api/adaptor-framework/singleton-service.h>
+#include <dali/devel-api/common/singleton-service.h>
#include <dali/internal/adaptor/common/framework.h>
-#include <dali/internal/window-system/common/window-impl.h>
#include <dali/internal/system/common/environment-options.h>
+#include <dali/internal/adaptor/common/adaptor-builder-impl.h>
namespace Dali
{
/**
* @copydoc Dali::Application::AddIdle()
*/
- bool AddIdle( CallbackBase* callback );
+ bool AddIdle( CallbackBase* callback, bool hasReturnValue );
/**
* @copydoc Dali::Application::GetAdaptor();
static std::string GetResourcePath();
/**
+ * @copydoc Dali::DevelApplication::GetDataPath()
+ */
+ static std::string GetDataPath();
+
+ /**
* Retrieves the pre-initialized application.
*
* @return A pointer to the pre-initialized application
*/
float GetStereoBase() const;
-public: // Lifecycle functionality
-
- /**
- * Called when OnInit is called or the framework is initialised.
- */
- void DoInit();
-
- /**
- * Called after OnInit is called or the framework is started.
- */
- void DoStart();
-
- /**
- * Called when OnTerminate is called or the framework is terminated.
- */
- void DoTerminate();
-
- /**
- * Called when OnPause is called or the framework is paused.
- */
- void DoPause();
-
- /**
- * Called when OnResume is called or the framework resumes from a paused state.
- */
- void DoResume();
-
- /**
- * Called when OnLanguageChanged is called or the framework informs the application that the language of the device has changed.
- */
- void DoLanguageChange();
-
public: // From Framework::Observer
/**
*/
virtual void OnMemoryLow( Dali::DeviceStatus::Memory::Status status );
+ /**
+ * Called when the framework informs the application that the platform surface is created.
+ */
+ virtual void OnSurfaceCreated( Any newSurface );
+
+ /**
+ * Called when the framework informs the application that the platform surface is destroyed.
+ */
+ virtual void OnSurfaceDestroyed( Any newSurface );
+
public:
/**
*/
void SetStyleSheet( const std::string& stylesheet );
+ /**
+ * Sets a command line options.
+ * This is used in case of the preinitialized application.
+ * @param[in] argc A pointer to the number of arguments
+ * @param[in] argv A pointer to the argument list
+ */
+ void SetCommandLineOptions( int* argc, char **argv[] );
+
public: // Signals
/**
void CreateAdaptor();
/**
+ * Creates the adaptor builder
+ */
+ void CreateAdaptorBuilder();
+
+ /**
* Quits from the main loop
*/
void QuitFromMainLoop();
Dali::Configuration::ContextLoss mContextLossConfiguration;
CommandLineOptions* mCommandLineOptions;
- Dali::SingletonService mSingletonService;
- Dali::Adaptor* mAdaptor;
- Dali::Window mWindow;
- Dali::Application::WINDOW_MODE mWindowMode;
- std::string mName;
- std::string mStylesheet;
- EnvironmentOptions mEnvironmentOptions;
- PositionSize mWindowPositionSize;
- Launchpad::State mLaunchpadState;
- bool mUseRemoteSurface;
+ Dali::Internal::Adaptor::AdaptorBuilder* mAdaptorBuilder; ///< The adaptor builder
+ Dali::Adaptor* mAdaptor;
+
+ // The Main Window is that window created by the Application during initial startup
+ // (previously this was the only window)
+ Dali::Window mMainWindow; ///< Main Window instance
+ Dali::Application::WINDOW_MODE mMainWindowMode; ///< Window mode of the main window
+ std::string mMainWindowName; ///< Name of the main window as obtained from environment options
- SlotDelegate< Application > mSlotDelegate;
+ bool mMainWindowReplaced; ///< Whether the main window has been replaced
- static ApplicationPtr gPreInitializedApplication;
+ std::string mStylesheet;
+ EnvironmentOptions mEnvironmentOptions;
+ PositionSize mWindowPositionSize;
+ Launchpad::State mLaunchpadState;
+ bool mUseRemoteSurface;
+
+ SlotDelegate< Application > mSlotDelegate;
+
+ ViewMode mViewMode;
+ float mStereoBase;
+
+ static ApplicationPtr gPreInitializedApplication;
};
inline Application& GetImplementation(Dali::Application& application)
inline const Application& GetImplementation(const Dali::Application& application)
{
- DALI_ASSERT_ALWAYS(application && "Timre handle is empty");
+ DALI_ASSERT_ALWAYS(application && "application handle is empty");
const BaseObject& handle = application.GetBaseObject();
} // namespace Dali
-#endif // __DALI_INTERNAL_APPLICATION_H__
+#endif // DALI_INTERNAL_APPLICATION_H