Applied latest source code
[apps/native/preloaded/Clock.git] / inc / ClkWorldClockListForm.h
1 //
2 // Tizen Native SDK
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.1 (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        ClkWorldClockListForm.h
20  * @brief       This is the header file for WorldClockListForm class
21  */
22
23 #ifndef _CLK_WORLD_CLOCK_LIST_FORM_H_
24 #define _CLK_WORLD_CLOCK_LIST_FORM_H_
25
26 #include <FUi.h>
27
28 #include "ClkDaylightSavingPopUp.h"
29
30 class WorldClockListForm
31   : public Tizen::Ui::Controls::Form
32   , public IDstTimeEventListener
33   , public Tizen::Base::Runtime::ITimerEventListener
34   , public Tizen::Ui::Controls::IFormBackEventListener
35   , public Tizen::Ui::Controls::IFormMenuEventListener
36   , public Tizen::Ui::Controls::IListViewItemProvider
37   , public Tizen::Ui::Controls::IListViewItemEventListener
38   , public Tizen::Ui::IActionEventListener
39   , public Tizen::Ui::IOrientationEventListener
40   , public Tizen::Ui::Scenes::ISceneEventListener
41   , public Tizen::System::ISettingEventListener
42   {
43   public:
44         /**
45          *@brief Default destructor
46          */
47         WorldClockListForm(void);
48
49         /**
50          *@brief Default destructor
51          */
52         virtual ~WorldClockListForm(void);
53
54         /**
55          * @brief Initializes %WorldClockListForm.
56          *
57          * @return              An error code
58          * @param[in]   void
59          * @exception   true                            The method is successful.
60          * @exception   false                           An error occurred.
61          */
62         bool Initialize(void);
63
64         /**
65          * @brief Initializes the controls of the UI for %WorldClockListForm.
66          *
67          * @return              An error code
68          * @exception   E_SUCCESS                       The method is successful.
69          * @exception   E_INVALID_STATE         This instance has already been constructed.
70          * @exception   E_INVALID_ARG       A specified input parameter is invalid.
71          * @exception   E_OUT_OF_MEMORY     The memory is insufficient.
72          * @exception   E_SYSTEM                        A system error has occurred.
73          *
74          */
75         virtual result OnInitializing(void);
76
77         /**
78          * @brief Terminates the controls of the UI for %WorldClockListForm.
79          *
80          * @return              An error code
81          * @exception   E_SUCCESS                       The method is successful.
82          * @exception   E_INVALID_STATE         This instance has already been constructed.
83          * @exception   E_INVALID_ARG       A specified input parameter is invalid.
84          * @exception   E_OUT_OF_MEMORY     The memory is insufficient.
85          * @exception   E_SYSTEM                        A system error has occurred.
86          *
87          */
88         virtual result OnTerminating(void);
89
90         /**
91          * @brief Initialises the context menu at the point for %WorldClockListForm.
92          *
93          * @return              An error code
94          * @exception   E_SUCCESS                       The method is successful.
95          * @exception   E_INVALID_STATE         This instance has already been constructed.
96          * @exception   E_INVALID_ARG       A specified input parameter is invalid.
97          * @exception   E_OUT_OF_MEMORY     The memory is insufficient.
98          * @exception   E_SYSTEM                        A system error has occurred.
99          *
100          */
101         result InitContextMenu(Tizen::Graphics::Point& p);
102
103   public:
104         //IListViewItemProvider
105         virtual Tizen::Ui::Controls::ListItemBase *     CreateItem(int index, int itemWidth);
106         virtual bool    DeleteItem(int index, Tizen::Ui::Controls::ListItemBase *pItem, int itemWidth);
107         virtual int     GetItemCount(void);
108
109         //IActionEventListener
110         virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
111
112         //IDstTimeEventListener
113         virtual void OnDaylightSavingPopUpItemSelected(int dstTime);
114
115         //IFormBackEventListener
116         virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
117
118         virtual void OnFormMenuRequested(Tizen::Ui::Controls::Form& source);
119
120         // IListViewItemEventListener
121         virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
122         virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback){};
123         virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status){};
124         virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction){};
125
126         //ISceneEventListener
127         virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
128         virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);
129
130         // ITimerEventListener
131         virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
132
133         virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);
134
135         virtual void OnSettingChanged(Tizen::Base::String& key);
136
137         virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
138
139   private:
140         int __dstTime;
141         int __index;
142         bool __showPopup;
143         Tizen::Ui::Controls::ListContextItem* __pItemContext;
144         Tizen::Ui::Controls::ListContextItem* __pItemContextLandscape;
145         Tizen::Ui::Controls::ListView* __pListview;
146         Tizen::Ui::Controls::ContextMenu* __pMenu;
147         Tizen::Ui::Controls::OptionMenu* __pOptionMenu;
148         DaylightSavingPopUp* __pPopUp;
149         Tizen::Base::Runtime::Timer* __pTimer;
150         int __timerResetFlag;
151         Tizen::Base::String __timerResetKey;
152
153   };
154
155 #endif  // _CLK_WORLD_CLOCK_LIST_FORM_H_