agendainterface/agendautil/inc/agendaentry.h
changeset 18 c198609911f9
child 23 fd30d51f876b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/agendainterface/agendautil/inc/agendaentry.h	Fri Apr 16 14:57:40 2010 +0300
@@ -0,0 +1,368 @@
+/*
+* Copyright (c) 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: Header file for AgendaEntry and utility classes.
+*
+*/
+
+#ifndef AGENDAENTRY_H
+#define AGENDAENTRY_H
+
+// System includes
+#include <QObject>
+
+// User includes
+#include "agendainterfacedefines.h"
+
+// Forward declarations
+class QDate;
+class QDateTime;
+class AgendaAlarmPrivate;
+class AgendaAttendeePrivate;
+class AgendaCategoryPrivate;
+class AgendaEntryPrivate;
+class AgendaRepeatRulePrivate;
+
+class XQCALENDAR_EXPORT AgendaAttendee
+{
+public:
+	enum ParticipantRole {
+		RequiredParticipant = 0,
+		OptionalParticipant,
+		NonParticipant,
+		ChairParticipant,
+		ParticipantRoleUnknown = -1
+	};
+
+	enum StatusType {
+		StatusNeedsAction = 0,
+		StatusAccepted,
+		StatusTentative,
+		StatusConfirmed,
+		StatusDeclined,
+		StatusCompleted,
+		StatusDelegated,
+		StatusInProcess,
+		StatusUnknown = -1
+	};
+
+	AgendaAttendee();
+	virtual ~AgendaAttendee();
+	AgendaAttendee(const QString& address);
+	AgendaAttendee(const AgendaAttendee& other);
+
+	void setAddress(const QString& address);
+	void setCommonName(const QString& name);
+	void setResponseRequested(bool responseRequested);
+	void setRole(ParticipantRole role);
+	void setStatus(StatusType status);
+
+	QString address() const;
+	QString commonName() const;
+	bool responseRequested() const;
+	ParticipantRole role() const;
+	StatusType status() const;
+
+	bool isNull() const;
+
+	AgendaAttendee& operator=(const AgendaAttendee& other);
+	bool operator==(const AgendaAttendee& other) const;
+	bool operator!=(const AgendaAttendee& other) const;
+
+private:
+	void detach();
+
+private:
+	AgendaAttendeePrivate* d;
+};
+
+class XQCALENDAR_EXPORT AgendaCategory
+{
+public:
+	enum CategoryType {
+		AppointmentCategory,
+		BusinessCategory,
+		EducationCategory,
+		HolidayCategory,
+		MeetingCategory,
+		MiscellaneousCategory,
+		PersonalCategory,
+		PhoneCallCategory,
+		SickDayCategory,
+		SpecialOccasionCategory,
+		TravelCategory,
+		VacationCategory,
+		ExtendedCategory,
+		UnknownCategory = -1
+	};
+
+	AgendaCategory();
+	AgendaCategory(CategoryType category);
+	AgendaCategory(const AgendaCategory& other);
+	virtual ~AgendaCategory();
+
+	void setCategory(CategoryType categoryType);
+	CategoryType category() const;
+
+	void setExtendedCategoryName(const QString& name);
+	QString extendedCategoryName() const;
+
+	bool isNull() const;
+
+	AgendaCategory& operator=(const AgendaCategory& other);
+	bool operator==(const AgendaCategory& other) const;
+	bool operator!=(const AgendaCategory& other) const;
+
+private:
+	void detach();
+
+private:
+	AgendaCategoryPrivate* d;
+};
+
+
+class XQCALENDAR_EXPORT AgendaAlarm
+{
+public:
+	static const int MaxFileNameLength = 256;
+
+	AgendaAlarm();
+	AgendaAlarm(const AgendaAlarm& other);
+	~AgendaAlarm();
+
+	void setTimeOffset(int minutes);
+	void setAlarmSoundName(const QString& alarmSoundName);
+	QString alarmSoundName() const;
+	int timeOffset() const;
+
+	bool isNull() const;
+
+	AgendaAlarm& operator=(const AgendaAlarm& other);
+	bool operator==(const AgendaAlarm& other) const;
+	bool operator!=(const AgendaAlarm& other) const;
+
+private:
+	void detach();
+
+private:
+	AgendaAlarmPrivate* d;
+};
+
+class XQCALENDAR_EXPORT AgendaRepeatRule
+{
+public:
+
+	enum RuleType {
+		InvalidRule = 0,
+		DailyRule,
+		WeeklyRule,
+		MonthlyRule,
+		YearlyRule
+	};
+
+	enum Day {
+		Monday,
+		Tuesday,
+		Wednesday,
+		Thursday,
+		Friday,
+		Saturday,
+		Sunday,
+		InvalidDay = -1
+	};
+
+	enum Month {
+		January,
+		February,
+		March,
+		April,
+		May,
+		June,
+		July,
+		August,
+		September,
+		October,
+		November,
+		December,
+		InvalidMonth = -1
+	};
+
+	AgendaRepeatRule();
+	AgendaRepeatRule(RuleType type);
+	AgendaRepeatRule(const AgendaRepeatRule& other);
+	~AgendaRepeatRule();
+
+	void setType(RuleType type);
+	RuleType type() const;
+
+	int count() const;
+
+	void setInterval(int interval);
+	int interval() const;
+
+	void setUntil(const QDate& date);
+	QDate until() const;
+
+	void setRepeatRuleStart(const QDate& date);
+	QDate repeatRuleStart() const;
+
+	void setWeekStart(Day day);
+	Day weekStart() const;
+
+	void setByDay(const QList<Day>& days);
+	QList<Day> byDay() const;
+
+	void setByMonthDay(const QList<int>& monthDays);
+	QList<int> byMonthDay() const;
+
+	void setByMonth(const QList<Month>& months);
+	QList<Month> byMonth() const;
+
+	bool isNull() const;
+	AgendaRepeatRule& operator=(const AgendaRepeatRule& other);
+	bool operator==(const AgendaRepeatRule& other) const;
+	bool operator!=(const AgendaRepeatRule& other) const;
+
+private:
+	void detach();
+
+private:
+	AgendaRepeatRulePrivate* d;
+};
+
+class XQCALENDAR_EXPORT AgendaEntry
+{
+public:
+	enum Type {
+		TypeAppoinment,
+		TypeTodo,
+		TypeEvent,
+		TypeReminder,
+		TypeAnniversary,
+		TypeNote,
+		TypeUnknown = -1
+	};
+
+	enum Method {
+		MethodNone,
+		MethodPublish,
+		MethodRequest,
+		MethodReply,
+		MethodAdd,
+		MethodCancel,
+		MethodRefresh,
+		MethodCounter,
+		MethodDeclineCounter,
+		MethodUnknown = -1
+	};
+
+	enum Status {
+		Tentative,
+		Confirmed,
+		Cancelled,
+		TodoNeedsAction,
+		TodoCompleted,
+		TodoInProcess,
+		NullStatus,
+
+		VCalAccepted,
+		VCalNeedsAction,
+		VCalSent,
+		VCalDeclined,
+		VCalDelegated,
+
+		StatusUnknown = -1
+	};
+
+	AgendaEntry();
+	AgendaEntry(Type type);
+	AgendaEntry(const AgendaEntry& other);
+	virtual ~AgendaEntry();
+
+	void addAttendee(const AgendaAttendee& attendee);
+	void addCategory(const AgendaCategory& category);
+
+	bool setStartAndEndTime(
+			const QDateTime& startTime, const QDateTime& endTime);
+	QDateTime startTime() const;
+	QDateTime endTime() const;
+
+	QList<AgendaAttendee>& attendees();
+	const QList<AgendaAttendee>& attendees() const;
+	QList<AgendaCategory>& categories();
+	const QList<AgendaCategory>& categories() const;
+
+	void setDescription(const QString& description);
+	QString description() const;
+
+	void setType(Type type);
+	Type type() const;
+
+	void setAlarm(const AgendaAlarm& alarm);
+	AgendaAlarm alarm() const;
+
+	void setLocation(const QString& location);
+	QString location() const;
+
+	void setSummary(const QString& summary);
+	QString summary() const;
+
+	void setMethod(Method method);
+	Method method() const;
+
+	void setRepeatRule(const AgendaRepeatRule& repeatRule);
+	AgendaRepeatRule repeatRule() const;
+
+	void setPriority(int priority);
+	int priority() const;
+
+	void setRDates(const QList<QDate>& rdates);
+	QList<QDate> rDates() const;
+
+	void setRecurrenceId(QDateTime& recTime);
+	QDateTime recurrenceId();
+
+	bool isNull() const;
+
+	ulong id() const;
+	bool isTimedEntry();
+	bool isRepeating();
+
+	QDateTime lastModifiedDateTime() const;
+	void setLastModifiedDateTime(const QDateTime& dateTime);
+
+	Status status() const;
+	void setStatus(Status status);
+
+	uint favourite() const;
+	void setFavourite(uint favourite);
+
+	void setCompletedDateTime(const QDateTime& dateTime);
+	QDateTime completedDateTime() const;
+	
+	int durationInSecs() const;
+	AgendaEntry& operator=(const AgendaEntry& other);
+	bool operator==(const AgendaEntry& other) const;
+	bool operator!=(const AgendaEntry& other) const;
+
+private:
+	void detach();
+
+private:
+	AgendaEntryPrivate* d;
+	friend class AgendaUtilPrivate;
+};
+
+#endif // AGENDAENTRY_H
+
+// End of file	--Don't remove this.