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