Changed indicator bg color.
[platform/framework/native/uifw.git] / src / ui / controls / FUiCtrl_PublicDateTimeChangeEvent.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                FUiCtrl_PublicDateTimeChangeEvent.cpp
20  * @brief               This is the implementation file for the _PublicDateTimeChangeEvent and _PublicDateTimeChangeEventArg classes.
21  */
22
23 #include <FBaseErrors.h>
24 #include <FBaseSysLog.h>
25 #include <FSysSystemTime.h>
26 #include <FUiIDateChangeEventListener.h>
27 #include <FUiIDateTimeChangeEventListener.h>
28 #include <FUiITimeChangeEventListener.h>
29 #include "FUiCtrl_PublicDateTimeChangeEvent.h"
30
31 using namespace Tizen::Base;
32 using namespace Tizen::Base::Runtime;
33 using namespace Tizen::System;
34
35 namespace Tizen { namespace Ui { namespace Controls
36 {
37
38 _PublicDateTimeChangeEventArg::_PublicDateTimeChangeEventArg(DateTimePublicChangeStatus status)
39         : __status(status)
40         , __year(1)
41         , __month(1)
42         , __day(1)
43         , __hour(0)
44         , __minute(0)
45 {
46         SystemTime::GetCurrentTime(WALL_TIME, __dateTime1);
47 }
48
49 _PublicDateTimeChangeEventArg::~_PublicDateTimeChangeEventArg(void)
50 {
51         // Nothing.
52 }
53
54 void
55 _PublicDateTimeChangeEventArg::SetDateTime(const Tizen::Base::DateTime& dateTime)
56 {
57         __dateTime1 = dateTime;
58
59         return;
60 }
61
62 int
63 _PublicDateTimeChangeEventArg::GetYear(void) const
64 {
65         return __year;
66 }
67
68 int
69 _PublicDateTimeChangeEventArg::GetMonth(void) const
70 {
71         return __month;
72 }
73
74 int
75 _PublicDateTimeChangeEventArg::GetDay(void) const
76 {
77         return __day;
78 }
79
80 int
81 _PublicDateTimeChangeEventArg::GetHour(void) const
82 {
83         return __hour;
84 }
85
86 int
87 _PublicDateTimeChangeEventArg::GetMinute(void) const
88 {
89         return __minute;
90 }
91
92 Tizen::Base::DateTime
93 _PublicDateTimeChangeEventArg::GetDateTime(void) const
94 {
95         return __dateTime1;
96 }
97
98 DateTimePublicChangeStatus
99 _PublicDateTimeChangeEventArg::GetStatus(void) const
100 {
101         return __status;
102 }
103
104 void
105 _PublicDateTimeChangeEventArg::SetTime(int hour, int minute)
106 {
107         __hour = hour;
108         __minute = minute;
109
110         return;
111 }
112
113 void
114 _PublicDateTimeChangeEventArg::SetDate(int year, int month, int day)
115 {
116         __year = year;
117         __month = month;
118         __day = day;
119
120         return;
121 }
122
123 ////////////////////////////////////////////////////////////////////////////////
124 /// _PublicDateTimeChangeEventArg class end
125
126 _PublicDateTimeChangeEvent::_PublicDateTimeChangeEvent(const Tizen::Ui::Control& source)
127         : __pSource(null)
128 {
129         result r = _Event::Initialize();
130
131         if (r == E_SUCCESS)
132         {
133                 __pSource = const_cast<Control*>(&source);
134         }
135 }
136
137 _PublicDateTimeChangeEvent::~_PublicDateTimeChangeEvent(void)
138 {
139         // Nothing.
140 }
141
142 void
143 _PublicDateTimeChangeEvent::FireImpl(IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg)
144 {
145         const _PublicDateTimeChangeEventArg* pArg = dynamic_cast <const _PublicDateTimeChangeEventArg*>(&arg);
146         SysTryReturnVoidResult(NID_UI_CTRL, (pArg != null), E_INVALID_ARG,
147                                                    "[E_INVALID_ARG] Invalid argument(s) is used. The instance of _PublicDateTimeChangeEventArg is null.");
148
149         DateTimePublicChangeStatus status = pArg->GetStatus();
150         if ((status == DATETIME_PUBLIC_CHANGE_SAVED) || (status == DATETIME_PUBLIC_CHANGE_CANCELED))
151         {
152                 IDateTimeChangeEventListener* pChangeEventListener = dynamic_cast <IDateTimeChangeEventListener*>(&listener);
153                 SysTryReturnVoidResult(NID_UI_CTRL, (pChangeEventListener != null), E_INVALID_ARG,
154                                                            "[E_INVALID_ARG] Invalid argument(s) is used. The instance of IDateTimeChangeEventListener is null.");
155
156                 if (status == DATETIME_PUBLIC_CHANGE_SAVED)
157                 {
158                         pChangeEventListener->OnDateTimeChanged(*__pSource, pArg->GetYear(), pArg->GetMonth(), pArg->GetDay(),
159                                                                                                         pArg->GetHour(), pArg->GetMinute());
160                 }
161                 else
162                 {
163                         pChangeEventListener->OnDateTimeChangeCanceled(*__pSource);
164                 }
165         }
166         else if ((status == DATE_PUBLIC_CHANGE_SAVED) || (status == DATE_PUBLIC_CHANGE_CANCELED))
167         {
168                 IDateChangeEventListener* pChangeEventListener = dynamic_cast <IDateChangeEventListener*>(&listener);
169                 SysTryReturnVoidResult(NID_UI_CTRL, (pChangeEventListener != null), E_INVALID_ARG,
170                                                   "[E_INVALID_ARG] Invalid argument(s) is used. The instance of IDateChangeEventListener is null.");
171
172                 if (status == DATE_PUBLIC_CHANGE_SAVED)
173                 {
174                         pChangeEventListener->OnDateChanged(*__pSource, pArg->GetYear(), pArg->GetMonth(), pArg->GetDay());
175                 }
176                 else
177                 {
178                         pChangeEventListener->OnDateChangeCanceled(*__pSource);
179                 }
180         }
181         else if ((status == TIME_PUBLIC_CHANGE_SAVED) || (status == TIME_PUBLIC_CHANGE_CANCELED))
182         {
183                 ITimeChangeEventListener* pChangeEventListener = dynamic_cast <ITimeChangeEventListener*>(&listener);
184                 SysTryReturnVoidResult(NID_UI_CTRL, (pChangeEventListener != null), E_INVALID_ARG,
185                                                            "[E_INVALID_ARG] Invalid argument(s) is used. The instance of ITimeChangeEventListener is null.");
186
187                 if (status == TIME_PUBLIC_CHANGE_SAVED)
188                 {
189                         pChangeEventListener->OnTimeChanged(*__pSource, pArg->GetHour(), pArg->GetMinute());
190                 }
191                 else
192                 {
193                         pChangeEventListener->OnTimeChangeCanceled(*__pSource);
194                 }
195         }
196         SetLastResult(E_SUCCESS);
197         return;
198 }
199
200 const Tizen::Ui::Control*
201 _PublicDateTimeChangeEvent::GetSource(void) const
202 {
203         return __pSource;
204 }
205
206 Tizen::Base::Runtime::IEventArg*
207 _PublicDateTimeChangeEvent::CreateDateTimeChangeEventArgN(DateTimePublicChangeStatus status)
208 {
209         _PublicDateTimeChangeEventArg* pEventArg = new (std::nothrow) _PublicDateTimeChangeEventArg(status);
210         SysTryReturn(NID_UI_CTRL, (pEventArg != null), null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
211
212         return pEventArg;
213 }
214
215 }}} // Tizen::Ui::Controls