#define __DALI_INTERNAL_APPLICATION_H__
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 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.
*/
// EXTERNAL INCLUDES
-#include <boost/bind.hpp>
-#include <boost/function.hpp>
-#include <boost/thread.hpp>
-
#include <dali/public-api/math/rect.h>
#include <dali/public-api/object/base-object.h>
#include <framework.h>
#include <window-impl.h>
+#include <base/environment-options.h>
namespace Dali
{
class Application : public BaseObject, public Framework::Observer
{
public:
-
- typedef Dali::Application::AppSignalV2 AppSignalV2;
+ typedef Dali::Application::AppSignalType AppSignalType;
+ typedef Dali::Application::AppControlSignalType AppControlSignalType;
+ typedef Dali::Application::WINDOW_MODE WINDOW_MODE;
/**
- * Constructor
- * @param[in] app The public instance of the Application
+ * Create a new application
* @param[in] argc A pointer to the number of arguments
* @param[in] argv A pointer to the argument list
- * @param[in] name A name of application
- * @param[in] baseLayout The base layout that the application has been written for
+ * @param[in] stylesheet The path to user defined theme file
* @param[in] windowMode A member of Dali::Application::WINDOW_MODE
+ * @param[in] applicationType A member of Dali::Framework::Type
*/
- static ApplicationPtr New(int* argc, char **argv[], const std::string& name,
- const DeviceLayout& baseLayout,
- Dali::Application::WINDOW_MODE windowMode);
-
- Application( int* argc, char **argv[], const std::string& name, const DeviceLayout& baseLayout, Dali::Application::WINDOW_MODE windowMode );
-
- /**
- * Destructor
- */
- virtual ~Application();
+ static ApplicationPtr New( int* argc, char **argv[], const std::string& stylesheet,
+ WINDOW_MODE windowMode, Framework::Type applicationType );
public:
/**
* @copydoc Dali::Application::AddIdle()
*/
- bool AddIdle(boost::function<void(void)> callBack);
+ bool AddIdle( CallbackBase* callback );
/**
* @copydoc Dali::Application::GetAdaptor();
Dali::Window GetWindow();
/**
- * @copydoc Dali::Application::GetTheme();
- */
- const std::string& GetTheme();
-
- /**
- * @copydoc Dali::Application::SetTheme();
- */
- void SetTheme(const std::string& themeFilePath);
-
- /**
* @copydoc Dali::Application::ReplaceWindow();
*/
void ReplaceWindow(PositionSize windowPosition, const std::string& name);
virtual void OnResume();
/**
+ * Called when the framework received AppControlSignal.
+ * @param[in] The bundle data of AppControl event.
+ */
+ virtual void OnAppControl(void *data);
+
+ /**
* Called when the framework informs the application that it should reset itself.
*/
virtual void OnReset();
*/
virtual void OnLanguageChanged();
+ /**
+ * Called when the framework informs the application that the region of the device has changed.
+ */
+ virtual void OnRegionChanged();
+
+ /**
+ * Called when the framework informs the application that the battery level of the device is low.
+ */
+ virtual void OnBatteryLow();
+
+ /**
+ * Called when the framework informs the application that the memory level of the device is low.
+ */
+ virtual void OnMemoryLow();
+
public:
/**
/**
* @copydoc Dali::Application::InitSignal()
*/
- Dali::Application::AppSignalV2& InitSignal() { return mInitSignalV2; }
+ Dali::Application::AppSignalType& InitSignal() { return mInitSignal; }
/**
* @copydoc Dali::Application::TerminateSignal()
*/
- Dali::Application::AppSignalV2& TerminateSignal() { return mTerminateSignalV2; }
+ Dali::Application::AppSignalType& TerminateSignal() { return mTerminateSignal; }
/**
* @copydoc Dali::Application::PauseSignal()
*/
- Dali::Application::AppSignalV2& PauseSignal() { return mPauseSignalV2; }
+ Dali::Application::AppSignalType& PauseSignal() { return mPauseSignal; }
/**
* @copydoc Dali::Application::ResumeSignal()
*/
- Dali::Application::AppSignalV2& ResumeSignal() { return mResumeSignalV2; }
+ Dali::Application::AppSignalType& ResumeSignal() { return mResumeSignal; }
/**
* @copydoc Dali::Application::ResetSignal()
*/
- Dali::Application::AppSignalV2& ResetSignal() { return mResetSignalV2; }
+ Dali::Application::AppSignalType& ResetSignal() { return mResetSignal; }
+
+ /**
+ * @copydoc Dali::Application::AppControlSignal()
+ */
+ Dali::Application::AppControlSignalType& AppControlSignal() { return mAppControlSignal; }
/**
* @copydoc Dali::Application::ResizeSignal()
*/
- Dali::Application::AppSignalV2& ResizeSignal() { return mResizeSignalV2; }
+ Dali::Application::AppSignalType& ResizeSignal() { return mResizeSignal; }
/**
* @copydoc Dali::Application::LanguageChangedSignal()
*/
- Dali::Application::AppSignalV2& LanguageChangedSignal() { return mLanguageChangedSignalV2; }
+ Dali::Application::AppSignalType& LanguageChangedSignal() { return mLanguageChangedSignal; }
-private:
+ /**
+ * @copydoc Dali::Application::RegionChangedSignal()
+ */
+ Dali::Application::AppSignalType& RegionChangedSignal() { return mRegionChangedSignal; }
+
+ /**
+ * @copydoc Dali::Application::BatteryLowSignal()
+ */
+ Dali::Application::AppSignalType& BatteryLowSignal() { return mBatteryLowSignal; }
+
+ /**
+ * @copydoc Dali::Application::MemoryLowSignal()
+ */
+ Dali::Application::AppSignalType& MemoryLowSignal() { return mMemoryLowSignal; }
+
+protected:
+
+ /**
+ * Private Constructor
+ * @param[in] argc A pointer to the number of arguments
+ * @param[in] argv A pointer to the argument list
+ * @param[in] stylesheet The path to user defined theme file
+ * @param[in] windowMode A member of Dali::Application::WINDOW_MODE
+ */
+ Application( int* argc, char **argv[], const std::string& stylesheet,
+ WINDOW_MODE windowMode, Framework::Type applicationType );
+
+ /**
+ * Destructor
+ */
+ virtual ~Application();
// Undefined
Application(const Application&);
Application& operator=(Application&);
-private:
/**
* Creates the window
*/
private:
- AppSignalV2 mInitSignalV2;
- AppSignalV2 mTerminateSignalV2;
- AppSignalV2 mPauseSignalV2;
- AppSignalV2 mResumeSignalV2;
- AppSignalV2 mResetSignalV2;
- AppSignalV2 mResizeSignalV2;
- AppSignalV2 mLanguageChangedSignalV2;
+ AppSignalType mInitSignal;
+ AppSignalType mTerminateSignal;
+ AppSignalType mPauseSignal;
+ AppSignalType mResumeSignal;
+ AppSignalType mResetSignal;
+ AppSignalType mResizeSignal;
+ AppControlSignalType mAppControlSignal;
+ AppSignalType mLanguageChangedSignal;
+ AppSignalType mRegionChangedSignal;
+ AppSignalType mBatteryLowSignal;
+ AppSignalType mMemoryLowSignal;
EventLoop* mEventLoop;
Framework* mFramework;
Dali::Window mWindow;
Dali::Application::WINDOW_MODE mWindowMode;
std::string mName;
-
- bool mInitialized;
- DeviceLayout mBaseLayout;
+ std::string mStylesheet;
+ EnvironmentOptions mEnvironmentOptions;
+ bool mUseRemoteSurface;
SlotDelegate< Application > mSlotDelegate;
};