2 // Open Service Platform
\r
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
\r
5 // Licensed under the Flora License, Version 1.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.tizenopensource.org/license
\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
18 #include "WifiDirectFormMgr.h"
\r
19 #include "WifiDirectMainForm.h"
\r
20 #include "WifiDirectChatForm.h"
\r
21 #include "WifiDirectGroupInfoForm.h"
\r
22 #include "WifiDirectDeviceListForm.h"
\r
23 #include "WifiDirectPortInfoForm.h"
\r
24 #include "WifiDirectDeviceInfoForm.h"
\r
25 #include "WifiDirectWpsModeForm.h"
\r
27 using namespace Osp::App;
\r
28 using namespace Osp::Base;
\r
29 using namespace Osp::Ui;
\r
30 using namespace Osp::Ui::Controls;
\r
32 WifiDirectFormMgr::WifiDirectFormMgr(void) :
\r
33 __pPreviousForm(null),
\r
34 __pWifiDirectMainForm(null),
\r
35 __pWifiDirectChatForm(null)
\r
39 WifiDirectFormMgr::~WifiDirectFormMgr(void)
\r
44 WifiDirectFormMgr::Initialize()
\r
46 result r = E_SUCCESS;
\r
48 r = Form::Construct(FORM_STYLE_NORMAL);
\r
49 SetName(L"WifiDirectFormMgr");
\r
54 WifiDirectFormMgr::SetStarterForm(RequestId requestId, Osp::Base::Collection::IList* pArgs)
\r
56 Form *pCurrentForm = Application::GetInstance()->GetAppFrame()->GetFrame()->GetCurrentForm();
\r
58 if (pCurrentForm == this)
\r
59 SwitchToForm(requestId, pArgs);
\r
67 WifiDirectFormMgr::OnUserEventReceivedN(RequestId requestId, Osp::Base::Collection::IList* pArgs)
\r
69 SwitchToForm(requestId, pArgs);
\r
73 WifiDirectFormMgr::SwitchToForm(RequestId requestId, Osp::Base::Collection::IList* pArgs)
\r
75 Frame *pFrame = Application::GetInstance()->GetAppFrame()->GetFrame();
\r
76 result r = E_SUCCESS;
\r
80 case REQUEST_MAIN_FORM:
\r
81 if (__pWifiDirectMainForm == null)
\r
83 __pWifiDirectMainForm = new WifiDirectMainForm();
\r
84 TryReturnVoid(__pWifiDirectMainForm != null, "Not enough memory available");
\r
86 if (!__pWifiDirectMainForm->Initialize())
\r
88 delete __pWifiDirectMainForm;
\r
89 __pWifiDirectMainForm = null;
\r
93 r = pFrame->AddControl(*__pWifiDirectMainForm);
\r
96 delete __pWifiDirectMainForm;
\r
97 __pWifiDirectMainForm = null;
\r
99 AppLog("AddControl Failed : %s", GetErrorMessage(r));
\r
100 Osp::App::Application::GetInstance()->GetInstance()->Terminate();
\r
105 r = pFrame->SetCurrentForm(*__pWifiDirectMainForm);
\r
106 TryReturnVoid(r == E_SUCCESS, "Failed to set WifiDirectMainForm");
\r
108 __pWifiDirectMainForm->Draw();
\r
110 if (__pPreviousForm != null)
\r
112 if (__pWifiDirectChatForm && ((Form*)__pWifiDirectChatForm != __pPreviousForm))
\r
113 pFrame->RemoveControl(*(Form*)__pWifiDirectChatForm);
\r
115 pFrame->RemoveControl(*__pPreviousForm);
\r
116 __pPreviousForm = null;
\r
117 __pWifiDirectChatForm = null;
\r
121 case REQUEST_GROUPINFO_FORM:
\r
124 WifiDirectGroupInfoForm* pWifiDirectGroupInfoForm = new WifiDirectGroupInfoForm(pArgs);
\r
125 TryReturnVoid(pWifiDirectGroupInfoForm != null, "Not enough memory available");
\r
127 r = pFrame->AddControl(*pWifiDirectGroupInfoForm);
\r
128 if (r != E_SUCCESS)
\r
130 delete pWifiDirectGroupInfoForm;
\r
131 AppLog("AddControl Failed : %s", GetErrorMessage(r));
\r
135 if (!pWifiDirectGroupInfoForm->Initialize())
\r
137 delete pWifiDirectGroupInfoForm;
\r
141 r = pFrame->SetCurrentForm(*pWifiDirectGroupInfoForm);
\r
142 TryReturnVoid(r == E_SUCCESS, "Failed to set WifiDirectGroupInfoForm");
\r
144 __pPreviousForm = pWifiDirectGroupInfoForm;
\r
146 pWifiDirectGroupInfoForm->Draw();
\r
152 case REQUEST_DEVICELIST_FORM:
\r
155 RequestId requestId;
\r
157 if (__pWifiDirectChatForm)
\r
158 requestId = REQUEST_CHAT_FORM;
\r
160 requestId = REQUEST_MAIN_FORM;
\r
162 WifiDirectDeviceListForm* pWifiDirectDeviceListForm = new WifiDirectDeviceListForm(pArgs, requestId);
\r
163 TryReturnVoid(pWifiDirectDeviceListForm != null, "Not enough memory available");
\r
165 if (!pWifiDirectDeviceListForm->Initialize())
\r
167 delete pWifiDirectDeviceListForm;
\r
171 r = pFrame->AddControl(*pWifiDirectDeviceListForm);
\r
172 if (r != E_SUCCESS)
\r
174 delete pWifiDirectDeviceListForm;
\r
175 AppLog("AddControl Failed : %s", GetErrorMessage(r));
\r
179 r = pFrame->SetCurrentForm(*pWifiDirectDeviceListForm);
\r
180 TryReturnVoid(r == E_SUCCESS, "Failed to set WifiDirectDeviceListForm");
\r
182 __pPreviousForm = pWifiDirectDeviceListForm;
\r
184 pWifiDirectDeviceListForm->Draw();
\r
188 case REQUEST_CHAT_FORM:
\r
189 if (__pWifiDirectChatForm == null)
\r
191 __pWifiDirectChatForm = new WifiDirectChatForm(pArgs);
\r
192 TryReturnVoid(__pWifiDirectChatForm != null, "Not enough memory available");
\r
194 if (!__pWifiDirectChatForm->Initialize())
\r
196 delete __pWifiDirectChatForm;
\r
197 __pWifiDirectChatForm = null;
\r
201 r = pFrame->AddControl(*__pWifiDirectChatForm);
\r
202 if (r != E_SUCCESS)
\r
204 delete __pWifiDirectChatForm;
\r
205 __pWifiDirectChatForm = null;
\r
206 AppLog("AddControl Failed : %s", GetErrorMessage(r));
\r
212 r = pFrame->SetCurrentForm(*__pWifiDirectChatForm);
\r
213 TryReturnVoid(r == E_SUCCESS, "Failed to set ChatForm");
\r
215 __pWifiDirectChatForm->Draw();
\r
217 if (__pPreviousForm != null)
\r
219 pFrame->RemoveControl(*__pPreviousForm);
\r
220 __pPreviousForm = null;
\r
223 __pPreviousForm = __pWifiDirectChatForm;
\r
226 case REQUEST_PORTINFO_FORM:
\r
229 WifiDirectPortInfoForm* pWifiDirectPortInfoForm = new WifiDirectPortInfoForm(pArgs);
\r
230 TryReturnVoid(pWifiDirectPortInfoForm != null, "Not enough memory available");
\r
232 if (!pWifiDirectPortInfoForm->Initialize())
\r
234 delete pWifiDirectPortInfoForm;
\r
238 r = pFrame->AddControl(*pWifiDirectPortInfoForm);
\r
239 if (r != E_SUCCESS)
\r
241 delete pWifiDirectPortInfoForm;
\r
242 AppLog("AddControl Failed : %s", GetErrorMessage(r));
\r
246 r = pFrame->SetCurrentForm(*pWifiDirectPortInfoForm);
\r
247 TryReturnVoid(r == E_SUCCESS, "Failed to set WifiDirectPortInfoForm");
\r
249 __pPreviousForm = pWifiDirectPortInfoForm;
\r
251 pWifiDirectPortInfoForm->Draw();
\r
257 case REQUEST_DEVICEINFO_FORM:
\r
260 WifiDirectDeviceInfoForm* pWifiDirectDeviceInfoForm = new WifiDirectDeviceInfoForm(pArgs);
\r
261 TryReturnVoid(pWifiDirectDeviceInfoForm != null, "Not enough memory available");
\r
263 if (!pWifiDirectDeviceInfoForm->Initialize())
\r
265 delete pWifiDirectDeviceInfoForm;
\r
269 r = pFrame->AddControl(*pWifiDirectDeviceInfoForm);
\r
270 if (r != E_SUCCESS)
\r
272 delete pWifiDirectDeviceInfoForm;
\r
273 AppLog("AddControl Failed : %s", GetErrorMessage(r));
\r
277 r = pFrame->SetCurrentForm(*pWifiDirectDeviceInfoForm);
\r
278 TryReturnVoid(r == E_SUCCESS, "Failed to set WifiDirectPortInfoForm");
\r
280 __pPreviousForm = pWifiDirectDeviceInfoForm;
\r
282 pWifiDirectDeviceInfoForm->Draw();
\r
288 case REQUEST_SETWPS_FORM:
\r
291 WifiDirectSetWpsForm* pWifiDirectSetWpsForm = new WifiDirectSetWpsForm(pArgs);
\r
292 TryReturnVoid(pWifiDirectSetWpsForm != null, "Not enough memory available");
\r
294 if (!pWifiDirectSetWpsForm->Initialize())
\r
296 delete pWifiDirectSetWpsForm;
\r
300 r = pFrame->AddControl(*pWifiDirectSetWpsForm);
\r
301 if (r != E_SUCCESS)
\r
303 delete pWifiDirectSetWpsForm;
\r
304 AppLog("AddControl Failed : %s", GetErrorMessage(r));
\r
308 r = pFrame->SetCurrentForm(*pWifiDirectSetWpsForm);
\r
309 TryReturnVoid(r == E_SUCCESS, "Failed to set WifiDirectSetWpsForm");
\r
311 __pPreviousForm = pWifiDirectSetWpsForm;
\r
313 pWifiDirectSetWpsForm->Draw();
\r