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