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.
18 * @file FUiCtrl_DateTimePicker.h
19 * @brief This is the header file for the _DateTimePicker class.
22 #ifndef _FUI_CTRL_INTERNAL_DATETIMEPICKER_H_
23 #define _FUI_CTRL_INTERNAL_DATETIMEPICKER_H_
25 #include <FBaseDateTime.h>
26 #include <FBaseString.h>
27 #include <FBaseColLinkedListT.h>
29 #include "FUi_Window.h"
30 #include "FUiCtrl_IActionEventListener.h"
31 #include "FUiCtrl_DateTimeDefine.h"
32 #include "FUiAnim_VisualElement.h"
33 #include "FUi_IAccessibilityListener.h"
35 namespace Tizen { namespace Ui
37 class _AccessibilityElement;
38 //class _IAccessibilityListener;
41 namespace Tizen { namespace Ui { namespace Controls
44 class _DateTimePresenter;
45 class _DateTimeChangeEvent;
46 class _IDateTimeChangeEventListener;
50 : public Tizen::Ui::_Window
51 , public _IActionEventListener
52 , virtual public Tizen::Base::Runtime::IEventListener
53 , virtual public Tizen::Ui::_IUiEventListener
54 , virtual public Tizen::Ui::_IUiEventPreviewer
55 , virtual public Tizen::Ui::_IAccessibilityListener
57 DECLARE_CLASS_BEGIN(_DateTimePicker, _Control);
58 DECLARE_PROPERTY("year", GetPropertyYear, SetPropertyYear);
59 DECLARE_PROPERTY("month", GetPropertyMonth, SetPropertyMonth);
60 DECLARE_PROPERTY("day", GetPropertyDay, SetPropertyDay);
61 DECLARE_PROPERTY("hour", GetPropertyHour, SetPropertyHour);
62 DECLARE_PROPERTY("minute", GetPropertyMinute, SetPropertyMinute);
63 DECLARE_PROPERTY("24hourNotation", GetProperty24HourNotation, SetProperty24HourNotation);
64 DECLARE_PROPERTY("minYearRange", GetPropertyMinYearRange, SetPropertyMinYearRange);
65 DECLARE_PROPERTY("maxYearRange", GetPropertyMaxYearRange, SetPropertyMaxYearRange);
66 DECLARE_PROPERTY("dateTime", GetPropertyDateTime, SetPropertyDateTime);
69 result SetPropertyYear(const Tizen::Ui::Variant& year);
70 Tizen::Ui::Variant GetPropertyYear(void) const;
72 result SetPropertyMonth(const Tizen::Ui::Variant& month);
73 Tizen::Ui::Variant GetPropertyMonth(void) const;
75 result SetPropertyDay(const Tizen::Ui::Variant& day);
76 Tizen::Ui::Variant GetPropertyDay(void) const;
78 result SetPropertyHour(const Tizen::Ui::Variant& hour);
79 Tizen::Ui::Variant GetPropertyHour(void) const;
81 result SetPropertyMinute(const Tizen::Ui::Variant& minute);
82 Tizen::Ui::Variant GetPropertyMinute(void) const;
84 result SetProperty24HourNotation(const Tizen::Ui::Variant& enable);
85 Tizen::Ui::Variant GetProperty24HourNotation(void) const;
87 result SetPropertyMinYearRange(const Tizen::Ui::Variant& minYear);
88 Tizen::Ui::Variant GetPropertyMinYearRange(void) const;
90 result SetPropertyMaxYearRange(const Tizen::Ui::Variant& maxYear);
91 Tizen::Ui::Variant GetPropertyMaxYearRange(void) const;
93 result SetPropertyDateTime(const Tizen::Ui::Variant& dateTime);
94 Tizen::Ui::Variant GetPropertyDateTime(void) const;
97 virtual ~_DateTimePicker(void);
99 static _DateTimePicker* CreateDateTimePickerN(int style, const Tizen::Base::String& title = L"");
102 result AddDateTimeChangeEventListener(const _IDateTimeChangeEventListener& listener);
103 result RemoveDateTimeChangeEventListener(const _IDateTimeChangeEventListener& listener);
104 result FireDateTimeChangeEvent(_DateTimeChangeStatus status, Tizen::Base::DateTime& dateTime);
106 result SetYear(int year);
107 int GetYear(void) const;
109 result SetMonth(int month);
110 int GetMonth(void) const;
112 result SetDay(int day);
113 int GetDay(void) const;
115 result SetHour(int hour);
116 int GetHour(void) const;
118 result SetMinute(int minute);
119 int GetMinute(void) const;
121 void Set24HourNotationEnabled(bool enable);
122 bool Is24HourNotationEnabled(void) const;
124 result SetYearRange(int minYear, int maxYear);
125 result GetYearRange(int& minYear, int& maxYear) const;
127 void SetDateTime(const Tizen::Base::DateTime& dateTime);
128 Tizen::Base::DateTime GetDateTime(void) const;
130 void SetCurrentDateTime(void);
132 void SetFocusBoxId(int boxId);
134 void SetAccessibilityElementText(int index, const Tizen::Base::String& text, bool isAmPm);
136 virtual result OnAttachedToMainTree(void);
137 virtual void OnDraw(void);
138 virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
140 virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
141 virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
142 virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
143 virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
145 virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
147 virtual bool OnAccessibilityFocusMovedNext(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element){return true;}
148 virtual bool OnAccessibilityFocusMovedPrevious(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element){return true;}
149 virtual bool OnAccessibilityReadElement(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element){return true;}
150 virtual bool OnAccessibilityFocusIn(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element){return true;}
151 virtual bool OnAccessibilityFocusOut(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element){return true;}
152 virtual bool OnAccessibilityValueIncreased(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element){return true;}
153 virtual bool OnAccessibilityValueDecreased(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element){return true;}
154 virtual bool OnAccessibilityActionPerformed(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element);
156 virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
157 virtual void OnFontInfoRequested(unsigned long& style, int& size);
158 Tizen::Graphics::Font* GetDateTimeFont(void);
159 result InitializeFont(void);
161 result CreateHeader(void);
162 result DestroyHeader(void);
163 result CreateFooter(void);
164 result DestroyFooter(void);
166 Tizen::Graphics::Rectangle GetHeaderBounds(void);
168 result CreateDisplayVisualElement(void);
169 void SetDisplayVisualElementBounds(Tizen::Graphics::Rectangle bounds);
170 Tizen::Ui::Animations::_VisualElement* GetDisplayVisualElement(void);
173 _DateTimePicker(_DateTimePresenter* pPresenter, const Tizen::Base::String& title = L"");
175 _DateTimePicker(const _DateTimePicker&);
176 _DateTimePicker& operator =(const _DateTimePicker&);
179 _DateTimePresenter* __pPresenter;
183 Tizen::Base::String __title;
185 _DateTimeChangeEvent* __pDateTimeChangeEvent;
187 Tizen::Graphics::Font* __pFont;
189 Tizen::Ui::Animations::_VisualElement* __pDisplayVisualElement;
191 Tizen::Base::Collection::LinkedListT<Tizen::Ui::_AccessibilityElement*> __accessibilityElements;
192 }; // _DateTimePicker
194 }}} // Tizen::Ui::Controls
196 #endif //_FUI_CTRL_INTERNAL_DATETIMEPICKER_H_