Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_DateTimePickerImpl.h
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                FUiCtrl_DateTimePickerImpl.h
19  * @brief               This is the header file for the _DateTimePickerImpl class.
20  */
21
22 #ifndef _FUI_CTRL_INTERNAL_DATETIMEPICKER_IMPL_H_
23 #define _FUI_CTRL_INTERNAL_DATETIMEPICKER_IMPL_H_
24
25 #include <FUiCtrlDateTimePicker.h>
26 #include "FUi_WindowImpl.h"
27 #include "FUiCtrl_DateTimePicker.h"
28 #include "FUiCtrl_IDateTimeChangeEventListener.h"
29 #include "FUiCtrl_PublicDateTimeChangeEvent.h"
30
31 namespace Tizen { namespace Ui
32 {
33 class IDateTimeChangeEventListener;
34 }} // Tizen::Ui
35
36 namespace Tizen { namespace Ui { namespace Controls
37 {
38
39 class _DateTimePickerImpl
40         : public _WindowImpl
41         , public _IDateTimeChangeEventListener
42         , virtual public Tizen::Base::Runtime::IEventListener
43 {
44 public:
45                 class DateTimePickerSizeInfo : public _ControlImpl::SizeInfo
46                 {
47                         virtual Tizen::Graphics::Dimension GetDefaultMinimumSize(_ControlOrientation orientation) const;
48                         virtual Tizen::Graphics::Dimension GetDefaultMaximumSize(_ControlOrientation orientation) const;
49                 };
50 public:
51         static _DateTimePickerImpl* CreateDateTimePickerImplN(DateTimePicker* pControl, const Tizen::Base::String& title = L"");
52         virtual ~_DateTimePickerImpl(void);
53
54         virtual const char* GetPublicClassName(void) const;
55         virtual const DateTimePicker& GetPublic(void) const;
56         virtual DateTimePicker& GetPublic(void);
57         virtual const _DateTimePicker& GetCore(void) const;
58         virtual _DateTimePicker& GetCore(void);
59
60         result AddDateTimeChangeEventListener(Tizen::Ui::IDateTimeChangeEventListener& listener);
61         result RemoveDateTimeChangeEventListener(Tizen::Ui::IDateTimeChangeEventListener& listener);
62
63         void SetDateTime(const Tizen::Base::DateTime& dateTime);
64         Tizen::Base::DateTime GetDateTime(void) const;
65
66         void SetCurrentDateTime(void);
67         result SetYear(int year);
68         int GetYear(void) const;
69         result SetMonth(int month);
70         int GetMonth(void) const;
71         result SetDay(int day);
72         int GetDay(void) const;
73         result SetHour(int hour);
74         int GetHour(void) const;
75         result SetMinute(int minute);
76         int GetMinute(void) const;
77
78         void Set24HourNotationEnabled(bool enable);
79         bool Is24HourNotationEnabled(void) const;
80
81         result SetYearRange(int minYear, int maxYear);
82         result GetYearRange(int& minYear, int& maxYear) const;
83
84         virtual result OnAttachedToMainTree(void);
85         virtual void OnDateTimeChanged(const Tizen::Ui::_Control& source, int year, int month, int day, int hour, int minute);
86         virtual void OnDateTimeChangeCanceled(const Tizen::Ui::_Control& source);
87         virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
88
89 public:
90         static _DateTimePickerImpl* GetInstance(DateTimePicker& dateTimePicker);
91         static const _DateTimePickerImpl* GetInstance(const DateTimePicker& dateTimePicker);
92
93 private:
94         _DateTimePickerImpl(DateTimePicker* pPublic, _DateTimePicker* pCore);
95
96         _DateTimePickerImpl(const _DateTimePickerImpl&);
97         _DateTimePickerImpl& operator =(const _DateTimePickerImpl&);
98
99 private:
100         _PublicDateTimeChangeEvent* __pPublicDateTimeChangeEvent;
101 }; // _DateTimePickerImpl
102
103 }}} // Tizen::Ui::Controls
104
105 #endif //_FUI_CTRL_INTERNAL_DATETIMEPICKER_IMPL_H_