2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
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
9 // http://floralicense.org/license/
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.
19 * @file FUiCtrlEditTime.h
20 * @brief This is the header file for the %EditTime class.
22 * This header file contains the declarations of the %EditTime class.
24 #ifndef _FUI_CTRL_EDIT_TIME_H_
25 #define _FUI_CTRL_EDIT_TIME_H_
27 #include <FUiControl.h>
28 #include <FUiITimeChangeEventListener.h>
29 #include <FUiIOrientationEventListener.h>
31 namespace Tizen { namespace Ui { namespace Controls
36 * @brief This class defines the common behavior of an %EditTime control.
40 * The %EditTime class displays a small, fixed-size selector that allows the user to select a time.
41 * Unlike TimePicker, %EditTime can be placed in a container.
43 * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/ui/implementing_edittime_editdate.htm">EditDate and EditTime</a>.
45 * The following example demonstrates how to use the %EditTime class.
48 // Sample code for EditTimeSample.h
52 : public Tizen::Ui::Controls::Form
53 , public Tizen::Ui::ITimeChangeEventListener
59 bool Initialize(void);
60 virtual result OnInitializing(void);
62 // ITimeChangeEventListener
63 virtual void OnTimeChanged(const Tizen::Ui::Control& source, int hour, int minute);
64 virtual void OnTimeChangeCanceled(const Tizen::Ui::Control& source);
67 Tizen::Ui::Controls::EditTime* __pEditTime;
72 // Sample code for EditTimeSample.cpp
73 #include <FGraphics.h>
75 #include "EditTimeSample.h"
77 using namespace Tizen::Graphics;
78 using namespace Tizen::Ui::Controls;
81 EditTimeSample::Initialize(void)
83 Construct(FORM_STYLE_NORMAL);
88 EditTimeSample::OnInitializing(void)
92 // Creates an instance of EditTime
93 __pEditTime = new EditTime();
94 __pEditTime->Construct(Point(100, 100));
95 __pEditTime->AddTimeChangeEventListener(*this);
97 //Adds the edit time to the form
98 AddControl(*__pEditTime);
103 // ITimeChangeEventListener implementation
105 EditTimeSample::OnTimeChanged(const Control& source, int hour, int minute)
111 EditTimeSample::OnTimeChangeCanceled(const Control& source)
117 class _OSP_EXPORT_ EditTime
118 : public Tizen::Ui::Control
122 * The object is not fully constructed after this constructor is called. For full construction, the Construct() method must be called right after calling this constructor.
129 * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
133 virtual ~EditTime(void);
136 * Adds a time changed event listener instance.
140 * @param[in] listener The listener to add
141 * @see ITimeChangeEventListener::OnTimeChanged()
142 * @see ITimeChangeEventListener::OnTimeChangeCanceled()
143 * @see RemoveTimeChangeEventListener()
145 void AddTimeChangeEventListener(Tizen::Ui::ITimeChangeEventListener& listener);
148 * Removes a listener instance. @n
149 * The removed listener cannot listen to events when they are fired.
153 * @param[in] listener The listener to remove
154 * @see AddTimeChangeEventListener()
156 void RemoveTimeChangeEventListener(Tizen::Ui::ITimeChangeEventListener& listener);
159 * Initializes this instance of %EditTime with the specified parameters.
163 * @return An error code
164 * @param[in] point The position of %EditTime in container
165 * @param[in] title The title
166 * @exception E_SUCCESS The method is successful.
167 * @exception E_SYSTEM A system error has occurred.
169 result Construct(const Tizen::Graphics::Point& point, const Tizen::Base::String& title = L"");
172 * Initializes this instance of %EditTime with the specified parameters.
176 * @return An error code
177 * @param[in] point The position of %EditTime in container
178 * @param[in] title The title
179 * @exception E_SUCCESS The method is successful.
180 * @exception E_SYSTEM A system error has occurred.
182 result Construct(const Tizen::Graphics::FloatPoint& point, const Tizen::Base::String& title = L"");
185 * Gets the current hour value of the %EditTime control.
189 * @return The current hour value. @n
190 * The hour value is between @c 0 to @c 23.
192 * @remarks The default hour value is the current system hour.
194 int GetHour(void) const;
197 * Gets the current minute value of the %EditTime control.
201 * @return The current minute value
203 * @remarks The default minute value is the current system minute.
205 int GetMinute(void) const;
208 * Gets the current time value of the %EditTime control.
212 * @return The time value
214 Tizen::Base::DateTime GetTime(void) const;
217 * Sets the 12-hour or 24-hour display type of the %EditTime. @n
218 * This can be 12-hour or 24-hour type.
222 * @param[in] enable Set to @c true to set the 24-hour notation, @n
223 * else @c false to set the 12-hour notation
225 void Set24HourNotationEnabled(bool enable);
228 * Sets the hour value of the %EditTime control. @n
229 * The hour value should be between @c 0 and @c 23.
233 * @param[in] hour The hour value to set
234 * @exception E_SUCCESS The method is successful.
235 * @exception E_INVALID_ARG The specified hour value is invalid.
236 * @exception E_SYSTEM A system error has occurred.
239 result SetHour(int hour);
242 * Sets the minute value of the %EditTime control. @n
243 * The minute value should be between @c 0 and @c 59.
247 * @param[in] minute The minute value to set
248 * @exception E_SUCCESS The method is successful.
249 * @exception E_INVALID_ARG The specified minute value is invalid.
250 * @exception E_SYSTEM A system error has occurred.
253 result SetMinute(int minute);
256 * Sets the designated time value of the %EditTime control.
260 * @param[in] time The time to set
262 void SetTime(const Tizen::Base::DateTime& time);
265 * Sets the value of the %EditTime control using the current system time.
269 void SetCurrentTime(void);
272 * Enables TimePicker.
276 * @param[in] enable Set to @c true to enable %TimePicker, @n
279 void SetTimePickerEnabled(bool enable);
282 * Checks whether TimePicker is enabled.
286 * @return @c true if TimePicker is enabled, @n
289 bool IsTimePickerEnabled(void) const;
293 // The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
295 EditTime(const EditTime& rhs);
298 // The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
300 EditTime& operator =(const EditTime& rhs);
302 friend class _EditTimeImpl;
305 }}} //Tizen::Ui::Controls
307 #endif // _FUI_CTRL_EDIT_TIME_H_