classicui_plat/extended_notifiers_api/inc/AknDialogController.h
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_plat/extended_notifiers_api/inc/AknDialogController.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,150 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Notification dialog controller.
+*
+*/
+
+
+#ifndef __AKNDIALOGCONTROLLER_H__
+#define __AKNDIALOGCONTROLLER_H__
+
+#include <e32std.h>
+#include <e32base.h>
+#include <aknnotedialog.h>
+
+class CAknGlobalNoteSubject;
+
+class MAknGlobalNoteController
+    {
+public:
+    virtual TInt AddSoftNotificationL(
+        const TDesC& aText, 
+        TInt aResource, 
+        TInt aCount, 
+        TInt aPriority, 
+        TInt aSoftkeys, 
+        TInt aTone = 0) = 0;
+        
+    virtual TInt AddNoteToQueueL(
+        TInt aResourceId, 
+        const TDesC& aText, 
+        TInt aPriority, 
+        CAknNoteDialog::TTimeout aTimeout, 
+        CAknNoteDialog::TTone aDefaultTone, 
+        TInt aUserTone, 
+        TInt aGraphic, 
+        TInt aGraphicMask, 
+        TInt aAnimation, 
+        TInt aSoftkeys = 0) = 0;
+        
+    virtual void TryDisplayNextNoteL(
+        TBool aShowAsynch = EFalse) = 0;
+        
+    virtual void CancelNote(
+        TInt aNoteId,
+        TBool aShowNext = ETrue) = 0;
+        
+    virtual TInt DisplayAlarmL(
+        TInt aType,
+        const TDesC& aDescription,
+        const TDesC& aTime) = 0;
+        
+    virtual void AddAlarmAdditionalInfo(  
+        TInt aType,
+        const TDesC& aTime,
+        const TDesC& aDate,
+        const TDesC& aSubject,
+        const TDesC& aLocation) = 0;
+    };
+
+class MSoftNotificationObserver
+    {
+public:
+    virtual void SoftNoteCompleted(TInt aId, TInt aCommand) = 0;
+    virtual TBool ShowSoftNoteL(TInt aPriority, const TDesC& aText) = 0;
+    virtual TBool CancelSoftNote(TInt aPriority) = 0;
+    };
+
+class MNotifierDialogObserver
+    {
+public:
+    virtual void NoteCompleted(TInt aNoteId, TInt aCommand) = 0;
+    virtual TBool DisplayDialogL(TInt aPriority) = 0;
+    virtual TBool CancelDialog(TInt aPriority) = 0;
+    };
+
+// For use by notifiers outside of Aknnotifyplugin2.DLL
+NONSHARABLE_CLASS(CNotifierDialogController) : public CBase, public MSoftNotificationObserver
+    {
+public:
+    CNotifierDialogController(MAknGlobalNoteController* aGlobalNoteNotifier); // not exported
+    IMPORT_C void SetNoteObserver(MNotifierDialogObserver* aObserver);
+    IMPORT_C TInt LaunchNoteL(TInt aNoteResource, TInt aSoftkeys, TInt aPriority);
+    
+    IMPORT_C TInt LaunchNoteL(
+        TInt aResourceId, 
+        TInt aSoftkeys, 
+        TInt aPriority, 
+        CAknNoteDialog::TTimeout aTimeout, 
+        CAknNoteDialog::TTone aTone);
+    
+    IMPORT_C void CancelNote(TInt aNoteId);
+    IMPORT_C TInt DisplayNonNoteDialogL(TInt aPriority);
+    IMPORT_C TInt DisplayAlarmL(TInt aType, const TDesC& aDescription, const TDesC& aTime);
+    
+    IMPORT_C void AddAlarmAdditionalInfo( 
+        TInt aType, // same as CAgnEntry::TType, use -1 for clock alarm
+        const TDesC& aTime,
+        const TDesC& aDate,
+        const TDesC& aSubject,
+        const TDesC& aLocation);
+
+private: // for now, will be public when system fully implemented
+    // @Since 2.8 
+    // Modules using this class should create own instance instead using Instance on EiksrvAppUI
+    IMPORT_C static CNotifierDialogController* NewL(MAknGlobalNoteController* aGlobalNoteNotifier);
+
+private:
+    // From MSoftNotificationObserver
+    virtual void SoftNoteCompleted(TInt aId, TInt aCommand);
+    virtual TBool ShowSoftNoteL(TInt aPriority, const TDesC& aText);
+    virtual TBool CancelSoftNote(TInt aPriority);
+
+private:
+    MAknGlobalNoteController* iGlobalNoteNotifier;
+    MNotifierDialogObserver* iObserver;
+    friend class CAknGlobalNoteSubject;
+    friend class CEikServAppUi;
+    };
+
+ 
+enum 
+    {
+    EClockAlarm        = 1,
+    ECalendarAlarm     = 2,
+    EHideSnooze        = 4,
+    EClockAlarmStop    = 5, // binary EClockAlarm+EHideSnooze
+    ECalendarAlarmStop = 6, // binary ECalendarAlarm+EHideSnooze
+    EAskWakeUp         = 8,
+    ENoSilence         = 16,
+    EMskOpen           = 32
+    };
+
+class MAknPhoneKeyForwarder
+    {
+public:
+    virtual void ForwardKeyToPhoneAppL(const TKeyEvent& aKeyEvent) = 0;
+    };
+
+#endif // __AKNDIALOGCONTROLLER_H__