2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
20 * @brief This is the implementation for the UiApp class.
23 #include <FAppUiApp.h>
25 #include <FBaseResult.h>
27 #include <FBaseSysLog.h>
28 #include "FApp_AppImpl.h"
29 #include "FApp_UiAppImpl.h"
30 #include "FApp_AppInfo.h"
32 using namespace Tizen::Base;
33 using namespace Tizen::Base::Collection;
34 using namespace Tizen::Ui::Controls;
36 namespace Tizen { namespace App
41 __pUiAppImpl = new (std::nothrow) _UiAppImpl(this);
42 SysAssertf(__pUiAppImpl != null, "Allocating memory for UiApp instance failed.");
43 SysTryReturnVoidResult(NID_APP, __pUiAppImpl, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory.");
54 UiApp::GetAppFrame(void) const
56 SysAssertf(__pUiAppImpl != null, "Getting UiApp instance failed.");
58 return __pUiAppImpl->GetAppFrame();
63 UiApp::AddFrame(const Frame& frame)
65 SysAssertf(__pUiAppImpl != null, "Getting UiApp instance failed.");
67 return __pUiAppImpl->AddFrame(frame);
72 UiApp::RemoveFrame(const Frame& frame)
74 SysAssertf(__pUiAppImpl != null, "Getting UiApp instance failed.");
76 return __pUiAppImpl->RemoveFrame(frame);
81 UiApp::GetFrameList(void) const
83 SysAssertf(__pUiAppImpl != null, "Getting UiApp instance failed.");
85 return __pUiAppImpl->GetFrameList();
90 UiApp::GetFrame(const String& name) const
92 SysAssertf(__pUiAppImpl != null, "Getting UiApp instance failed.");
94 return __pUiAppImpl->GetFrame(name);
99 UiApp::GetFrameAt(int index) const
101 SysAssertf(__pUiAppImpl != null, "Getting UiApp instance failed.");
103 return __pUiAppImpl->GetFrameAt(index);
108 UiApp::GetAppUiState(void) const
110 SysAssertf(__pUiAppImpl != null, "Getting UiApp instance failed.");
112 return __pUiAppImpl->GetAppUiState();
117 UiApp::OnForeground(void)
124 UiApp::OnBackground(void)
131 UiApp::GetInstance(void)
133 _UiAppImpl* pUiAppImpl = _UiAppImpl::GetInstance();
134 if (pUiAppImpl == null)
139 return pUiAppImpl->GetUiAppInstance();
144 UiApp::Execute(UiAppInstanceFactory pUiAppFactory, const IList* pArguments)
146 result r = E_SUCCESS;
148 SysTryReturnResult(NID_APP, pUiAppFactory != null, E_INVALID_ARG, "pUiAppFactory must not be null.");
149 SysTryReturnResult(NID_APP, pArguments != null, E_INVALID_ARG, "pArguments must not be null.");
150 _AppInfo::SetAppType(_APP_TYPE_UI_APP);
153 UiApp* pUiApp = pUiAppFactory();
154 SysTryReturnResult(NID_APP, pUiApp != null, E_OUT_OF_MEMORY, "App allocation failed.");
155 SysTryReturnResult(NID_APP, !IsFailed(GetLastResult()), E_OUT_OF_MEMORY, "App allocation failed with %s.", GetLastResult());
157 _AppImpl* pAppImpl = _AppImpl::GetInstance();
158 SysTryReturnResult(NID_APP, pAppImpl != null, E_SYSTEM, "application instance is not available.");
160 _UiAppImpl* pUiAppImpl = _UiAppImpl::GetInstance();
161 SysTryReturnResult(NID_APP, pUiAppImpl != null, E_INVALID_STATE, "Getting UiApp instance failed.");
163 r = pAppImpl->Construct(pArguments);
164 SysTryCatch(NID_APP, !IsFailed(r), r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] %s.", GetErrorMessage(r));
166 r = pAppImpl->Execute(pUiAppImpl);
167 SysTryCatch(NID_APP, !IsFailed(r), r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] %s.", GetErrorMessage(r));