From beea700fc54e780ead84ec1cec5f55649154ce87 Mon Sep 17 00:00:00 2001 From: Sunwook Bae Date: Fri, 27 Sep 2013 21:35:01 +0900 Subject: [PATCH] Add to support a multi-window mode Change-Id: I3fe207f4af975d63aafa9ec961a46342c98b40ac Signed-off-by: Sunwook Bae --- src/app/FApp_AppImpl.cpp | 20 ++++++++++++++++++++ src/app/FApp_AppInfo.cpp | 13 +++++++++++++ src/app/inc/FApp_AppInfo.h | 13 +++++++++++++ 3 files changed, 46 insertions(+) diff --git a/src/app/FApp_AppImpl.cpp b/src/app/FApp_AppImpl.cpp index 3286d92..b7485b0 100644 --- a/src/app/FApp_AppImpl.cpp +++ b/src/app/FApp_AppImpl.cpp @@ -82,6 +82,9 @@ namespace Tizen { namespace App _AppImpl* _AppImpl::__pAppImpl = null; bool _AppImpl::__isTerminationRequested = false; + +static const char TIZEN_APPCONTROL_DATA_MULTI_WINDOW[] = "http://tizen.org/appcontrol/data/multiwindow"; + #if 0 static const int _DATACONTROL_PACKET_INDEX_APPID = 0; static const int _DATACONTROL_PACKET_INDEX_REQUESTTYPE = 1; @@ -307,6 +310,23 @@ _AppImpl::OnService(service_s* service, void* user_data) _AppInfo::SetParentWindowHandle(winId); SysLog(NID_APP, "Saving window handle 0x%x.", winId); } + + // set an appinfo value for multi-window mode + char* pBuf = null; + int errVal = service_get_extra_data(service, TIZEN_APPCONTROL_DATA_MULTI_WINDOW, &pBuf); + if (errVal == SERVICE_ERROR_NONE) + { + if (!strcmp(pBuf, "on")) + { + _AppInfo::SetMultiWindow(true); + } + free(pBuf); + } + else + { + SysLog(NID_APP, "It is failed to get multi-window value: %d", errVal); + } + // call for callbacks // ptr to member function SysLogTag(NID_APP, "LAUNCH","[%ls::start]", _AppInfo::GetAppExecutableName().GetPointer()); diff --git a/src/app/FApp_AppInfo.cpp b/src/app/FApp_AppInfo.cpp index 86c0ec3..8cec93c 100644 --- a/src/app/FApp_AppInfo.cpp +++ b/src/app/FApp_AppInfo.cpp @@ -106,6 +106,7 @@ _AppInfo::_AppInfo(void) , __isPackageInfoInitialized(false) , __isSubMode(false) , __isVirtualRoot(false) + , __isMultiWindow(false) { SysStaticAssert(sizeof(pid_t) == sizeof(int)); @@ -470,4 +471,16 @@ _AppInfo::UpdatePackageInfo(bool update) GetInstance()->__isPackageInfoInitialized = !update; } +bool +_AppInfo::IsMultiWindow(void) +{ + return GetInstance()->__isMultiWindow; +} + +void +_AppInfo::SetMultiWindow(bool enable) +{ + GetInstance()->__isMultiWindow = enable; +} + }} // Tizen::App diff --git a/src/app/inc/FApp_AppInfo.h b/src/app/inc/FApp_AppInfo.h index f44c0c8..48bfd3b 100644 --- a/src/app/inc/FApp_AppInfo.h +++ b/src/app/inc/FApp_AppInfo.h @@ -200,6 +200,18 @@ public: */ static void UpdatePackageInfo(bool update); + /** + * Checkes whether the application is a multi-window mode or not. + * + * @return @true if the multi-window mode is on else false + */ + static bool IsMultiWindow(void); + + /** + * Sets the multi-window mode. + */ + static void SetMultiWindow(bool enable); + _OSP_LOCAL_ result Construct(void); _OSP_LOCAL_ result Construct(const char* appId, const char* appRoot, _AppType type = _APP_TYPE_UI_APP); @@ -227,6 +239,7 @@ private: bool __isPackageInfoInitialized; bool __isSubMode; bool __isVirtualRoot; + bool __isMultiWindow; }; // _AppInfo }} // Tizen::App -- 2.7.4