2 // Open Service Platform
\r
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
\r
5 // Licensed under the Apache License, Version 2.0 (the License);
\r
6 // you may not use this file except in compliance with the License.
\r
7 // You may obtain a copy of the License at
\r
9 // http://www.apache.org/licenses/LICENSE-2.0
\r
11 // Unless required by applicable law or agreed to in writing, software
\r
12 // distributed under the License is distributed on an "AS IS" BASIS,
\r
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
14 // See the License for the specific language governing permissions and
\r
15 // limitations under the License.
\r
19 * @file FWebCtrl_WebManager.cpp
\r
20 * @brief The file contains the definition of _WebManager class.
\r
22 * The file contains the definition of _WebManager class.
\r
25 #include <FBaseSysLog.h>
\r
26 #include <FUiControl.h>
\r
27 #include <FUiCtrl_FormImpl.h>
\r
28 #include "FWebCtrl_WebImpl.h"
\r
29 #include "FWebCtrl_WebManager.h"
\r
30 #include "FWebCtrl_WebPopup.h"
\r
32 using namespace Tizen::Base;
\r
33 using namespace Tizen::Base::Collection;
\r
34 using namespace Tizen::Ui;
\r
35 using namespace Tizen::Ui::Controls;
\r
37 namespace Tizen { namespace Web { namespace Controls
\r
40 _WebManager::_WebManager(void)
\r
42 , __pCallbackList(null)
\r
43 , __pActiveWeb(null)
\r
44 , __pActivePopup(null)
\r
48 _WebManager::~_WebManager(void)
\r
53 _WebManager::GetInstance(void)
\r
55 result r = E_SUCCESS;
\r
56 static _WebManager* pWebMgr = null;
\r
58 if (pWebMgr == null)
\r
60 pWebMgr = new (std::nothrow) _WebManager();
\r
61 SysTryReturn(NID_WEB_CTRL, pWebMgr != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] _WebManager allocation failed.");
\r
63 r = pWebMgr->Construct();
\r
64 SysTryCatch(NID_WEB_CTRL, !IsFailed(r), , r, "[%s] _WebManager construction failed.", GetErrorMessage(r));
\r
77 _WebManager::Construct(void)
\r
79 result r = E_SUCCESS;
\r
81 std::unique_ptr<ArrayListT< int> > pWebList(new (std::nothrow) ArrayListT< int >());
\r
82 SysTryReturnResult(NID_WEB_CTRL, pWebList.get(), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory.");
\r
83 r = pWebList->Construct();
\r
84 SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
\r
86 std::unique_ptr<MultiHashMapT< int, int > > pCallbackList(new (std::nothrow) MultiHashMapT< int, int >());
\r
87 SysTryReturnResult(NID_WEB_CTRL, pCallbackList.get(), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory.");
\r
88 r = pCallbackList->Construct();
\r
89 SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
\r
91 __pWebList = std::move(pWebList);
\r
92 __pCallbackList = std::move(pCallbackList);
\r
98 _WebManager::AddWeb(int webAdress)
\r
100 result r = E_SUCCESS;
\r
102 r = __pWebList->Add(webAdress);
\r
103 SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
\r
109 _WebManager::RemoveWeb(int webAdress)
\r
111 result r = E_SUCCESS;
\r
113 r = __pWebList->Remove(webAdress);
\r
114 SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
\r
116 r = __pCallbackList->Remove(webAdress);
\r
117 SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
\r
123 _WebManager::IsValidWeb(int webAdress) const
\r
125 return __pWebList->Contains(webAdress);
\r
130 _WebManager::AddCallback(int callerAdress, int callbackAdress)
\r
132 result r = E_SUCCESS;
\r
134 r = __pCallbackList->Add(callerAdress, callbackAdress);
\r
135 SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
\r
141 _WebManager::RemoveCallback(int callerAdress, int callbackAdress)
\r
143 result r = E_SUCCESS;
\r
145 r = __pCallbackList->Remove(callerAdress, callbackAdress);
\r
146 SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
\r
152 _WebManager::IsValidCallback(int callerAdress, int callbackAdress) const
\r
156 result r = __pCallbackList->Contains(callerAdress, callbackAdress, ret);
\r
157 SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
\r
163 _WebManager::SetActiveWeb(Tizen::Web::Controls::_WebImpl* pWebAddress)
\r
165 if (__pActiveWeb == null)
\r
167 __pActiveWeb = pWebAddress;
\r
171 if (__pActiveWeb->IsVisible() == true)
\r
175 __pActiveWeb = pWebAddress;
\r
178 if (__pActivePopup != null)
\r
180 __pActivePopup->SetShowState(false);
\r
182 _FormImpl* pFormImpl = __pActiveWeb->GetParentFormImpl(__pActiveWeb);
\r
184 if (pFormImpl != null)
\r
186 __pActivePopup->SetOwner(&pFormImpl->GetPublic());
\r
190 __pActivePopup->SetOwner(&__pActiveWeb->GetPublic());
\r
193 __pActivePopup->SetShowState(true);
\r
194 __pActivePopup->Show();
\r
200 _WebManager::RemoveActiveWeb(Tizen::Web::Controls::_WebImpl* pWebAddress)
\r
202 if (__pActiveWeb == pWebAddress)
\r
204 __pActiveWeb = null;
\r
209 _WebManager::SetActivePopup(Tizen::Web::Controls::_WebPopup* pPopupAddress)
\r
211 __pActivePopup = pPopupAddress;
\r
215 _WebManager::RemoveActivePopup(Tizen::Web::Controls::_WebPopup* pPopupAddress)
\r
217 if (__pActivePopup == pPopupAddress)
\r
219 __pActivePopup = null;
\r