// EXTERNAL INCLUDES
#include <Ecore.h>
#include <Elementary.h>
-#include <boost/bind.hpp>
#include <X11/Xlib.h>
#include <dali/integration-api/debug.h>
// Constructor
Impl(void* data)
+ : mAbortCallBack( NULL ),
+ mCallbackManager( CallbackManager::New() )
{
- mCallbackManager = CallbackManager::New();
}
~Impl()
{
+ delete mAbortCallBack;
+
// we're quiting the main loop so
// mCallbackManager->RemoveAllCallBacks() does not need to be called
// to delete our abort handler
// Data
- boost::function<void(void)> mAbortCallBack;
+ CallbackBase* mAbortCallBack;
CallbackManager *mCallbackManager;
// Static methods
*/
static bool AppCreate(void *data)
{
- return static_cast<Framework*>(data)->SlpAppStatusHandler(APP_CREATE);
+ return static_cast<Framework*>(data)->AppStatusHandler(APP_CREATE, NULL);
}
/**
*/
static void AppTerminate(void *data)
{
- static_cast<Framework*>(data)->SlpAppStatusHandler(APP_TERMINATE);
+ static_cast<Framework*>(data)->AppStatusHandler(APP_TERMINATE, NULL);
}
/**
*/
static void AppPause(void *data)
{
- static_cast<Framework*>(data)->SlpAppStatusHandler(APP_PAUSE);
+ static_cast<Framework*>(data)->AppStatusHandler(APP_PAUSE, NULL);
}
/**
*/
static void AppResume(void *data)
{
- static_cast<Framework*>(data)->SlpAppStatusHandler(APP_RESUME);
+ static_cast<Framework*>(data)->AppStatusHandler(APP_RESUME, NULL);
}
/**
*/
static void AppLanguageChange(void* data)
{
- static_cast<Framework*>(data)->SlpAppStatusHandler(APP_LANGUAGE_CHANGE);
+ static_cast<Framework*>(data)->AppStatusHandler(APP_LANGUAGE_CHANGE, NULL);
}
};
-Framework::Framework(Framework::Observer& observer, int *argc, char ***argv, const std::string& name)
+Framework::Framework( Framework::Observer& observer, int *argc, char ***argv, Type type )
: mObserver(observer),
mInitialised(false),
mRunning(false),
mArgc(argc),
mArgv(argv),
- mName(name),
mBundleName(""),
mBundleId(""),
- mAbortHandler(boost::bind(&Framework::AbortCallback, this)),
+ mAbortHandler( MakeCallback( this, &Framework::AbortCallback ) ),
mImpl(NULL)
{
InitThreads();
return mRunning;
}
-void Framework::AddAbortCallback(boost::function<void(void)> callBack)
+void Framework::AddAbortCallback( CallbackBase* callback )
{
- mImpl->mAbortCallBack = callBack;
+ mImpl->mAbortCallBack = callback;
}
std::string Framework::GetBundleName() const
return mBundleId;
}
+std::string Framework::GetResourcePath()
+{
+ // "DALI_APPLICATION_PACKAGE" is used by Ubuntu specifically to get the already configured Application package path.
+ const char* ubuntuEnvironmentVariable = "DALI_APPLICATION_PACKAGE";
+ char* value = getenv( ubuntuEnvironmentVariable );
+ std::string resourcePath;
+ if ( value != NULL )
+ {
+ resourcePath = value;
+ }
+
+ return resourcePath;
+}
+
void Framework::SetBundleId(const std::string& id)
{
mBundleId = id;
// if an abort call back has been installed run it.
if (mImpl->mAbortCallBack)
{
- mImpl->mAbortCallBack();
+ CallbackBase::Execute( *mImpl->mAbortCallBack );
}
else
{
}
}
-bool Framework::SlpAppStatusHandler(int type)
+bool Framework::AppStatusHandler(int type, void *bundleData)
{
switch (type)
{
{
mInitialised = true;
- // Connect to abnormal exit signals
- mAbortHandler.AbortOnSignal( SIGINT );
- mAbortHandler.AbortOnSignal( SIGQUIT );
- mAbortHandler.AbortOnSignal( SIGKILL );
-
mObserver.OnInit();
break;
}
break;
case APP_TERMINATE:
- mObserver.OnTerminate();
+ mObserver.OnTerminate();
break;
case APP_PAUSE: