Tizen 2.0 Release
[apps/osp/Phone.git] / src / PhnDialAppForm.cpp
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://floralicense.org/license/
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 /**
18  * @file    DlAppForm.cpp
19  * @brief   The Dial application form
20  */
21
22 #include <FApp.h>
23 #include "PhnBaseForm.h"
24 #include "PhnCommonUtils.h"
25 #include "PhnCallPresentationModel.h"
26 #include "PhnDialAppForm.h"
27 #include "PhnPhoneApp.h"
28 #include "PhnSceneRegister.h"
29
30 using namespace Tizen::Base;
31 using namespace Tizen::App;
32 using namespace Tizen::Ui;
33 using namespace Tizen::Ui::Controls;
34 using namespace Tizen::Ui::Scenes;
35
36 const int DialAppForm::ID_HEADER_DIALER = 101;
37 const int DialAppForm::ID_HEADER_LOGS = 103;
38 static const wchar_t* IDL_DIAL_FORM = L"IDL_DIAL_FORM";
39
40 DialAppForm::DialAppForm(void)
41 {
42 }
43
44 DialAppForm::~DialAppForm(void)
45 {
46 }
47
48 bool
49 DialAppForm::Initialize(void)
50 {
51         Construct(IDL_DIAL_FORM);
52
53         return true;
54 }
55
56 result
57 DialAppForm::OnInitializing(void)
58 {
59         result r = E_SUCCESS;
60
61         Header* pHeader = GetHeader();
62         pHeader->AddActionEventListener(*this);
63 /*      __pFormFooter = GetFooter();
64     __pFormFooter->AddActionEventListener(*this);*/
65         // Setup back event listener
66         SetFormBackEventListener(this);
67
68         return r;
69 }
70
71 result
72 DialAppForm::OnTerminating(void)
73 {
74         return E_SUCCESS;
75 }
76
77 void
78 DialAppForm::OnActionPerformed(const Control& source, int actionId)
79 {
80         SceneManager* pSceneManager = SceneManager::GetInstance();
81         AppAssert(pSceneManager);
82
83         PhoneApp* pPhoneApp = static_cast<PhoneApp*>(UiApp::GetInstance());
84         switch (actionId)
85         {
86         case ID_HEADER_DIALER:
87         {
88                 pSceneManager->GoForward( ForwardSceneTransition(IDSCN_DIALER, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
89                                                 SCENE_HISTORY_OPTION_NO_HISTORY));
90                 pPhoneApp->SetInitialScene(IDSCN_DIALER);
91         }
92         break;
93
94         case ID_HEADER_LOGS:
95         {
96                 
97                 pSceneManager->GoForward( ForwardSceneTransition(IDSCN_CALL_LOG, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
98                                                 SCENE_HISTORY_OPTION_NO_HISTORY));
99                 pPhoneApp->SetInitialScene(IDSCN_CALL_LOG);
100
101         }
102         break;
103
104         default:
105                 break;
106         }
107 }
108
109 void
110 DialAppForm::OnFormBackRequested(Form& source)
111 {
112         //if this is add call senario, if there is no active call only then allow user to access call log
113         CallPresentationModel* pCallPresentor = CallPresentationModel::GetInstance();
114         if(pCallPresentor->GetCurrentCallCount() == 0)
115         {
116         UiApp* pApp = UiApp::GetInstance();
117         AppAssert(pApp);
118         pApp->Terminate();
119         }
120         else
121         {
122                 SceneManager* pSceneManager = SceneManager::GetInstance();
123                 PhoneApp* pPhoneApp = static_cast<PhoneApp*>(UiApp::GetInstance());
124                 pSceneManager->GoForward( ForwardSceneTransition(IDSCN_DIALER, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
125                                                 SCENE_HISTORY_OPTION_NO_HISTORY));
126                 pPhoneApp->SetInitialScene(IDSCN_DIALER);
127         }
128 }