9 * Initial Contributors: |
9 * Initial Contributors: |
10 * Nokia Corporation - initial contribution. |
10 * Nokia Corporation - initial contribution. |
11 * |
11 * |
12 * Contributors: |
12 * Contributors: |
13 * |
13 * |
14 * Description: Implementation of calendar context. |
14 * Description: Implementation of calendar context. |
15 * |
15 * |
16 */ |
16 */ |
17 |
|
18 |
17 |
19 |
18 |
20 #ifndef CALENCONTEXTIMPL_H |
19 #ifndef CALENCONTEXTIMPL_H |
21 #define CALENCONTEXTIMPL_H |
20 #define CALENCONTEXTIMPL_H |
22 |
21 |
23 // FORWARD DECLARATIONS |
22 // FORWARD DECLARATIONS |
24 class MCalenContextChangeObserver; |
23 class MCalenContextChangeObserver; |
25 |
24 |
26 // INCLUDES |
25 // INCLUDES |
27 #include <calencontext.h> |
26 #include "calencontext.h" |
28 #include <caleninstanceid.h> // TCalenInstanceId |
27 #include "caleninstanceid.h" |
29 #include <calentry.h> |
|
30 #include <vwsdef.h> |
28 #include <vwsdef.h> |
31 #include <EPos_CPosLandmark.h> |
29 |
|
30 #ifdef CALENGLOBALDATA_DLL |
|
31 #define CALENCONTEXTIMPL_EXPORT Q_DECL_EXPORT |
|
32 #else |
|
33 #define CALENCONTEXTIMPL_EXPORT Q_DECL_IMPORT |
|
34 #endif |
32 |
35 |
33 // CLASS DEFINITIONS |
36 // CLASS DEFINITIONS |
34 /** |
37 /** |
35 * The controller handles events from the rest of Calendar and delegates |
38 * The controller handles events from the rest of Calendar and delegates |
36 * them to the appropriate place (i.e. the action ui classes). |
39 * them to the appropriate place (i.e. the action ui classes). |
37 */ |
40 */ |
38 class CCalenContextImpl : public CBase, public MCalenContext |
41 class CalenContextImpl : public MCalenContext |
39 { |
42 { |
|
43 public: // Construction and destruction |
|
44 /** |
|
45 * The only reason this should be created outside of this dll is for |
|
46 * SCalenCommand, which needs a default constructor. Normal usage is |
|
47 * to use the accessor from the global data. Attempting to call |
|
48 * "setters" on any context not from the global data will panic. |
|
49 */ |
|
50 CALENCONTEXTIMPL_EXPORT CalenContextImpl( MCalenContextChangeObserver* observer ); |
|
51 CALENCONTEXTIMPL_EXPORT CalenContextImpl(); |
|
52 CALENCONTEXTIMPL_EXPORT CalenContextImpl( const CalenContextImpl& context ); |
|
53 ~CalenContextImpl(); |
40 |
54 |
41 public: // Construction and destruction |
55 public: // from MCalenContext |
42 |
56 // Utils |
43 /** |
57 /** |
44 * The only reason this should be created outside of this dll is for |
58 * Returns the default time for views. (Normally 8am.) This would be |
45 * SCalenCommand, which needs a default constructor. Normal usage is |
59 * used for example by the month view, which sets the focus time to |
46 * to use the accessor from the global data. Attempting to call |
60 * 8am on a day. Then when opening the week view, a sane time is shown. |
47 * "setters" on any context not from the global data will panic. |
61 */ |
48 */ |
62 int defaultTimeForViewsInMinnutes() const; |
49 CCalenContextImpl( MCalenContextChangeObserver* aObserver ); |
|
50 CCalenContextImpl(); |
|
51 CCalenContextImpl( const CCalenContextImpl& aContext ); |
|
52 ~CCalenContextImpl(); |
|
53 |
63 |
54 public: // from MCalenContext |
64 /** |
55 |
65 * Returns the default TCalTime for views. (Normally 8am today.) This |
56 // Utils |
66 * would be used for example when a view is the first view loaded in |
57 /** |
67 * Calendar. |
58 * Returns the default time for views. (Normally 8am.) This would be |
68 */ |
59 * used for example by the month view, which sets the focus time to |
69 QDateTime defaultCalTimeForViewsL() const; |
60 * 8am on a day. Then when opening the week view, a sane time is shown. |
|
61 */ |
|
62 TTimeIntervalMinutes DefaultTimeForViews() const; |
|
63 |
|
64 /** |
|
65 * Returns the default TCalTime for views. (Normally 8am today.) This |
|
66 * would be used for example when a view is the first view loaded in |
|
67 * Calendar. |
|
68 */ |
|
69 TCalTime DefaultCalTimeForViewsL() const; |
|
70 |
70 |
71 // Setters |
71 // Setters |
72 /** |
72 /** |
73 * Sets the date and time currently focused. |
73 * Sets the date and time currently focused. |
74 * @param aFocusTime The new focus date and time. |
74 * @param aFocusTime The new focus date and time. |
75 * @param aViewId The view id of the currently active view. |
75 * @param aViewId The view id of the currently active view. |
76 */ |
76 */ |
77 void SetFocusDateAndTimeL( const TCalTime& aFocusDateTime, |
77 void setFocusDateAndTimeL( const QDateTime& focusDateTime, |
78 const TVwsViewId& aViewId ); |
78 const int& viewId ); |
79 |
79 |
80 /** |
80 /** |
81 * Sets the date currently focused. When retrieving the focus |
81 * Sets the date currently focused. When retrieving the focus |
82 * date and time after calling this function, the time component |
82 * date and time after calling this function, the time component |
83 * will be set to the default of view. When retrieving the focus |
83 * will be set to the default of view. When retrieving the focus |
84 * time only, it will be set to -1. |
84 * time only, it will be set to -1. |
85 * @param aFocusDate The new focus date and time. |
85 * @param aFocusDate The new focus date and time. |
86 * @param aViewId The view id of the currently active view. |
86 * @param aViewId The view id of the currently active view. |
87 */ |
87 */ |
88 void SetFocusDateL( const TCalTime& aFocusDate, |
88 void setFocusDateL( const QDateTime& focusDateTime, |
89 const TVwsViewId& aViewId ); |
89 const int& viewId ); |
90 |
90 |
91 /** |
91 /** |
92 * Sets the id of the instance currently focused. |
92 * Sets the id of the instance currently focused. |
93 * @param aInstanceId the id of the focused instance. |
93 * @param aInstanceId the id of the focused instance. |
94 * @param aViewId The view id of the currently active view. |
94 * @param aViewId The view id of the currently active view. |
95 */ |
95 */ |
96 void SetInstanceIdL( const TCalenInstanceId& aInstanceId, |
96 void setInstanceIdL( const TCalenInstanceId& instanceId, |
97 const TVwsViewId& aViewId ); |
97 const int& viewId ); |
98 |
98 |
99 /** |
99 /** |
100 * Sets the time and instance currently focused. |
100 * Sets the time and instance currently focused. |
101 * @param aFocusTime The new focus time. If no time is focused, set |
101 * @param aFocusTime The new focus time. If no time is focused, set |
102 * the Utc time of this object to be Time::NullTTime. |
102 * the Utc time of this object to be Time::NullTTime. |
103 * @param aInstanceId the id of the focused instance. |
103 * @param aInstanceId the id of the focused instance. |
104 * @param aViewId The view id of the currently active view. |
104 * @param aViewId The view id of the currently active view. |
105 */ |
105 */ |
106 void SetFocusDateAndTimeAndInstanceL( const TCalTime& aFocusDateTime, |
106 void setFocusDateAndTimeAndInstanceL( const QDateTime& focusDateTime, |
107 const TCalenInstanceId& aInstanceId, |
107 const TCalenInstanceId& aInstanceId, |
108 const TVwsViewId& aViewId ); |
108 const int& viewId ); |
109 |
109 |
110 // Getters |
110 // Getters |
111 /** |
111 /** |
112 * Gets the date and time currently focused. |
112 * Gets the date and time currently focused. |
113 * @return The currently focused date and time. When no time is |
113 * @return The currently focused date and time. When no time is |
114 * focused, the default time on the current date will be returned. |
114 * focused, the default time on the current date will be returned. |
115 */ |
115 */ |
116 TCalTime FocusDateAndTimeL() const; |
116 QDateTime focusDateAndTimeL() const; |
117 |
117 |
118 /** |
118 /** |
119 * Gets the time currently focused. |
119 * Gets the time currently focused. |
120 * @return The currently focused time. When no time is |
120 * @return The currently focused time. When no time is |
121 * focused, -1 will be returned. |
121 * focused, -1 will be returned. |
122 */ |
122 */ |
123 TTimeIntervalMinutes FocusTime() const; |
123 int focusTime() const; |
124 |
124 |
125 /** |
125 /** |
126 * Gets the id of the instance currently focused. |
126 * Gets the id of the instance currently focused. |
127 * @return The instance id currently focused. When no instance is focused, |
127 * @return The instance id currently focused. When no instance is focused, |
128 * this will be TCalenInstanceId::NullInstanceIdL() |
128 * this will be TCalenInstanceId::NullInstanceIdL() |
129 */ |
129 */ |
130 TCalenInstanceId InstanceId() const; |
130 TCalenInstanceId instanceId() const; |
131 |
131 |
132 /** |
132 /** |
133 * Gets the id of the currently active view. |
133 * Gets the id of the currently active view. |
134 * @return The view id of the currently active view. |
134 * @return The view id of the currently active view. |
135 */ |
135 */ |
136 TVwsViewId ViewId() const; |
136 int viewId() const; |
137 |
137 |
|
138 |
138 public: // Multiple Context support |
139 public: // Multiple Context support |
139 |
140 |
140 /** |
141 /** |
141 * Set multiple context ids |
142 * Set multiple context ids |
142 * |
143 * |
143 * @param aMutlipleContextIds |
144 * @param aMutlipleContextIds |
144 */ |
145 */ |
145 void SetMutlipleContextIds(RArray<TCalenInstanceId>& aMutlipleContextIds); |
146 void setMutlipleContextIds(QList<TCalenInstanceId>& mutlipleContextIds); |
146 |
147 |
147 /** |
148 /** |
148 * Remove multiple context id |
149 * Remove multiple context id |
149 * |
150 * |
150 * @param aInstanceId Instance Id for which context to be removed |
151 * @param aInstanceId Instance Id for which context to be removed |
151 */ |
152 */ |
152 void RemoveMultipleContextId(TCalenInstanceId aInstanceId); |
153 void removeMultipleContextId(TCalenInstanceId instanceId); |
153 |
154 |
154 /** |
155 /** |
155 * Resets all the multiple context ids |
156 * Resets all the multiple context ids |
156 * |
157 * |
157 */ |
158 */ |
158 void ResetMultipleContextIds(TInt aDbId=0); |
159 void resetMultipleContextIds(int dbId=0); |
159 |
160 |
160 /** |
161 /** |
161 * Getter for multiple context ids |
162 * Getter for multiple context ids |
162 * |
163 * |
163 * @return RArray<TCalenInstanceId>& |
164 * @return RArray<TCalenInstanceId>& |
164 */ |
165 */ |
165 RArray<TCalenInstanceId>& GetMutlipleContextIds(TInt aDbId=0); |
166 QList<TCalenInstanceId>& getMutlipleContextIds(int dbId=0); |
166 |
167 |
167 /** |
168 /** |
168 * Returns mutliple context's count |
169 * Returns mutliple context's count |
169 * |
170 * |
170 * @return |
171 * @return |
171 */ |
172 */ |
172 TInt MutlipleContextIdsCount(); |
173 int mutlipleContextIdsCount(); |
173 |
174 |
174 /** |
175 private: // Data |
175 * Sets the user selected landmark |
176 MCalenContextChangeObserver* mObserver; |
176 * @param aLandMark Landmark object |
177 QDateTime mFocusDate; |
177 */ |
178 int mFocusTime; |
178 void SetLandMark(CPosLandmark* aLandMark); |
179 TCalenInstanceId mInstanceId; |
179 |
180 int mViewId; |
180 /** |
181 // Multiple context ids |
181 * Returns the user selected landmark |
182 QList<TCalenInstanceId> mMutlipleContextIds; |
182 * @return Landmark object |
183 |
183 */ |
|
184 CPosLandmark* GetLandMark(); |
|
185 |
|
186 /** |
|
187 * Resets the landmark |
|
188 */ |
|
189 void ResetLandMark(); |
|
190 |
|
191 /** |
|
192 * Allows extending this API without breaking BC. |
|
193 * |
|
194 * @param aExtensionUid specifies |
|
195 * @return extension of the requested type |
|
196 */ |
|
197 TAny* CalenContextExtensionL( TUid aExtensionUid ); |
|
198 |
|
199 /** |
|
200 * @brief Get calendar filename |
|
201 * |
|
202 * @return TDesC& reference to calendar filename |
|
203 */ |
|
204 TDesC& GetCalendarFileNameL() const; |
|
205 |
|
206 /** |
|
207 * @brief Set the calendar filename |
|
208 * |
|
209 * @param aName referance to calendar file name |
|
210 */ |
|
211 void SetCalendarFileNameL(const TDesC& aName); |
|
212 |
|
213 /** |
|
214 * @brief Resets calendar file name in context |
|
215 */ |
|
216 void ResetCalendarFileName(); |
|
217 |
|
218 private: // Data |
|
219 MCalenContextChangeObserver* iObserver; |
|
220 TCalTime iFocusDate; |
|
221 TTimeIntervalMinutes iFocusTime; |
|
222 TCalenInstanceId iInstanceId; |
|
223 TVwsViewId iViewId; |
|
224 CPosLandmark* iLandMark; |
|
225 CCalGeoValue* iGeoValue; |
|
226 HBufC* iLocation; |
|
227 // Multiple context ids |
|
228 RArray<TCalenInstanceId> iMutlipleContextIds; |
|
229 HBufC* iCalenFileName; |
|
230 }; |
184 }; |
231 |
185 |
232 #endif // CALENCONTEXTIMPL_H |
186 #endif // CALENCONTEXTIMPL_H |
233 |
187 |
234 // End of file |
188 // End of file |