e70c42dace0e7941763cf3b76c5f09d4a3178bdc
[apps/osp/Dial.git] / src / PhnDialAppForm.cpp
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.1 (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 "PhnCommonUtils.h"
24 #include "PhnDialAppForm.h"
25 #include "PhnPhoneApp.h"
26 #include "PhnSceneRegister.h"
27 #include "PhnTypes.h"
28 #include "PhnTabDialer.h"
29 #include "PhnTabLogs.h"
30
31 using namespace Tizen::Base;
32 using namespace Tizen::App;
33 using namespace Tizen::Ui;
34 using namespace Tizen::Ui::Controls;
35 using namespace Tizen::Ui::Scenes;
36
37 const int DialAppForm::ID_HEADER_DIALER = 101;
38 const int DialAppForm::ID_HEADER_LOGS = 103;
39 static const wchar_t* IDL_DIAL_FORM = L"IDL_DIAL_FORM";
40
41 DialAppForm::DialAppForm(void)
42 {
43 }
44
45 DialAppForm::~DialAppForm(void)
46 {
47 }
48
49 bool
50 DialAppForm::Initialize(void)
51 {
52         Construct(IDL_DIAL_FORM);
53
54         return true;
55 }
56
57 result
58 DialAppForm::OnInitializing(void)
59 {
60         result r = E_SUCCESS;
61
62         Header* pHeader = GetHeader();
63         pHeader->SetTabEditModeEnabled(false);
64         pHeader->AddActionEventListener(*this);
65         // Setup back event listener
66         SetFormBackEventListener(this);
67         SetFormMenuEventListener(this);
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                 pSceneManager->GoForward( ForwardSceneTransition(IDSCN_CALL_LOG, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
97                                                 SCENE_HISTORY_OPTION_NO_HISTORY));
98                 pPhoneApp->SetInitialScene(IDSCN_CALL_LOG);
99         }
100         break;
101
102         default:
103                 break;
104         }
105 }
106
107 void
108 DialAppForm::OnFormBackRequested(Form& source)
109 {
110         //if this is launched as normal application, then exit.
111         AppLog("Enter");
112         PhoneApp* pPhoneApp = static_cast<PhoneApp*>(UiApp::GetInstance());
113         if(pPhoneApp->IsOpenAsAppControl() == true)
114         {
115                 //launched as "AddCall" AppControl, send response
116                 pPhoneApp->SendAppControlResponseMessage(APP_CTRL_RESULT_CANCELED, null);
117         }
118         pPhoneApp->Terminate();
119
120 }
121
122 void
123 DialAppForm::OnFormMenuRequested(Controls::Form& source)
124 {
125         AppLog("Enter");
126         SceneManager* pSceneManager = SceneManager::GetInstance();
127         if(pSceneManager == null)
128         {
129                 return;
130         }
131         DialTabDialer *tabDialer = null;
132         DialTabLogs *tabLogs = null;
133
134         if(pSceneManager->GetCurrentSceneId() == IDSCN_DIALER)
135         {
136                 tabDialer = dynamic_cast<DialTabDialer*>(pSceneManager->GetCurrentScene()->GetPanel());
137                 if(tabDialer != null)
138                 {
139                         tabDialer->ShowOptionsMenu();
140                 }
141         }
142         else if(pSceneManager->GetCurrentSceneId() == IDSCN_CALL_LOG)
143         {
144                 tabLogs = dynamic_cast<DialTabLogs*>(pSceneManager->GetCurrentScene()->GetPanel());
145                 if(tabLogs != null)
146                 {
147                         tabLogs->ShowOptionsMenu();
148                 }
149         }
150         AppLog("Exit");
151 }