1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/app/calchangecallback.h Wed Mar 31 12:27:01 2010 +0100
1.3 @@ -0,0 +1,172 @@
1.4 +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +//
1.18 +
1.19 +#ifndef __CALCHANGECALLBACK_H__
1.20 +#define __CALCHANGECALLBACK_H__
1.21 +
1.22 +#include <calcommon.h>
1.23 +
1.24 +class TCalChangeEntry;
1.25 +
1.26 +class MCalChangeCallBack
1.27 +/** A call back class for observing changes in the model view.
1.28 +
1.29 +A client will not be notified of a change if it is the source of
1.30 +the change.
1.31 +
1.32 +@publishedAll
1.33 +@deprecated
1.34 +*/
1.35 + {
1.36 +public:
1.37 + /** Instance view change type
1.38 + @publishedAll
1.39 + @deprecated
1.40 + */
1.41 + enum TChangeType
1.42 + {
1.43 + /** Entries are added */
1.44 + EChangeAdd,
1.45 + /** Entries are deleted */
1.46 + EChangeDelete,
1.47 + /** Entries are modified */
1.48 + EChangeModify,
1.49 + /** Undefined entries */
1.50 + EChangeUndefined,
1.51 + /** Entries cause overflow error */
1.52 + EChangeOverflowError
1.53 + };
1.54 +
1.55 + /** Instance view entry type
1.56 + @publishedAll
1.57 + @deprecated
1.58 + */
1.59 + enum TChangeEntryType
1.60 + {
1.61 + /** Entry type is todo */
1.62 + EChangeEntryTodo,
1.63 + /** Entry type is event */
1.64 + EChangeEntryEvent,
1.65 + /** All entry types */
1.66 + EChangeEntryAll
1.67 + };
1.68 + /** A call back function for change notification
1.69 + @param aChangeEntryType Filters notifications to only notify about entries of this type (event/todo/all).
1.70 +
1.71 + */
1.72 + virtual void CalChangeNotification(TChangeEntryType aChangeEntryType) = 0;
1.73 + };
1.74 +
1.75 +/** A call back class for observing changes in the model view.
1.76 +
1.77 +The call back returns an array containing information about at least
1.78 +one change to the database. The information includes the type of change
1.79 +and the identity of the item being changed.
1.80 +
1.81 +A client will not be notified of a change if it is the source of
1.82 +the change.
1.83 +
1.84 +@publishedAll
1.85 +@released
1.86 +*/
1.87 +class MCalChangeCallBack2
1.88 + {
1.89 +public:
1.90 + /** Instance view change type
1.91 + @publishedAll
1.92 + @released
1.93 + */
1.94 + enum TChangeType
1.95 + {
1.96 + /** Entries are added */
1.97 + EChangeAdd,
1.98 + /** Entries are deleted */
1.99 + EChangeDelete,
1.100 + /** Entries are modified */
1.101 + EChangeModify,
1.102 + /** Undefined entries */
1.103 + EChangeUndefined
1.104 + };
1.105 +
1.106 + /** Instance view entry type
1.107 + @publishedAll
1.108 + @released
1.109 + */
1.110 + enum TChangeEntryType
1.111 + {
1.112 + /** Entry type is todo */
1.113 + EChangeEntryTodo,
1.114 + /** Entry type is event */
1.115 + EChangeEntryEvent,
1.116 + /** All entry types */
1.117 + EChangeEntryAll
1.118 + };
1.119 + /** A call back function for change notification
1.120 + @param aChangeItems List of changes since the last notification.
1.121 +
1.122 + */
1.123 + virtual void CalChangeNotification(RArray<TCalChangeEntry>& aChangeItems) = 0;
1.124 + };
1.125 +
1.126 +/** Struct for storing change notification data.
1.127 +This contains the calendar local ID, the type of change and the entry type.
1.128 +
1.129 +The iChangeType will only be set to EChangeEntryTodo or EChangeEntryEvent
1.130 +values. EChangeEntryAll is provided for callback registration only.
1.131 +
1.132 +If iChangeType is EChangeUndefined or EChangeOverflowError, iEntryId and
1.133 +iEntryType are undefined and should not be used by clients.
1.134 +
1.135 +@publishedAll
1.136 +@released
1.137 +*/
1.138 +struct TCalChangeEntry
1.139 + {
1.140 + /** Local UID of the entry */
1.141 + TCalLocalUid iEntryId;
1.142 + /** Type of change to the entry */
1.143 + MCalChangeCallBack2::TChangeType iChangeType;
1.144 + /** Type of entry */
1.145 + MCalChangeCallBack2::TChangeEntryType iEntryType;
1.146 + };
1.147 +
1.148 +/** Class to encapsulate call back registration parameters.
1.149 +
1.150 +The type of entries, the date range and whether undated todos are included
1.151 +can be specified.
1.152 +
1.153 +@publishedAll
1.154 +@released
1.155 +*/
1.156 +class CCalChangeNotificationFilter
1.157 + {
1.158 +public:
1.159 + IMPORT_C static CCalChangeNotificationFilter* NewL(MCalChangeCallBack2::TChangeEntryType aChangeEntryType, TBool aIncludeUndatedTodos, const CalCommon::TCalTimeRange& aTimeRange);
1.160 + IMPORT_C ~CCalChangeNotificationFilter();
1.161 +
1.162 + MCalChangeCallBack2::TChangeEntryType ChangeEntryType() const;
1.163 + TCalTime StartTime() const;
1.164 + TCalTime EndTime() const;
1.165 + TBool IncludeUndatedTodos() const;
1.166 +
1.167 +private:
1.168 + CCalChangeNotificationFilter(MCalChangeCallBack2::TChangeEntryType aChangeEntryType, TBool aIncludeUndatedTodos, const CalCommon::TCalTimeRange& aTimeRange);
1.169 +
1.170 + MCalChangeCallBack2::TChangeEntryType iChangeEntryType;
1.171 + CalCommon::TCalTimeRange iTimeRange;
1.172 + TBool iIncludeUndatedTodos;
1.173 + };
1.174 +
1.175 +#endif // __CALCHANGECALLBACK_H__