Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / controls / FUiCtrlTimePicker.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17 /**
18  * @file                FUiCtrlTimePicker.cpp
19  * @brief               This is the implementation file for the TimePicker class.
20  */
21
22 // Includes
23 #include <FSysSystemTime.h>
24 #include <FUiCtrlTimePicker.h>
25 #include <FBaseSysLog.h>
26 #include "FUiCtrl_TimePickerImpl.h"
27
28 using namespace Tizen::Base;
29 using namespace Tizen::Graphics;
30 using namespace Tizen::System;
31
32 namespace Tizen { namespace Ui { namespace Controls
33 {
34
35 TimePicker::TimePicker(void)
36 {
37 }
38
39 TimePicker::~TimePicker(void)
40 {
41 }
42
43 result
44 TimePicker::Construct(const Tizen::Base::String& title)
45 {
46         _TimePickerImpl* pImpl = null;
47         pImpl = _TimePickerImpl::GetInstance(*this);
48         SysAssertf((pImpl == null),
49                         "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
50
51         pImpl = _TimePickerImpl::CreateTimePickerImplN(this, title);
52         result r = GetLastResult();
53         SysTryReturn(NID_UI_CTRL, (pImpl != null), r, r, "[%s] Propagating.", GetErrorMessage(r));
54
55         _pControlImpl = pImpl;
56
57         pImpl->GetCore().SetResizable(false);
58         pImpl->GetCore().SetMovable(false);
59
60         return r;
61 }
62
63 void
64 TimePicker::AddTimeChangeEventListener(Tizen::Ui::ITimeChangeEventListener& listener)
65 {
66         _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
67         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
68
69         result r = pImpl->AddTimeChangeEventListener(listener);
70         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
71 }
72
73 void
74 TimePicker::RemoveTimeChangeEventListener(Tizen::Ui::ITimeChangeEventListener& listener)
75 {
76         _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
77         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
78
79         result r = pImpl->RemoveTimeChangeEventListener(listener);
80         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
81 }
82
83 int
84 TimePicker::GetHour(void) const
85 {
86         const _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
87         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
88
89         int hour = pImpl->GetHour();
90         result r = GetLastResult();
91         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, hour, r, "[%s] Propagating.", GetErrorMessage(r));
92
93         return hour;
94 }
95
96 int
97 TimePicker::GetMinute(void) const
98 {
99         const _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
100         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
101
102         int minute = pImpl->GetMinute();
103         result r = GetLastResult();
104         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, minute, r, "[%s] Propagating.", GetErrorMessage(r));
105
106         return minute;
107 }
108
109 Tizen::Base::DateTime
110 TimePicker::GetTime(void) const
111 {
112         result r = E_SUCCESS;
113         Tizen::Base::DateTime dateTime;
114         const _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
115         if (pImpl == null)
116         {
117                 r = SystemTime::GetCurrentTime(WALL_TIME, dateTime);
118                 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, dateTime, r, "[%s] Propagating.", GetErrorMessage(r));
119                 return dateTime;
120         }
121
122         dateTime = pImpl->GetTime();
123         r = GetLastResult();
124         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, dateTime, r, "[%s] Propagating.", GetErrorMessage(r));
125
126         return dateTime;
127 }
128
129 void
130 TimePicker::Set24HourNotationEnabled(bool enable)
131 {
132         _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
133         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
134
135         pImpl->Set24HourNotationEnabled(enable);
136         result r = GetLastResult();
137         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
138 }
139
140 result
141 TimePicker::SetHour(int hour)
142 {
143         _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
144         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
145
146         result r = pImpl->SetHour(hour);
147         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
148
149         return r;
150 }
151
152 result
153 TimePicker::SetMinute(int minute)
154 {
155         _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
156         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
157
158         result r = pImpl->SetMinute(minute);
159         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
160
161         return r;
162 }
163
164 void
165 TimePicker::SetTime(const Tizen::Base::DateTime& time)
166 {
167         _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
168         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
169
170         pImpl->SetTime(time);
171         result r = GetLastResult();
172         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
173 }
174
175 void
176 TimePicker::SetCurrentTime(void)
177 {
178         _TimePickerImpl* pImpl = _TimePickerImpl::GetInstance(*this);
179         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
180
181         pImpl->SetCurrentTime();
182         result r = GetLastResult();
183         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
184 }
185
186 }}} // Tizen::Ui::Controls