--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mrguicommon/inc/cesmrlistquery.h Wed Mar 31 21:08:33 2010 +0300
@@ -0,0 +1,204 @@
+/*
+* Copyright (c) 2007-2009 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: Definition for mrui list queries
+*
+*/
+
+
+#ifndef CESMRLISTQUERY_H
+#define CESMRLISTQUERY_H
+
+// INCLUDES
+#include <e32base.h>
+//<cmail>
+#include "esmrdef.h"
+//</cmail>
+
+// FORWARD DECLARATIONS:
+class CDesC16ArrayFlat;
+class CAknPopupList;
+class CESMRAlarm;
+class CESMRRecurrence;
+class CAknSinglePopupMenuStyleListBox;
+
+// CLASS DECLARATION
+class CEikonEnv;
+/**
+ * CESMRListQuery encapsulates edit before send pop-up list
+ * query for ES MR Utils usage.
+ *
+ * Usage:
+ *
+ * TESMRResponseType resp = (TESMRResponseType)
+ * CESMRListQuery::ExecuteEditBeforeSendL(EESMRAttendeeStatusTentative);
+ *
+ * @lib esmrgui.lib
+ */
+NONSHARABLE_CLASS( CESMRListQuery ) : public CBase
+ {
+ public:
+ enum TESMRListQueryType
+ {
+ EESMREditBeforeSendQuery = 0,
+ EESMRSendUpdateToAllQuery,
+ EESMRRecurrenceQuery,
+ EESMRRelativeAlarmTimeQuery,
+ EESMROpenThisOccurenceOrSeriesQuery,
+ EESMRPriorityPopup,
+ EESMRTodoPriorityPopup,
+ EESMRSynchronizationPopup,
+ EESMRDeleteThisOccurenceOrSeriesQuery,
+ EESMREditBeforeSendQueryWithSendOptionsOnly,
+ EESMRUnifiedEditorPopup,
+ EESMRNormalResponseQuery,
+ EESMRRemoveResponseQuery,
+ EESMRMultiCalenQuery,
+ EESMRForwardThisOccurenceOrSeriesQuery
+ };
+
+ public:
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CESMRListQuery* NewL(TESMRListQueryType aType);
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CESMRListQuery* NewL(TESMRListQueryType aType,
+ RArray<TInt>& aFilter);
+
+ /**
+ * Destructor.
+ */
+ ~CESMRListQuery();
+
+ private: // Constructors
+
+ CESMRListQuery( TESMRListQueryType aType );
+ CESMRListQuery( TESMRListQueryType aType, RArray<TInt>& aFilter );
+ void ConstructL();
+
+ public: // Implementation
+
+ /**
+ * Sets the attendee response status to Edit before send query's
+ * title.
+ * @param aStatus Response status
+ */
+ void SetAttendeeStatus(TESMRAttendeeStatus aStatus);
+
+
+ /**
+ * Executes the dialog and destroys itself.
+ * @return TESMRResponseType, or KErrCancel if dialog has
+ * been cancelled.
+ */
+ IMPORT_C TInt ExecuteLD();
+
+ /**
+ * Static version of ExecuteLD for edit before send dialog
+ * @param aStatus attendee status.
+ * @return TESMRResponseType, or KErrCancel if dialog has
+ * been cancelled.
+ */
+ IMPORT_C static TInt ExecuteEditBeforeSendL(
+ TESMRAttendeeStatus aStatus);
+
+ /**
+ * Static version of ExecuteLD for edit before send dialog
+ * @param aStatus attendee status.
+ * @return TESMRResponseType, or KErrCancel if dialog has
+ * been cancelled.
+ */
+ IMPORT_C static TInt ExecuteEditBeforeSendWithSendOptOnlyL(
+ TESMRAttendeeStatus aStatus );
+
+ /**
+ * Static version of ExecuteLD for other list querys
+ * @param aStatus attendee status.
+ * @return
+ * TESMRSendUpdateQueryResponeStatus if the type is EESMRSendUpdateAll
+ * TESMRGUIAlarmValue if the type is EESMRRelativeAlarmTime
+ * TESMRGUIRecurrenceValue if the type is EESMRRecurrence
+ * TESMRThisOccurenceOrSeriesQuery if the type is
+ * EESMRThisOccurenceOrSeriesQuery
+ * or KErrCancel if dialog has
+ * been cancelled.
+ */
+ IMPORT_C static TInt ExecuteL(
+ TESMRListQueryType aType);
+
+ /**
+ * Static version of ExecuteLD for other list querys
+ * @param aStatus attendee status.
+ * @param aFilter contains information about items that should be
+ * excluded from popup list.
+ * @return
+ * TESMRSendUpdateQueryResponeStatus if the type is EESMRSendUpdateAll
+ * TESMRGUIAlarmValue if the type is EESMRRelativeAlarmTime
+ * TESMRGUIRecurrenceValue if the type is EESMRRecurrence
+ * TESMRThisOccurenceOrSeriesQuery if the type is
+ * EESMRThisOccurenceOrSeriesQuery
+ * or KErrCancel if dialog has
+ * been cancelled.
+ */
+ IMPORT_C static TInt ExecuteL(
+ TESMRListQueryType aType, RArray<TInt>& aFilter);
+
+ /**
+ * For multi-calendar query
+ * @param aCalenNameList multi-calendar names for display
+ * @return index of user choose
+ */
+ IMPORT_C TInt ExecuteLD( RArray<TPtrC>& aCalenNameList );
+
+ /**
+ * Static version of ExecuteLD for multi-calendar querys
+ * @param aCalenNameList multi-calendar name list
+ * @return index of user choose
+ */
+ IMPORT_C static TInt ExecuteL(
+ TESMRListQueryType aType, RArray<TPtrC>& aCalenNameList );
+
+ private: // Implementation:
+
+ void SetListQueryTextsL(
+ CDesC16ArrayFlat* aItemArray,
+ CAknPopupList* aPopupList);
+ TInt MapSelectedIndexToReturnValue(TInt aIndex);
+ TInt MapUnifiedEditorItemTextToIndexL(
+ CAknSinglePopupMenuStyleListBox& aList );
+ void LoadTextsFromResourceL();
+
+ private: // Data
+ /// Own: Attendee status
+ TESMRAttendeeStatus iStatus;
+ /// Own: Resource offset;
+ TInt iResourceOffset;
+ /// Own: List query type
+ TESMRListQueryType iType;
+ /// Own: Array for Alarm items
+ RPointerArray< CESMRAlarm > iAlarmArray;
+ /// Own: Array for Recurrence items
+ RPointerArray< CESMRRecurrence > iRecurrenceArray;
+ /// Ref:
+ CEikonEnv* iEnv;
+ /// Own: Filter for dynamic popup, not showing all items
+ RArray<TInt> iFilter;
+ };
+
+#endif // CESMRLISTQUERY_H
+
+// End of File