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 FUiCtrl_EditDate.h
20 * @brief This is the header file for the _EditDate class.
22 * This header file contains the declarations of the %_EditDate class.
25 #ifndef _FUI_CTRL_INTERNAL_EDITDATE_H_
26 #define _FUI_CTRL_INTERNAL_EDITDATE_H_
28 #include "FUi_Control.h"
29 #include "FUi_UiTouchEvent.h"
30 #include "FUiCtrl_IDateTimeChangeEventListener.h"
31 #include "FUiCtrl_DateTimeChangeEvent.h"
32 #include "FUiCtrl_IActionEventListener.h"
33 #include "FUiCtrl_DateTimeBar.h"
35 namespace Tizen { namespace Ui
37 class _AccessibilityElement;
40 namespace Tizen { namespace Ui { namespace Controls
42 class _EditDatePresenter;
44 class _OSP_EXPORT_ _EditDate
46 , public _IDateTimeChangeEventListener
47 , public _IActionEventListener
48 , virtual public Tizen::Base::Runtime::IEventListener
49 , virtual public _IUiEventListener
50 , virtual public _IUiEventPreviewer
52 DECLARE_CLASS_BEGIN(_EditDate, _Control);
53 DECLARE_PROPERTY("date", GetPropertyDate, SetPropertyDate);
54 DECLARE_PROPERTY("minYearRange", GetPropertyMinYearRange, SetPropertyMinYearRange);
55 DECLARE_PROPERTY("maxYearRange", GetPropertyMaxYearRange, SetPropertyMaxYearRange);
56 DECLARE_PROPERTY("day", GetPropertyDay, SetPropertyDay);
57 DECLARE_PROPERTY("month", GetPropertyMonth, SetPropertyMonth);
58 DECLARE_PROPERTY("year", GetPropertyYear, SetPropertyYear);
59 DECLARE_PROPERTY("datePickerEnabled", GetPropertyDatePickerEnabled, SetPropertyDatePickerEnabled);
62 result SetPropertyDate(const Tizen::Ui::Variant& date);
63 Tizen::Ui::Variant GetPropertyDate(void) const;
65 result SetPropertyMinYearRange(const Tizen::Ui::Variant& minYear);
66 result SetPropertyMaxYearRange(const Tizen::Ui::Variant& maxYear);
67 Tizen::Ui::Variant GetPropertyMinYearRange(void) const;
68 Tizen::Ui::Variant GetPropertyMaxYearRange(void) const;
70 result SetPropertyDay(const Tizen::Ui::Variant& day);
71 Tizen::Ui::Variant GetPropertyDay(void) const;
73 result SetPropertyMonth(const Tizen::Ui::Variant& month);
74 Tizen::Ui::Variant GetPropertyMonth(void) const;
76 result SetPropertyYear(const Tizen::Ui::Variant& year);
77 Tizen::Ui::Variant GetPropertyYear(void) const;
79 result SetPropertyDatePickerEnabled(const Tizen::Ui::Variant& enable);
80 Tizen::Ui::Variant GetPropertyDatePickerEnabled(void) const;
83 virtual ~_EditDate(void);
84 static _EditDate* CreateEditDateN(const Tizen::Base::String& title);
86 result AddDateChangeEventListener(const _IDateTimeChangeEventListener& listener);
87 result RemoveDateChangeEventListener(const _IDateTimeChangeEventListener& listener);
89 void SetDate(const Tizen::Base::DateTime& date);
90 Tizen::Base::DateTime GetDate(void) const;
92 result SetDay(int day);
93 int GetDay(void) const;
95 result SetMonth(int month);
96 int GetMonth(void) const;
98 result SetYear(int year);
99 int GetYear(void) const;
101 void SetCurrentDate(void);
103 void SetDatePickerEnabled(bool enable);
104 bool IsDatePickerEnabled(void) const;
106 result SetYearRange(int minYear, int maxYear);
107 result GetYearRange(int& minYear, int& maxYear) const;
109 result SetMinYearRange(int minYear);
110 result SetMaxYearRange(int maxYear);
112 int GetMinYearRange(void) const;
113 int GetMaxYearRange(void) const;
115 _DateTimeBar* GetDateTimeBar(void) const;
117 virtual void OnDraw(void);
118 virtual result OnAttachedToMainTree(void);
119 virtual void OnBoundsChanged(void);
120 virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
121 virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
122 virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
123 virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
124 virtual void OnTouchMoveHandled(const Tizen::Ui::_Control& control);
126 virtual void OnDateTimeChanged(const Tizen::Ui::_Control& source, int year, int month, int day, int hour, int minute);
127 virtual void OnDateTimeChangeCanceled(const Tizen::Ui::_Control& source);
128 virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
129 virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
130 virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
131 virtual void OnFontInfoRequested(unsigned long& style, int& size);
132 Tizen::Graphics::Rectangle GetParentWindowBounds(void) const;
137 _EditDate(const _EditDate&);
138 _EditDate& operator =(const _EditDate&);
140 result CreateDateTimeBar(void);
141 result CalculateDateTimeBarPosition(void);
142 result FireDateChangeEvent(_DateTimeChangeStatus status);
143 void AdjustDay(int year, int month);
144 void UpdateAccessibilityElement(void);
147 _EditDatePresenter* __pEditDatePresenter;
148 _DateTimeChangeEvent* __pDateChangeEvent;
149 _DateTimeBar* __pDateTimeBar;
150 Tizen::Graphics::Rectangle __absoluteBounds;
151 Tizen::Base::String __title;
152 Tizen::Ui::_AccessibilityElement* __pAccessibilityTitleElement;
153 Tizen::Ui::_AccessibilityElement* __pAccessibilityYearElement;
154 Tizen::Ui::_AccessibilityElement* __pAccessibilityMonthElement;
155 Tizen::Ui::_AccessibilityElement* __pAccessibilityDayElement;
159 }}} // Tizen::Ui::Controls
161 #endif // _FUI_CTRL_INTERNAL_EDITDATE_H_