Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_EditTimeImpl.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 /**
19  * @file                FUiCtrl_EditTimeImpl.h
20  * @brief               This is the header file for the _EditTimeImpl class.
21  *
22  * This header file contains the declarations of the %_EditTimeImpl class.
23  */
24
25 #ifndef _FUI_CTRL_INTERNAL_EDITTIME_IMPL_H_
26 #define _FUI_CTRL_INTERNAL_EDITTIME_IMPL_H_
27
28 #include <FUiCtrlEditTime.h>
29 #include "FUi_ControlImpl.h"
30 #include "FUiCtrl_EditTime.h"
31 #include "FUiCtrl_IDateTimeChangeEventListener.h"
32 #include "FUiCtrl_PublicDateTimeChangeEvent.h"
33
34 namespace Tizen { namespace Ui { namespace Controls
35 {
36
37 class _EditTimeImpl
38         : public _ControlImpl
39         , public _IDateTimeChangeEventListener
40         , virtual public Tizen::Base::Runtime::IEventListener
41 {
42 public:
43         class EditTimeSizeInfo : public Tizen::Ui::_ControlImpl::SizeInfo
44         {
45         public:
46                 EditTimeSizeInfo(void);
47                 virtual Tizen::Graphics::Dimension GetDefaultMinimumSize(Tizen::Ui::_ControlOrientation orientation) const;
48                 virtual Tizen::Graphics::Dimension GetDefaultMaximumSize(Tizen::Ui::_ControlOrientation orientation) const;
49                 void SetTitleStyle(bool titleStyle = false);
50
51         private:
52                 bool __isTitle;
53         };
54
55 public:
56         virtual ~_EditTimeImpl(void);
57         static _EditTimeImpl* CreateEditTimeImplN(EditTime* pControl, const Tizen::Graphics::Point& point, const Tizen::Base::String& title);
58
59         virtual const char* GetPublicClassName(void) const;
60         virtual const EditTime& GetPublic(void) const;
61         virtual EditTime& GetPublic(void);
62         virtual const _EditTime& GetCore(void) const;
63         virtual _EditTime& GetCore(void);
64
65 public:
66         result AddTimeChangeEventListener(Tizen::Ui::ITimeChangeEventListener& listener);
67         result RemoveTimeChangeEventListener(Tizen::Ui::ITimeChangeEventListener& listener);
68         Tizen::Base::DateTime GetTime(void) const;
69         int GetHour(void) const;
70         int GetMinute(void) const;
71         void SetTime(const Tizen::Base::DateTime& time);
72         void SetCurrentTime(void);
73         result SetHour(int hour);
74         result SetMinute(int minute);
75         void SetTimePickerEnabled(bool enable);
76         bool IsTimePickerEnabled(void) const;
77         void Set24HourNotationEnabled(bool enable);
78
79         virtual void OnDateTimeChanged(const Tizen::Ui::_Control& source, int year, int month, int day, int hour, int minute);
80         virtual void OnDateTimeChangeCanceled(const Tizen::Ui::_Control& source);
81
82 public:
83         static _EditTimeImpl* GetInstance(EditTime& editTime);
84         static const _EditTimeImpl* GetInstance(const EditTime& editTime);
85
86 private:
87         _EditTimeImpl(EditTime* pPublic, _EditTime* pCore);
88
89         _EditTimeImpl(const _EditTimeImpl&);
90         _EditTimeImpl& operator =(const _EditTimeImpl&);
91
92 private:
93         _PublicDateTimeChangeEvent* __pPublicTimeChangeEvent;
94 }; // _EditTimeImpl
95
96 }}} // Tizen::Ui::Controls
97
98 #endif //_FUI_CTRL_INTERNAL_EDITTIME_IMPL_H_