00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #if !defined(__AKNMESSAGEQUERYDIALOG_H__)
00023 #define __AKNMESSAGEQUERYDIALOG_H__
00024
00025 #include <aknquerydialog.h>
00026 class CEikImage;
00027 class CAknMessageQueryDialogExtension;
00028
00029 _LIT( KOpeningLinkTag, "<AknMessageQuery Link>" );
00030 _LIT( KClosingLinkTag, "</AknMessageQuery Link>" );
00031 _LIT( KOpeningBoldTag, "<AknMessageQuery Bold>" );
00032 _LIT( KClosingBoldTag, "</AknMessageQuery Bold>" );
00033
00034
00045 class CAknMessageQueryDialog : public CAknQueryDialog
00046 {
00047
00048 public:
00049
00056 IMPORT_C static CAknMessageQueryDialog* NewL(TDesC& aMessage,
00057 const TTone& aTone = ENoTone);
00058
00062 IMPORT_C ~CAknMessageQueryDialog();
00063
00069 IMPORT_C CAknMessageQueryDialog(const TTone aTone);
00070
00071 public:
00072
00081 IMPORT_C void SetMessageTextL(const TDesC& aMessage);
00082
00089 IMPORT_C void SetHeaderTextL(const TDesC& aHeader);
00090
00108 IMPORT_C void SetLinkTextL(const TDesC& aLinkText);
00109
00118 IMPORT_C void SetLink(TCallBack& aCallBack);
00119
00120 public:
00121
00140 IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,
00141 TEventCode);
00142
00150 IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00151
00152 protected:
00153
00164 IMPORT_C virtual void PreLayoutDynInitL();
00165
00175 IMPORT_C virtual void SetSizeAndPosition(const TSize& aSize);
00176
00182 IMPORT_C virtual void PostLayoutDynInitL();
00183
00184 private:
00185
00191 void CreateExtensionL();
00192
00200 void RegisterPointerEventObserver( TBool aRegister );
00201
00206 TInt CountLinks() const;
00207 TBool SetNextLinkTextLocationL(const TDesC* aLinkText);
00208
00209 void ParseMessageTxtL();
00210 TBool GetNextTagL(TMsgQueryTag& aTag);
00211 void SetMsgFormattingL(TMsgQueryTag aTag);
00212 TBool TaggedMessageL();
00213 TInt LinksInArray();
00214 TInt LastLinkInArray();
00215
00221 TBool ExecuteLink();
00222
00223 private:
00227 IMPORT_C void* ExtensionInterface( TUid aInterface );
00228 private:
00229 IMPORT_C virtual void CEikDialog_Reserved_1();
00230 IMPORT_C virtual void CEikDialog_Reserved_2();
00231 private:
00232 IMPORT_C virtual void CAknDialog_Reserved();
00233 private:
00234 IMPORT_C virtual void CAknQueryDialog_Reserved();
00235 private:
00236 TDesC* iMessage;
00237 TDesC* iHeader;
00238 CEikImage* iHeaderImage;
00239
00240
00241 CAknMessageQueryDialogExtension * iMsgQueryExtension;
00242
00243
00244 public:
00245
00256 IMPORT_C virtual void ProcessCommandL( TInt aCommandId );
00257
00265 void CheckLinkTappedL( TAny* aParams );
00266
00267
00268 public:
00269
00277 IMPORT_C CAknMessageQueryDialog(TDesC* aMessage, TDesC* aHeader);
00278
00287 IMPORT_C CAknMessageQueryDialog(TDesC* aMessage,
00288 TDesC* aHeader,
00289 CEikImage *aHeaderImage);
00290
00299 IMPORT_C CAknMessageQueryDialog(TDesC* aMessage,
00300 TDesC* aHeader,
00301 const TTone aTone);
00302
00312 IMPORT_C CAknMessageQueryDialog(TDesC* aMessage,
00313 TDesC* aHeader,
00314 CEikImage *aHeaderImage,
00315 const TTone aTone);
00316
00323 IMPORT_C void SetMessageText(TDesC* aMessage);
00324
00331 IMPORT_C void SetMessageText(const TDesC& aMessage);
00332
00339 IMPORT_C void SetHeaderText(TDesC* aHeader);
00340
00347 IMPORT_C void SetHeaderText(const TDesC& aHeader);
00348
00353 void UpdateSoftkeyLabels();
00354
00360 IMPORT_C CAknMessageQueryDialog();
00361
00362 };
00363
00364
00365 #endif // __AKNMESSAGEQUERYDIALOG_H__
00366
00367