Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / controls / FUiCtrlDatePicker.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                FUiCtrlDatePicker.cpp
19  * @brief               This is the implementation file for the DatePicker class.
20  */
21
22 #include <FSysSystemTime.h>
23 #include <FUiCtrlDatePicker.h>
24 #include <FBaseSysLog.h>
25 #include "FUiCtrl_DatePickerImpl.h"
26
27 using namespace Tizen::Base;
28 using namespace Tizen::Graphics;
29 using namespace Tizen::System;
30
31 namespace Tizen { namespace Ui { namespace Controls
32 {
33
34 DatePicker::DatePicker(void)
35 {
36 }
37
38 DatePicker::~DatePicker(void)
39 {
40 }
41
42 result
43 DatePicker::Construct(const Tizen::Base::String& title)
44 {
45         _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
46         SysAssertf((pImpl == null),
47                         "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
48
49         pImpl = _DatePickerImpl::CreateDatePickerImplN(this, title);
50         result r = GetLastResult();
51         SysTryReturn(NID_UI_CTRL, (pImpl != null), r, r, "[%s] Propagating.", GetErrorMessage(r));
52
53         _pControlImpl = pImpl;
54
55         pImpl->GetCore().SetResizable(false);
56         pImpl->GetCore().SetMovable(false);
57
58         return r;
59 }
60
61 void
62 DatePicker::AddDateChangeEventListener(Tizen::Ui::IDateChangeEventListener& listener)
63 {
64         _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
65         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
66
67         result r = pImpl->AddDateChangeEventListener(listener);
68         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
69 }
70
71 void
72 DatePicker::RemoveDateChangeEventListener(Tizen::Ui::IDateChangeEventListener& listener)
73 {
74         _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
75         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
76
77         result r = pImpl->RemoveDateChangeEventListener(listener);
78         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
79 }
80
81 Tizen::Base::DateTime
82 DatePicker::GetDate(void) const
83 {
84         result r = E_SUCCESS;
85         Tizen::Base::DateTime dateTime;
86         const _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
87         if (pImpl == null)
88         {
89                 r = SystemTime::GetCurrentTime(WALL_TIME, dateTime);
90                 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, dateTime, r, "[%s] Propagating.", GetErrorMessage(r));
91                 return dateTime;
92         }
93
94         dateTime = pImpl->GetDate();
95         r = GetLastResult();
96         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, dateTime, r, "[%s] Propagating.", GetErrorMessage(r));
97
98         return dateTime;
99 }
100
101 int
102 DatePicker::GetDay(void) const
103 {
104         const _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
105         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
106
107         int day = pImpl->GetDay();
108         result r = GetLastResult();
109         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, day, r, "[%s] Propagating.", GetErrorMessage(r));
110
111         return day;
112 }
113
114 int
115 DatePicker::GetMonth(void) const
116 {
117         const _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
118         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
119
120         int month = pImpl->GetMonth();
121         result r = GetLastResult();
122         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, month, r, "[%s] Propagating.", GetErrorMessage(r));
123
124         return month;
125 }
126
127 int
128 DatePicker::GetYear(void) const
129 {
130         const _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
131         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
132
133         int year = pImpl->GetYear();
134         result r = GetLastResult();
135         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, year, r, "[%s] Propagating.", GetErrorMessage(r));
136
137         return year;
138 }
139
140 void
141 DatePicker::SetDate(const Tizen::Base::DateTime& date)
142 {
143         _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
144         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
145
146         pImpl->SetDate(date);
147         result r = GetLastResult();
148         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
149 }
150
151 void
152 DatePicker::SetCurrentDate(void)
153 {
154         _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
155         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
156
157         pImpl->SetCurrentDate();
158         result r = GetLastResult();
159         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
160 }
161
162 result
163 DatePicker::SetYear(int year)
164 {
165         _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
166         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
167
168         result r = pImpl->SetYear(year);
169         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
170
171         return r;
172 }
173
174 result
175 DatePicker::SetMonth(int month)
176 {
177         _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
178         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
179
180         result r = pImpl->SetMonth(month);
181         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
182
183         return r;
184 }
185
186 result
187 DatePicker::SetDay(int day)
188 {
189         _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
190         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
191
192         result r = pImpl->SetDay(day);
193         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
194
195         return r;
196 }
197
198 result
199 DatePicker::SetYearRange(int minYear, int maxYear)
200 {
201         _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
202         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
203
204         result r = pImpl->SetYearRange(minYear, maxYear);
205         SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
206
207         return r;
208 }
209
210 result
211 DatePicker::GetYearRange(int& minYear, int& maxYear) const
212 {
213         const _DatePickerImpl* pImpl = _DatePickerImpl::GetInstance(*this);
214         SysAssertf((pImpl != null), "Not yet constructed. Construct() should be called before use.");
215
216         return pImpl->GetYearRange(minYear, maxYear);
217 }
218
219 }}} //Tizen::Ui::Controls