59 class CFSMailFolder; |
59 class CFSMailFolder; |
60 class CFSMailBox; |
60 class CFSMailBox; |
61 class CAsyncCallBack; |
61 class CAsyncCallBack; |
62 class CESMRIcalViewer; |
62 class CESMRIcalViewer; |
63 class CFsTreePlainTwoLineItemData; |
63 class CFsTreePlainTwoLineItemData; |
64 |
64 class CAknStylusPopUpMenu; |
65 |
65 |
66 struct SSearchListItem |
66 struct SSearchListItem |
67 { |
67 { |
68 TInt iSearchListItemId; |
68 TInt iSearchListItemId; |
69 MFsTreeItemData* iTreeItemData; |
69 MFsTreeItemData* iTreeItemData; |
70 MFsTreeItemVisualizer* iTreeItemVisualiser; |
70 MFsTreeItemVisualizer* iTreeItemVisualiser; |
71 }; |
71 }; |
72 |
72 |
73 class CFSEmailUiSearchListVisualiser : public CFsEmailUiViewBase, |
73 class CFSEmailUiSearchListVisualiser : public CFsEmailUiViewBase, |
74 public MFSMailBoxSearchObserver, |
74 public MFSMailBoxSearchObserver, |
75 //<cmail> touch |
75 //<cmail> touch |
76 public MFsTreeListObserver, |
76 public MFsTreeListObserver, |
77 public MFsActionMenuPositionGiver, |
|
78 //<cmail> |
77 //<cmail> |
79 public MFSEmailUiGenericTimerCallback, |
78 public MFSEmailUiGenericTimerCallback, |
80 public MFSEmailUiContactHandlerObserver |
79 public MFSEmailUiContactHandlerObserver |
81 { |
80 { |
82 public: |
81 public: |
83 static CFSEmailUiSearchListVisualiser* NewL(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aSeacrhListControlGroup); |
82 static CFSEmailUiSearchListVisualiser* NewL(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aSeacrhListControlGroup); |
84 static CFSEmailUiSearchListVisualiser* NewLC(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aSearchListControlGroup); |
83 static CFSEmailUiSearchListVisualiser* NewLC(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aSearchListControlGroup); |
85 virtual ~CFSEmailUiSearchListVisualiser(); |
84 virtual ~CFSEmailUiSearchListVisualiser(); |
86 void PrepareForExit(); |
85 void PrepareForExit(); |
87 |
86 |
88 public: // from CFsEmailUiViewBase |
87 public: // from CFsEmailUiViewBase |
89 void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); |
88 void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); |
90 |
89 |
91 // From view |
90 // From view |
92 TUid Id() const; |
91 TUid Id() const; |
93 // <cmail> Toolbar |
92 // <cmail> Toolbar |
94 /*void DoActivateL(const TVwsViewId& aPrevViewId, |
93 /*void DoActivateL(const TVwsViewId& aPrevViewId, |
95 TUid aCustomMessageId, |
94 TUid aCustomMessageId, |
96 const TDesC8& aCustomMessage);*/ |
95 const TDesC8& aCustomMessage);*/ |
97 // </cmail> Toolbar |
96 // </cmail> Toolbar |
98 void ChildDoDeactivate(); |
97 void ChildDoDeactivate(); |
99 void HandleCommandL( TInt aCommand ); |
98 void HandleCommandL( TInt aCommand ); |
100 |
99 |
101 /** |
100 /** |
102 * @see CFsEmailUiViewBase::SetStatusBarLayout |
101 * @see CFsEmailUiViewBase::SetStatusBarLayout |
103 */ |
102 */ |
104 void SetStatusBarLayout(); |
103 void SetStatusBarLayout(); |
105 |
104 |
106 // Dynamic variant switch, called by appui |
105 // Dynamic variant switch, called by appui |
107 void HandleDynamicVariantSwitchL( CFsEmailUiViewBase::TDynamicSwitchType aType ); |
106 void HandleDynamicVariantSwitchL( CFsEmailUiViewBase::TDynamicSwitchType aType ); |
108 void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const; |
107 void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const; |
111 TBool IsNextMsgAvailable( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundNextMsgId, TFSMailMsgId& aFoundNextMsgFolder ) const; |
110 TBool IsNextMsgAvailable( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundNextMsgId, TFSMailMsgId& aFoundNextMsgFolder ) const; |
112 TBool IsPreviousMsgAvailable( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundPreviousMsgId, TFSMailMsgId& aFoundPrevMsgFolder ) const; |
111 TBool IsPreviousMsgAvailable( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundPreviousMsgId, TFSMailMsgId& aFoundPrevMsgFolder ) const; |
113 TInt MoveToNextMsgL( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundNextMsgId ); |
112 TInt MoveToNextMsgL( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundNextMsgId ); |
114 TInt MoveToPreviousMsgL( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundPreviousMsgId ); |
113 TInt MoveToPreviousMsgL( TFSMailMsgId aCurrentMsgId, TFSMailMsgId& aFoundPreviousMsgId ); |
115 TInt MoveToPreviousMsgAfterDeleteL( TFSMailMsgId aFoundPreviousMsgId ); |
114 TInt MoveToPreviousMsgAfterDeleteL( TFSMailMsgId aFoundPreviousMsgId ); |
116 |
115 |
117 public: // from MFSMailBoxSearchObserver |
116 public: // from MFSMailBoxSearchObserver |
118 void MatchFoundL( CFSMailMessage* aMatchMessage ); |
117 void MatchFoundL( CFSMailMessage* aMatchMessage ); |
119 void SearchCompletedL(); |
118 void SearchCompletedL(); |
|
119 /** |
|
120 * server asks client if to change the search priority (when calling) |
|
121 */ |
|
122 void ClientRequiredSearchPriority( TInt *apRequiredSearchPriority ); // <cmail> |
120 |
123 |
121 |
124 |
122 public: // new methods |
125 public: // new methods |
123 // Refresh the whole list |
126 // Refresh the whole list |
124 void RefreshL(); |
127 void RefreshL(); |
125 |
128 |
126 // Mail list current model data |
129 // Mail list current model data |
127 CFSEmailUiMailListModel* Model(); |
130 CFSEmailUiMailListModel* Model(); |
128 |
131 |
129 // Event handling forwarded from control |
132 // Event handling forwarded from control |
130 TBool OfferEventL( const TAlfEvent& aEvent ); |
133 TBool OfferEventL( const TAlfEvent& aEvent ); |
131 |
134 |
132 // Used from callback |
135 // Used from callback |
133 TInt LaunchSearchDialogL(); |
136 TInt LaunchSearchDialogL(); |
134 |
137 |
135 // Used from appui to get the current index in search list |
138 // Used from appui to get the current index in search list |
136 TInt HighlightedIndex() const; |
139 TInt HighlightedIndex() const; |
137 |
140 |
138 // Start timer callback |
141 // Start timer callback |
146 TAny* aParam1, TAny* aParam2, TAny* aParam3 ); |
149 TAny* aParam1, TAny* aParam2, TAny* aParam3 ); |
147 void RemoveMsgItemsFromListIfFoundL( const RArray<TFSMailMsgId>& aEntryIds ); |
150 void RemoveMsgItemsFromListIfFoundL( const RArray<TFSMailMsgId>& aEntryIds ); |
148 |
151 |
149 public: // From MFsTreeListObserver |
152 public: // From MFsTreeListObserver |
150 //<cmail> touch |
153 //<cmail> touch |
151 void TreeListEventL( const TFsTreeListEvent aEvent, const TFsTreeItemId aId ); |
154 void TreeListEventL( const TFsTreeListEvent aEvent, |
152 |
155 const TFsTreeItemId aId, |
153 // From MFsActionMenuPositionGiver |
156 const TPoint& aPoint ); |
154 TPoint ActionMenuPosition(); |
157 |
155 //</cmail> |
158 //</cmail> |
156 |
159 |
157 public: // From MFSEMailUiContactHandlerObserver |
160 public: // From MFSEMailUiContactHandlerObserver |
158 |
161 |
159 void OperationCompleteL( TContactHandlerCmd aCmd, |
162 void OperationCompleteL( TContactHandlerCmd aCmd, |
160 const RPointerArray<CFSEmailUiClsItem>& aContacts ); |
163 const RPointerArray<CFSEmailUiClsItem>& aContacts ); |
161 void OperationErrorL( TContactHandlerCmd, TInt aError ); |
164 void OperationErrorL( TContactHandlerCmd, TInt aError ); |
162 |
165 |
163 // <cmail> Toolbar |
166 // <cmail> Toolbar |
164 private: // from |
167 private: // from |
165 |
168 |
166 /** |
169 /** |
167 * @see CFsEmailUiViewBase::ChildDoActivateL |
170 * @see CFsEmailUiViewBase::ChildDoActivateL |
168 */ |
171 */ |
169 void ChildDoActivateL( const TVwsViewId& aPrevViewId, |
172 void ChildDoActivateL( const TVwsViewId& aPrevViewId, |
170 TUid aCustomMessageId, |
173 TUid aCustomMessageId, |
171 const TDesC8& aCustomMessage ); |
174 const TDesC8& aCustomMessage ); |
172 |
175 |
173 // </cmail> Toolbar |
176 // </cmail> Toolbar |
174 |
177 |
175 // Called when flip state is changed |
178 // Called when flip state is changed |
176 void FlipStateChangedL( TBool aFlipOpen ); |
179 void FlipStateChangedL( TBool aFlipOpen ); |
177 |
180 |
178 /** |
181 /** |
179 * Handles the focus state changes |
182 * Handles the focus state changes |
180 * @param aVisible Indicates if focus should become visible or removed |
183 * @param aVisible Indicates if focus should become visible or removed |
181 */ |
184 */ |
182 void FocusVisibilityChange( TBool aVisible ); |
185 void FocusVisibilityChange( TBool aVisible ); |
183 |
186 |
184 private: |
187 private: |
185 CFSEmailUiSearchListVisualiser( CFreestyleEmailUiAppUi* aAppUi, CAlfEnv& aEnv, CAlfControlGroup& aSearchListControlGroup ); |
188 CFSEmailUiSearchListVisualiser( CFreestyleEmailUiAppUi* aAppUi, CAlfEnv& aEnv, CAlfControlGroup& aSearchListControlGroup ); |
186 void ConstructL(); |
189 void ConstructL(); |
187 |
190 |
188 void ReScaleUiL(); |
191 void ReScaleUiL(); |
189 void SetSearchListLayoutAnchors(); |
192 void SetSearchListLayoutAnchors(); |
190 void SetSearchListTopBarLayoutAnchors(); |
193 void SetSearchListTopBarLayoutAnchors(); |
191 |
194 |
192 void CreatePlainNodeL( const TDesC& aItemDataBuff, |
195 void CreatePlainNodeL( const TDesC& aItemDataBuff, |
193 CFsTreePlainOneLineNodeData* &aItemData, |
196 CFsTreePlainOneLineNodeData* &aItemData, |
194 CFsTreePlainOneLineNodeVisualizer* &aNodeVisualizer ) const; |
197 CFsTreePlainOneLineNodeVisualizer* &aNodeVisualizer ) const; |
195 void ExpandAllNodesL(); |
198 void ExpandAllNodesL(); |
196 void CollapseAllNodesL(); |
199 void CollapseAllNodesL(); |
197 |
200 |
198 // Helper functions to access model data |
201 // Helper functions to access model data |
199 TFSMailMsgId MsgIdFromIndex( TInt aItemIdx ) const; |
202 TFSMailMsgId MsgIdFromIndex( TInt aItemIdx ) const; |
200 TFSMailMsgId MsgIdFromListId( TFsTreeItemId aListId ) const; |
203 TFSMailMsgId MsgIdFromListId( TFsTreeItemId aListId ) const; |
201 CFSMailMessage& MsgPtrFromListId( TFsTreeItemId aListId ); |
204 CFSMailMessage& MsgPtrFromListId( TFsTreeItemId aListId ); |
202 |
205 |
203 // Item data and visualiser helper functions |
206 // Item data and visualiser helper functions |
204 MFsTreeItemData* ItemDataFromItemId( TFsTreeItemId aItemId ); |
207 MFsTreeItemData* ItemDataFromItemId( TFsTreeItemId aItemId ); |
205 MFsTreeItemVisualizer* ItemVisualiserFromItemId( TFsTreeItemId aItemId ); |
208 MFsTreeItemVisualizer* ItemVisualiserFromItemId( TFsTreeItemId aItemId ); |
206 |
209 |
207 // Helpers to get the ordinal of a message in the iModel |
210 // Helpers to get the ordinal of a message in the iModel |
208 TInt ItemIndexFromMessageId( const TFSMailMsgId& aMessageId ) const; |
211 TInt ItemIndexFromMessageId( const TFSMailMsgId& aMessageId ) const; |
209 TInt NextMessageIndex( TInt aCurMsgIdx ) const; |
212 TInt NextMessageIndex( TInt aCurMsgIdx ) const; |
210 TInt PreviousMessageIndex( TInt aCurMsgIdx ) const; |
213 TInt PreviousMessageIndex( TInt aCurMsgIdx ) const; |
211 |
214 |
212 //<cmail> touch |
215 //<cmail> touch |
213 // Helper class for resolving touch events and actions |
216 // Helper class for resolving touch events and actions |
214 void DoHandleActionL(); |
217 void DoHandleActionL(); |
215 //</cmail> |
218 //</cmail> |
216 |
219 |
217 // Open highlighted mail |
220 // Open highlighted mail |
218 void OpenHighlightedMailL(); |
221 void OpenHighlightedMailL(); |
219 |
222 |
220 // Compose, reply, reply all and forward |
223 // Compose, reply, reply all and forward |
221 void ReplyL( CFSMailMessage* aMsgPtr ); |
224 void ReplyL( CFSMailMessage* aMsgPtr ); |
226 void StartSearchL(); |
229 void StartSearchL(); |
227 void StopSearchL(); |
230 void StopSearchL(); |
228 |
231 |
229 // <cmail> fixed CS high cat. finding |
232 // <cmail> fixed CS high cat. finding |
230 void ResetResultListL(); |
233 void ResetResultListL(); |
231 |
234 |
232 void ChangeReadStatusOfHighlightedL( TInt aRead ); |
235 void ChangeReadStatusOfHighlightedL( TInt aRead ); |
233 |
236 |
234 void CheckAndUpdateFocusedMessageL(); |
237 void CheckAndUpdateFocusedMessageL(); |
235 |
238 |
236 void RemoveFocusedFromListL(); |
239 void RemoveFocusedFromListL(); |
237 |
240 |
238 void UpdateMsgIconAndBoldingL( CFSMailMessage* aMsgPtr ); |
241 void UpdateMsgIconAndBoldingL( CFSMailMessage* aMsgPtr ); |
239 void UpdateMsgIconAndBoldingL( TInt aListIndex ); |
242 void UpdateMsgIconAndBoldingL( TInt aListIndex ); |
240 |
243 |
241 // Delete messages |
244 // Delete messages |
242 void DeleteFocusedMessageL(); |
245 void DeleteFocusedMessageL(); |
243 |
246 |
244 void CallToSenderL(); |
247 TBool CallToSenderL(); |
245 |
248 |
246 void UpdateMailListSettingsL(); |
249 void UpdateMailListSettingsL(); |
247 |
250 |
248 void UpdatePreviewPaneTextForItemL( CFsTreePlainTwoLineItemData* aItemData, CFSMailMessage* aMsgPtr ); |
251 void UpdatePreviewPaneTextForItemL( CFsTreePlainTwoLineItemData* aItemData, CFSMailMessage* aMsgPtr ); |
249 void FilterPreviewPaneTextL( TDes& aText ) const; |
252 void FilterPreviewPaneTextL( TDes& aText ) const; |
250 |
253 |
251 void SetMskL(); |
254 void SetMskL(); |
252 |
255 |
253 void DoFirstStartL(); |
256 void DoFirstStartL(); |
254 |
257 |
255 void LaunchActionMenuL(); |
|
256 |
|
257 void HandleActionMenuCommandL( TActionMenuCustomItemId itemId ); |
|
258 |
|
259 void SetHeaderAttributesL(); |
258 void SetHeaderAttributesL(); |
260 |
259 |
|
260 void LaunchStylusPopupMenuL( const TPoint& aPoint ); |
|
261 |
261 private: |
262 private: |
262 // Pointer to Alf environment |
263 // Pointer to Alf environment |
263 CAlfEnv* iEnv; |
264 CAlfEnv* iEnv; |
264 |
265 |
265 // Data to be filled from custom message |
266 // Data to be filled from custom message |
276 CAlfTextVisual* iBarTextVisual; |
277 CAlfTextVisual* iBarTextVisual; |
277 |
278 |
278 // Mail List control and layout |
279 // Mail List control and layout |
279 CFreestyleEmailUiSearchListControl* iSearchListControl; |
280 CFreestyleEmailUiSearchListControl* iSearchListControl; |
280 CAlfDeckLayout* iSearchListLayout; |
281 CAlfDeckLayout* iSearchListLayout; |
281 CFSEmailUiMailListModel* iModel; |
282 CFSEmailUiMailListModel* iModel; |
282 CFsTreeList* iSearchList; |
283 CFsTreeList* iSearchList; |
283 CFsTreeVisualizerBase* iSearchTreeListVisualizer; |
284 CFsTreeVisualizerBase* iSearchTreeListVisualizer; |
284 TInt iNumSlots; |
285 TInt iNumSlots; |
285 |
286 |
286 RArray<SSearchListItem> iSearchListItemArray; |
287 RArray<SSearchListItem> iSearchListItemArray; |
287 |
288 |
288 HBufC* iLatestSearchText; |
289 HBufC* iLatestSearchText; |
289 |
290 |
290 TBool iThisViewActive; |
291 TBool iThisViewActive; |
291 |
292 |
292 TBool iSearchOngoing; |
293 TBool iSearchOngoing; |
293 |
294 |
294 CFSEmailUiGenericTimer* iStartupCallbackTimer; |
295 CFSEmailUiGenericTimer* iStartupCallbackTimer; |
295 |
296 |
296 RPointerArray<TDesC> iSearchStrings; |
297 RPointerArray<TDesC> iSearchStrings; |
297 |
298 |
298 |
299 |
299 TBool iMsgDataCouldBeChanged; |
300 TBool iMsgDataCouldBeChanged; |
300 |
301 |
301 // Previous view uid |
302 // Previous view uid |
302 TUid iPreviousViewUid; |
303 TUid iPreviousViewUid; |
303 |
304 |
304 TInt iListMode; |
305 TInt iListMode; |
305 TInt iNodesInUse; |
306 TInt iNodesInUse; |
306 |
307 |
307 TFSMailMsgId iLatestOpenedMrId; |
308 TFSMailMsgId iLatestOpenedMrId; |
308 |
309 |
309 TInt iSearchCount; |
310 TInt iSearchCount; |
310 |
311 |
311 TAknUiZoom iCurrentZoomLevel; |
312 TAknUiZoom iCurrentZoomLevel; |
312 |
313 |
313 TBool iFirstStartCompleted; |
314 TBool iFirstStartCompleted; |
314 |
315 |
315 TBool iListAddedToControlGroup; //<cmail> |
316 TBool iListAddedToControlGroup; //<cmail> |
316 TBool iPreparedForExit; //<cmail> |
317 TBool iPreparedForExit; //<cmail> |
317 |
318 |
|
319 CAknStylusPopUpMenu* iStylusPopUpMenu; |
|
320 TBool iStylusPopUpMenuVisible; |
|
321 |
|
322 //prevents improper executing of Call application - when call to contact |
|
323 TBool iConsumeStdKeyYes_KeyUp; |
|
324 // decreases search priority to enable search for contact when call to contact |
|
325 TInt iRequiredSearchPriority; |
318 }; |
326 }; |
319 |
327 |
320 #endif |
328 #endif |