|
1 /* |
|
2 * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Unified SMS and MMS Editor Application UI class definition. |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 #ifndef _UNIEDITORAPPUI_H |
|
21 #define _UNIEDITORAPPUI_H |
|
22 |
|
23 // INCLUDES |
|
24 |
|
25 #include <gmxmlparser.h> // for MMDXMLParserObserver & CMDXMLParser |
|
26 |
|
27 #include <MsgEditorAppUi.h> // for CMsgEditorAppUi |
|
28 #include <MsgEditorView.h> |
|
29 #include <MsgAddressControl.h> |
|
30 #include <MsgBodyControl.h> // for CMsgBodyControl |
|
31 #include <MsgEditor.hrh> |
|
32 #include <msgimagecontrol.h> // for CMsgImageControl (needed in .inl) |
|
33 #include <msgasynccontrolobserver.h> |
|
34 |
|
35 #include <MsgRecipientItem.h> // for CMsgRecipientArray |
|
36 #include <MsgAttachmentUtils.h> |
|
37 #include <MMGFetchVerifier.h> |
|
38 #include <akntoolbarobserver.h> |
|
39 #include <AknServerApp.h> // for MAknServerAppExitObserver |
|
40 #include <AknProgressDialog.h> // for MProgressDialogCallback |
|
41 #include <peninputclient.h> |
|
42 #include <peninputsrveventhandler.h> |
|
43 #include <cenrepnotifyhandler.h> // MCenRepNotifyHandlerCallback |
|
44 |
|
45 #include <eikedwob.h> // for MEikEdwinObserver |
|
46 |
|
47 #include <aknlongtapdetector.h> // for long tap |
|
48 // Needed by inline functions |
|
49 #include "uniobjectlist.h" |
|
50 #include "unidatamodel.h" |
|
51 #include "UniSendingSettings.h" |
|
52 |
|
53 #include "UniEditorHeader.h" // THeadersFields, |
|
54 #include "UniEditorApp.hrh" // TUniEditorPanicIds |
|
55 #include "UniEditorOperation.h" // MUniEditorOperatorObserver |
|
56 |
|
57 // CONSTANTS |
|
58 |
|
59 // FUNCTION PROTOTYPES |
|
60 |
|
61 // FORWARD DECLARATIONS |
|
62 class TFilename; |
|
63 class TChar; |
|
64 class CAknTitlePane; |
|
65 class CAknNavigationDecorator; |
|
66 class CAknNavigationControlContainer; |
|
67 class CAknWaitDialog; |
|
68 class CUniEditorDocument; |
|
69 class CAknLocalScreenClearer; |
|
70 class CRepository; |
|
71 class CSelectionItemList; |
|
72 class CEikImage; // for context icon |
|
73 class CAknInfoPopupNoteController; |
|
74 class CDocumentHandler; |
|
75 class CAknIconArray; |
|
76 class CAknInputBlock; |
|
77 class CMDXMLDocument; |
|
78 class CAknToolbar; |
|
79 |
|
80 class CMsgMediaInfo; |
|
81 class CMsgImageControl; |
|
82 class TMsgControlsIds; |
|
83 |
|
84 class CUniClientMtm; |
|
85 class CUniSmilModel; |
|
86 class CUniSlideLoader; |
|
87 class CUniEditorLaunchOperation; |
|
88 class CUniEditorSaveOperation; |
|
89 class CUniEditorSendOperation; |
|
90 class CUniEditorChangeSlideOperation; |
|
91 class CUniEditorInsertOperation; |
|
92 class CUniEditorVCardOperation; |
|
93 class CUniEditorHeader; |
|
94 class CAknToolbarExtension; |
|
95 class CAknStylusPopUpMenu; |
|
96 |
|
97 // CLASS DECLARATION |
|
98 |
|
99 /** |
|
100 * CUniEditorAppUi |
|
101 * |
|
102 * @since 3.2 |
|
103 */ |
|
104 class CUniEditorAppUi : |
|
105 public CMsgEditorAppUi, |
|
106 public MMGFetchVerifier, |
|
107 public MMsgAsyncControlObserver, |
|
108 public MUniEditorOperationObserver, |
|
109 public MAknToolbarObserver, |
|
110 public MMDXMLParserObserver, |
|
111 public MAknServerAppExitObserver, |
|
112 public MEikEdwinObserver, |
|
113 public MProgressDialogCallback, |
|
114 public MPenUiActivationHandler, |
|
115 public MCenRepNotifyHandlerCallback, |
|
116 public MAknLongTapDetectorCallBack |
|
117 { |
|
118 public: // Constructors and destructor |
|
119 |
|
120 /** |
|
121 * C++ default constructor. |
|
122 */ |
|
123 CUniEditorAppUi(); |
|
124 |
|
125 /** |
|
126 * Destructor. |
|
127 */ |
|
128 virtual ~CUniEditorAppUi(); |
|
129 |
|
130 /** |
|
131 * Removes object from screen. (Objectsview callback method) |
|
132 * @param aRegion, region to remove the object from |
|
133 * @param aLayout, layout before removed from model |
|
134 */ |
|
135 void RemoveObjectL( TUniRegion aRegion, TUniLayout aLayout ); |
|
136 |
|
137 /** |
|
138 * Changes object order on screen. (Objectsview callback method) |
|
139 * @param aLayout, new layout |
|
140 */ |
|
141 void ChangeOrderL( TUniLayout aLayout ); |
|
142 |
|
143 /** |
|
144 * If there is image control, sets image release/lock |
|
145 * according to parameter. Otherwise does nothing. |
|
146 * @param aRelease, ETrue = release/unlock, EFalse = lock |
|
147 */ |
|
148 void ReleaseImage( TBool aRelease ); |
|
149 |
|
150 /** |
|
151 * Saves, if needed and exits |
|
152 */ |
|
153 void ExitAndSaveL(); |
|
154 |
|
155 /** |
|
156 * Wrapper on the FetchFileL function of Base Editor. |
|
157 * Called by "Insert" functions. |
|
158 * |
|
159 * @param aFetchType, EImage or ENewImage or |
|
160 * EAudio or ENewAudio or |
|
161 * EVideo or ENewVideo |
|
162 */ |
|
163 TBool FetchFileL( MsgAttachmentUtils::TMsgAttachmentFetchType aFetchType ); |
|
164 |
|
165 /** |
|
166 * Sets focus to first focusable control on body. |
|
167 */ |
|
168 void SetFocusToBodyBeginningL(); |
|
169 |
|
170 /** |
|
171 * Callback for CPeriodic |
|
172 */ |
|
173 static TInt DelayedExitL( TAny* aThis ); |
|
174 |
|
175 /** |
|
176 * Callback for MProgressDialogCallback |
|
177 */ |
|
178 void DialogDismissedL( TInt /*dismissed*/ ); |
|
179 |
|
180 /** |
|
181 * Exit Unieditor without save during critimal memory condition |
|
182 */ |
|
183 void ExitWithoutSave(); |
|
184 public: // Functions from base classes |
|
185 |
|
186 /** |
|
187 * From MMsgEditorObserver. Calls DoEditorObserverL() |
|
188 * |
|
189 * For passing events from Base Editor to MMS Editor |
|
190 */ |
|
191 void EditorObserver( TMsgEditorObserverFunc aFunc, |
|
192 TAny* aArg1, |
|
193 TAny* aArg2, |
|
194 TAny* aArg3 ); |
|
195 |
|
196 /** |
|
197 * Handles the editor observer event. |
|
198 */ |
|
199 void DoEditorObserverL( TMsgEditorObserverFunc aFunc, |
|
200 TAny* aArg1, |
|
201 TAny* aArg2, |
|
202 TAny* aArg3 ); |
|
203 |
|
204 /** |
|
205 * From MMGFetchVerifier |
|
206 */ |
|
207 TBool VerifySelectionL( const MDesCArray* aSelectedFiles ); |
|
208 |
|
209 /** |
|
210 * From MAknToolbarObserver |
|
211 */ |
|
212 void DynInitToolbarL( TInt aResourceId, CAknToolbar* aToolbar ); |
|
213 |
|
214 /** |
|
215 * From MAknToolbarObserver |
|
216 */ |
|
217 void OfferToolbarEventL( TInt aCommand ); |
|
218 |
|
219 /** |
|
220 * From MApaServerAppExitObserver |
|
221 */ |
|
222 void HandleServerAppExit( TInt aReason ); |
|
223 |
|
224 /** |
|
225 * From MEikEdwinObserver |
|
226 */ |
|
227 void HandleEdwinEventL( CEikEdwin* aEdwin, TEdwinEvent aEventType ); |
|
228 |
|
229 /** |
|
230 * From CMsgEditorAppUi |
|
231 */ |
|
232 void HandleEntryMovedL( TMsvId aOldParent, TMsvId aNewParent ); |
|
233 |
|
234 /* |
|
235 * From MPenUiActivationHandler |
|
236 */ |
|
237 void OnPeninputUiDeactivated(); |
|
238 |
|
239 /* |
|
240 * From MPenUiActivationHandler |
|
241 */ |
|
242 void OnPeninputUiActivated(); |
|
243 |
|
244 private: // Functions from base classes |
|
245 |
|
246 /** |
|
247 * From MMsgEditorLauncher |
|
248 */ |
|
249 void LaunchViewL(); |
|
250 |
|
251 /** |
|
252 * From CCoeAppUi |
|
253 */ |
|
254 TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); |
|
255 |
|
256 /** |
|
257 * From CEikAppUi |
|
258 */ |
|
259 void HandleCommandL( TInt aCommand ); |
|
260 |
|
261 /** |
|
262 * Performs the command. |
|
263 */ |
|
264 void DoHandleCommandL( TInt aCommand ); |
|
265 |
|
266 /** |
|
267 * Performs the command. |
|
268 */ |
|
269 void DoOfferToolbarEventL( TInt aCommand ); |
|
270 |
|
271 /** |
|
272 * From CAknAppUi. |
|
273 * |
|
274 * Handles navipane updating when launched from idle and |
|
275 * when returning from preview. |
|
276 * |
|
277 * @param aForeground, ETrue if app is foreground. |
|
278 */ |
|
279 void HandleForegroundEventL(TBool aForeground); |
|
280 |
|
281 /** |
|
282 * From MEikMenuObserver |
|
283 */ |
|
284 void DynInitMenuPaneL( TInt aMenuId, CEikMenuPane* aMenuPane ); |
|
285 |
|
286 /** |
|
287 * Helper function to be called in normal unimode and upload mode. |
|
288 * Handles the menu options based on the focused media object |
|
289 */ |
|
290 void DynInitFocusedMediaBasedOptionsL( CEikMenuPane* aMenuPane ); |
|
291 |
|
292 /** |
|
293 * From MUniEditorOperationObserver. Called when operation |
|
294 * state is changed. |
|
295 */ |
|
296 void EditorOperationEvent( TUniEditorOperationType aOperation, |
|
297 TUniEditorOperationEvent aEvent ); |
|
298 |
|
299 /** |
|
300 * Performs the real operation event handling |
|
301 */ |
|
302 void DoEditorOperationEventL( TUniEditorOperationType aOperation, |
|
303 TUniEditorOperationEvent aEvent ); |
|
304 |
|
305 /** |
|
306 * From MUniEditorOperationObserver. Query is wanted to be shown |
|
307 * to the user. |
|
308 */ |
|
309 TBool EditorOperationQuery( TUniEditorOperationType aOperation, |
|
310 TUniEditorOperationQuery aEvent ); |
|
311 |
|
312 |
|
313 /** |
|
314 * Shows the query to the user. |
|
315 */ |
|
316 TBool DoEditorOperationQueryL( TUniEditorOperationType aOperation, |
|
317 TUniEditorOperationQuery aEvent ); |
|
318 |
|
319 /** |
|
320 * Performs the change slide operation event handling. |
|
321 */ |
|
322 void DoChangeSlideCompleteL(); |
|
323 |
|
324 /** |
|
325 * Performs the insert operation event handling. |
|
326 */ |
|
327 void DoInsertCompleteL( TUniEditorOperationEvent aEvent ); |
|
328 |
|
329 /** |
|
330 * Performs the 2nd phase of insert operation event handling. |
|
331 */ |
|
332 void DoInsertComplete2ndPhaseL(); |
|
333 |
|
334 /** |
|
335 * Performs launch operation event handling. |
|
336 */ |
|
337 void DoLaunchCompleteL(); |
|
338 |
|
339 /** |
|
340 * Performs save operation event handling. |
|
341 */ |
|
342 void DoSaveCompleteL(); |
|
343 |
|
344 /** |
|
345 * Performs the 2nd phase of saving operation event handling. |
|
346 */ |
|
347 void DoSavingComplete2ndPhase(); |
|
348 |
|
349 /** |
|
350 * Performs send operation event handling. |
|
351 */ |
|
352 void DoSendCompleteL(); |
|
353 |
|
354 /** |
|
355 * Performs 2nd phase of send operation event handling. |
|
356 */ |
|
357 void DoSendComplete2ndPhase(); |
|
358 |
|
359 /** |
|
360 * Performs vCard insert operation event handling. |
|
361 */ |
|
362 void DoVCardCompleteL(); |
|
363 |
|
364 /** |
|
365 * Shows insert errors |
|
366 */ |
|
367 void ShowInsertErrorsL(); |
|
368 |
|
369 /** |
|
370 * From MMsgAsyncControlObserver. Called when asynchronous control |
|
371 * state is changed |
|
372 */ |
|
373 void MsgAsyncControlStateChanged( CMsgBaseControl& aControl, |
|
374 TMsgAsyncControlState aNewState, |
|
375 TMsgAsyncControlState aOldState ); |
|
376 |
|
377 /** |
|
378 * From MMsgAsyncControlObserver. Called when asynchronous control |
|
379 * receives resource change event. |
|
380 */ |
|
381 void MsgAsyncControlResourceChanged( CMsgBaseControl& aControl, TInt aType ); |
|
382 |
|
383 /** |
|
384 * 2nd phase constructor. |
|
385 */ |
|
386 void ConstructL(); |
|
387 // From MAknLongTapDetectorCallBack |
|
388 /** |
|
389 * @see MAknLongTapDetectorCallBack |
|
390 */ |
|
391 void HandleLongTapEventL( |
|
392 const TPoint& aPenEventLocation, |
|
393 const TPoint& aPenEventScreenLocation ); |
|
394 |
|
395 private: |
|
396 |
|
397 enum TUniEditorInsertTextType |
|
398 { |
|
399 ETemplateText, |
|
400 EMemoText |
|
401 }; |
|
402 |
|
403 enum TUniEditorInsertOtherType |
|
404 { |
|
405 ETextFile, |
|
406 EOtherFile |
|
407 }; |
|
408 |
|
409 private: // New functions |
|
410 |
|
411 /** |
|
412 * Update the msglength information in navipane. |
|
413 * Reads the current size from document. |
|
414 * |
|
415 * @param aForceDraw, forces drawing of size label. |
|
416 */ |
|
417 void MsgLengthToNavipaneL( TBool aForceDraw = EFalse ); |
|
418 |
|
419 /** |
|
420 * Calculates the SMS Messages Characters left in the current segment and Total No. of segments in the message |
|
421 * Total No. of segments in the message |
|
422 * |
|
423 * @Return value |
|
424 * charsLeft: Characters left in the current segment |
|
425 * msgsParts: Total No of segments |
|
426 */ |
|
427 void CalculateSMSMsgLen(TInt& charsLeft, TInt& msgsParts); |
|
428 |
|
429 /** |
|
430 * Check if message has any data i.e. either in header ("To"), |
|
431 * in message body or as attachments. |
|
432 * |
|
433 * @return ETrue, message empty, |
|
434 * EFalse, message not empty |
|
435 */ |
|
436 TBool IsMessageEmpty() const; |
|
437 |
|
438 /** |
|
439 * Draw the "not viewable" icons |
|
440 * (editable 3GPP SMIL or non-editable SMIL). |
|
441 * |
|
442 * @param aEditable, ETrue should be set if SMIL is Template SMIL |
|
443 */ |
|
444 void InsertPresentationL( TBool aEditable ); |
|
445 |
|
446 /** |
|
447 * Updates the address size to CUniEditorDocument |
|
448 */ |
|
449 void SetAddressSize(); |
|
450 |
|
451 /** |
|
452 * Updates the subject size to CUniEditorDocument |
|
453 */ |
|
454 void SetSubjectSize(); |
|
455 |
|
456 /** |
|
457 * Checks message content and if ok send message |
|
458 */ |
|
459 void DoUserSendL(); |
|
460 |
|
461 /** |
|
462 * Handles message saving after exit |
|
463 */ |
|
464 void DoMsgSaveExitL(); |
|
465 |
|
466 /** |
|
467 * Handles delayed (external) exit |
|
468 * @param aDelayTime in microsecods |
|
469 */ |
|
470 void DoDelayedExit( TInt aDelayTime ); |
|
471 |
|
472 /** |
|
473 * Handles message saving after user has pressed close. |
|
474 */ |
|
475 void DoBackSaveL(); |
|
476 |
|
477 /** |
|
478 * Does actual saving of message to DRAFT folder. |
|
479 * |
|
480 * @param aSaveType, Controls how the saving is done |
|
481 * e.g. keep entry hidden etc. |
|
482 */ |
|
483 void DoSaveL( TUniSaveType aSaveType ); |
|
484 |
|
485 /** |
|
486 * Verifies addresses in address control. |
|
487 * |
|
488 * @return ETrue, if verify successful, |
|
489 * EFalse otherwise |
|
490 */ |
|
491 TBool VerifyAddressesL( TBool& aModified ); |
|
492 |
|
493 /** |
|
494 * Handles user move and select page commands. |
|
495 */ |
|
496 void DoUserMoveOrSelectPageL( TBool aMovePage ); |
|
497 |
|
498 /** |
|
499 * Handles user objects view command. |
|
500 */ |
|
501 void DoUserObjectsViewL( TBool aFocusAttachments ); |
|
502 |
|
503 /** |
|
504 * Handles user add recipient command. |
|
505 */ |
|
506 void DoUserAddRecipientL(); |
|
507 |
|
508 /** |
|
509 * Handles user message info command. |
|
510 */ |
|
511 void DoUserMessageInfoL(); |
|
512 |
|
513 /** |
|
514 * Handles user sending settings command. |
|
515 */ |
|
516 void DoUserSendingOptionsL(); |
|
517 |
|
518 /** |
|
519 * Handles user insert media command. |
|
520 */ |
|
521 void DoUserInsertMediaL(); |
|
522 |
|
523 /** |
|
524 * Handles user insert image command. Creates attachment |
|
525 * and draws image to display. |
|
526 * |
|
527 * @param aFetchType, ENewImage or EImage |
|
528 */ |
|
529 void DoUserInsertImageL( MsgAttachmentUtils::TMsgAttachmentFetchType aFetchType ); |
|
530 |
|
531 /** |
|
532 * Handles user insert video command. Creates attachment |
|
533 * and draws image to display. |
|
534 * |
|
535 * @param aFetchType, ENewVideo or EVideo |
|
536 */ |
|
537 void DoUserInsertVideoL( MsgAttachmentUtils::TMsgAttachmentFetchType aFetchType ); |
|
538 |
|
539 /** |
|
540 * Handles user insert audio command. Creates atta and draws audio |
|
541 * (indicator) to display. |
|
542 * |
|
543 * @param aFetchType, ENewAudio or EAudio |
|
544 */ |
|
545 void DoUserInsertAudioL( MsgAttachmentUtils::TMsgAttachmentFetchType aFetchType ); |
|
546 |
|
547 /** |
|
548 * Starts insert operation |
|
549 * |
|
550 * @param aAddSlide Indicates whether new slide should be added. |
|
551 * @param aAddAsAttachment Indicates that file is inserted as attachment. |
|
552 */ |
|
553 void DoStartInsertL( TBool aAddSlide, TBool aAddAsAttachment ); |
|
554 |
|
555 /** |
|
556 * Creates a media info object from given file and |
|
557 * performs a preliminary check whether it is ok to |
|
558 * insert the given media file. |
|
559 * |
|
560 * The media info object is created to "iInsertingMedia" |
|
561 * member variable. |
|
562 * |
|
563 * @param aMediaType Media type to be checked |
|
564 * @param aFileName Media file to be checked |
|
565 * @return ETrue if media info object was created |
|
566 * EFalse otherwise |
|
567 */ |
|
568 TBool CreateMediaInfoForInsertL( TMsgMediaType aMediaType, |
|
569 const TDesC& aFileName ); |
|
570 |
|
571 /** |
|
572 * Checks whether the media object in "iInsertingMedia" |
|
573 * member variable is SuperDistributable or not. If yes |
|
574 * and Full OMA DRM is supported gives "Send without |
|
575 * rights query". |
|
576 * |
|
577 * Deletes the "iInsertingMedia" variable if query is |
|
578 * not accepted. |
|
579 * |
|
580 * @return ETrue, if it is ok to insert the media |
|
581 * EFalse, otherwise (iInsertingMedia deleted!) |
|
582 */ |
|
583 TBool SuperDistributionCheckForInsertL(); |
|
584 |
|
585 |
|
586 /** |
|
587 * Checks whether it is ok to insert the media object |
|
588 * in "iInsertingMedia" member variable. |
|
589 * |
|
590 * Deletes the "iInsertingMedia" variable if inserting |
|
591 * is not allowed. |
|
592 * |
|
593 * @return ETrue, if it is ok to insert the media |
|
594 * EFalse, otherwise (iInsertingMedia deleted!) |
|
595 */ |
|
596 TBool CheckMediaInfoForInsertL(); |
|
597 |
|
598 /** |
|
599 * Handles user insert slide command. |
|
600 */ |
|
601 void DoUserInsertSlideL(); |
|
602 |
|
603 /** |
|
604 * Handles user remove slide command. |
|
605 */ |
|
606 void DoUserRemoveSlideL(); |
|
607 |
|
608 /** |
|
609 * Does the actual slide removal. First removes |
|
610 * All objects from the slide, then removes the |
|
611 * actual slide and finally changes the current slide |
|
612 */ |
|
613 void DoRemoveSlideL(); |
|
614 |
|
615 /** |
|
616 * Handles user slide change command, i.e. |
|
617 * this is called when the user scrolls out of |
|
618 * the current slide. |
|
619 * |
|
620 * @param aSlideNum Number of the next slide to be drawn |
|
621 */ |
|
622 void DoUserChangeSlideL( TInt aSlideNum ); |
|
623 |
|
624 /** |
|
625 * Sets focus after slide is drawn |
|
626 */ |
|
627 void DoSetFocusL(); |
|
628 |
|
629 /** |
|
630 * Sets text to title pane |
|
631 */ |
|
632 void SetTitleL(); |
|
633 |
|
634 /** |
|
635 * Handles user remove image, audio of video media object |
|
636 * @param aMediaControlId media control id |
|
637 * @param aRegion region the control resides |
|
638 * @param aConfirmResource confirm query to be shown to user |
|
639 */ |
|
640 void DoUserRemoveMediaL( TMsgControlId aMediaControlId, |
|
641 TUniRegion aRegion ); |
|
642 |
|
643 /** |
|
644 * Handles user insert text command. |
|
645 * |
|
646 * @param aType Text type wanted to be inserted. |
|
647 */ |
|
648 void DoUserInsertTextL( TUniEditorInsertTextType aType ); |
|
649 |
|
650 /** |
|
651 * Handles user insert other file command. |
|
652 * |
|
653 * @param aType Other file type wanted to be inserted. |
|
654 */ |
|
655 void DoUserInsertOtherFileL( TUniEditorInsertOtherType aType ); |
|
656 |
|
657 /** |
|
658 * Handles user insert vCard command. |
|
659 */ |
|
660 void DoUserInsertVCardL(); |
|
661 |
|
662 // /** |
|
663 // * Handles user insert SVG command. |
|
664 // */ |
|
665 // void DoUserInsertSvgL(); |
|
666 |
|
667 /** |
|
668 * Draws navipane at launch time. |
|
669 */ |
|
670 void InitNaviPaneL(); |
|
671 |
|
672 /** |
|
673 * Updates following navi indicators to both avkon editor pane and navidecorator pane |
|
674 * - Priority low / high |
|
675 */ |
|
676 void UpdateIndicatorIconsL(); |
|
677 |
|
678 /** |
|
679 * Auxiliary function. Shows a infomation note using notewrappers. |
|
680 * |
|
681 * @param aResourceID |
|
682 * @param aWaiting, is note waiting or not. |
|
683 */ |
|
684 void ShowInformationNoteL(TInt aResourceID, TBool aWaiting ); |
|
685 |
|
686 /** |
|
687 * Auxiliary function. Shows an error note using notewrappers. |
|
688 * |
|
689 * @param aResourceID |
|
690 * @param aWaiting, is note waiting or not. |
|
691 */ |
|
692 void ShowErrorNoteL(TInt aResourceID, TBool aWaiting ); |
|
693 |
|
694 /** |
|
695 * Auxiliary function. |
|
696 * Shows a confirmation query. |
|
697 * |
|
698 * @param aResourceID |
|
699 * @return the return value returned by CAknQueryDialog::ExecuteLD |
|
700 */ |
|
701 TInt ShowConfirmationQueryL( TInt aResourceID ); |
|
702 TInt ShowConfirmationQueryL( const TDesC& aText ) const; |
|
703 TInt ShowConfirmationNoQuestionQueryL( const TDesC& aText ) const; |
|
704 TInt ShowConfirmableInfoL( TInt aResourceID ); |
|
705 TInt ShowConfirmableInfoL( const TDesC& aText ) const; |
|
706 TInt ShowConfirmableInfoErrorL( const TDesC& aText ) const; |
|
707 |
|
708 /** |
|
709 * Auxiliary function. Shows a confirmation query if it is not shown before. |
|
710 * |
|
711 * @param aResourceID |
|
712 * @return the return value returned by CAknQueryDialog::ExecuteLD |
|
713 */ |
|
714 TInt ShowGuidedModeConfirmationQueryL( TInt aResourceID ); |
|
715 |
|
716 /** |
|
717 * Shows wait note using CAknWaitDialog. |
|
718 * |
|
719 * @param aResourceID |
|
720 */ |
|
721 TBool ShowWaitNoteL( TInt aResourceId ); |
|
722 |
|
723 /** |
|
724 * Remove wait note from screen. |
|
725 */ |
|
726 void RemoveWaitNote(); |
|
727 |
|
728 /** |
|
729 * Handles text addition to model when needed, updates size |
|
730 * when addreses or bodytext edited. |
|
731 */ |
|
732 void HandleCharInputL(); |
|
733 |
|
734 /** |
|
735 * Checks whether text object should be added to smilmodel when |
|
736 * after characters are added/removed |
|
737 */ |
|
738 void UpdateSmilTextAttaL(); |
|
739 |
|
740 /** |
|
741 * Message size according to TS 23.140 v5.5.0 |
|
742 * |
|
743 * @return size in bytes |
|
744 */ |
|
745 TInt MessageSizeInBytes(); |
|
746 |
|
747 /** |
|
748 * Handles selection key press. |
|
749 */ |
|
750 void DoSelectionKeyL(); |
|
751 |
|
752 /** |
|
753 * Performs launch finalization. |
|
754 */ |
|
755 void FinalizeLaunchL(); |
|
756 |
|
757 /** |
|
758 * Shows possible notes related to editor launching. |
|
759 * These notes include both error notes and notes related to content & MMS creation mode. |
|
760 * |
|
761 * @aParam aShutDown Returns ETrue if launching can proceed |
|
762 * EFalse if launching should be aborted immediatelly. |
|
763 */ |
|
764 void ShowLaunchNotesL( TBool& aShutDown ); |
|
765 |
|
766 /** |
|
767 * Sets an error resource id to be handled later |
|
768 * (usually after LaunchViewL). |
|
769 * |
|
770 * @param aStoreId IN/OUT The correct id is stored here |
|
771 * @param aNewId IN Error id |
|
772 */ |
|
773 void SetErrorResource( TInt& aStoreId, TInt aNewId ); |
|
774 |
|
775 /** |
|
776 * Determines error "priority" |
|
777 */ |
|
778 TInt ErrorPriority( TInt aErrorId ); |
|
779 |
|
780 /** |
|
781 * Checks if phone is in offline mode or not |
|
782 * |
|
783 * @return ETrue if phone is in offline mode |
|
784 * Otherwise EFalse. |
|
785 */ |
|
786 TBool IsPhoneOfflineL() const; |
|
787 |
|
788 /** |
|
789 * Checks whether there's enough disk space |
|
790 * to save the message. |
|
791 * |
|
792 * @return ETrue if there is enough disk space. |
|
793 * Otherwise EFalse. |
|
794 */ |
|
795 TBool CanSaveMessageL() const; |
|
796 |
|
797 /** |
|
798 * Launches help application |
|
799 */ |
|
800 void LaunchHelpL(); |
|
801 |
|
802 /** |
|
803 * Gets help context |
|
804 */ |
|
805 CArrayFix<TCoeHelpContext>* HelpContextL() const; |
|
806 |
|
807 /** |
|
808 * User selects a new template and launches smil editor |
|
809 */ |
|
810 void NewTemplateL(); |
|
811 |
|
812 /** |
|
813 * Opens smil editor for template message opened from drafts folder |
|
814 */ |
|
815 void OpenTemplateL(); |
|
816 |
|
817 /** |
|
818 * Called when user wants to play created presentation |
|
819 * Starts creating SMIL DOM |
|
820 */ |
|
821 void PlayPresentationL(); |
|
822 |
|
823 /** |
|
824 * When the SMIL DOM creation is ready, this function is called by the callback funtion |
|
825 * to start the SMILPlayer dialog. |
|
826 */ |
|
827 void DoCompletePlayPresentationL(); |
|
828 |
|
829 /** |
|
830 * Removes template from message. |
|
831 */ |
|
832 void RemoveTemplateL(); |
|
833 |
|
834 /** |
|
835 * Handles user change order command. |
|
836 */ |
|
837 void DoUserChangeOrderL( TUniLayout aLayout ); |
|
838 |
|
839 /** |
|
840 * Begins active scheduler loop |
|
841 */ |
|
842 void BeginActiveWait( CUniEditorOperation* aOperation ); |
|
843 |
|
844 /** |
|
845 * Stops active scheduler loop |
|
846 */ |
|
847 void EndActiveWait(); |
|
848 |
|
849 /** |
|
850 * Returns available objects as a bit mask |
|
851 */ |
|
852 TUint32 ObjectsAvailable(); |
|
853 |
|
854 /** |
|
855 * Handles resource change events. |
|
856 */ |
|
857 void HandleResourceChangeL(TInt aType); |
|
858 |
|
859 /** |
|
860 * ParseFileCompleteL |
|
861 * Call back function used to inform client of Parser when SMIL dom is ready for preview |
|
862 */ |
|
863 void ParseFileCompleteL(); |
|
864 |
|
865 /** |
|
866 * Accessor |
|
867 * Get pointer to image control |
|
868 * |
|
869 * @return Pointer to image control or |
|
870 * NULL if image control does not exist |
|
871 */ |
|
872 inline CMsgImageControl* ImageCtrl() const; |
|
873 |
|
874 /** |
|
875 * Accessor |
|
876 * To check whether To field is ON CURRENT SLIDE. |
|
877 * Address handling should take place through CUniEditorHeader |
|
878 * |
|
879 * @return Pointer to image control or |
|
880 * NULL if image control does not exist |
|
881 */ |
|
882 inline CMsgAddressControl* ToCtrl() const; |
|
883 |
|
884 /** |
|
885 * Accessor |
|
886 * To check whether Subject field is on ON CURRENT SLIDE |
|
887 * Subject handling should take place through CUniEditorHeader |
|
888 * |
|
889 * @return Pointer to image control or |
|
890 * NULL if image control does not exist |
|
891 */ |
|
892 inline CMsgExpandableControl* SubjectCtrl() const; |
|
893 |
|
894 /** |
|
895 * Accessor |
|
896 * Get pointer to body control |
|
897 * |
|
898 * @return Pointer to body control or |
|
899 * NULL if body control does not exist |
|
900 */ |
|
901 inline CMsgBodyControl* BodyCtrl() const; |
|
902 |
|
903 /** |
|
904 * Accessor |
|
905 * Get pointer to address control rich text editor |
|
906 * |
|
907 * @return Pointer to address control editor or |
|
908 * NULL if address control does not exist |
|
909 */ |
|
910 inline CEikRichTextEditor* RecipientCtrlEditor(CUniBaseHeader::THeaderFields aField) const; |
|
911 |
|
912 /** |
|
913 * Accessor |
|
914 * Get pointer to subject control rich text editor |
|
915 * |
|
916 * @return Pointer to subject control editor or |
|
917 * NULL if subject control does not exist |
|
918 */ |
|
919 inline CEikRichTextEditor* SubjectCtrlEditor() const; |
|
920 |
|
921 /** |
|
922 * Accessor |
|
923 * Get pointer to body control rich text editor |
|
924 * |
|
925 * @return Pointer to body control editor or |
|
926 * NULL if body control does not exist |
|
927 */ |
|
928 inline CEikRichTextEditor* BodyCtrlEditor() const; |
|
929 |
|
930 /** |
|
931 * Accessor |
|
932 * Get pointer to document instance |
|
933 * |
|
934 * @return Pointer to UniEditorDocument |
|
935 */ |
|
936 inline CUniEditorDocument* Document() const; |
|
937 |
|
938 /** |
|
939 * Check if message header is empty |
|
940 * |
|
941 * @return ETrue, to field is empty, |
|
942 * EFalse, to field has text |
|
943 */ |
|
944 inline TBool IsHeaderEmpty() const; |
|
945 |
|
946 /** |
|
947 * Check if message body is empty |
|
948 * |
|
949 * @return ETrue, message body empty, |
|
950 * EFalse, message body not empty |
|
951 */ |
|
952 inline TBool IsBodyEmpty() const; |
|
953 |
|
954 /** |
|
955 * Accessor |
|
956 * Get reference to file session |
|
957 * |
|
958 * @return Reference to file session |
|
959 */ |
|
960 inline RFs& FsSession() const; |
|
961 |
|
962 /** |
|
963 * Implements AddHeaders command |
|
964 */ |
|
965 void DoUserAddHeadersL(); |
|
966 |
|
967 /** |
|
968 * Collects statistics about additional headers after user |
|
969 * has closed the multiselection list. |
|
970 * @param aIndexesOut list of (un)selected items. Values are TBool |
|
971 * @param aVariation flags of variation |
|
972 * @param aNewSelectionFlags OUT contains headers, which user selected |
|
973 * @param aRemoveFlags OUT contains headers to be removed from UI |
|
974 * @param aRemovewarningFlags OUT contains headers to be removed from UI, |
|
975 * which contains data |
|
976 * @param aAddFlags OUT contains headers to be added to the UI |
|
977 * |
|
978 * Every flag is a combination of EMmsFeatureSubject, EMmsFeatureCc |
|
979 * and EMmsFeatureBcc of enum TMmsFeatures |
|
980 */ |
|
981 void AddHeadersCollectStatisticsL( CArrayFix<TInt>& aIndexesOut, |
|
982 TInt aVariation, |
|
983 TInt& aNewSelectionFlags, |
|
984 TInt& aRemoveFlags, |
|
985 TInt& aRemoveWarningFlags, |
|
986 TInt& aAddFlags) const; |
|
987 |
|
988 |
|
989 /** |
|
990 * Returns count of headers, which have flag set |
|
991 * @param aFlags combination of flags of EMmsFeatureSubject, EMmsFeatureCc |
|
992 * and EMmsFeatureBcc of enum TMmsFeatures |
|
993 * @return count of headers |
|
994 */ |
|
995 TInt AddHeadersCount( TInt aFlags ) const; |
|
996 |
|
997 /** |
|
998 * Set scroll positions of editor controls to the end of |
|
999 * of the text (address controls and body text if before image) |
|
1000 * or beginning of body text, if body text is after media object. |
|
1001 * This function is usually called after inserting media has been successful. |
|
1002 */ |
|
1003 void SetCursorPositionsForInsertL(); |
|
1004 |
|
1005 /** |
|
1006 * Add icon of priority to navi pane |
|
1007 */ |
|
1008 void PriorityToNaviPane(); |
|
1009 |
|
1010 /** |
|
1011 * Removes text from the current page |
|
1012 */ |
|
1013 void RemoveCurrentTextObjectL(); |
|
1014 |
|
1015 /** |
|
1016 * Checks body message type. |
|
1017 */ |
|
1018 void CheckBodyForMessageTypeL(); |
|
1019 |
|
1020 /** |
|
1021 * Checks header message type. |
|
1022 */ |
|
1023 void CheckHeaderForMessageTypeL(); |
|
1024 |
|
1025 /** |
|
1026 * Checks if the body content is SMS conformant |
|
1027 */ |
|
1028 TBool IsBodySmsCompatibleL( TBool aInAutoMode = ETrue ); |
|
1029 |
|
1030 /** |
|
1031 * Set iSmsSize and EUnicodeMode |
|
1032 */ |
|
1033 void CheckSmsSizeAndUnicodeL(); |
|
1034 |
|
1035 /** |
|
1036 * Checks if there are too many recipients and shows a note |
|
1037 * @return ETrue - if recipients OK otherwise EFalse |
|
1038 */ |
|
1039 TBool CheckMaxRecipientsAndShowNoteL( TBool aSendCheck = EFalse ); |
|
1040 |
|
1041 /** |
|
1042 * Returns SMS plugin |
|
1043 */ |
|
1044 inline CUniEditorPlugin* SmsPlugin(); |
|
1045 |
|
1046 /** |
|
1047 * Returns MMS plugin |
|
1048 */ |
|
1049 inline CUniEditorPlugin* MmsPlugin(); |
|
1050 |
|
1051 /** |
|
1052 * Returns whether editor is fully launched or not. |
|
1053 */ |
|
1054 inline TBool IsLaunched() const; |
|
1055 |
|
1056 /** |
|
1057 * Creates a string from integer |
|
1058 * If size is less than 10 kilobytes -> string with one decimal |
|
1059 * If size is 0 or 10k or more -> integer string |
|
1060 * |
|
1061 * @since 3.1 |
|
1062 * @param aSizeInBytes IN size to be converted to string |
|
1063 * in bytes |
|
1064 * @param aSize IN/OUT the size string |
|
1065 * @param aInteger OUT the integer part of the string |
|
1066 * @param aFragment OUT the decimal part of the string |
|
1067 */ |
|
1068 void CreateMmsNaviSizeStringL( const TInt aSizeInBytes, |
|
1069 TDes& aSize, |
|
1070 TInt& aInteger, |
|
1071 TInt& aFragment ); |
|
1072 |
|
1073 /** |
|
1074 * Handles insert other file command from toolbar. |
|
1075 */ |
|
1076 void DoToolbarInsertOtherL(); |
|
1077 |
|
1078 /** |
|
1079 * Shows list query |
|
1080 */ |
|
1081 TBool ShowListQueryL( TInt aResourceID, TInt& aSelectedIndex ) const; |
|
1082 |
|
1083 /** |
|
1084 * Hides popup note |
|
1085 */ |
|
1086 void HidePopupNote(); |
|
1087 |
|
1088 /** |
|
1089 * Shows popup note |
|
1090 */ |
|
1091 void ShowPopupNoteL( TBool aMms ); |
|
1092 |
|
1093 /** |
|
1094 * Plays focused item |
|
1095 */ |
|
1096 void PlayFocusedItemL(); |
|
1097 |
|
1098 /** |
|
1099 * Checks the size of the sms body and shows notes |
|
1100 * If aSendCheck is ETrue, checks only if the body exceeds the max size |
|
1101 */ |
|
1102 void CheckMaxSmsSizeAndShowNoteL( TBool aSendCheck = EFalse ); |
|
1103 |
|
1104 /** |
|
1105 * Sets or removes edwin control's maximum size |
|
1106 */ |
|
1107 void SetOrRemoveMaxSizeInEdwin(); |
|
1108 |
|
1109 /** |
|
1110 * Checks the focused item and updates the middle softkey accordingly |
|
1111 */ |
|
1112 void UpdateMiddleSoftkeyL(); |
|
1113 |
|
1114 /** |
|
1115 * Sets input mode to address fields |
|
1116 */ |
|
1117 void SetInputModeToAddressFields( TInt aInputMode ); |
|
1118 |
|
1119 /** |
|
1120 * Handles user priority change command. |
|
1121 */ |
|
1122 void DoEditMmsPriorityL(); |
|
1123 |
|
1124 /** |
|
1125 * Creates radio button array |
|
1126 */ |
|
1127 CAknIconArray* RadioButtonArrayL(); |
|
1128 |
|
1129 /** |
|
1130 * Confirms SMS message sending in multiple parts |
|
1131 */ |
|
1132 TBool ConfirmSmsSendInMultiplePartsL(); |
|
1133 |
|
1134 /** |
|
1135 * Sets title icons sizes. |
|
1136 */ |
|
1137 void SetTitleIconsSizeL(); |
|
1138 |
|
1139 /** |
|
1140 * Tells if email addresses are accepted by the message |
|
1141 * For example locked sms + EmailOverSms or not-locked sms |
|
1142 */ |
|
1143 TBool AcceptEmailAddresses(); |
|
1144 |
|
1145 /** |
|
1146 * Tells if the message is locked in sms mode |
|
1147 * (either by restricted reply or temporarily in sending options) |
|
1148 */ |
|
1149 TBool IsHardcodedSms(); |
|
1150 |
|
1151 /** |
|
1152 * Resolves control id of the focused control after the launch. |
|
1153 */ |
|
1154 TMsgControlId ResolveLaunchFocusedControlL(); |
|
1155 |
|
1156 /** |
|
1157 * Sets correct message type locking to MTM |
|
1158 */ |
|
1159 void SetMessageTypeLockingL(); |
|
1160 |
|
1161 /** |
|
1162 * Activates input blocker properly. |
|
1163 * |
|
1164 * @param aActiveObjectToCancel Pointer to an active object that is called when |
|
1165 * input blocker is cancelled. Can be NULL. |
|
1166 */ |
|
1167 void ActivateInputBlockerL( CActive* aActiveObjectToCancel ); |
|
1168 |
|
1169 /** |
|
1170 * Deactivates input blocker properly. |
|
1171 */ |
|
1172 void DeactivateInputBlocker(); |
|
1173 |
|
1174 /** |
|
1175 * Updates toolbar items status to correct one. |
|
1176 */ |
|
1177 void UpdateToolbarL(); |
|
1178 |
|
1179 /** |
|
1180 * Check whether message is locked to SMS mode and if |
|
1181 * it includes an attachment (i.e. vCard or vCal). Performs |
|
1182 * actions related to changes from in and out of this state. |
|
1183 */ |
|
1184 void CheckLockedSmsWithAttaL(); |
|
1185 |
|
1186 /** |
|
1187 * Sets fixed toolbar dimmed. |
|
1188 */ |
|
1189 void SetFixedToolbarDimmed(); |
|
1190 |
|
1191 /** |
|
1192 * Cleanup item for setting toolbar enabled. |
|
1193 */ |
|
1194 static void EnableFixedToolbar( TAny* aAny ); |
|
1195 |
|
1196 /** |
|
1197 * Cleanup item for Updating fixed toolbar Dimmed. |
|
1198 */ |
|
1199 static void UpdateFixedToolbar( TAny* aAny ); |
|
1200 /** |
|
1201 * Cleanup item for.Disabling SendKey |
|
1202 */ |
|
1203 static void DisableSendKey( TAny* aAny ); |
|
1204 |
|
1205 |
|
1206 |
|
1207 /** |
|
1208 * Creates fixed toolbar. |
|
1209 * |
|
1210 * @param aDimmed ETrue if all toolbar items are wanted to be set dimmed. |
|
1211 * EFalse otherwise. |
|
1212 */ |
|
1213 void CreateFixedToolbarL( TBool aSetDimmed ); |
|
1214 |
|
1215 /** |
|
1216 * Sets extension button to dimmed/undimmed. |
|
1217 * |
|
1218 * @param aExtension Toolbar extension |
|
1219 * @param aButtonId Toolbar button id |
|
1220 * @param aDimmed ETrue/EFalse Dimmed/Undimmed. |
|
1221 */ |
|
1222 void SetExtensionButtonDimmed( CAknToolbarExtension* aExtension, TInt aButtonId, TBool aDimmed ); |
|
1223 |
|
1224 /** |
|
1225 * Enables toolbar. |
|
1226 */ |
|
1227 void DoEnableFixedToolbar(); |
|
1228 /** |
|
1229 * Update toolbar. |
|
1230 */ |
|
1231 void DoUpdateFixedToolbar(); |
|
1232 |
|
1233 /** |
|
1234 * Handles enter key processing. |
|
1235 */ |
|
1236 TBool DoEnterKeyL(); |
|
1237 |
|
1238 /** |
|
1239 * Verifys and if valid to show SMS Size, then sends it to the PenInput server |
|
1240 */ |
|
1241 void SmsMsgLenToPenInputL(); |
|
1242 |
|
1243 /** |
|
1244 * Verifys whether Updated Message Length is required to send to Pen Input or not |
|
1245 */ |
|
1246 TBool UpdateMsgLenToPenInput(); |
|
1247 |
|
1248 /** |
|
1249 * Notification from central repository |
|
1250 */ |
|
1251 void HandleNotifyInt( TUint32 aId, TInt aNewValue ); |
|
1252 |
|
1253 /** |
|
1254 * Shows the Popup note in ITUT, when message size exceeds or deceeds |
|
1255 * a certain limit or it changes from sms to mms and vice versa |
|
1256 */ |
|
1257 void ShowDiscreetPopUpL(const TDesC& aMessage); |
|
1258 |
|
1259 /** |
|
1260 * Is Inserted objects path are valid. |
|
1261 * All the media objects are availble in their respective paths. |
|
1262 * |
|
1263 * @return ETrue, if all the media objects are available |
|
1264 * otherwise EFalse. |
|
1265 */ |
|
1266 TBool IsObjectsPathValidL() const; |
|
1267 |
|
1268 private: // Enumerations |
|
1269 |
|
1270 enum TUniEditorFlags |
|
1271 { |
|
1272 EUseEstimatedSmilSize = 0x0001, |
|
1273 ELaunchSuccessful = 0x0002, |
|
1274 EShowGuidedConf = 0x0004, |
|
1275 EEditorExiting = 0x0008, |
|
1276 ERunAppShutterAtExit = 0x0010, |
|
1277 EEditorClosing = 0x0020, |
|
1278 EInsertAddsSlide = 0x0040, |
|
1279 EMaxRecipientShown = 0x0080, // max recipient note already shown |
|
1280 EShowInfoPopups = 0x0100, // show "message type changed" notes |
|
1281 EMaxSmsSizeNoteShown = 0x0200, // max size of sms note is shown |
|
1282 ESubjectOkInSms = 0x0400, // if defined subject is ok to show also in sms auto mode |
|
1283 EHideSizeCounter = 0x0800, // hide size counters in navipane |
|
1284 ESmsCounterShownLast = 0x1000, // last time a counter was updated it was sms counter |
|
1285 EShowSmsSentInManyParts = 0x2000, // ask the query "message will be sent in x parts" |
|
1286 EDoNotUpdateTitlePane = 0x4000, // set while Objects view is open so the title pane remains ok if layout is changed |
|
1287 EShowSmsSizeNoteNextTime = 0x8000, // when max sms size reached -> show this note after next letter |
|
1288 EToolbarHidden = 0x10000, |
|
1289 ELockedSmsWithAtta = 0x20000, |
|
1290 EMsgEditInProgress = 0x40000, |
|
1291 ESmsSizeWarningNoteShown = 0x80000, // Korean req: 415-5434 |
|
1292 EHideMessageTypeOption = 0x100000 |
|
1293 }; |
|
1294 |
|
1295 private: // Data |
|
1296 |
|
1297 TInt iDisplaySize; // Current msg size in navipane. Kb/Mb |
|
1298 |
|
1299 CAknLocalScreenClearer* iScreenClearer; |
|
1300 CPeriodic* iIdle; |
|
1301 |
|
1302 CUniSmilModel* iSmilModel; // Fetch pointer from document at launch |
|
1303 CUniClientMtm* iMtm; // Fetch pointer from document at launch |
|
1304 |
|
1305 CMDXMLParser* iParser; // SMIL Parser fore presentation preview |
|
1306 CMDXMLDocument* iDom; // Dom created by parser for smil player |
|
1307 |
|
1308 CAknInputBlock* iInputBlocker; // AknInputBlocker |
|
1309 |
|
1310 CAknWaitDialog* iWaitDialog; |
|
1311 TInt iWaitResId; |
|
1312 |
|
1313 TInt iOriginalSlide; |
|
1314 TInt iNextSlide; |
|
1315 TMsgControlId iNextFocus; |
|
1316 CAknTitlePane* iTitlePane; |
|
1317 HBufC* iTitleSms; |
|
1318 HBufC* iTitleMms; |
|
1319 TInt iSmsBodyLength; |
|
1320 TInt iSmsSubjectLength; |
|
1321 TInt iPrevSmsLength; |
|
1322 |
|
1323 HBufC* iSmsLengthFormatBuffer; |
|
1324 HBufC* iMmsLengthFormatBuffer; |
|
1325 |
|
1326 CGulIcon* iIconSms; |
|
1327 CGulIcon* iIconMms; |
|
1328 |
|
1329 CAknInfoPopupNoteController* iPopupNote; |
|
1330 HBufC* iPopupChangedMmsBuffer; |
|
1331 HBufC* iPopupChangedSmsBuffer; |
|
1332 |
|
1333 CRepository* iMuiuSettRepository; |
|
1334 |
|
1335 TUint32 iEditorFlags; |
|
1336 TInt iSupportedFeatures; |
|
1337 |
|
1338 CUniSlideLoader* iSlideLoader; |
|
1339 |
|
1340 CUniEditorHeader* iHeader; |
|
1341 CUniEditorChangeSlideOperation* iChangeSlideOperation; |
|
1342 CUniEditorInsertOperation* iInsertOperation; |
|
1343 CUniEditorLaunchOperation* iLaunchOperation; |
|
1344 CUniEditorSaveOperation* iSaveOperation; |
|
1345 CUniEditorSendOperation* iSendOperation; |
|
1346 CUniEditorOperation* iActiveOperation; |
|
1347 CUniEditorVCardOperation* iVCardOperation; |
|
1348 |
|
1349 CMsgMediaInfo* iInsertingMedia; |
|
1350 TMsgMediaType iInsertingType; |
|
1351 |
|
1352 CActiveSchedulerWait iWait; |
|
1353 |
|
1354 CAknNavigationControlContainer* iNaviPane; |
|
1355 |
|
1356 CDocumentHandler* iDocHandler; |
|
1357 TInt iMskResId; |
|
1358 |
|
1359 // Used to connect pointer down and up events to correct control. Not owned. |
|
1360 CMsgBaseControl* iFocusedControl; |
|
1361 CMsgBaseControl* iStoredBodyControl; |
|
1362 |
|
1363 CAknToolbar* iFixedToolbar; |
|
1364 |
|
1365 RPeninputServer iPeninputServer; |
|
1366 CCenRepNotifyHandler* iNotifyHandler; |
|
1367 CRepository* iInputTxtLangRepository; |
|
1368 TBool iMsgLenToVKB; |
|
1369 |
|
1370 //Turkish SMS-PREQ2265 specific... |
|
1371 TInt iNumOfPDUs; |
|
1372 TInt iCharsLeft; |
|
1373 TBool iNLTFeatureSupport; |
|
1374 HBufC* iPrevBuffer; |
|
1375 TBool iSettingsChanged; |
|
1376 |
|
1377 //Korean Req: 415-5434 |
|
1378 HBufC* iPopupSmsSizeAboveLimitBuffer; |
|
1379 HBufC* iPopupSmsSizeBelowLimitBuffer; |
|
1380 TBool iFinalizeLaunchL; |
|
1381 // Own: For long tap detecting |
|
1382 CAknLongTapDetector* iLongTapDetector; |
|
1383 |
|
1384 // For long tap handling |
|
1385 TBool iTapConsumed; |
|
1386 /** |
|
1387 * Contact image selection stylus popup menu |
|
1388 * Own. |
|
1389 */ |
|
1390 CAknStylusPopUpMenu* iEmbeddedObjectStylusPopup; |
|
1391 // sendui+jepg optimization changes |
|
1392 TBool iOptimizedFlow; |
|
1393 TBool iSingleJpegImageProcessing; |
|
1394 }; |
|
1395 |
|
1396 #include "UniEditorAppUi.inl" |
|
1397 |
|
1398 #endif // _UniEditorAPPUI_H |
|
1399 |
|
1400 // End of File |
|
1401 |