korganizer

kogroupware.h

00001 /*
00002   This file is part of the Groupware/KOrganizer integration.
00003 
00004   Requires the Qt and KDE widget libraries, available at no cost at
00005   http://www.trolltech.com and http://www.kde.org respectively
00006 
00007   Copyright (c) 2002-2004 Klarälvdalens Datakonsult AB
00008         <info@klaralvdalens-datakonsult.se>
00009 
00010   This program is free software; you can redistribute it and/or modify
00011   it under the terms of the GNU General Public License as published by
00012   the Free Software Foundation; either version 2 of the License, or
00013   (at your option) any later version.
00014 
00015   This program is distributed in the hope that it will be useful,
00016   but WITHOUT ANY WARRANTY; without even the implied warranty of
00017   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00018   GNU General Public License for more details.
00019 
00020   You should have received a copy of the GNU General Public License
00021   along with this program; if not, write to the Free Software
00022   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
00023   MA  02110-1301, USA.
00024 
00025   In addition, as a special exception, the copyright holders give
00026   permission to link the code of this program with any edition of
00027   the Qt library by Trolltech AS, Norway (or with modified versions
00028   of Qt that use the same license as Qt), and distribute linked
00029   combinations including the two.  You must obey the GNU General
00030   Public License in all respects for all of the code used other than
00031   Qt.  If you modify this file, you may extend this exception to
00032   your version of the file, but you are not obligated to do so.  If
00033   you do not wish to do so, delete this exception statement from
00034   your version.
00035 */
00036 
00037 #ifndef KOGROUPWARE_H
00038 #define KOGROUPWARE_H
00039 
00040 #include <libkcal/calendarresources.h>
00041 #include <libkcal/icalformat.h>
00042 #include <libkcal/scheduler.h>
00043 #include <qstring.h>
00044 
00045 #include <kio/job.h>
00046 
00047 using namespace KCal;
00048 
00049 namespace KCal {
00050 class Calendar;
00051 class Event;
00052 }
00053 class CalendarView;
00054 class FreeBusyManager;
00055 
00056 class KOGroupware : public QObject
00057 {
00058     Q_OBJECT
00059   public:
00060     static KOGroupware* create( CalendarView*, KCal::CalendarResources* );
00061     static KOGroupware* instance();
00062 
00063     FreeBusyManager *freeBusyManager();
00064 
00069     bool sendICalMessage( QWidget* parent, KCal::Scheduler::Method method,
00070                           Incidence* incidence, bool isDeleting = false,
00071                           bool statusChanged = false );
00072 
00073     // THIS IS THE ACTUAL KM/KO API
00074     enum EventState { Accepted, ConditionallyAccepted, Declined, Request };
00075 
00076     // convert the TNEF attachment to a vCard or iCalendar part
00077     QString msTNEFToVPart( const QByteArray& tnef );
00078 
00079   private slots:
00081     void incomingDirChanged( const QString& path );
00082 
00083   protected:
00084     KOGroupware( CalendarView*, KCal::CalendarResources* );
00085 
00086   private:
00087     static KOGroupware *mInstance;
00088     KCal::ICalFormat mFormat;
00089     CalendarView *mView;
00090     KCal::CalendarResources *mCalendar;
00091     static FreeBusyManager *mFreeBusyManager;
00092 };
00093 
00094 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys