--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/organizerplugin/aiagendapluginengine/inc/calenagendautils.h Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2002 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: Static utility functions.
+ * - date utils to help comparisions and calculations witg
+ * dates and times.
+ *
+*/
+
+
+#ifndef CALENUTILS_H
+#define CALENUTILS_H
+
+// INCLUDES
+#include <calcommon.h> // for CalCommon::TCalViewFilter
+
+#include <calentry.h>
+
+// FORWARD DECLARATIONS
+class CCalInstance;
+class CCalEntryView;
+class CCalInstanceView;
+
+// CLASS DECLARATION
+NONSHARABLE_CLASS( CalenAgendaUtils )
+ {
+ public:
+ /**
+ *
+ **/
+ IMPORT_C static void CreateEntryIdListForDayL( RPointerArray<CCalInstance>& aList,
+ CCalInstanceView* aInstanceView,
+ const TTime& aDay,
+ const TBool aSortForPopup = EFalse,
+ const TBool aIncludeToDos = ETrue );
+
+ /**
+ * Finds all events for a day range.
+ **/
+ IMPORT_C static void FindEventsForDayRangeL( CCalInstanceView* aInstanceView,
+ RPointerArray<CCalInstance>& aList,
+ const CalCommon::TCalViewFilter& aFilter,
+ const TTime& aStartDay,
+ const TTime& aEndDay );
+
+ /**
+ * Finds all todos for the specified day range.
+ **/
+ IMPORT_C static void FindTodosForDayRangeL( CCalInstanceView* aInstanceView,
+ RPointerArray<CCalInstance>& aList,
+ const TTime& aStartDay,
+ const TTime& aEndDay );
+
+ /**
+ * Removes entries ending aDay at midnight.
+ **/
+ IMPORT_C static void RemoveEntriesEndingAtMidnightL( RPointerArray<CCalInstance>& aList,
+ const TTime& aDay );
+
+ /**
+ * Common instance list sort.
+ **/
+ IMPORT_C static void SortInstanceList( RPointerArray<CCalInstance>& aInstanceList );
+
+ /**
+ * Specific sort for calendar popup (EAnniv and EEvent reversed)
+ **/
+ IMPORT_C static void SortPopupInstanceList( RPointerArray<CCalInstance>& aInstanceList );
+
+ /**
+ * Checks that if entry ends at starting midnight of the day,
+ * but has started earlier.
+ * Such entries are not shown in day that they end, because end time
+ * is just marking the end of previous day.
+ * @returns ETrue, if entry ends at starting midnight of day, but starts before that
+ * EFalse, otherwise
+ **/
+ IMPORT_C static TBool EndsAtStartOfDayL( CCalInstance* aInstance,
+ const TTime& aDay );
+
+ /**
+ * @return duration of entry as minutes
+ **/
+ IMPORT_C static TTimeIntervalMinutes DurationL( const CCalEntry& aEntry );
+
+
+ /**
+ * Bullet-proof way to read entry time and get real ttime back
+ * @return start time for meetings, day notes and anniversaries
+ * end time (due time) for todos
+ * today 00:00 for undated todos (and for entries with null start time)
+ */
+ IMPORT_C static TTime EntryTimeL( const CCalEntry& aEntry );
+
+ /**
+ * @return ETrue for appointments and reminders
+ * EFalse otherwise
+ */
+ IMPORT_C static TBool IsTimedEntryL( CCalEntry::TType aType );
+
+ /**
+ * Checks if the entry is repeating
+ * @param aEntry : A Calendar Entry
+ * @return ETrue if it has an RRule (Meeting/ToDo) or RDate (Meeting)
+ * @return EFalse otherwise
+ */
+ IMPORT_C static TBool IsRepeatingL( const CCalEntry& aEntry );
+
+ /*
+ Returns ETrue if aDes contains only whitespace characters.
+ Returns EFalse otherwise
+ */
+ IMPORT_C static TBool IsEmptyText(const TDesC& aDes);
+
+ private: // class internal utility functions
+ /**
+ * Common compare for all calendar entries. Order as follows:
+ * 1. ETodo : done/undone, date, priority, last modified(oldest 1st)
+ * 2. EEvent : date/time, last modified(oldest 1st)
+ * 3. EAnniv : date/time, last modified(oldest 1st)
+ * 4. EAppt : start time, duration(shortest 1st), last modified(oldest 1st)
+ * (5. EReminder : handled as EAppts )
+ **/
+ static TInt EntryCompare( const CCalInstance& aInstance1,
+ const CCalInstance& aInstance2 );
+
+ /**
+ * Special order handling for popup
+ * 1. ETodo : done/undone, date, priority, last modified(oldest 1st)
+ * 2. EAnniv : date/time, last modified(oldest 1st)
+ * 3. EEvent : date/time, last modified(oldest 1st)
+ * 4. EAppts : start time, duration(shortest 1st), last modified(oldest 1st)
+ * (5. EReminder : handled as EAppts )
+ **/
+ static TInt PopupEntryCompare( const CCalInstance& aInstance1,
+ const CCalInstance& aInstance2 );
+
+ static TInt DoPopupEntryCompareL( const CCalInstance& aInstance1,
+ const CCalInstance& aInstance2 );
+
+ /**
+ * Specific entry comparison functions
+ **/
+ static TInt CompareToDosL( const CCalEntry& aEntry1,
+ const CCalEntry& aEntry2 );
+ static TInt CompareNonTimedNotesL( const CCalInstance& aInstance1,
+ const CCalInstance& aInstance2 );
+ static TInt CompareTimedNotesL( const CCalInstance& aInstance1,
+ const CCalInstance& aInstance2 );
+ static TInt DoEntryCompareL( const CCalInstance& aInstance1,
+ const CCalInstance& aInstance2 );
+
+ enum TCompareResult
+ {
+ EEqual = 0, // 1. == 2.
+ ELessThan = -1, // 1. < 2.
+ EGreaterThan = 1 // 1. > 2.
+ };
+
+ };
+
+#endif // CALENUTILS_H
+
+
+// End of File